DHCP

2.1 DHCP Client发现阶段

  DHCP客户机寻找DHCP服务器的阶段。DHCP客户机以广播方式(因为DHCP服务器的IP地址对于客户机来说是未知的)发送 DHCP discover发现信息来寻找DHCP服务器,源地址为0.0.0.0目的地址为255.255.255.255。网络上每一台安装了TCP/IP协议的主机 都会接收到这种广播信息,但只有DHCP服务器才会做出响应。

2.2 DHCP Server提供阶段

  DHCP服务器提供IP地址的阶段。在网络中接收到DHCP discover发现信息的DHCP服务器都会做出响应,它从尚未出租的IP地址中挑选一个分配给DHCP客户机,向DHCP客户机发送一个包含出租的 IP地址和其他设置的DHCP offer信息。

2.3 DHCP Client选择阶段

  DHCP客户机选择某台DHCP服务器提供的IP地址的阶段。如果有多台DHCP服务器向DHCP客户机发来的DHCP offer提供信息,则DHCP客户机只接受第一个收到的DHCP offer提供信息,然后它就广播方式回答一个DHCP request请求信息,该信息中包含向它所选定的DHCP服务器请求IP地址的内容。之所以要以广播方式回答,是为了通知所有的DHCP服务器,他将选择某台DHCP服务器所提供的IP地址。

2.4 DHCP Server确认阶段

  DHCP服务器确认所提供的IP地址的阶段。当DHCP服务器收到DHCP客户机回答的DHCP request请求信息之后,它便向DHCP客户机发送一个包含它所提供的IP地址和其他设置的DHCP ack确认信息,告诉DHCP客户机可以使用它所提供的IP地址。然后DHCP客户机便将其TCP/IP协议与网卡绑。另外,除DHCP客户机选中的服务器外,其他的DHCP服务器都将收回之前为其提供的IP地址。

2.5 DHCP Client重新登录

  以后DHCP客户机每次重新登录网络时,就不需要再发送DHCP discover发现信息了,而是直接发送包含前一次所分配的IP地址的DHCP request请求信息。当DHCP服务器收到这一信息后,它会尝试让DHCP客户机继续使用原来的IP地址,并回答一个DHCP ack确认信息。如果此IP地址已无法再分配给原来的DHCP客户机使用时(比如此IP地址已分配给其它DHCP客户机使用),则DHCP服务器给 DHCP客户机回答一个DHCP nack否认信息。当原来的DHCP客户机收到此DHCP nack否认信息后,它就必须重新发送DHCP discover发现信息来请求新的IP地址。

2.6 DHCP Client更新租约

  DHCP服务器向DHCP客户机出租的IP地址一般都有一个租借期限,期满后DHCP服务器便会收回出租的IP地址。如果DHCP客户 机要延长其IP租约,则必须更新其IP租约。DHCP客户机启动时和IP租约期限过一半时,DHCP客户机都会自动向DHCP服务器发送更新其IP租约的 信息。

3.DHCP报文

3.1 报文内容

Op: 报文类型,分为 两大类: Request(1) 和 Reply(2)
HW Type: 硬件类型,一般是以太网:1
HW Len: 硬件地址长度,单位字节。对应以太网:6(mac地址长度为6字节48bit)
Transaction ID:事务ID,随机数,有客户端生成,服务器Reply时,会把Request中的Transaction拷贝到Reply报文中。
Secs: 距离第一次发射IP请求或Renew请求过去的秒数
Flags:标志位,目前仅第一个bit有使用,置1 标明广播
Client IP Address:当前客户端的IP地址,如果当前客户端没有IP地址,则置0
Your IP Address: 服务器想客户端提供IP地址时,会把IP地址填入本字段
(Next)Server IP Address:客户端引导时需要的另一个服务器的IP地址
Gateway (Relay) IP Address: 网关(中继)IP地址,有DHCP 中继器在转发DHCP报文的时候填入
Server Name: Server名字,有64bytes,一般不使用,填充为0
Boot File name: boot file的路径,128bytes, 一般不使用,填充为0
Option: 选项,不定长度。

3.2 Option字段

3.3 DHCP Message Type(53)

  在DHCP Option中,我们着重看下DHCP Message Type(53),DHCP Message Type标识DHCP消息类型,主要有一下类型:

4.抓包分析

详细的抓包分析可以参见Wireshark分析DHCP
举例:服务器用DHCP ACK包对DHCP请求进行响应

从上图可以看出,在数据包中包含以下信息,表示将这些资源信息分配给Client.
Your(client) IP address:分配给Client的可用IP。
DHCP Message Type(53):DHCP服务器发送的消息类型(ACK)
Subnet Mask:Client端分配到的IP的子网掩码;
Router:路由器
Domain Name Server:DNS,域名服务器
IP Address Lease Time:IP租用期


原文链接:https://blog.csdn.net/lm409/article/details/80298225

原文地址:https://www.cnblogs.com/liuzhiyun/p/11557341.html