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

一、引言

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 地址冲突问题。
×××研究生院 史剑雄 罗铁坚 吴昊