目录
一、工作原理
二、DHCP报文
2.1 DHCP报文类型
2.2 DHCP报文格式
当网络内部的主机设备数量过多是,IP地址的手动设置是一件非常繁琐的事情。为了实现自动设置IP地址、统一管理IP地址分配,TCPIP协议栈中引入了DHCP协议。
一、工作原理
使用DHCP之前,首先要架设一台DHCP服务器,并将DHCP所要分配的IP地址设置到服务器上。一般来说,都是由路由器充当该网段的DHCP服务器。
DHCP中获取IP地址的流程主要分为4个步骤:
①客户端发送DHCP发现包:要求设置IP地址和子网掩码(广播)
②服务端返回DHCP提供包:提供网络设置参数
③客户端发送DHCP请求包:请求使用获取到的网络配置参数(广播)
④服务端返回DHCP提供包:同意该配置参数的使用(主要是避免同一参数被重复使用)
备注:DHCP协议主要使用UDP协议实现,DHCP客户端使用的端口68,服务端使用端口67,可以实现自动分配IP、子网掩码、网关、DNS。
二、DHCP报文
2.1 DHCP报文类型
帧类型 | 说明 |
DHCP Discover | DHCP 客户端会在本地网络内以 广播方式发送 Discover 请求报文,以发现网络中的 DHCP 服务器。 |
DHCP Offer | DHCP Server都能够接收到DHCP Client发送的DHCP Discover报文回复的响应报文。 |
DHCP Request | 响应DHCP Offe报文之后广播发送Request 请求报文,请求获取 IP 地址;当租期到达50%、87.5%时,会分别单播、广播Request请求续延租约。 |
DHCP ACK | DHCP 服务器收到 Request 请求报文后,根据客户端MAC地址查找到租约记录后响应ACK,通信用户可以使用分配的 IP 地址。 |
DHCP NACK | DHCP 服务器收到 Request 请求报文后,根据客户端MAC地址查未找到租约记录后响应ACK,通信用户不可以使用分配的 IP 地址。 |
DHCP Release | DHCP 客户端不再需要使用分配 IP 地址时主动请求释放申请的IP |
DHCP Decline | 使用IP时,发现请求IP检测不可用,通知服务端以重新分配IP |
DHCP Inform | 想DHCP服务端获取更详细的配置信息,目前基本不用 |
2.2 DHCP报文格式
字段 | 说明 |
OP | 报文的操作类型,1请求,2响应 |
Htype | 客户端的MAC地址类型 |
Hlen | 客户端的MAC地址类型,以太网为6 |
Hops | DHCP中继数,默认为0 |
Xid | 客户端请求标识,随机数且同一次请求中标识都一样 |
Secs | 客户端从获取到IP地址或者续约过程开始到现在所消耗的时间,以秒为单位 |
Flags | 标志位,只使用第0比特位,是广播应答标识位,0单播,1广播 |
Ciaddr | 客户端的IP地址 |
Yiaddr | 服务器分别的IP地址 |
Siaddr | 下一个为客户端分配IP地址等信息的服务器IP地址 |
Giaddr | 客户端的MAC地址 |
Sname | DHCP服务器名称 |
File | DHCP服务器为客户端指定的启动配置文件路径信息 |
备注:上述信息并不是每个字段咋每条报文中都会使用到 |