配置思路
1.使能DHCP Snooping功能。
2.配置接口的信任状态,以保证客户端从合法的服务器获取IP地址。
3.使能ARP与DHCPSnooping的联动功能,保证DHCP用户在异常下线时实时更新绑定表。
4.使能根据DHCP Snooping绑定表生成接口的静态MAC表项功能,以防止非DHCP用户攻击。
5.使能对DHCP报文进行绑定表匹配检查的功能,防止仿冒DHCP报文攻击。
6.配置DHCP报文上送DHCP报文处理单元的最大允许速率,防止DHCP报文泛洪攻击。
7.配置允许接入的最大用户数以及使能检测DHCP Request
操作步骤
1.使能DHCP Snooping功能。
[SwitchC] dhcp enable
[SwitchC]dhcp snooping enable
2.使能用户侧接口的DHCP Snooping功能。
[SwitchC] dhcp snooping enable vlan 1 to 100(或直接在接口启用如下)
[SwitchC] interface gigabitethernet 0/0/1
[SwitchC-GigabitEthernet0/0/1] dhcp snooping enable
3.配置接口的信任状态:将连接DHCP Server的接口状态配置为“Trusted”。接dhcp的端口和交换机级联端口需要配置
[SwitchC] interface gigabitethernet 0/0/3
[SwitchC-GigabitEthernet0/0/3]dhcp snooping trusted
4.使能ARP与DHCPSnooping的联动功能。
[SwitchC]arp dhcp-snooping-detect enable
5.使能对DHCP报文进行绑定表匹配检查的功能。
[SwitchC] interface gigabitethernet0/0/1
[SwitchC-GigabitEthernet0/0/1] dhcp snooping check dhcp-request enable
6.配置DHCP报文上送DHCP报文处理单元的最大允许速率为10pps。
[SwitchC] dhcp snooping check dhcp-rate enable
[SwitchC] dhcp snooping check dhcp-rate 10
7.配置接口允许接入的最大用户数。
[SwitchC] interface gigabitethernet 0/0/1
[SwitchC-GigabitEthernet0/0/1] dhcp snooping max-user-number 2
8.配置丢弃报文告警和报文限速告警功能。
使能丢弃报文告警功能,并配置丢弃报文告警阈值。以GE0/0/1接口为例,GE0/0/2的配置相同
[SwitchC] interface gigabitethernet 0/0/1
[SwitchC] dhcp snooping alarm dhcp-rate enable
[SwitchC] dhcp snooping alarm dhcp-rate threshold 10
[SwitchC] dhcp snooping check user-bind enable
[SwitchC] dhcp snooping check mac-address enable 使能检查DHCPRequest报文头中MAC地址的功能
验证配置结果
display dhcp snooping configuration 查看DHCP Snooping的配置信息。
display dhcp snooping interface 查看接口下的DHCP Snooping运行信息。
reset dhcpsnooping user-bind vlan | interface | * 复位DHCPSnooping绑定表
dhcp snoopinguser-bind autosave file-name 备份DHCPSnooping绑定表。
arp anti-attackcheck user-bind enable
arp anti-attackcheck user-bind alarm enable
arp anti-attackcheck user-bind alarm threshold 10
arp anti-attackcheck user-bind check-item mac-address
ip source checkuser-bind enable 启用ip源防护
ip source checkuser-bind check-item { ip-address |mac-address | vlan }* 配置IP报文检查项
ip source checkuser-bind alarm enable 使能IP报文检查告警功能。
ip source checkuser-bind alarm threshold threshold 配置IP报文检查告警阈值缺省100。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
使能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地址。多DHCP中继场景下DHCP报文处理流程(以DHCP Request报文为例).png图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
7、使能DHCP Server探测功能
在使能DHCP Snooping功能并配置了接口的信任状态之后,设备将能够保证客户端从合法的服务器获取IP地址,这将能够有效的防止DHCP Server仿冒者攻击。但是此时却不能够定位DHCP Server仿冒者的位置,使得网络中仍然存在着安全隐患。通过配置DHCP Server探测功能,DHCP Snooping设备将会检查并在日志中记录所有DHCP回应报文中携带的DHCP Server地址与接口等信息,此后网络管理员可根据日志来判定网络中是否存在伪DHCP Server进而对网络进行维护。
[Huawei]dhcp server detect
8、防止DHCP报文泛洪攻击
在DHCP网络环境中,若存在DHCP用户短时间内向设备发送大量的DHCP报文,将会对设备的性能造成巨大的冲击以致可能会导致设备无法正常工作。通过使能对DHCP报文上送DHCP报文处理单元的速率进行检测功能将能够有效防止DHCP报文泛洪攻击。
8.1、使能对DHCP报文上送DHCP报文处理单元的速率进行检测功能
[Huawei-vlan3]dhcp snooping check dhcp-rate enable # 接口视图下命令一样
或
[Huawei]dhcp snooping check dhcp-rate enable ?
INTEGER<1-100> Rate value (Unit:pps)
alarm Alarm
vlan Virtual LAN
8.2、DHCP报文上送DHCP报文处理单元的最大允许速率
[Huawei-vlan3]dhcp snooping check dhcp-rate ?
INTEGER<1-100> Rate value (Unit:pps)
enable Enable
[Huawei-vlan3]dhcp snooping check dhcp-rate 80
8.3、使能当丢弃的DHCP报文数达到告警阈值时的告警功能
[Huawei-GigabitEthernet0/0/2]dhcp snooping alarm dhcp-rate enable
8.4、配置接口下被丢弃的DHCP报文的告警阈值
[Huawei-GigabitEthernet0/0/2]dhcp snooping alarm dhcp-rate threshold ?
INTEGER<1-1000> Threshold value (Unit:packets)
9、防止仿冒DHCP报文攻击
在DHCP网络环境中,若攻击者仿冒合法用户的DHCP Request报文发往DHCP Server,将会导致用户的IP地址租约到期之后不能够及时释放,以致合法用户无法使用该IP地址;若攻击者仿冒合法用户的DHCP Release报文发往DHCP Server,将会导致用户异常下线。在生成DHCP Snooping绑定表后,设备可根据绑定表项,对DHCP Request报文或DHCP Release报文进行匹配检查,只有匹配成功的报文设备才将其转发,否则将丢弃。这将能有效的防止非法用户通过发送伪造DHCP Request或DHCP Release报文冒充合法用户续租或释放IP地址。
9.1、使能对从指定VLAN内上送的DHCP报文进行绑定表匹配检查的功能
[Huawei]dhcp snooping check dhcp-request enable vlan ?
INTEGER<1-4094> Virtual LAN ID
或
[Huawei-GigabitEthernet0/0/2]dhcp snooping check dhcp-request enable
9.2、使能与绑定表不匹配而被丢弃的DHCP报文数达到阈值时的DHCP Snooping告警功能
[Huawei-GigabitEthernet0/0/2]dhcp snooping alarm dhcp-request enable
9.3、DHCP Snooping丢弃报文数量的告警阈值。
[Huawei]dhcp snooping alarm threshold ?
INTEGER<1-1000> Threshold value (Unit:packets)
9.4、与绑定表不匹配而被丢弃的DHCP报文的告警阈值
[Huawei-GigabitEthernet0/0/2]dhcp snooping alarm dhcp-request threshold ?
INTEGER<1-1000> Threshold value (Unit:packets)
10、防止DHCP Server服务拒绝攻击
若在网络中存在DHCP用户恶意申请IP地址,将会导致IP地址池中的IP地址快速耗尽以致DHCP Server无法为其他合法用户分配IP地址。另一方面,DHCP Server通常仅根据CHADDR(client hardware address,客户端硬件地址)字段来确认客户端的MAC地址。如果攻击者通过不断改变DHCP Request报文中的CHADDR字段向DHCP Server申请IP地址,将会导致DHCP Server上的地址池被耗尽,从而无法为其他正常用户提供IP地址。为了防止某些端口的DHCP用户恶意申请IP地址,可配置接口允许学习的DHCP Snooping绑定表项的最大个数来控制上线用户的个数,当用户数达到该值时,则任何用户将无法通过此接口成功申请到IP地址。为了防止攻击者不断改变DHCP Request报文中的CHADDR字段进行攻击,可使能检测DHCP Request报文帧头MAC地址与DHCP数据区中CHADDR字段是否相同的功能,相同则转发报文,否则丢弃。
10.1、设备允许学习的DHCP Snooping绑定表项的最大个数
[Huawei]dhcp snooping max-user-number ?
INTEGER<1-1024> Max user number value
[Huawei]dhcp snooping max-user-number 20 ?
vlan Virtual LAN
[Huawei]dhcp snooping max-user-number 20 vlan ?
INTEGER<1-4094> Virtual LAN ID
或
[Huawei-GigabitEthernet0/0/2]dhcp snooping max-user-number ?
INTEGER<1-1024> Max user number value
10.2、DHCP Snooping绑定表的告警阈值百分比
[Huawei] dhcp snooping user-alarm percentage percent-lower-value percent-upper-value
10.3、接口允许学习的DHCP Snooping绑定表项的最大个数。
[Huawei-GigabitEthernet0/0/2]dhcp snooping max-user-number ?
INTEGER<1-1024> Max user number value
或
[Huawei-vlan2]dhcp snooping max-user-number ?
INTEGER<1-1024> Max user number value
10.4、使能检测DHCP Request报文帧头MAC与DHCP数据区中CHADDR字段是否一致功能
[Huawei]dhcp snooping check dhcp-chaddr enable vlan ?
INTEGER<1-4094> Virtual LAN ID
或
[Huawei-GigabitEthernet0/0/2]dhcp snooping check dhcp-chaddr enable ?
alarm Alarm
或
[Huawei-vlan2]dhcp snooping check dhcp-chaddr enable
10.5、帧头MAC地址与DHCP数据区中CHADDR字段不匹配而被丢弃的DHCP报文的告警阈值
[Huawei-GigabitEthernet0/0/2]dhcp snooping alarm dhcp-chaddr threshold ?
INTEGER<1-1000> Threshold value (Unit:packets)
11、在DHCP报文中添加Option82字段
为使DHCP Server能够获取到DHCP用户的精确物理位置信息,可在DHCP报文中添加Option82字段。
Option82选项记录了DHCP Client的位置信息。
设备通过在DHCP请求报文中添加Option82选项,可将DHCP Client的位置信息发送给DHCP Server,从而使得DHCP Server能够根据Option82选项的内容为DHCP Client分配合适的IP地址和其他配置信息,并可以实现对客户端的安全控制。
DHCP Option82必须配置在设备的用户侧,否则设备向DHCP Server发出的DHCP报文不会携带Option82选项内容。
11.1、在DHCP报文中添加Option82选项功能
[Huawei-vlan6]dhcp option82 ?
insert Insert option82 into DHCP packets # 插入
rebuild Rebuild option82 in the DHCP packets # 重建
[Huawei-vlan6]dhcp option82 insert ?
enable Enable
或
[Huawei-GigabitEthernet0/0/2]dhcp option82 ?
circuit-id DHCP option82 sub-option Circuit ID
format The format of DHCP option82
insert Insert option82 into DHCP packets
rebuild Rebuild option82 in the DHCP packets
remote-id DHCP option82 sub-option Remote ID
vlan Virtual LAN
[Huawei-GigabitEthernet0/0/2]dhcp option82 rebuild ?
enable Enable
11.2、配置Option82选项的格式
[Huawei-GigabitEthernet0/0/2]dhcp option82 vlan 3 circuit-id format ?
common Common format. Circuit-ID:"%iftype%slot/%subslot/%port:%svlan.%cvlan %sysname/0/0/0/0/0".
Remote-ID: “%mac”
default Default format. The same with global dhcp option82 formatconfiguration.
extend Extend format. Circuit-ID: 0 %length %svlan %5slot %3subslot%8port. Remote-ID: 0 %length %mac #
user-defined The format of DHCP option82 defined by user # 用户自定义格式
或
[Huawei]dhcp option82 remote-id format ?
common Common format. Circuit-ID:"%iftype
%slot/%subslot/%port:%svlan.%cvlan %sysname/0/0/0/0/0".Remote-ID: "%mac"
default Default format. Circuit-ID:"%portname:%svlan.%cvlan
%sysname/0/0/0/0/0". Remote-ID: "%mac"
extend Extend format. Circuit-ID: 0 %length %svlan %5slot %3subslot
%8port. Remote-ID: 0 %length %mac
user-defined The format of DHCP option82 defined by user
系统视图下或同一个接口视图下配置的所有Option82选项共用1~255个字节长度,因此,所有Option82选项长度之和不能超过255个字节,否则会导致部分Option82选项信息丢失。
设备不限制配置多少个Option82选项,但是大量配置会占用很多内存,并延长设备处理时间。为保证设备性能,建议用户根据自身需要和设备内存大小来配置Option82选项。