配置DHCP Snooping的攻击防范功能示例
组网需求
如图13-6所示,SwitchA与SwitchB为接入设备,SwitchC为DHCP Relay。Client1与Client2分别通过10GE1/0/1与10GE1/0/2接入SwitchA,Client3通过10GE1/0/1接入SwitchB,其中Client1与Client3通过DHCP方式获取IP地址,而Client2使用静态配置的IP地址。网络中存在非法用户的攻击导致合法用户不能正常获取IP地址,管理员希望能够防止网络中针对DHCP的攻击,为DHCP用户提供更优质的服务。
配置思路
采用如下的思路在SwitchC上进行配置。
- 使能DHCP Snooping功能。
- 配置接口的信任状态,以保证客户端从合法的服务器获取IP地址。
- 使能ARP与DHCP Snooping的联动功能,保证DHCP用户在异常下线时实时更新绑定表。
- 使能对DHCP报文进行绑定表匹配检查的功能,防止仿冒DHCP报文攻击。
- 配置DHCP报文上送DHCP报文处理单元的最大允许速率,防止DHCP报文泛洪攻击。
- 配置允许接入的最大用户数以及使能检测DHCP Request报文帧头MAC与DHCP数据区中CHADDR字段是否一致功能,防止DHCP Server服务拒绝攻击。
- 配置丢弃报文告警和报文限速告警功能。
操作步骤
- 使能DHCP Snooping功能。
# 使能全局DHCP Snooping功能。
<HUAWEI> system-view [~HUAWEI] sysname SwitchC [*HUAWEI] commit [~SwitchC] dhcp enable [*SwitchC] dhcp snooping enable
# 使能用户侧接口的DHCP Snooping功能。以10GE1/0/1接口为例,10GE1/0/2的配置与10GE1/0/1接口相同,不再赘述。
[*SwitchC] interface 10ge 1/0/1 [*SwitchC-10GE1/0/1] dhcp snooping enable [*SwitchC-10GE1/0/1] quit
- 配置接口的信任状态:将连接DHCP Server的接口状态配置为“Trusted”。
[*SwitchC] interface 10ge 2/0/1 [*SwitchC-10GE2/0/1] dhcp snooping trusted [*SwitchC-10GE2/0/1] quit
- 使能ARP与DHCP Snooping的联动功能。
[*SwitchC] dhcp snooping user-bind arp-detect enable
- 使能对DHCP报文进行绑定表匹配检查的功能。
# 在用户侧接口进行配置。以10GE1/0/1接口为例,10GE1/0/2的配置与10GE1/0/1接口相同,不再赘述。
[*SwitchC] interface 10ge 1/0/1 [*SwitchC-10GE1/0/1] dhcp snooping check binding enable [*SwitchC-10GE1/0/1] quit
- 配置DHCP报文上送DHCP报文处理单元的最大允许速率为90pps。
[*SwitchC] dhcp snooping rate-limit enable [*SwitchC] dhcp snooping rate-limit 90
- 配置接口允许接入的最大用户数并使能对CHADDR字段检查功能。
# 在用户侧接口进行配置。以10GE1/0/1接口为例,10GE1/0/2的配置与10GE1/0/1接口相同,不再赘述。
[*SwitchC] interface 10ge 1/0/1 [*SwitchC-10GE1/0/1] dhcp snooping user-bind max-number 20 [*SwitchC-10GE1/0/1] dhcp snooping check mac-address enable [*SwitchC-10GE1/0/1] quit
- 配置丢弃报文告警和报文限速告警功能。
# 使能丢弃报文告警功能,并配置丢弃报文告警阈值。以10GE1/0/1接口为例,10GE1/0/2的配置与10GE1/0/1接口相同,不再赘述。
[*SwitchC] interface 10ge 1/0/1 [*SwitchC-10GE1/0/1] dhcp snooping alarm mac-address enable [*SwitchC-10GE1/0/1] dhcp snooping alarm binding enable [*SwitchC-10GE1/0/1] dhcp snooping alarm untrust-reply enable [*SwitchC-10GE1/0/1] dhcp snooping alarm mac-address threshold 120 [*SwitchC-10GE1/0/1] dhcp snooping alarm binding threshold 120 [*SwitchC-10GE1/0/1] dhcp snooping alarm untrust-reply threshold 120 [*SwitchC-10GE1/0/1] quit
# 使能报文限速告警功能,并配置报文限速告警阈值。
[*SwitchC] dhcp snooping alarm rate-limit enable [*SwitchC] dhcp snooping alarm rate-limit threshold 500 [*SwitchC] commit
- 验证配置结果
# 执行命令display dhcp snooping interface查看接口下的DHCP Snooping运行信息。
[~SwitchC] display dhcp snooping interface 10ge 1/0/1 DHCP snooping : Enable Trusted interface : No DHCP user max number : 20 Current DHCP user number : 0 Check MAC-address : Enable Alarm MAC-address : Enable Alarm MAC-address threshold : 120 Discarded packets for check MAC-address : 0 Check binding : Enable Alarm binding : Enable Alarm binding threshold : 120 Discarded packets for check binding : 0 Rate-limit : Disable (default) Alarm rate-limit : Disable (default) Alarm rate-limit threshold : 500 Discarded packets for rate-limit : 0 Alarm untrust-reply : Enable Alarm untrust-reply threshold : 120 Discarded packets for check untrust-reply: 0 [~SwitchC] display dhcp snooping interface 10ge 2/0/1 DHCP snooping : Disable (default) Trusted interface : Yes DHCP user max number : 32768 (default) Current DHCP user number : 0 Check MAC-address : Disable (default) Alarm MAC-address : Disable (default) Check binding : Disable (default) Alarm binding : Disable (default) Rate-limit : Disable (default) Alarm rate-limit : Disable (default) Alarm rate-limit threshold : 500 Discarded packets for rate-limit : 0 Alarm untrust-reply : Disable (default)
配置文件
# SwitchC的配置文件
# sysname SwitchC # dhcp enable # dhcp snooping enable dhcp snooping rate-limit enable dhcp snooping rate-limit 90 dhcp snooping alarm rate-limit enable dhcp snooping alarm rate-limit threshold 500 dhcp snooping user-bind arp-detect enable # interface 10GE1/0/1 dhcp snooping enable dhcp snooping check binding enable dhcp snooping alarm binding enable dhcp snooping alarm binding threshold 120 dhcp snooping check mac-address enable dhcp snooping alarm mac-address enable dhcp snooping alarm mac-address threshold 120 dhcp snooping alarm untrust-reply enable dhcp snooping alarm untrust-reply threshold 120 dhcp snooping user-bind max-number 20 # interface 10GE1/0/2 dhcp snooping enable dhcp snooping check binding enable dhcp snooping alarm binding enable dhcp snooping alarm binding threshold 120 dhcp snooping check mac-address enable dhcp snooping alarm mac-address enable dhcp snooping alarm mac-address threshold 120 dhcp snooping alarm untrust-reply enable dhcp snooping alarm untrust-reply threshold 120 dhcp snooping user-bind max-number 20 # interface 10GE2/0/1 dhcp snooping trusted # return