DHCP协议
任务:掌握DHCP协议的工作原理、DHCP交互流程、DHCP中继、DHCP snooping的应用场景及工作原理
1. DHCP概述
原先的手工配置网络参数存在灵活性差、工作量大、出错率高的问题,而DHCP是动态主机配置协议,它是Bootstrap协议的一种扩展,作用是可以自动为主机分配IP地址、网关、DNS服务器地址等参数,并能集中管理,避免手动配置造成的地址冲突。
DHCP基于UDP协议,客户端的端口号是68,服务端的端口号是67。![7b90cf252b09bca5577d9cdb17ff777b.png](https://img-blog.csdnimg.cn/img_convert/7b90cf252b09bca5577d9cdb17ff777b.png)
2.DHCP的报文类型
![507955411caab9c92c6ad055df430d1d.png](https://img-blog.csdnimg.cn/img_convert/507955411caab9c92c6ad055df430d1d.png)
3. DHCP的报文格式
![acd8556632d722b25716ab81c4fc73f5.png](https://img-blog.csdnimg.cn/img_convert/acd8556632d722b25716ab81c4fc73f5.png)
OP:1字节,表示报文的类型。置1为客户端请求报文,置2为服务器响应报文。
htype:1字节,表示硬件地址的类型。对于以太网类型值为1。
hlen:1字节,表示硬件地址的长度。对于以太网的值为6字节。
hops:1字节,跳数。在客户端设置为0,每经过一台路由器跳数加1。
xid:4字节,事务ID。由客户端发起的一个随机数,用于客户端和服务器交流请求和响应。
secs:2字节,由客户端填充指定时间,表示从客户端开始获得IP地址或地址续借后的时间。
flags:2字节,标志字段。只有最高位有意义,其余位均置为0,最高位置0表示服务器单播响应,置1表示服务器广播响应。
![33783ddf35f95221183cc3b0baf1b3ee.png](https://img-blog.csdnimg.cn/img_convert/33783ddf35f95221183cc3b0baf1b3ee.png)
ciaddr:4字节,表示客户端的IP地址。如果客户端已知道自身IP,填入此字段,否则置为0。用于客户端在发送请求时将自己的ip地址放在此处。
yiaddr:4字节,存放客户IP。服务器会将想要分配给客户端的ip地址放在此处。
siaddr:4字节,表明DHCP协议流程的下一个阶段要使用的服务器的IP地址。
giaddr:4字节,表示第一个DHCP中继的IP地址。
chaddr:16字节,表示客户端的MAC地址。
sname:64字节,表示服务器的名字。由DHCP Server填写,以0x00结尾。
file:128字节,表示客户端的启动配置文件名。由DHCP Server填写,以0x00结尾。
options:长度可变,至少为312字节,表示选项字段。包含了服务器分配给终端的配置信息,如网关IP地址,DNS服务器的IP地址,客户端可以使用IP地址的有效租期等信息。
常用的option id:
1:netmask(设置子网掩码)。
3:router(设置网关地址)。
6:DNS Server(设置DNS服务器地址)。
7:log Server(设置日志服务器地址)。
12:host name(设置域名)。
26:Interface MTU(设置接口MTU)。
33:Static route(设置静态路由)。
35:ARP cache timeout(设置ARP缓存超时)。
51: ip address lease time(设置IP地址租约时间)。
53: message type (dhcp报文的8种类型)。
54:server identification(设置服务器标识)。
55: parameter request list (需要服务器给你提供哪些东西:ip地址,域名,网关)。
58:设置续约T1时间,一般是租期时间的50%。
59:设置续约T2时间,一般是租期时间的87.5%。
61 :client identification(设置客户端标识)。
77:设置用户类型标识。
82: relay agent(设置中继代理)。
255: end。
4.DHCP的工作原理
1)请求阶段
a)客户机在本网段内广播DHCP Discover报文,用来发现网络中的DHCP服务器。
![61d823a61ff0ac539aaf344326aa0aca.png](https://img-blog.csdnimg.cn/img_convert/61d823a61ff0ac539aaf344326aa0aca.png)
b)服务器向客户机单播回复DHCP Offer报文,其中携带要分配给客户机的IP地址。(但在给出此地址之前,应当用ICMP ECHO REQUEST报文进行检查是否有其他机器配置此IP地址。)
![e244143002f37c3ac031c2afc27b6092.png](https://img-blog.csdnimg.cn/img_convert/e244143002f37c3ac031c2afc27b6092.png)
c)客户机选择第一个Offer报文,并广播回复DHCP Request报文表示愿意接受该Offer。
![036019ea2da2c94ba4e0d363071a7d54.png](https://img-blog.csdnimg.cn/img_convert/036019ea2da2c94ba4e0d363071a7d54.png)
d)服务器确认将Offer中的IP分配给客户机,就回复DHCP Ack报文,若无法分配给客户机就回复DHCP Nak报文。
![156d631cc8983f1c060348d7bfcb8574.png](https://img-blog.csdnimg.cn/img_convert/156d631cc8983f1c060348d7bfcb8574.png)
(确认分配)
![faf6e810795fe4e9dea13c8e07acf14f.png](https://img-blog.csdnimg.cn/img_convert/faf6e810795fe4e9dea13c8e07acf14f.png)
(无法分配)
2)续租、重绑定阶段
当IP租约期限到达50%时,DHCP客户端会请求更新IP地址租约;
当IP租约期限到达87.5%时,还没收到服务器响应就会广播申请重绑定IP。
![d0a9fee55f222fc29576c8b1ef554f1c.png](https://img-blog.csdnimg.cn/img_convert/d0a9fee55f222fc29576c8b1ef554f1c.png)
3)释放阶段
如果IP租约到期前没收到服务器的响应,客户端就停止使用此IP地址;
如果客户端自己不想再使用分配的IP地址,也可发DHCP Release报文释放IP地址。
![c4eafc463b420a839349ba2925ff8ac6.png](https://img-blog.csdnimg.cn/img_convert/c4eafc463b420a839349ba2925ff8ac6.png)
5.DHCP Relay(DHCP中继)
由于DHCP请求报文采用广播方式发送报文,因此当DHCP客户端和DHCP服务器处于不同子网时,必须要通过DHCP中继帮忙转发通信,最终获取到IP地址。
多个网络上的DHCP客户端可以使用同一个DHCP服务器,节省成本,又便于进行集中管理。
![218e792521d479236a57c59a1ed2053a.png](https://img-blog.csdnimg.cn/img_convert/218e792521d479236a57c59a1ed2053a.png)
6.DHCP Snooping
DHCP Snooping是DHCP的一种安全特性,主要应用在交换机上,作用是屏蔽接入网络中的非法的DHCP服务器。即开启DHCP Snooping功能后,网络中的客户端只有从管理员指定的 DHCP服务器获取IP地址。
DHCP在设计上未从分考虑安全因素,从而留下了许多安全漏洞,使得DHCP很容易受到攻击。实际网络中,针对DHCP的攻击行为主要有以下三种,如下是各种攻击方式及DHCP Snooping的应对策略:
1)DHCP饿死攻击
攻击原理:攻击者通过伪造chaddr字段各不相同的DHCP请求报文,持续大量的向DHCP Server申请地址,直到耗尽DHCP Server地址池中的IP地址,导致DHCP Server不能给正常的用户进行分配。
解决方法:通过校验CHADDR与MAC值的对应关系是否一致,来判断CHADDR的合法性。
![7f2f672c4dea3245f7470a3fec73d792.png](https://img-blog.csdnimg.cn/img_convert/7f2f672c4dea3245f7470a3fec73d792.png)
2)仿冒DHCP Server攻击
攻击原理:攻击者仿冒DHCP Server,向客户端分配错误的IP地址、错误的网关地址等,导致客户端无法正常访问网络。
解决方法:通过DHCP Snooping功能配置接口的信任状态,使客户端从合法的服务器获取IP地址。
![2150362c941e26ece1c4e30458b11c7f.png](https://img-blog.csdnimg.cn/img_convert/2150362c941e26ece1c4e30458b11c7f.png)
3)DHCP中间人攻击
攻击原理:攻击者利用ARP机制,让PC-A学习到IP-S与MAC-B的映射关系,又让Server学习到IP-A与MAC-B的映射关系。如此一来,PC-A与Server之间交付的IP报文都会经过攻击者中转。
解决方法:开启ARP检测,当收到IP和MAC映射的消息与DHCP Snooping绑定表中的记录不一致时,便丢弃报文。
![c13c178aa0da5aa144387351a6860b33.png](https://img-blog.csdnimg.cn/img_convert/c13c178aa0da5aa144387351a6860b33.png)
扫码关注我们
![d505f045f2b6554d7f6d2ad20140fafe.png](https://img-blog.csdnimg.cn/img_convert/d505f045f2b6554d7f6d2ad20140fafe.png)
图文|郑泽辉
排版|陈海心