【摘 要】:本文就在网络中使用DHCP服务时经常会遇到由于的用户指定IP地址,而造成的IP地址分配问题提出了解决办法,并给出了具体的实例。
一、引言
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包来自非信任接口,那么只有合法的可以通过。如果来自受信任端口,将可以直接通过。
四、应用实例
我校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:A1:D7: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:80:D5 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
--More--
接下来配置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地址冲突问题。
转载于:https://blog.51cto.com/mypan/535750