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包来自非信任接口,那么只有合法的可以通过。如果来自受信任端口,将可以直接通过。

 

Dynamic ARP Inspection

Dynamic ARP Inspection思科 Dynamic ARP Inspection (DAI)在交换机上提供 IP地址和MAC地址的绑定, 并 动态建立绑定关系

DAI 以 DHCP Snooping绑定表为基础,对于没有使用DHCP的服务器个别机器可以采用静态添加ARP access-list实现。

DAI配置针对VLAN,对于同一VLAN内的接口可以开启DAI也可以关闭。通过DAI可以控制某个端口的ARP请求报文数量。通过这些技术可以防范“中间人”***。 

3.3配置示例 

IOS 全局命令: 

ip dhcp snooping vlan 100,200 

no ip dhcp snooping information option 

ip dhcp snooping 

ip arp inspection vlan 100,200 /* 定义对哪些 VLAN 进行 ARP 报文检测 

ip arp inspection log-buffer entries 1024 

ip arp inspection log-buffer logs 1024 interval 10 

IOS 接口命令: 

ip dhcp snooping trust 

ip arp inspection trust /* 定义哪些接口是信任接口,通常是网络设备接口, TRUNK 接口等 

ip arp inspection limit rate 15 (pps) /* 定义接口每秒 ARP 报文数量 

对于没有使用 DHCP 设备可以采用下面办法: 

arp access-list static-arp 

permit ip host 10.66.227.5 mac host 0009.6b88.d387 

ip arp inspection filter static-arp vlan 201 

  3.3配置DAI后的效果: 

• 在配置 DAI技术的接口上,用户端不能采用指定地址地址将接入网络。 

• 由于 DAI检查 DHCP snooping绑定表中的IP和MAC对应关系,无法实施中间人***,***工具失效。下表为实施中间人***是交换机的警告: 

3w0d: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Req) on Fa5/16, vlan 1.([000b.db1d.6ccd/192.168.1.200/0000.0000.0000/192.168.1.2 

• 由于对 ARP请求报文做了速度限制,客户端无法进行认为或者病毒进行的IP扫描、探测等行为,如果发生这些行为,交换机马上报警或直接切断扫描机器。如下表所示: 

3w0d: %SW_DAI-4-PACKET_RATE_EXCEEDED: 16 packets received in 184 milliseconds on Fa5/30. ******报警 

3w0d: %PM-4-ERR_DISABLE: arp-inspection error detected on Fa5/30, putting Fa5/ 30 in err-disable state ******切断端口 

I49-4500-1#.....sh int f.5/30 

FastEthernet5/30 is down, line protocol is down (err-disabled) 

Hardware is Fast Ethernet Port , address is 0002.b90e .3f 4d (bia 0002.b90e .3f 4d) 

MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec, 

reliability 255/255, txload 1/255, rxload 1/255 

I49-4500-1#...... 

• 用户获取 IP地址后,用户不能修改IP或MAC,如果用户同时修改IP和MAC必须是网络内部合法的IP和MAC才可,对于这种修改可以使用下面讲到的 IP Source Guard技术来防范。下表为手动指定IP的报警: 

3w0d: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Req) on Fa5/30, vlan 1.([000d.6078.2d95/192.168.1.100/0000.0000.0000/192.168.1.100/01:52:28 UTC Fri Dec 29 2000 ])