【摘  要】:本文就在网络中使用DHCP服务时经常会遇到由于的用户指定IP地址,而造成的IP地址分配问题提出了解决办法,并给出了具体的实例。

一、引言

DHCP(动态主机配置协议)是一种简化主机IP地址配置管理的TCP/IP标准。该标准为DHCP服务器的使用提供了一种有效的方法:即管理网络中客户机IP地址的动态分配以及启用网络上DHCP客户机的其它相关配置信息。

在基于TCPIP协议的网络中,每台计算机都必须有唯一的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 SnoopingVLAN中,如果交换机收到来自非信任端口的DHCP包,交换机将对目的MAC地址和DHCP客户端的地址进行对比,如果符合则该包可以通过,否则将被丢弃掉。

在下述情况中,DHCP包将同样被丢弃:

l          来自外网或者防火墙的DHCP服务器,包括DHCPOFFERDHCPACKDHCPNAKDHCPLEASEQUERY

l          来自非信任端口,且目的MAC地址和DHCP客户端的硬件地址不匹配。

l          交换机收到DHCPRELEASE或者DHCPDECLINE的广播信息,其MAC地址包含在DHCP snooping binding 数据库中,但与数据库中的接口信息不匹配

l          通过DHCP中继代理转发的包不包括在内

三、Dynamic ARP Inspection技术

Dynamic ARP inspection是一种验证网络中ARP包的安全特性,可以阻止、记录并丢弃非法IPMAC地址绑定的ARP包。

Dynamic ARP inspection保证只有合法的ARP请求和响应可以传播。交换机会完成如下工作,截取所有来自非信任端口ARP请求和响应,在更新ARP缓存或传播数据包之前验证所截取的数据包IP-MAC地址绑定是否合法,丢弃非法的ARP包。

前面提到,DHCP Snooping会建立一个包含合法IP-MAC地址绑定信息的数据库,Dynamic ARP inspection基于该数据库检验所截取ARP包的合法性。如果ARP包来自非信任接口,那么只有合法的可以通过。如果来自受信任端口,将可以直接通过。

四、应用实例

我校1#学生公寓,PC拥有数量大约1000台。采用DHCP分配IP地址,拥有4C类地址,实际可用地址数约1000个。由于楼内经常存在私开的DHCP服务器,导致大量主机无法分配到合法IP地址;另外,由于有相当数量的主机指定IP地址,因此造成了与DHCP分配的IP地址冲突。以上两方面,均造成了该公寓楼大量主机无法正常访问网络。

经过一段时间的分析、实验,我们决定对该公寓楼部署DHCP SnoopingDynamic ARP Inspection两项技术,以保证网络的正常运行。

该公寓网络设备使用情况如下,接入层为××台Cisco 2950交换机上联至堆叠的4Cisco 3750,再通过光纤上联至汇聚层的Cisco 3750交换机。同时汇聚层的Cisco 3750交换机还兼做DHCP服务器。

部署过程

首先按如下过程配置DHCP Snooping

configure terminal

ip dhcp snooping  在全局模式下启用DHCP Snooping

ip dhcp snooping vlan 103 VLAN 103中启用DHCP Snooping

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.

interface GigabitEthernet1/0/28进入交换机的第28

ip dhcp snooping trust  将第28口设置为受信任端口

ip dhcp snooping limit rate 500 设置每秒钟处理DHCP数据包上限

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

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

configure terminal 进入全局配置模式

ip arp inspection vlan 103 VLAN 103上启用Dynamic ARP Inspection

interface GigabitEthernet1/0/28 进入第28端口

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.

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-rangeDisplays 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地址冲突,进而影响其他用户的使用。我们经过实际测试,给出了上述解决方案,本方法不仅适合于Cisco3750交换机,也适用于Cisco65系列交换机。

DHCP防指定IP地址的方法在我校已经得到了成功的应用,经过实践检验,我们认为这是一个非常实用的功能。在系统设置好以后,网络中的用户只有设置为自动获取IP地址才能上网,否则将无法上网。从而解决了在使用DHCP的网络中,用户私自指定IP地址而带来的IP地址冲突问题。

 

本文转载自:http://cstnet2005.cstnet.cn/lunwenji/dhcp.html