DHCP中继代理过程分析与安全控制

2022-03-22 04:58金海峰
关键词:中继IP地址报文

金海峰

(江阴职业技术学院,江苏 江阴 214405)

1 引言

随着企业网络规模的不断扩大,尤其是智能手机、IPAD、无线笔记本,以及各种智能终端的普及与应用,传统手工配置IP地址的方式显得不够友好,管理工作量大,还极易造成IP地址冲突,影响终端的网络应用。DHCP作为一种典型的动态IP地址分配协议,通过配置DHCP服务器,可以对全网IP地址集中管理、统一分配,极大简化了IP地址分配、管理工作,提高工作效率,同时也增强了用户的网络体验感。

2 DHCP概述

动态主机配置协议DHCP(Dynamic Host Configuration Protocol)提供了一种动态分配IP地址的机制,DHCP使用C/S方式。当一台DHCP客户端启动时(或者手动开启地址更新进程),就广播一个DHCP DISCOVER报文,网络中的DHCP服务器收到DHCP DISCOVER报文后,从本地地址池中选择一个IP地址,以广播方式发送DHCP OFFER报文给客户端。DHCP客户端收到DHCP OFFER报文后,发送DHCP QEQUEST报文,申请IP地址的使用权。最后,DHCP服务器发送DHCP ACK确认地址分配。

DHCP DISCOVER报文是以广播形式发送的,这就要求每个子网中必须部署有DHCP服务器,因为三层设备的接口不转发广播报文。如果需要部署一台服务器同时面向多个子网提供服务,就必须在三层设备上启用DHCP RELAY功能,由三层设备负责转发DHCP服务器与客户端之间的DHCP报文[1]。

3 仿真实验

如图1所示,实验依托仿真平台HCL,选用PC主机、交换机、路由等设备,模拟DHCP网络。其中交换机SW1模拟接入设备,交换机SW2作为核心设备,模拟三层通信,主要起到DHCP中继代理的作用,DHCP服务器则是选用路由器来模拟。

图1 实验拓扑结构

主机、服务器以及网络设备IP地址详见表1所示。

表1 地址信息

3.1 连通性配置

参照图1和表1,完成交换机 SW1、SW2和DHCP服务器-1、DHCP服务器-2各IP地址、Vlan的配置。

(1)交换机SW1的配置

3.2 DHCP服务器配置[2]

以DHCP服务器-1为例,阐述DHCP服务器配置方法。

3.3 DHCP中继代理配置与分析

至此,全网连通性基本实现了,但是观察主机Vlan221的地址分配情况,却发现地址形式为169.254.0.0/16。169.254.0.0/16网段地址,一般出现于:DHCP客户端发送的DHCP请求,没有得到DHCP服务器的响应,即动态分配失败后,由系统自动分配的地址。由此可见,主机Vlan221发送的DHCP请求数据报可能在交换机SW2上被丢弃了,因为三层设备不转发二层广播包。

3.3.1 配置方法

DHCP中继代理可以实现在不同子网之间处理和转发DHCP信息[3]。

3.3.2 过程分析

启动抓包程序Wireshark,抓取交换机SW1的接口G1/0/1、交换机SW2的接口G1/0/1上的通信报文,报文信息分别如图2、图3所示。

图2 接口SW1.G1/0/1上的DHCP报文

图3 接口SW2.G1/0/1上的DHCP报文

分析图2、图3可以得知:主机Vlan221设置成动态获取IP地址后,该主机以广播形式(图2第1条报文,目标地址为有限广播地址255.255.255.255)发送DHCP DISCOVER报文,该广播报文由交换机SW2转发到DHCP服务器(图3第1条报文),DHCP服务收到DHCP DISCOVER报文后(图3第2条报文),以单播方式向交换机SW2发送DHCP OFFER报文,该报文再由SW2广播给主机Vlan221(图2第2条报文),后续的DHCP REQUEST、DHCP ACK报文也由中级代理交换机SW2转发。

同时,打开图2第1条和图3第1条报文详细信息(如图4、图5所示),不难发现:DHCP客户端通信端口为UDP68、DHCP中级代理和DHCP服务器通信端口为UDP67。在应用了ACL的DHCP网络中,必须依据端口号放行DHCP报文,否则会影响地址动态分配。

图4 主机发送的DHCP DISCOVER报文

图5 中继代理发送的DHCP DISCOVER报文

从图5可以发现,中继代理转发的DHCP DISCOVER报文中,尽管源地址为223.223.223.1,即SVI1的地址,但该报文中携带了中继IP地址221.221.221.1,因此,DHCP服务器收到 DHCP DISCOVER报文后,发送DHCP OFFER的目标地址为221.221.221.1。

3.4 DHCP安全性控制

DHCP网络的安全性主要包括两方面:非法DHCP服务器和非法DHCP客户机。首先,非法DHCP服务器接入到网络后,根据DHCP工作机制,谁先相应DHCP DISCOVER报文,就由谁优先负责分配地址。假设非法DHCP服务器所分配的网关地址均指向自身,则有可能造成DHCP客户端发送的所有数据包都要经过非法DHCP服务器,即非法DHCP服务器就获取了该主机的报文,造成个人数据泄露。其次,攻击主机通过修改DHCP请求报文中的chaddr字段,不停地发送伪请求,直到耗尽DHCP地址池,导致正常DHCP客户端不能够获取地址,这种攻击方式被称为DHCP饥饿攻击。

