机房的核心交换机S9303上划分了多个VLAN,这些VLAN需要使用DHCP自动获取IP地址。
如何使用一个DHCP服务器给多个VLAN分配IP,网上有不少资料,但是有一些设置比较繁琐,比如需要做trunk到DHCP服务器,然后DHCP服务器的网卡,需要创建多个VLAN子网卡。经过测试,下面是一个方便简化的方法:
1、华为S9303上的设置
设置到DHCP服务器的接口,其中vlan100是dhcp所在vlan
interface Vlanif100 description TO DHCP Server ip address 172.16.255.2 255.255.255.252 interface GigabitEthernet2/1/23 description to DHCP Server port hybrid pvid vlan 100 port hybrid untagged vlan 100
打开 DHCP relay
dhcp server group dhcp-srv dhcp-server 172.16.255.1 0 dhcp enable
然后在每一个需要做dhcp的vlan里加入:
interface Vlanif90 description office ip address 192.168.29.1 255.255.255.0 dhcp select relay dhcp relay server-select dhcp-srv
2、设置 dhcp 服务器
dhcp服务器采用ubuntu,单网卡,配置一个IP:
vi /etc/network/interfaces auto eth0 iface eth0 inet static address 172.16.255.1 netmask 255.255.255.252
dhcp的配置文件,注意
采用 shared-network 多个subnet共享一个network,所有需要获取地址的vlan,都要单独一个 subnet。这样交换机送过来的dhcp请求,就可以根据所在子网,获取到正确的IP地址。
注意:网卡所在地址段172.16.255.0,也必须配置一个 subnet,并且放在第一个,否则无法启动dhcpd
shared-network pubyun { #vlan 20 next-server 172.16.112.2; filename "/pxelinux.0"; # 必须有,否则无法启动 subnet 172.16.255.0 netmask 255.255.255.0 { option routers 172.16.255.1; range 172.16.255.200 172.16.255.240; } } shared-network pubyun { #vlan 1000 next-server 172.16.112.2; filename "/pxelinux.0"; subnet 172.16.0.0 netmask 255.255.255.0 { option routers 172.16.0.1; range 172.16.0.200 172.16.0.240; } } shared-network pubyun { #vlan 1200 next-server 172.16.112.2; filename "/pxelinux.0"; subnet 172.16.96.0 netmask 255.255.255.0 { option routers 172.16.96.1; range 172.16.96.200 172.16.96.240; } }