09-DHCP Snooping配置
本章节下载: 09-DHCP Snooping配置 (285.46 KB)
目 录
1.4.1 在普通组网中配置DHCP Snooping基本功能
1.4.2 在VXLAN组网中配置DHCP Snooping基本功能
DHCP Snooping是DHCP的一种安全特性。
DHCP Snooping设备只有位于DHCP客户端与DHCP服务器之间,或DHCP客户端与DHCP中继之间时,DHCP Snooping功能配置后才能正常工作;设备位于DHCP服务器与DHCP中继之间时,DHCP Snooping功能配置后不能正常工作。
网络中如果存在私自架设的非法DHCP服务器,则可能导致DHCP客户端获取到错误的IP地址和网络配置参数,从而无法正常通信。为了使DHCP客户端能通过合法的DHCP服务器获取IP地址,DHCP Snooping安全机制允许将端口设置为信任端口和不信任端口:
· 信任端口正常转发接收到的DHCP报文。
· 不信任端口接收到DHCP服务器响应的DHCP-ACK和DHCP-OFFER报文后,丢弃该报文。
在DHCP Snooping设备上指向DHCP服务器方向的端口需要设置为信任端口,其他端口设置为不信任端口,从而保证DHCP客户端只能从合法的DHCP服务器获取IP地址,私自架设的伪DHCP服务器无法为DHCP客户端分配IP地址。
DHCP Snooping通过监听DHCP-REQUEST报文和信任端口收到的DHCP-ACK报文,记录DHCP Snooping表项,其中包括客户端的MAC地址、DHCP服务器为DHCP客户端分配的IP地址、与DHCP客户端连接的端口及VLAN等信息。利用这些信息可以实现:
· ARP快速应答:根据DHCP Snooping表项来判断是否进行ARP快速应答,从而减少ARP广播报文。ARP快速应答的详细介绍请参见“三层技术-IP业务配置指导”中的“ARP快速应答”。
· ARP Detection:根据DHCP Snooping表项来判断发送ARP报文的用户是否合法,从而防止非法用户的ARP攻击。ARP Detection的详细介绍请参见“安全配置指导”中的“ARP攻击防御”。
如图1-1所示,在DHCP Snooping设备上指向DHCP服务器方向的端口需要设置为信任端口,以便DHCP Snooping设备正常转发DHCP服务器的应答报文,保证DHCP客户端能够从合法的DHCP服务器获取IP地址。
在多个DHCP Snooping设备级联的网络中,为了节省系统资源,不需要每台DHCP Snooping设备都记录所有DHCP客户端的IP地址和MAC地址的绑定信息,只需在与客户端直接相连不信任端口上记录绑定信息。间接与DHCP客户端相连的不信任端口不需要记录IP地址和MAC地址绑定信息。
图1-2 DHCP Snooping级联组网图
设备 |
记录绑定信息的不信任端口 |
不记录绑定信息的不信任端口 |
信任端口 |
Device A |
Port A1 |
Port A3 |
Port A2 |
Device B |
Port B3和Port B4 |
Port B1 |
Port B2 |
Device C |
Port C1 |
Port C3和Port C4 |
Port C2 |
配置DHCP Snooping基本功能时,需要注意:
· 为了使DHCP客户端能从合法的DHCP服务器获取IP地址,必须将与合法DHCP服务器相连的端口设置为信任端口,设置的信任端口和与DHCP客户端相连的端口必须在同一个VLAN内。
· 目前,可以设置为DHCP Snooping信任端口的接口类型包括:三层以太网接口。
DHCP Snooping配置任务如下:
(2) (可选)配置DHCP Snooping表项固化功能
(3) (可选)配置接口动态学习DHCP Snooping表项的最大数目
(4) (可选)配置DHCP Snooping安全功能
(5) (可选)开启DHCP Snooping的用户下线探测功能
(6) (可选)开启DHCP Snooping日志和告警功能
(7) (可选)关闭接口的DHCP Snooping功能
在一台DHCP Snooping设备上,如果全局开启了DHCP Snooping功能,则设备上所有VLAN内的DHCP Snooping功能也同时开启。
对于某些组网来说,管理员只需要在设备在某些特定VLAN内开启DHCP Snooping功能,而不需要在整个设备上开启DHCP Snooping功能。为了满足此需求,设备支持在指定VLAN内开启DHCP Snooping功能,并在VLAN内配置DHCP Snooping信任端口和开启端口的DHCP Snooping表项记录功能。
在一台设备上,全局DHCP Snooping功能和VLAN内的DHCP Snooping功能关系如下:
· 如果全局开启了DHCP Snooping基本功能(包括开启DHCP Snooping功能、配置信任端口和配置DHCP Snooping表项记录功能),只能使用对应的全局命令关闭功能,使用VLAN内的命令关闭功能不生效;
· 如果VLAN内开启了DHCP Snooping基本功能(包括开启DHCP Snooping功能、配置信任端口和配置DHCP Snooping表项记录功能),只能使用对应的VLAN内命令关闭功能,使用全局命令关闭功能不生效。
(1) 进入系统视图。
system-view
(2) 全局开启DHCP Snooping功能。
dhcp snooping enable
缺省情况下,DHCP Snooping功能处于关闭状态。
(3) 进入接口视图。
interface interface-type interface-number
此接口为连接DHCP服务器的接口。
(4) 配置端口为信任端口。
dhcp snooping trust
缺省情况下,在开启DHCP Snooping功能后,设备的所有端口均为不信任端口。
(1) 进入系统视图。
system-view
(2) 在指定VLAN内开启DHCP Snooping功能。
dhcp snooping enable vlan vlan-id-list
缺省情况下,所有VLAN内的DHCP Snooping功能处于关闭状态。
(3) 进入VLAN视图。
vlan vlan-id
该VLAN为开启了DHCP Snooping功能的VLAN。
(4) 配置指定接口为VLAN下DHCP Snooping功能的信任端口。
dhcp snooping trust interface interface-type interface-number
缺省情况下,在开启DHCP Snooping功能后,VLAN内的所有接口均为不信任端口。
用户可以设置DHCP Snooping信任端口为VXLAN的AC链路或隧道接口。
当开启DHCP Snooping功能的VTEP设备收到DHCP请求报文时,将DHCP请求报文从信任的AC链路或隧道接口转发出去。
如果DHCP服务器位于本地站点内,则需要配置连接DHCP服务器的AC链路为信任接口;如果DHCP服务器位于远端站点内,则需要配置隧道接口为信任接口。
(1) 进入系统视图。
system-view
(2) 全局开启DHCP Snooping功能。
dhcp snooping enable
缺省情况下,DHCP Snooping功能处于关闭状态。
(3) 进入接口视图。
interface interface-type interface-number
(4) 进入以太网服务实例视图。
service-instance instance-id
(5) 配置AC链路为信任接口。
dhcp snooping trust
缺省情况下,在开启DHCP Snooping功能后,设备的所有端口均为不信任接口。
DHCP Snooping设备重启后,设备上记录的DHCP Snooping表项将丢失,DHCP Snooping与安全模块配合使用,则表项丢失会导致安全模块无法通过DHCP Snooping获取到相应的表项,进而导致DHCP客户端不能顺利通过安全检查、正常访问网络。
DHCP Snooping表项固化功能将DHCP Snooping表项保存到指定的文件中,DHCP Snooping设备重启后,自动根据该文件恢复DHCPDHCP Snooping表项,从而保证DHCP Snooping表项不会丢失。
执行undo dhcp snooping enable命令关闭DHCP Snooping功能后,设备会删除所有DHCP Snooping表项,文件中存储的DHCP Snooping表项不会被马上删除,需要在下一次DHCP Snooping表项保存文件操作时才能删除所有的DHCP Snooping表项。
(1) 进入系统视图。
system-view
(2) 指定存储DHCP Snooping表项的文件名称。
dhcp snooping binding database filename { filename | url url [ username username [ password { cipher | simple } string ] ] }
缺省情况下,未指定存储文件名称。
执行本命令后,会立即触发一次表项备份。
(3) (可选)将当前的DHCP Snooping表项保存到用户指定的文件中。
dhcp snooping binding database update now
本命令只用来触发一次DHCP Snooping表项的备份。
(4) (可选)配置刷新DHCP Snooping表项存储文件的延迟时间。
dhcp snooping binding database update interval interval
缺省情况下,若DHCP Snooping表项不变化,则不刷新存储文件;若DHCP Snooping表项发生变化,默认在300秒之后刷新存储文件。
通过本配置可以限制接口动态学习DHCP Snooping表项的最大数目,以防止接口学习到大量DHCP Snooping表项,占用过多的系统资源。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口动态学习DHCP Snooping表项的最大数目。
dhcp snooping max-learning-num max-number
缺省情况下,不限制接口动态学习DHCP Snooping表项的数目。
DHCP饿死攻击是指攻击者伪造chaddr字段各不相同的DHCP请求报文,向DHCP服务器申请大量的IP地址,导致DHCP服务器地址池中的地址耗尽,无法为合法的DHCP客户端分配IP地址,或导致DHCP服务器消耗过多的系统资源,无法处理正常业务。DHCP报文字段的相关内容请参见“三层技术-IP业务配置指导”中的“DHCP概述”。
如果封装DHCP请求报文的数据帧的源MAC地址各不相同,则通过mac-address max-mac-count命令限制端口可以学习到的MAC地址数,并配置学习到的MAC地址数达到最大值时,丢弃源MAC地址不在MAC地址表里的报文,能够避免攻击者申请过多的IP地址,在一定程度上缓解DHCP饿死攻击。此时,不存在DHCP饿死攻击的端口下的DHCP客户端可以正常获取IP地址,但存在DHCP饿死攻击的端口下的DHCP客户端仍可能无法获取IP地址。
如果封装DHCP请求报文的数据帧的MAC地址都相同,则通过mac-address max-mac-count命令无法防止DHCP饿死攻击。在这种情况下,需要开启DHCP Snooping的MAC地址检查功能。开启该功能后,DHCP Snooping设备检查接收到的DHCP请求报文中的chaddr字段和数据帧的源MAC地址字段是否一致。如果一致,则认为该报文合法,将其转发给DHCP服务器;如果不一致,则丢弃该报文。mac-address max-mac-count命令的详细介绍,请参见“二层技术-以太网交换”中的“MAC地址表”。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启DHCP Snooping的MAC地址检查功能。
dhcp snooping check mac-address
缺省情况下,DHCP Snooping的MAC地址检查功能处于关闭状态。
当DHCP客户端非正常下线时,不会向DHCP服务器发送报文释放地址租约,这会使DHCP服务器上无法获知DHCP客户端下线,导致地址租约浪费。开启本功能后,当设备上的某条ARP表项老化后,DHCP Snooping就认为该表项对应的DHCP客户端已经下线,则会删除对应的DHCP Snooping表项,并构造DHCP-RELEASE报文通知DHCP服务器删除对应的IP地址租约。
(1) 进入系统视图。
system-view
(2) 开启DHCP Snooping的用户下线探测功能。
(3) dhcp snooping client-detect
缺省情况下,DHCP Snooping的用户下线探测功能处于关闭状态。
DHCP Snooping日志可以方便管理员定位问题和解决问题。DHCP Snooping设备生成DHCP Snooping日志信息会交给信息中心模块处理,信息中心模块的配置将决定日志信息的发送规则和发送方向。关于信息中心的详细描述请参见“设备管理配置指导”中的“信息中心”。
当DHCP Snooping设备输出大量日志信息时,可能会降低设备性能。为了避免该情况的发生,用户可以关闭DHCP Snooping日志信息功能,使得DHCP Snooping设备不再输出日志信息。
(1) 进入系统视图。
system-view
(2) 开启DHCP Snooping日志信息功能。
dhcp snooping log enable
缺省情况下,DHCP Snooping日志信息功能处于关闭状态。
开启本功能后,当指定检查功能丢弃的报文数等于通过dhcp snooping alarm threshold命令指定的报文丢弃告警阈值时,设备就会生成相应的告警日志信息。告警后当前统计数据即被清除,设备开启新一轮统计,当DHCP Snooping丢弃的报文数再次达到阈值时,设备会继续输出告警日志。生成的日志信息将会交给信息中心模块处理,信息中心模块的配置将决定日志信息的发送规则和发送方向。关于信息中心的详细描述请参见“网络管理和监控配置指导”中的“信息中心”。
只有开启DHCP Snooping日志信息功能(通过dhcp snooping log enable命令),才能输出告警日志信息。
(1) 进入系统视图。
system-view
(2) 开启DHCP Snooping报文丢弃告警功能。
dhcp snooping alarm { giaddr | mac-address | request-message } enable
缺省情况下,DHCP Snooping报文丢弃告警功能处于关闭状态。
(3) 设置DHCP Snooping报文丢弃告警阈值。
dhcp snooping alarm { giaddr | mac-address | request-message } threshold threshold
缺省情况下,DHCP Snooping报文丢弃的告警阈值为100。
当管理员在设备或VLAN中开启DHCP Snooping功能后,该设备或整个VLAN内的所有接口也都开启了DHCP Snooping功能。为了灵活控制DHCP Snooping功能生效的接口范围,用户可以通过本功能关闭某个接口上的DHCP Snooping功能。
(1) 进入系统视图。
system-view
(2) 进入接口视图
interface interface-type interface-number
(3) 关闭接口的DHCP Snooping功能。
dhcp snooping disable
缺省情况下,当接口所在VLAN或设备上已经开启DHCP Snooping功能,接口的DHCP Snooping功能是开启的;当接口所在VLAN或设备上未开启DHCP Snooping功能,接口的DHCP Snooping功能是关闭的。
可在任意视图下执行以下命令:
· 显示信任端口信息。
display dhcp snooping trust
· 显示DHCP Snooping上Option 82的配置信息。
display dhcp snooping information { all | interface interface-type interface-number }
可在任意视图下执行以下命令:
· 显示DHCP Snooping表项信息。
display dhcp snooping binding [ ip ip-address [ vlan vlan-id ] ] [ verbose ]
· 显示DHCP Snooping表项备份信息。
display dhcp snooping binding database
请在用户视图下执行以下命令,清除DHCP Snooping表项信息。
reset dhcp snooping binding { all | ip ip-address [ vlan vlan-id ] }
可在任意视图下执行以下命令,显示DHCP Snooping设备上的DHCP报文统计信息。
display dhcp snooping packet statistics [ slot slot-number ]
请在用户视图下执行以下命令,清除DHCP Snooping设备上的DHCP报文统计信息。
reset dhcp snooping packet statistics [ slot slot-number ]
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!