DHCP Snooping是一种DHCP安全特性,在设备上开启DHCP Snooping后,DHCP请求报文通过信任接口发送到合法的DHCP服务器[4],可以有效阻止非法DHCP服务器。

3.4.1 禁止非法DHCP服务器

参照3.2配置,完成DHCP服务器-2的配置。在交换机SW1上启用DHCP Snooping,配置方法如下:

[SW1]dhcp snooping enable

[SW1]int GigabitEthernet 1/0/24

[SW1-GigabitEthernet1/0/24]dhcp snoopingtrust

在交换机SW1上开启DHCP Snooping后,DHCP请求报文可以通过信任端口G1/0/24转发出去,端口G1/0/11接受不到DHCP请求报文,从而有效阻止了非法DHCP服务器的接入。抓取交换机SW1上接口G1/0/11的报文,也可以验证确实没有DHCP DISCOVER报文通过。

3.4.2 防止DHCP饥饿攻击

在交换机SW1上开启DHCP Snooping,并在连接主机的接口上开启地址检查功能,即当DHCP请求报文中chaddr字段地址与源主机MAC地址一致时,认为是合法DHCP请求报文,进行后续处理。如果不一致,则丢弃该报文[5]。

HCL仿真环境下无法模拟DHCP攻击,此实验须在真实环境下,进行测试。DHCP攻击主机选用Kali,攻击手段选用 DHCPx。

测试过程如下:

(1)开启DHCP攻击

运行命令:sudo dhcpx-ieth0,命令执行结果如图6所示。

图6 Kali发起DHCP攻击

(2)观察DHCP服务器可用地址池

[DHCP-1]display dhcp server free-ip

IP Range from221.221.221.3 to221.221.221.254

稍等片刻后,重新观察可用地址池,发现可用地址变少了,说明DHCP攻击生效了,IP地址池正在逐渐耗尽。

[DHCP-1]display dhcp server free-ip

IP Range from 221.221.221.6 to221.221.221.254

(3)配置防DHCP饥饿攻击策略

[SW1]dhcp snooping enable

[SW1]int GigabitEthernet 1/0/24

[SW1-GigabitEthernet1/0/24]dhcp snooping trust[SW1]int GigabitEthernet 1/0/1

[H3C-GigabitEthernet1/0/1]dhcp snooping check mac-address

[H3C-GigabitEthernet1/0/1]dhcp snooping check request-message

[H3C-GigabitEthernet1/0/1]mac-address maxmac-count0

[H3C-GigabitEthernet1/0/1]undo mac-address max-mac-count enable-forwarding

[SW1]mac-address static 000c-29e9-fad4interface GigabitEthernet 1/0/1 Vlan 221

完成上述配置后,重新观察地址池,发现地址池没有任何变化,说明DHCP饥饿攻击失败了。

由此可以得出结论:在主机接入交换器上启用DHCP Snooping,在接入端口开启源地址、报文检查功能,并设置接口动态MAC地址表为0,即不允许非法源主机发送DHCP请求报文,而正常主机可以通过静态添加到MAC地址表中,以便动态获取IP地址信息。由此可以有效阻止DHCP饥饿攻击。

3.4.3 禁止静态IP地址主机入网

为了避免IP地址冲突,强制要求DHCP网络中所有主机必须动态获取地址,静态配置IP地址的主机禁止入网。

[SW1]dhcp snooping enable

[SW1]int GigabitEthernet 1/0/1

[SW1-GigabitEthernet1/0/1]dhcp snooping binding record

[SW1]Vlan221

[SW1-Vlan-221]arp detection enable

[SW1]int GigabitEthernet 1/0/24

[SW1-GigabitEthernet1/0/24]arp detection trust

[SW1-GigabitEthernet1/0/24]dhcp snooping trust

下联端口开启DHCP Snooping表项记录功能,上联端口配置成信任状态后,主机Vlan221非法配置了静态IP地址后,发现无法访问网络。抓取交换机SW1的接口G1/0/1上的数据包,也可以发现ping数据包都没有得到回应,即数据包丢失了。

4 结语

使用DHCP服务可以避免手工配置IP地址造成的配置错误、地址冲突,还可以减少手工配置花费的开销,提高网络的使用时效。针对物理设备上分析、研究DHCP原理可操作性差,不利于教学问题,在仿真环境下,以典型三层网络架构为应用模型,给出DHCP基本配置、中继代理、安全控制的详细配置方法,并深入分析研究了DHCP工作原理、工作机制,使师生深刻理解了DHCP工作原理,掌握了DHCP配置方法和安全控制方式,实验教学效果良好。

猜你喜欢
中继IP地址报文
基于J1939 协议多包报文的时序研究及应用
以太网QoS技术研究及实践
基于Python的汽车CAN总线报文格式转换系统的设计与实现
基于报文类型的限速值动态调整
“鹊桥号”成功发射
Link—16中继时隙自适应调整分配技术研究
退化型高斯中继广播信道的信道容量研究
《IP地址及其管理》教学设计
计算机的网络身份IP地址
轻松明白网络IP地址以及子网划分问题