DHCP协议
DHCP动态主机配置协议,客户端根据mac从服务端获取ip等信息并到期前续约。
协议字段
图中单位是字节。
字段op
值 |
含义 |
1 |
客户端发送Discover广播请求,包括自身mac。 |
2 |
服务端回复Offer广播响应。 |
3 |
客户端发送Request广播,告知选择的服务端,希望获得分配的IP。 IP租期达到50%后,发送Request单播请求,请求续约。 IP租期达到87.5%后,发送Request广播请求,请求续约。 |
4 |
客户端收到ACK后,发现IP不能使用,发送Decline请求,希望获得新的IP。 |
5 |
根据Request中客户端MAC,找到租约记录后响应ACK。 |
6 |
根据Request中客户端MAC,没有找到租约记录,回复NAK,告知无法分配IP。 |
7 |
客户端发送RELEASE请求,告知服务端不再使用IP。 |
8 |
客户端发送Inform请求,获取详细配置信息。 |
htype:客户端MAC地址类型,1表示以太网MAC。
hlen:客户端MAC地址长度,以太网MAC地址长度是6个字节。
hops:DHCP报文经过的DHCP中继数目,包括路由器数量。
xid:客户端请求id,1次请求ip过程中多次请求报文id相同。
secs:客户端从获取到IP或者续约,开始到现在所消耗的时间,以秒为单位。
flags:最左1位,0表示单播,1表示广播。
ciaddr:客户端IP。
yiaddr:服务端分配的IP。
siaddr:下一个为客户端分配IP的服务端IP。
giaddr:客户端发出的请求报文经过的第1个DHCP中继IP。
chaddr:客户端MAC地址。
sname:服务端名称。
file:服务端为客户端指定的启动配置文件名称和路径信息。
options:可选项字段,长度可变,格式是代码+长度+数据。
请求IP流程
discover->offer->request->ack
1. 客户端发送DHCP DISCOVER广播包寻找DHCP服务端。
2. DHCP服务端向客户端发送DHCP OFFER单播包,包含ip/ip租期/写入resolv.conf nameserver的dns地址/默认路由网关/mtu/ntp server。
3. 客户端发送DHCP REQUEST广播包,向服务端请求使用之前提供的ip。
4. 服务端向客户端发送DHCP ACK单播包,明确可以使用。