DHCP原理

学习笔记

DHCP基本原理

DHCP协议使用UDP传输协议,客户端发送请求消息到DHCP服务器的68号端口,DHCP服务器回应应答消息给主机的67号端口。

原理图:
在这里插入图片描述

  1. DHCP Client以广播的方式发出DHCP Discover报文
  2. 所有的DHCP Server都能够接收到DHCP Client发送的DHCP Discover报文,所有的DHCP Server都会给出响应,向DHCP Client发送一个DHCP Offer报文。DHCP Offer报文中“ IP Address”字段就是DHCP Server能够提供给DHCP Client使用的IP地址, DHCP Server在发出此报文后会存在一个已分配IP地址的纪录。
  3. DHCP Client只能处理其中的一个DHCP Offer报文,一般的原则是DHCP Client处理最先收到的DHCP Offer报文。DHCP Client会发出一个广播的DHCP Request报文,在选项字段中会加入选中的DHCP Server的IP地址和需要的IP地址。
  4. DHCP Server收到DHCP Request报文后,判断选项字段中的IP地址是否与自己的地址相同。如果不相同,DHCP Server不做任何处理只清除相应IP地址分配记录;如果相同,DHCP Server就会向DHCP Client响应一个DHCP ACK报文,并在选项字段中增加IP地址的使用租期信息。
  5. DHCP Client接收到DHCP ACK报文后,检查DHCP Server分配的IP地址是否能够使用。如果可以使用,则DHCP Client成功获得IP地址并根据IP地址使用租期自动启动续延过程;如果DHCP Client发现分配的IP地址已经被使用,则DHCP Client向DHCPServer发出DHCP Decline报文,通知DHCP Server禁用这个IP地址,然后DHCP Client开始新的地址申请过程。
  6. DHCP Client在成功获取IP地址后,随时可以通过发送DHCP Release报文释放自己的IP地址,DHCP Server收到DHCP Release报文后,会回收相应的IP地址并重新分配。
续租

在使用租期超过50%时刻处,DHCP Client会以单播形式向DHCP Server发送DHCPRequest报文来续租IP地址。如果DHCP Client成功收到DHCP Server发送的DHCP ACK报文,则按相应时间延长IP地址租期;如果没有收到DHCP Server发送的DHCP ACK报文,则DHCP Client继续使用这个IP地址。
直到IP地址使用租期到期时,DHCP Client才会向DHCP Server发送DHCP Release报文来释放这个IP地址,并开始新的IP地址申请过程。

抓包分析
  • 如图为客户端获取自动获取ip地址的数据包
    在这里插入图片描述

1. dhcp discover
在这里插入图片描述
2. dhcp offer
网络内可能有多个DHCP服务器,因此也可能收到多个offer
在这里插入图片描述
3. DHCP REQUEST

request数据包用于申请offer中给出的IP地址,此时仍然没有真正获得IP地址,仍然是广播形式发送。
在这里插入图片描述
4. DHCP ACK
DHCP服务器对客户端的REQUEST报文的确认,客户端收到此报文后,才算获得了 IP 地址和相关的配置信息。
在这里插入图片描述

补充
  • DHCP NAK:

服务器对客户端的 DHCP REQUEST 报文的拒绝响应报文,比如服务器对客户
端分配的 IP 地址已超过使用租借期限(服务器没有找到相应的租约记录)或者由于某些原
因无法正常分配 IP 地址,则发送 DHCP NAK 报文作为应答(客户端移到了另一个新的网络)。
通知 DHCP 客户端无法分配合适 IP 地址。DHCP 客户端需要重新发送
DHCP DISCOVERY 报文
来申请新的 IP 地址。

  • DHCP DECLINE:

当客户端发现服务器分配给它的 IP 地址发生冲突时会通过发送此报文
来通知服务器,并且会重新向服务器申请地址。

  • DHCP RELEASE:

客户端可通过发送此报文主动释放服务器分配给它的 IP 地址,当服务
器收到此报文后,可将这个 IP 地址分配给其它的客户端。

-DHCP INFORM:

客户端已经获得了 IP 地址,发送此报文的目的是为了从服务器获得其
他的一些网络配置信息,比如网关地址、DNS 服务器地址等。

部分参考如下博客
原文链接:https://blog.csdn.net/qq_17592003/article/details/108513553

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值