DHCPSNOOPING专题.docx
《DHCPSNOOPING专题.docx》由会员分享,可在线阅读,更多相关《DHCPSNOOPING专题.docx(14页珍藏版)》请在冰豆网上搜索。
DHCPSNOOPING专题
DHCPSNOOPING专题
1DHCP/DHCPSNOOPING概述
1.1DHCP
DHCP(动态主机配置协议)能够让网络上的主机从一个DHCP服务器上获得一个可以让其正常通信的IP地址以及相关的配置信息。
RFC2131详细的描述了DHCP。
DHCP采用UDP作为传输协议,主机发送消息到DHCP服务器的67号端口,服务器回消息给主机的68号端口。
DHCP的工作主要分为以下几步:
1.主机发送一个请求IP地址和其他配置参数的广播报文DHCPDiscover;
2.DHCP服务器回送一个包含有效IP地址及配置的单播报文DHCPOffer;
3.主机选择最先到达的DHCPOffer的那个服务器,并向它发送一个单播报文DHCPRequest,表示接受相关配置;
4.选中的DHCP服务器回送一个确认的单播报文DHCPAck。
至此,主机就可以利用从DHCP服务器获得的IP地址和相关配置进行通信。
DHCP服务器为主机分配的IP地址有三种形式:
1.管理员将一个IP地址分配给一个确定的主机;
2.随机的将地址永久性分配给主机;
3.随机将地址分配给主机使用一段时间。
我们常用的是第3种形式。
地址的有效使用时间段称为租用期。
租用期满之前,主机必须向服务器请求继续租用,服务器接受请求才能继续使用,否则无条件放弃。
由于默认情况下,路由器不会将收到的广播包从一个子网发送到另一个子网。
而当DHCP服务器和客户主机不在同一个子网时,充当客户主机默认网关的路由器必须将广播包发送到DHCP服务器所在的子网,这一功能就称为DHCP中继。
1.2DHCPSNOOPING
DHCPSnooping是一种通过建立和维护DHCPSnooping绑定表,过滤不可信任的DHCP信息,从而保证网络安全特性的技术。
DHCPSnooping就像是非信任的主机和DHCP服务器之间的防火墙。
通过DHCPSnooping来区分连接到末端客户或防火墙的非信任接口和连接到DHCP服务器或者其他交换机的受信任接口。
DHCPSnoopingBinding数据库包括如下信息:
MAC地址、IP地址、租约时间、binding类型、VLANID以及来自本地非信任端口的接口信息,但不包含通过受信任端口互相连接的接口信息。
DHCPSnooping的包过滤:
(1)当交换机收到来自非信任端口的DHCP包,而此接口属于某个启用了DHCPSnooping的VLAN,则交换机将比较此DHCP包的源MAC地址和其DHCP客户硬件地址,如果匹配则转发该包,否则将被丢弃掉。
(2)当交换机收到来自外网或者防火墙的DHCP服务器的DHCP响应包将被丢弃掉。
这些DHCP响应数据包包括DHCPOFFER、DHCPACK、DHCPNAK、DHCPLEASEQUERY。
(3)当交换机收到DHCPRELEASE或者DHCPDECLINE信息,其MAC地址包含在DHCPsnoopingbinding数据库中,但数据库中的接口信息与收包接口不匹配时,将被丢弃掉。
1.3DynamicARPInspection技术
DynamicARPinspection是一种验证网络中ARP包的安全特性,可以阻止、记录并丢弃非法IP和MAC地址绑定的ARP包。
DynamicARPinspection保证只有合法的ARP请求和响应可以传播。
交换机会完成如下工作,截取所有来自非信任端口ARP请求和响应,在更新ARP缓存或传播数据包之前验证所截取的数据包IP-MAC地址绑定是否合法,丢弃非法的ARP包。
DynamicARPinspection基于DHCPSnooping建立的包含合法IP-MAC地址绑定信息的数据库检验所截取ARP包的合法性。
如果ARP包来自非信任接口,那么只有合法的可以通过。
如果来自受信任端口,将可以直接通过。
ZXR10T160G/T64G/T40G采用DHCPsnooping功能防止在网络中设置虚假的DHCP服务器,这时候连接DHCP服务器的端口必须设置为信任端口。
另外,结合动态ARP检测技术可以防止非法的IP和MAC地址绑定,保证了DHCP服务器能够正常分配IP地址。
39系列D版本也支持DHCPSNOOPING功能。
2DHCP Snooping组网应用及配置
2.1DHCPSnooping业务中需求
目前启用DHCPSnooping的业务一般有以下几种需求:
1、防私设DHCPServer
在2层网络中,通过DHCPSnooping的trust口功能,过滤来自非trust口的DHCPServer的DHCP应答报文,起到防止私设的DHCP服务器作用。
2、防用户私设IP地址
防用户私设IP地址功能分别可以在2层和3层上实现:
2层实现即在2层环境中,通过DHCPSnooping功能建立DHCPSnooping数据库,对静态指定IP用户的MAC置丢弃位使其不能上网,在2层上就彻底切断了静态指定IP地址用户的数据流。
3层实现是指设备跨VLAN做DHCPRELAY,同时开启DHCPSnooping以及DynamicARPinspection防止用户设置静态IP地址。
在这种情况下,静态指定IP的用户2层业务是可以通的,只是在走3层路由时会在DHCPRELAY处被切断数据流。
目前在二层上通过对MAC的控制实现防止静态IP用户的功能是在D版本上实现的,现在使用的G系列的B版本只支持跨VLAN的防用户私设IP地址,只能在3层实现。
39的2.6.0.2.D已经把2层上防静态指定IP的用户的功能合了进来,可以支持两种环境下的防静态用户。
具体配置参见下面的应用实例。
2.2应用实例:
2.2.1DHCPSNOOPING(防私设服务器)
图1、DHCPSNOOPING防用户私设服务器
图一的是一个纯2层网络,用户和DHCPSERVER都在同一VLAN10,在T64G/39上通过配置DHCPSNOOPING TRUST口,配置只有来自Fei_5/1口的DHCPSERVER的报文可以通过,杜绝用户私设的DHCPSERVER对其他用户造成的影响。
具体配置如下:
T64G和39配置命令相同,见下:
ZXR10(config)#vlan10
ZXR10(config)#interfacevlan10
ZXR10(config-if)#ipaddress10.10.2.1255.255.255.0
ZXR10(config-if)#ipdhcpsnoopingtrustfei_5/1//配置DHCPserver的接口为信任接口,必配
ZXR10(config)#interfacefei_5/1
ZXR10(config-if)#switchportaccessvlan10
ZXR10(config)#interfacefei_5/2
ZXR10(config)#switchportaccessvlan10
ZXR10(config)#ipdhcpsnoopingenable//使能DHCPSNOOPING功能,必配
ZXR10(config)#ipdhcpsnoopingvlan10//vlan使能DHCPsnooping功能,必配
2.2.2DHCPSNOOPING(防用户私设IP地址)
(1)在三层切断私设IP地址用户的流
图2、DHCPSNOOPING防用户私设IP地址
图2的环境中,39/T64G做DHCPRelay,同时开启DHCPSnooping防止用户私设IP地址。
目前39只有V2.0.6.2.C.11p1支持该功能。
T64G/40G/160G的B版本可以支持。
但是各个版本中命令有所修改,下面的配置以B16版本为例。
如果要使用其他版本,请查看相关的版本说明进行配置。
1、使用39的配置:
环境:
Server的IP地址:
202.111.142.61
用户网关:
125.41.181.126
上联口的互联IP:
218.29.221.70/25
ipdhcprelayenable//使能DHCPRelay功能,必配
ipdhcprelayinformationpolicykeep
//配置不修改DHCPServer信息,用户获取的DHCPServer地址为:
202.111.142.61,可选配置。
如启用安全转发模式,则不论是否配置和此项,用获取的DHCPServer的地址都会被修改为
relay的地址:
125.41.181.126//
!
ipdhcpsnoopingenable //使能DHCPSNOOPING功能
!
vlan1
!
vlan10
iparpinspection //使能VLAN10的DAI功能
ipdhcpsnooping //使能VLAN10的DHCPSNOOPING功能
!
vlan20
iparpinspection //使能VLAN20的DAI功能
ipdhcpsnooping //使能VLAN20的DHCPSNOOPIN功能
!
!
interfacevlan20
ipaddress125.41.181.126255.255.255.192 //配置vlan20的IP地址,作为用户的网关地址
user-interface //配置为用户接口
ipdhcprelayagent125.41.181.126
//配置DHCPRLAYAGENT的地址,使用该接口的IP地址//
ipdhcprelayserver202.111.142.61
//指定DHCPSERVER的地址//
!
interfacevlan10
ipaddress218.29.221.70255.255.255.128 //互联IP地址,上联设备地址218.29.221.1
!
interfacefei_1/1//接PC1,只需要加入到vlan20中即可
negotiationauto
switchportaccessvlan20
switchportqinqnormal
!
interfacefei_1/2 //接PC2,只需要加入到vlan20中即可
negotiationauto
switchportaccessvlan20
switchportqinqnormal
!
interfacefei_1/24 //上联的接口,要配置为ARP和DHCPSNOOPING的TRUST口
negotiationauto
iparpinspectiontrust
ipdhcpsnoopingtrust
switchportaccessvlan10
switchportqinqnormal
!
iproute0.0.0.00.0.0.0218.29.221.1
!
2、使用T64G的配置:
环境:
Server的IP地址:
202.111.142.61
用户网关:
125.41.181.126
上联口的互联IP:
218.29.221.70/25
ipdhcprelayenable//使能DHCPRelay功能,必配
ipdhcprelayinformationpolicykeep
//配置不修改DHCPServer信息,用户获取的DHCPServer地址为:
202.111.142.61,可选配置。
如启用安全转发模式,则不论是否配置和此项,用获取的DHCPServer的地址都会被修改为
relay的地址:
125.41.181.126//
!
ipdhcpsnoopingenable //使能DHCPSNOOPING功能
!
vlan1
!
vlan10
iparpinspection //使能VLAN10的DAI功能
ipdhcpsnooping //使能VLAN10的DHCPSNOOPING功能
!
vlan20
iparpinspection //使能VLAN20的DAI功能
ipdhcpsnooping //使能VLAN20的DHCPSNOOPIN功能
!
!
interfacevlan20
ipaddress125.41.181.126255.255.255.192 //配置vlan20的IP地址,作为用户的网关地址
user-interface //配置为用户接口
ipdhcprelayagent125.41.181.126
//配置DHCPRLAYAGENT的地址,使用该接口的IP地址//
ipdhcprelayserver202.111.142.61
//指定DHCPSERVER的地址//
!
interfacevlan10
ipaddress218.29.221.70255.255.255.128 //互联IP地址,上联设备地址218.29.221.1
!
interfacefei_1/1
protocol-protectmodedhcpenable//在T64G上需要打开DHCP报文保护,必配
negotiationauto
switchportaccessvlan20
switchportqinqnormal
!
interfacefei_1/2
protocol-protectmodedhcpenable//在T64G上需要打开DHCP报文保护,必配
negotiationauto
switchportaccessvlan20
switchportqinqnormal
!
interfacefei_1/24 //上联的接口,要配置为ARP和DHCPSNOOPING的TRUST口
protocol-protectmodedhcpenable //在T64G上需要打开DHCP报文保护,必配
negotiationauto
iparpinspectiontrust
ipdhcpsnoopingtrust
switchportaccessvlan10
switchportqinqnormal
!
iproute0.0.0.00.0.0.0218.29.221.1
注意:
可以看到上面的39的配置和G系列的配置主要的区别在于使用G时,必须在与SERVER相连的物理接口以及与用户相连的物理接口上启用端口DHCP报文保护。
这是因为39上默认DHCP报文保护是打开的。
以上配置均为标准模式DHCPRELAY的配置,在此种配置下39/G只学习在DHCP数据库中记录的ARP,即DHCPSERVER分配的用户的ARP,对于用户私设的IP地址,在DHCP数据库中没有记录,所以设备不会学习这些静态用户的ARP,起到防静态用户功能。
此时ARP表的老化根据ARP老化时间(默认5分钟)进行,过期后,会重新根据DHCP数据库判断是否合法用户,再次学习用户ARP。
如果设备的ARP学习效率比较低,可能会有一段时间用户网络中断现象,出现这种情况的话,可以配置成安全模式DHCPRELAY解决问题。
安全模式DHCPRELAY的配置下,用户PC获取的DHCPSERVER地址会被修改为RELAY的接口地址。
设定的ARP老化时间不生效,ARP的老化完全根据DHCP数据库中的用户租约进行,由于没有ARP的重新判断学习,只要用户正常续约,就不会出现业务中断问题。
但是需要注意,这种情况下用户的DHCPSERVER地址会被修改为我们设备的接口地址,需要根据网络要求选择合适的模式。
安全模式的配置需要在原配置的基础上增加以下命令:
进入到VLAN接口模式
interfacevlan20
ipdhcprelayforward-modesecurity
在全局配置模式下:
ipdhcprelayupdatearp
注意:
无论采用何种模式,在这种环境下,PC1和PC2在同一个VLAN中,它们之间的通讯是不通过三层的,PC1和PC2只要不做端口隔离,私设IP地址他们之间也是可以通讯的。
(2)在二层切断私设IP地址用户的流
图三、2层防用户私设IP地址
在图三的环境中,39/G设备开二层业务,通过开启DHCPSNOOPING的2层防静态用户功能,彻底的在二层切断静态指定IP地址的用户数据流。
现在只有39的2.6.0.2.C11p01支持
配置(39系列):
ipdhcpsnoopingenable
!
vlan20
iparpinspection
ipdhcpsnooping
!
interfacefei_1/1
negotiationauto
switchportaccessvlan20
switchportqinqnormal
!
interfacefei_1/2
negotiationauto
switchportaccessvlan20
switchportqinqnormal
!
interfacefei_1/24 //上联的接口,要配置为ARP和DHCPSNOOPING的TRUST口
negotiationauto
iparpinspectiontrust
ipdhcpsnoopingtrust
switchportaccessvlan20
switchportqinqnormal
nas
iptvcontroldisable
dhcp-controlvlan2//对静态指定IP用户的MAC置丢弃位使其不能上网,必配
!
在这种情况下,PC1和PC2的2层通讯也必须通过动态获取的IP地址才能够通讯,使用私设IP地址不能通讯。
更彻底的防止静态IP用户。
2.2.3C系列交换机的DHCPSNOOPING配置介绍
C系列交换机的DHCPSNOOPING功能与39/G系列的实现有所不同,它是通过侦听来自DHCPSERVER的ACK报文,提取其中内容写入ARP表,其ARP老化时间设定为用户租约,用户每次续约,ARP表进行刷新。
不学习静态用户的IP地址,从而达到防静态用户的功能。
C的DHCPSNOOPING也只能支持跨VLAN做DHCPRELAY的方式,其配置非常简单,下面举例说明:
C系列交换机开DHCPSNOOPING功能建议使用ROS9406或之后的版本。
环境:
Server的IP地址:
202.111.142.61
用户网关:
125.41.181.126
上联口的互联IP:
218.29.221.70/25
图四
配置:
1:
systemsetconsolelevelerror
2:
systemsetsysloglevelerrorbuffer-size50server127.0.0.1
!
3:
hrtdisableportset.2.16
//上联口需要禁用HRT功能,否则不能侦听到用户续约时DHCPSERVER发回的保文,A
RP不能正常刷新,用户会在租约到期时掉线//
4P:
hrtenableslotall //其余接口为了防病毒,可以打开HRT功能
!
5P:
portsetall-portsduplexfullspeed100mbps
!
6:
vlancreatetouserport-basedid2//建立用户VLAN2
7:
vlanaddportset.1.(1-16)totouser//把端口加入到用户的VLAN中
!
8:
interfacecreateipuplkaddress-netmask218.29.221.70/25portet.2.16up//建立上联IP接口
9:
interfacecreateiptouseraddress-netmask125.41.181.126/26vlantouser
//建立面向用户的IP接口//
10:
interfaceaddiptouseraddress-netmask10.153.95.126/26
!
11:
ipaddroutedefaultgateway218.29.221.1
12:
iphelper-addressinterfacetouser202.111.142.61snoop-l2-l3-info
//配置DHCPSERVER地址,同时指定在interfacetouser上启用DHCPSNOOPING功能,防静态用户//
!
2.2.4调试与维护
有一些常见的DHCPSNOOPING相关调试命令来帮助定位故障,排除错误。
其中可能用到的命令包括show命令和debug命令。
通过show命令可以查看当前DHCP配置信息。
显示DHCPsnooping的全局配置
命令格式
命令模式
命令功能
showipdhcpsnoopingconfigure
除用户模式外所有模式
显示DHCPsnooping的全局配置
显示DHCPsnooping的vlan使能配置
命令格式
命令模式
命令功能
showipdhcpsnoopingvlan[]
除用户模式外所有模式
显示DHCPsnooping的vlan使能配置
显示DHCPsnooping的信任接口配置
命令格式
命令模式
命令功能
showipdhcpsnoopingtrust
除用户模式外所有模式
显示DHCPsnooping的信任接口配置
显示生成的bind数据库
命令格式
命令模式
命令功能
showipdhcpsnoopingdatabase
除用户模式外所有模式
显示生成的bind数据库
该命令很有用,通过该命令查看当前绑定的用户,以及用户的租约,在客户端进行
ipconfig/renew后通过该命令可以看到用户的租约是否刷新。
如果没有正常刷新则有问
题。
显示DAI的vlan使能配置
命令格式
命令模式
命令功能
showiparpinspectionvlan[]
除用户模式外所有模式
显示DAI的vlan使能配置
通过debugipdhcp命令可以跟踪DHCPServer/Relay进程的收发包情况和处理情况。
C的维护调试命令:
在C系列交换机要判断DHCPSNOOPING功能是否正常可以通过arpshowalldetail命令观察用户的A