华为S9303多VLAN做DHCP relay

机房的核心交换机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;
    }
}
此条目发表在DEVOPS分类目录。将固定链接加入收藏夹。