华为交换机DHCP snooping配置教程
DHCP Snooping是一种DHCP安全特性,在配置DHCP Snooping各安全功能之前需首先使能DHCP Snooping功能。
使能DHCP Snooping功能的顺序是先使能全局下的DHCP Snooping功能,再使能接口或VLAN下的DHCP Snooping功能。
图1 配置DHCP Snooping基本功能组网图 如上图1所示,Switch_1是二层接入设备,将用户PC的DHCP请求转发给DHCP服务器。以Switch_1为例,在使能DHCP Snooping功能时需要注意: 使能DHCP Snooping功能之前,必须已使用命令dhcp enable使能了设备的DHCP功能。
全局使能DHCP Snooping功能后,还需要在连接用户的接口(如图中的接口if1、if2和if3)或其所属VLAN(如图中的VLAN 10)使能DHCP Snooping功能。
当存在多个用户PC属于同一个VLAN时,为了简化配置,可以在这个VLAN使能DHCP Snooping功能。
请在二层网络中的接入设备或第一个DHCP Relay上执行以下步骤。
1、使能DHCP Snooping功能 [Huawei]dhcp snooping enable ? ipv4 DHCPv4 Snooping ipv6 DHCPv6 Snooping vlan Virtual LAN
[Huawei]dhcp snooping over-vpls enable # 使能设备在VPLS网络中的DHCP Snooping功能 或
[Huawei-vlan2]dhcp snooping enable
[Huawei-GigabitEthernet0/0/3]dhcp snooping enable
2、配置接口信任状态
[Huawei-GigabitEthernet0/0/2]dhcp snooping trusted 或
[Huawei-vlan3]dhcp snooping trusted interface GigabitEthernet 0/0/6
3、去使能DHCP Snooping用户位置迁移功能
在移动应用场景中,若某一用户由接口A上线后,切换到接口B重新上线,用户将发送DHCP Discover报文申请IP地址。
缺省情况下设备使能DHCP Snooping功能之后将允许该用户上线,并刷新DHCP Snooping绑定表。
但是在某些场景中,这样的处理方式存在安全风险,比如网络中存在攻击者仿冒合法用户发送DHCP Discover报文,最终导致DHCP Snooping绑定表被刷新,合法用户网络访问中断。
此时需要去使能DHCP Snooping用户位置迁移功能,丢弃DHCP Snooping绑定表中已存在的用户(用户MAC信息存在于DHCP Snooping绑定表中)从其他接口发送来的DHCP Discover报文。
[Huawei]undo dhcp snooping user-transfer enable
4、配置ARP与DHCP Snooping的联动功能
DHCP Snooping设备在收到DHCP用户发出的DHCP Release报文时将会删除该用户对应的绑定表项,但若用户发生了异常下线而无法发出DHCP Release报文时,DHCP Snooping设备将不能够及时的删除该DHCP用户对应的绑定表。
使能ARP与DHCP Snooping的联动功能,如果DHCP Snooping表项中的IP地址对应的ARP表项达到老化时间,则DHCP Snooping设备会对该IP地址进行ARP探测,如果在规定的探测次数内探测不到用户,设备将删除用户对应的ARP表项。之后,设备将会再次按规定的探测次数对该IP地址进行ARP探测,如果最后仍不能够探测到用户,则设备将会删除该用户对应的绑定表项。 只有设备作为DHCP Relay时,才支持ARP与DHCP Snooping的联动功能。
[Huawei]arp dhcp-snooping-detect enable
5、配置用户下线后及时清除对应MAC表项功能
当某一DHCP用户下线时,设备上其对应的动态MAC表项还未达到老化时间,则设备在接收到来自网络侧以该用户IP地址为目的地址的报文时,将继续根据动态MAC表项转发此报文。
这种无效的报文处理在一定程度上将会降低设备的性能。
设备在接收到DHCP用户下线时发送DHCP Release报文后,将会立刻删除用户对应的DHCP Snooping绑定表项。利用这种特性,使能当DHCP Snooping动态表项清除时移除对应用户的MAC表项功能,则当用户下线时,设备将会及时的移除用户的MAC表项。
[Huawei]dhcp snooping user-offline remove mac-address
6、配置丢弃GIADDR字段非零的DHCP报文
DHCP报文中的GIADDR(Gateway Ip Address)字段记录了DHCP报文经过的第一个DHCP Relay的IP地址,当客户端发出DHCP请求时,如果服务器和客户端不在同一个网段,那么第一个DHCP Relay在将DHCP请求报文转发给DHCP服务器时,会把自己的IP地址填入此字段,DHCP服务器会根据此字段来判断出客户端所在的网段地址,从而选择合适的地址池,为客户端分配该网段的IP地址。
图1 多DHCP中继场景下DHCP报文处理流程(以DHCP Request报文为例)
如上图1所示,在为了保证设备在生成DHCP Snooping绑定表时能够获取到用户MAC等参数,DHCP Snooping功能需应用于二层网络中的接入设备或第一个DHCP Relay上(如图中的DHCP Relay1设备)。
故DHCP Snooping设备接收到的DHCP报文中GIADDR字段必然为零,若不为零则该报文为非法报文,设备需丢弃此类报文。在DHCP中继使能DHCP Snooping场景中,建议配置该功能。
通常情况下,PC发出的DHCP报文中GIADDR字段为零。在某些情况下,PC发出的DHCP报文中GIADDR字段不为零,可能导致DHCP服务器分配错误的IP地址。为了防止PC用户伪造GIADDR字段不为零的DHCP报文申请IP地址,建议配置该功能。
[Huawei]dhcp snooping check dhcp-giaddr enable vlan ? INTEGER<1-4094> Virtual LAN ID 或
[Huawei-vlan5]dhcp snooping check dhcp-giaddr enable 或
[Huawei-GigabitEthernet0/0/2]dhcp snooping check dhcp-giaddr enable