网络治理员:现在用户真是不省心,自己改个IP地址;私接AP、忘关DHCP,还有的下个小黑客程序,就想在你内网里试试。单靠交换机能管吗?
测试工程师:能!很多交换机上的小功能都可帮大忙。
测试实况:
IP与MAC绑定
思科的Catalyst 3560交换机支持DHCP Snooping功能,交换机会监听DHCP的过程,交换机会生成一个IP和MAC地址对应表。思科的交换机更进一步的支持IP source guard和Dynamic ARP Inspection功能,这两个功能任启一个都可以自动的根据DHCP Snooping监听获得的IP和MAC地址对应表,进行绑定,防止私自更改地址。
Dynamic ARP Inspection功能还有一个好处是可以防范在2层网络的中间人攻击(见图4)。
思科在DHCP Snooping上还做了一些非常有益的扩展功能,比如Catalyst 3560交换机可以限制端口通过的DHCP数据包的速率,粒度是pps,这样可以防止对DHCP服务器的进行地址请求的DoS攻击。另外Catalyst 3560交换机还支持DHCP Tracker,在DHCP请求中插入交换机端口的ID,从而限制每个端口申请的IP地址数目,防止黑客程序对DHCP服务器进行目的为耗尽IP地址池的攻击。华硕虽然不能调整速率,但是也会限制DHCP请求的数量。
DHCP(动态主机配置协议)是一种简化主机IP地址配置治理的TCP/IP标准。该标准为DHCP服务器的使用提供了一种有效的方法:即治理网络中客户机IP地址的动态分配以及启用网络上DHCP客户机的其它相关配置信息。
在基于TCP/IP协议的网络中,每台计算机都必须有唯一的IP地址才能访问网络上的资源,网络中计算机之间的通信是通过IP地址来实现的,并且通过IP地址和子网掩码来标识主计算机及其所连接的子网。在局域网中假如计算机的数量比较少,当然可以手动设置其IP地址,但是假如在计算机的数量较多并且划分了多个子网的情况下,为计算机配置IP地址所涉及的治理员工作量和复杂性就会相当繁重,而且轻易出错,如在实际使用过程中,我们经常会碰到因IP地址冲突、网关或DNS服务器地址的设置错误导致无法访问网络、机器经常变动位置而不得不频繁地更换IP地址等问题。
DHCP则很好地解决了上述的问题,通过在网络上安装和配置DHCP服务器,启用了DHCP的客户机可在每次启动并加入网络时自动地获得其上网所需的IP地址和相关的配置参数。从而减少了配置治理,提供了安全而可靠的配置。
配置DHCP服务的服务器可以为每一个网络客户提供一个IP地址、子网掩码、缺省网关,以及DNS服务器的地址。DHCP避免了因手工设置IP地址及子网掩码所产生的错误,也避免了把一个IP地址分配给多台主机所造成的地址冲突。降低了IP地址治理员的设置负担,使用DHCP服务器可以大大地缩短配置网络中主机所花费的时间。
但是,随着DHCP服务的广泛应用,也产生了一些问题。首先,DHCP服务答应在一个子网内存在多台DHCP服务器,这就意味着治理员无法保证客户端只能从治理员所设置的DHCP服务器中获取合法的IP地址,而不从一些用户自建的非法DHCP服务器中取得IP地址;其次,在部署DHCP服务的子网中,指定了合法的IP地址、掩码和网关的主机也可以正常地访问网络,而DHCP服务器却仍然会有可能将该地址分配给其他主机,这样就会造成地址冲突,影响IP地址的正常分配。
针对上述问题,本文给出了一个解决方案,即通过使用Cisco提供的DHCP Snooping技术和Dynamic ARP Inspection技术,可以有效地防止以上问题的发生。
这里首先对两种技术做一个简要的介绍,然后将给出一个应用实例加以说明。
二、DHCP Snooping技术DHCP Snooping是一种通过建立DHCP Snooping Binding数据库,过滤非信任的DHCP消息,从而保证网络安全的特性。DHCP Snooping就像是非信任的主机和DHCP服务器之间的防火墙。通过DHCP Snooping来区分连接到末端客户的非信任接口和连接到DHCP服务器或者其他交换机的受信任接口。
DHCP Snooping Binding数据库包括如下信息:MAC地址、IP地址、租约时间、binding类型、VLAN ID以及来自本地非信任端口的接口信息,但不包含通过受信任端口互相连接的接口信息。在启用了DHCP Snooping的VLAN中,假如交换机收到来自非信任端口的DHCP包,交换机将对目的MAC地址和DHCP客户端的地址进行对比,假如符合则该包可以通过,否则将被丢弃掉。
在下述情况中,DHCP包将同样被丢弃:
l 来自外网或者防火墙的DHCP服务器,包括DHCPOFFER、DHCPACK、DHCPNAK、DHCPLEASEQUERY.
l 来自非信任端口,且目的MAC地址和DHCP客户端的硬件地址不匹配。
l 交换机收到DHCPRELEASE或者DHCPDECLINE的广播信息,其MAC地址包含在DHCP snooping binding 数据库中,但与数据库中的接口信息不匹配
l 通过DHCP中继代理转发的包不包括在内
三、Dynamic ARP Inspection技术Dynamic ARP inspection是一种验证网络中ARP包的安全特性,可以阻止、记录并丢弃非法IP和MAC地址绑定的ARP包。
Dynamic ARP inspection保证只有合法的ARP请求和响应可以传播。交换机会完成如下工作,截取所有来自非信任端口ARP请求和响应,在更新ARP缓存或传播数据包之前验证所截取的数据包IP-MAC地址绑定是否合法,丢弃非法的ARP包。
前面提到,DHCP Snooping会建立一个包含合法IP-MAC地址绑定信息的数据库,Dynamic ARP inspection基于该数据库检验所截取ARP包的合法性。假如ARP包来自非信任接口,那么只有合法的可以通过。假如来自受信任端口,将可以直接通过。
QQread.com
推出各大专业服务器评测 Linux服务器的安全性能
SUN服务器
HP服务器
DELL服务器
IBM服务器
联想服务器
浪潮服务器
曙光服务器
同方服务器
华硕服务器
宝德服务器
四、应用实例
我校1#学生公寓,PC拥有数量大约1000台。采用DHCP分配IP地址,拥有4个C类地址,实际可用地址数约1000个。由于楼内经常存在私开的DHCP服务器,导致大量主机无法分配到合法IP地址;另外,由于有相当数量的主机指定IP地址,因此造成了与DHCP分配的IP地址冲突。以上两方面,均造成了该公寓楼大量主机无法正常访问网络。
经过一段时间的分析、实验,我们决定对该公寓楼部署DHCP Snooping和Dynamic ARP Inspection两项技术,以保证网络的正常运行。
该公寓网络设备使用情况如下,接入层为××台Cisco 2950交换机上联至堆叠的4台Cisco 3750,再通过光纤上联至汇聚层的Cisco 3750交换机。同时汇聚层的Cisco 3750交换机还兼做DHCP服务器。
部署过程
首先按如下过程配置DHCP Snooping
1 configure terminal
2 ip dhcp snooping 在全局模式下启用DHCP Snooping
3 ip dhcp snooping vlan 103 在VLAN 103中启用DHCP Snooping
4 ip dhcp snooping information option Enable the switch to insert and remove DHCP relay information(option-82 field) in forwarded DHCP request messages to the DHCP server. The default is enabled.
5 interface GigabitEthernet1/0/28,进入交换机的第28口
6 ip dhcp snooping trust 将第28口设置为受信任端口
7 ip dhcp snooping limit rate 500 设置每秒钟处理DHCP数据包上限
9 end 退出
完成配置后,可用如下命令观察DHCP Snooping运行状况:
show ip dhcp snooping
得到如下信息:
Switch DHCP snooping is enabled
DHCP snooping is configured on following VLANs:
103
Insertion of option 82 is enabled
Verification of hwaddr field is enabled
Interface Trusted Rate limit (pps)
------------------------ ------- ----------------
GigabitEthernet1/0/22 yes unlimited
GigabitEthernet1/0/24 yes unlimited
GigabitEthernet1/0/27 yes unlimited
GigabitEthernet1/0/28 no 500
show ip dhcp snooping binding,得到如下信息:
MacAddress IpAddress Lease(sec) Type VLAN Interface
------------------ --------------- ---------- ------------- ---- -----------------------------------------------------------
00:11:09:11:51:16 210.77.5.201 3209 dhcp-snooping 103 GigabitEth ernet1/0/28
00:50:8D:63:5A:05 210.77.6.134 2466 dhcp-snooping 103 GigabitEthernet1/0/28
00:E0:4C:A17:80 210.77.4.26 3070 dhcp-snooping 103 GigabitEthernet1/0/28
00:0F:EA:A8:BC:22 210.77.5.198 1887 dhcp-snooping 103 GigabitEthernet1/0/28
10:E0:8C:50:805 210.77.5.95 3034 dhcp-snooping 103 GigabitEthernet1/0/28
00:03:0D:0E:9A:A5 210.77.6.230 3144 dhcp-snooping 103 GigabitEthernet1/0/28
00:50:8D:6C:08:9F 210.77.4.17 3012 dhcp-snooping 103 GigabitEthernet1/0/28
00:E0:50:00:0B:54 210.77.6.18 3109 dhcp-snooping 103 GigabitEthernet1/0/28
00:0F:EA:13:40:54 210.77.7.7 2631 dhcp-snooping 103 GigabitEthernet1/0/28
00:E0:4C:45:21:E9 210.77.7.77 2687 dhcp-snooping 103 GigabitEthernet1/0/28
QQread.com
推出各大专业服务器评测 Linux服务器的安全性能
SUN服务器
HP服务器
DELL服务器
IBM服务器
联想服务器
浪潮服务器
曙光服务器
同方服务器
华硕服务器
宝德服务器
接下来配置Dynamic ARP Inspection
1 show cdp neighbors 检查交换机之间的连接情况
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone
Device ID Local Intrfce Holdtme Capability Platform Port ID
ap Gig 1/0/23 149 T AIR-AP1230Fas 0
hall-3750 Gig 1/0/27 135 S I WS-C3750-2Gig 1/0/1
1#west-3750 Gig 1/0/28 173 S I WS-C3750G-Gig 1/0/25
2 configure terminal 进入全局配置模式
3 ip arp inspection vlan 103 在VLAN 103上启用Dynamic ARP Inspection
4 interface GigabitEthernet1/0/28 进入第28端口
5 ip arp inspection trust 将端口设置为受信任端口
The switch does not check ARP packets that it receives from the other switch on the trusted interface. It simply forwards the packets.
6 end
配置完成后可以用如下命令观察Dynamic ARP Inspection的运行情况
show arp Access-list [acl-name] Displays detailed information about ARP ACLs.
show ip arp inspection interfaces [interface-id] Displays the trust state and the rate limit of ARP packets for the specified interface or all interfaces.
Interface Trust State Rate (pps) Burst Interval
--------------- ----------- ---------- --------------
Gi1/0/21 Untrusted 15 1
Gi1/0/22 Trusted None N/A
Gi1/0/23 Untrusted 15 1
Gi1/0/24 Trusted None N/A
Gi1/0/25 Untrusted 15 1
Gi1/0/26 Untrusted 15 1
Gi1/0/27 Trusted None N/A
Gi1/0/28 Untrusted None N/A
show ip arp inspection vlan vlan-range, Displays the configuration and the operating state of dynamic ARP inspection for all VLANs configured on the switch, for a specified VLAN, or for a range of VLANs.
yql-2#-3750#sh ip arp inspection vlan 103
Source Mac Validation : Disabled
Destination Mac Validation : Disabled
IP Address Validation : Disabled
Vlan Configuration Operation ACL Match Static ACL
---- ------------- --------- --------- ----------
103 Enabled Active
Vlan ACL Logging DHCP Logging
---- ----------- ------------
103 Deny Deny
注重事项:
DHCP Snooping
l 在配置DHCP Snooping以前,必须确认该设备作为DHCP服务器。
l 建议对非信任端口的上限不要超过100。对于被设置为受信任的trunk端口,需要适当增加
Dynamic ARP Inspection
必须限制trunk端口处理ARP包的数量
五、一些问题的讨论
在实际使用过程中我们发现,在配置完上述命令后,Cisco 3750交换机会在运行一段时间以后变得缓慢,CPU利用率达到100%,性能严重下降。经过分析我们发现,在开始应用Dynamic ARP Inspection时,交换机会记录大量的数据包,当端口通过的数据包过多时,交换机会认为遭受DoS攻击,从而将端口自动errdisable,造成通信中断。为了解决这个问题,我们需要加入命令errdisable recovery cause arp-inspection。
由于Cisco 3750交换机能力有限,因此我们建议在使用Cisco 3750交换机配置上述命令时应逐级增大port limit rate。
六、小结
DHCP服务在网络中的广泛应用,极大地减轻了网络治理员的负担,方便了用户使用网络。但是由于有些用户私自指定IP地址,造成了IP地址自动分配时引起的IP地址冲突,进而影响其他用户的使用。我们经过实际测试,给出了上述解决方案,本方法不仅适合于Cisco的3750交换机,也适用于Cisco的65系列交换机。
DHCP防指定IP地址的方法在我校已经得到了成功的应用,经过实践检验,我们认为这是一个非常实用的功能。在系统设置好以后,网络中的用户只有设置为自动获取IP地址才能上网,否则将无法上网。从而解决了在使用DHCP的网络中,用户私自指定IP地址而带来的IP地址冲突问题。
假如公司内网由于用户自行安装了Windows Server版本的操作系统而小心启用了DHCP服务,或其他因素在内网中出现了非授权的DHCP服务器,会给网络造成什么样的影响呢?
DHCP server可以自动为用户设置网络IP地址、掩码、网关、DNS、WINS 等网络参数,简化了用户网络设置,提高了治理效率。但是,此时假如服务器和客户端没有认证机制,网络上存在的非法的DHCP服务器将会给部分主机的地址分配、网关及DNS参数照成混乱,导致主机无法连接到外部网络。出现这种情况,如何解决这些问题呢?
作为客户端计算机来说,可以尝试使用ipconfig /release释放获得的网络参数后,然后用ipconfig /renew重新尝试获取正确的DHCP服务器配置服务,但这种方法很被动,往往要十几次甚至几十次才偶然有可能成功一次,不能从根本解决问题。
另外一个解决办法,在windows系统组建的网络中,假如非法DHCP服务器也是用Windows系统建立的话我们可以通过“域”的方式对非法DHCP服务器进行过滤。将合法的DHCP服务器添加到活动目录(Active Directory)中,通过这种认证方式就可以有效的制止非法DHCP服务器了。原理就是没有加入域中的DHCP Server在相应请求前,会向网络中的其他DHCP Server发送DHCPINFORM查询包,假如其他DHCP Server有响应,那么这个DHCP Server就不能对客户的要求作相应,也就是说网络中加入域的DHCP服务器的优先级比没有加入域的DHCP服务器要高。这样当合法DHCP存在时非法的就不起任何作用了。
授权合法DHCP的过程如下:
第一步:开始->程序->治理工具->DHCP
第二步:选择DHCP root, 用鼠标右键单击,然后浏览选择需要认证的服务器。
第三步:点“添加”按钮, 输入要认证的DHCP服务器IP地址, 完成授权操作。
但是该方法只适用于非法DHCP服务器是windows系统,需要用到域和活动目录,配置较复杂,另外对于非Windows的操作系统,就显得力不从心了。
还有更好的方法,就是利用交换机的DHCP监听,通过建立和维护DHCP Snooping绑定表过滤不可信任的DHCP信息,也就是过滤掉非法DHCP服务器向网络上发送的数据包。首先定义交换机上的信任端口和不信任端口,将DHCP服务器所连接的端口定义为信任端口,其它连接到普通客户端的端口全部定义为不信任端口,对于不信任端口的DHCP报文进行截获和嗅探,drop掉来自这些端口的非正常 DHCP 报文,从而达到过滤非法DHCP服务器的目的。
基本配置示例:
switch(config)#ip dhcp snooping vlan 100,200
/* 定义哪些 VLAN 启用 DHCP 嗅探
switch(config)#ip dhcp snooping
switch(config)#int fa4/10 /* dhcp服务器所在端口
switch(config-if)#ip dhcp snooping trust
switch(config)#int range fa3/1 - 48 /* 其它端口
switch(config-if)#no ip dhcp snooping trust (Default)
switch(config-if)#ip dhcp snooping limit rate 10 (pps)
/* 一定程度上防止 DHCP 拒绝服 /* 务攻击