一文速通DHCP----H3CIE水平【面试可用】
攻击者冒充合法客户端,伪造dhcp续租报文发送给服务器,会导致dhcp服务器和客户端无法按照自己的意愿及时释放IP地址租约,如冒充不同客户端,大量伪造续租报文,会导致大量IP地址被占用,导致server没有足够地址分给client;攻击者在discover请求报文中,会伪造不同的chaddr字段(MAC地址相同或不同),向dhcp server 申请大量IP地址,导致地址池中地址耗尽,无法为合法客
一、DHCP背景
1.终端设备访问网络时需要配置IP地址,网关地址,DNS服务器地址等,手工为终端配置这些参数非常低效且不够灵活。DHCP实现了网络参数配置的自动化,降低客户端的配置和维护成本。
2.手工配置存在问题:灵活性差,易出错地址冲突,IP地址资源利用率低,工作量大、人员素质要求高
二、DHCP的基本概念
1.DHCP是集中对用户IP地址进行动态管理和配置的协议。采用C/S(客户端/服务器)通信模式;报文基于UDP的方式交互,采用67、68俩个端口号
2.工作:客户端向服务器提出配置申请,服务器响应,为客户端分配IP地址和相应的配置信息。
3.优点:效率高,灵活性强,易于管理
三、DHCP分配地址的方式
1.手工静态分配:为少数特定客户端静态绑定固定的IP地址通过DHCP将配置的固定的IP地址分配给客户端。
2.自动分配:DHCP为客户端分配租期为无限长的IP地址。
3.动态分配:DHCP为客户端分配一定有效期限的IP地址,到期后,客户端重新申请地址。
四、客户端获取IP工作原理
1.发现阶段,DHCP客户端发现DHCP服务器阶段
dhcp客户端发(0.0.0.0) dhcp discover报文到广播地址,用来发现dhcp服务器。
(discover报文里有客户端的MAC地址、需要请求的参数列表选项、广播标志位等信息)
2.提供阶段,DHCP服务器提供网络配置信息阶段
服务器收到discover报文后,选择与接收discover报文接口的IP地址处于同一段网络的地址池,从中选出一个可用的IP地址,通过offer报文发到客户端。
(offer报文包括IP地址,网关,掩码,DNS服务器地址)
3.选择阶段,DHCP客户端选择IP地址阶段
网络中也许会有多个dhcp服务器向客户端回应offer,所以客户端只接收第一个收到的offer,然后广播request报文 。
(request报文内包含,客户端要选择的dhcp服务器标识,客户端IP地址)
4.确认阶段,DHCP服务器确认所分配IP地址的阶段
dhcp服务器收到request报文后,回复客户端ack报文,广播ARP判断分配的地址是否会地址冲突。
五、DHCP消息类型
-
DHCP通过Option字段来协助做应用
-
Option 82:DHCP中继或DHCP Snooping设备收到客户端发给服务器的请求报文,会在报文里加Option 82,并转发给服务器。
(管理员可从Option 82中获得DHCP客户端的信息:客户端所连接交换机端口的VLAN ID、二层端口号、中继设备的MAC地址等)
-
Option 43:C/S通过Option 43交换厂商特定信息。请求报文中带有Option 43,服务器会在回复中携带Option 43,为客户端分配厂商指定信息。
(WLAN组网中,AP作为DHCP客户端,DHCP服务器可以为AP指定AC的IP地址,以便AC与AP建立连接)
六、Option 43应用实例
AC与AP不在同一网段,AP需要通过DHCP获取自己的IP地址,同时,需要通过Option 43让AP获取AC的IP地址,从而建立隧道连接。
七、DHCP地址续租
-
客户端根据IP地址的剩余租期不同而产生不同形式的续租请求。
过程① 租期到达50%(T1),客户端以单播方式向服务器,发送request报文,请求更新IP地址租期。如收到服务器回应的ACK报文,则租期更新成功。
过程②租期到87.5%(T2),未收到服务器应答,客户端自动以广播方式向服务器发request请求,请求更新IP地址租期。如收到服务器回应的ACK报文,则租期更新成功。
过程③续租不成功,客户端停用此IP地址。重新发discover报文请求新的IP地址。
八、DHCP配置实验(地址池/固定地址)
-
地址租期默认1天
-
抓包查看DHCP过程
-
DHCP服务器为设备分配固定IP地址
①固定设备:display interg0/0/0 --查看接口mac地址
-
DHCP如何确保分配的地址是唯一的?
①offer信息前有ARP广播请求:请求将分配的IP地址的mac地址,无arp replay即分配。
②进行重复地址检测,准备下发哪个地址,就会给哪个地址在发送offer前ping6个包。
(Dhcp server ping packets 6
Dhcp server ping timeout 500 //可以修改多久ping几个包)
九、DHCP欺骗
-
DHCP C发出discover请求时,非法DHCP S和合法DHCP S都会回复offer信息,DHCP C收到两个offer但先到的优先。
-
①合法offer:分配IP、mask、gw、DNS给客户端;客户端根据gw传输数据。
-
②非法offer:也许会分配错误网关(也许是非法S的地址),那么客户端会把数据、流量发到错误网关,接收在转发到合法网关,(丢弃会被发现)那么数据流量就会被窃取。
-
-
防止欺骗:配置DHCP Snooping。开启后交换机上所有接口变为untrust接口。
-
untrust接口俩个特点:
①阻止此接口discover消息发出去(tip:客户端所连接口为untrust,但可以收到offer回复)
②即使发出,会阻止offer发进来
-
配置完DHCP Snooping,默认都为不信任接口,将连接合法dhcp server的接口设置为trust、交换机之间的trunk设为trust
-
配置
dhcp snooping enable inter g1/0/1 //合法dhcp所连接口 dhcp snooping trust inter g1/0/11 //trunk之间 dhcp snooping trust dhcp snooping binding record //开启绑定表记录功能,会监控dhcp客户端和server之间的消息 ------------------------接入层交换机开启dhcp snooping会动态形成绑定表---------------------- display dhcp snooping binding //查看接入层交换机上动态形成的绑定表, 绑定表中有客户端VLAN,接口,ip地址,mac地址,可以做源保护
-
防止DHCP饿死攻击:攻击者在discover请求报文中,会伪造不同的chaddr字段(MAC地址相同或不同),向dhcp server 申请大量IP地址,导致地址池中地址耗尽,无法为合法客户端分配地址,或导致服务器消耗过多系统资源,无法处理正常业务。解决办法:
inter g 1/0/1 dhcp snooping check mac-address-
请求报文中,攻击者的Smac不同,通过mac-address max-mac-count 限制端口可学到的MAC地址数量,当学到的MAC地址数达到此数量后,丢弃Smac地址不在MAC地址表里的报文,可避免攻击者申请过多ip。
-
攻击者的Smac相同,开启DHCP Snooping的MAC地址检查功能。dhcp snooping 设备对比接收到的discover中的chaddr字段,和数据帧中的Smac地址是否一致,一致合法,不一致丢弃。
-
-
防止伪造DHCP请求方向报文攻击:结合绑定表
检查dhcp续租报文,dhcp-decline和dhcp-release三种DHCP请求报文,防止非法客户端伪造这三中报文对dhcp server进行攻击。攻击者冒充合法客户端,伪造dhcp续租报文发送给服务器,会导致dhcp服务器和客户端无法按照自己的意愿及时释放IP地址租约,如冒充不同客户端,大量伪造续租报文,会导致大量IP地址被占用,导致server没有足够地址分给client;伪造dhcp-decline和dhcp-release发送给server,导致server错误终止IP地址租约。解决办法:inter g1/0/1 dhcp snooping check request-message-
DHCP Snooping设备上开启DHCP请求方向报文检查功能。开启后,设备接收到这三种报文,会检查本地是否存在与请求方向报文匹配的 dhcp snooping 表项,报文与表项一致,认为合法的请求方向报文,会转发给server,不一致丢弃。
-
-
配置接口动态学习DHCP snooping表项的最大数目:防止接口学习到大量DHCP snooping表项,占用过多系统资源
inter g0/1 dhcp snooping max-learning-num 10
-
配置DHCP Snooping报文限速功能:避免非法用户发送大量DHCP报文,对网络造成攻击,dhcp snooping支持报文限速,当接口收到的DHCP报文速率超过限制的最高速率时,DHCP snooping 设备将丢弃超过速率限制的报文。
inter g0/1 dhcp snooping rate-limit 128 //开启dhcp snooping报文限速功能,限速128kbps dhcp snooping deny //超过128kbps,丢弃此端口收到的所有DHCP请求方向报文
十、DHCP中继
-
客户端和服务器不在同一网段。客户端广播形式发送discover信息,DHCP中继收到后,单播形式发送到DHCP server。---集群划分不同子网,通过中继让DHCP服务器统一为各子网设备分配地址。
-
DHCP中继配置
inter g0/1 dhcp select relay //开启dhcp中继,华三默认出接口为Sip,可修改 (dhcp relay source-address 192.168.1.1) dhcp relay server-address 192.168.12.2 //说明dhcp server ip地址
dhcp server ip-poor wyh network 192.168.1.0 mask 255.255.255.0 gateway-list 192.168.1.1 dns-list 8.8.8.8 expired day 2 ip-in-use threshold 90 //地址使用率到百分之90,出现告警(默认百分百) dhcp sever forbidden-ip 192.168.1.1 192.168.1.100 //保留这些地址 dhcp select server //开启dhcp服务
display mac-address //查看mac地址,可固定分配dhcp地址 dhcp server ip-poor wyh static-bind ip-address 192.168.1.188 mask 24 hardware-address 4ca0-2509-0706
-
多个地址段,不同的客户端从DHCP中继的不同接口去请求地址,DHCP server就可以从接口判断,该分配哪个网段的地址。
十一、Ip source Guard
-
私自修改客户端IP地址为DHCP已经分配到的地址,开启源保护,借助dhcp snooping 绑定表。
----------------------------基于dhcp snooping的绑定表---------------- inter g0/1 //连接DHCP的端口 ip source binding ip-address 192.168.1.3 -----------------------------g0/1收到的ip地址、mac地址都检测------------------------- inter g0/1 //连接DHCP的端口 ip verify source ip-address mac-address
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)