DHCP简介
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),其主要作用是为主机提供配置参数。如为客户端动态分配IP地址、网关、DNS等配置信息。
DHCP基于C/S模型,使用UDP(User Datagram Protocol,用户数据报协议)作为它的传输协议,采用67(服务端)和68(客户端)两个端口。
DHCP报文
DHCP一共有8种报文,各类报文功能如下:
DHCP报文类型(图一)
DHCP报文格式(图二)
解释:
列出部分可选项:
代码 | 标签 | 长度(字节) | 说明 |
---|---|---|---|
1 | Subnet | 4 | 子网掩码 |
3 | Router | 长度可变(4的倍数) | 默认网关 |
6 | DNSserv | 长度可变(4的倍数) | DNS服务器 |
12 | Hostname | 长度可变 | 主机名 |
15 | DNSdmain | 长度可变 | DNS域名 |
50 | Requested IP Address | 4 | 请求到的IP地址 |
51 | IP Address Lease Time | 4 | 租约时间 |
53 | DHCP Message Type | 1 | 报文类型1: DHCP Discover2: DHCP Offer3: DHCP Request4: DHCP ACK5: DHCP NAK6: DHCP Release7: DHCP Decline8: DHCP Inform |
DHCP报文可选项列表(表一)
DHCP原理
DHCP原理图(图三)
① 发现阶段 DHCP DISCOVER
DHCP客户端通过DHCP DISCOVER广播报文(255.255.255.255)寻找DHCP服务器,DHCP DISCOVER广播报文内部有客户端的MAC地址、请求参数列表等信息。
② 提供阶段 DHCP OFFER
DHCP服务器收到DHCP发现报文后就根据网关地址挑选和网关同一网段的地址池中闲置IP进行分配。
③ 选择阶段 DHCP REQUEST
当DHCP客户端接受DHCP服务器的租约时,它将发起DHCP REQUEST广播消息,告诉所有DHCP服务器自己已经做出选择,接受了某个DHCP服务器的租约。
在此DHCP REQUEST广播消息中包含了DHCP客户端的MAC地址、接受的租约中的IP地址、提供此租约的DHCP服务器地址等,所有其他的DHCP服务器将收回它们为此DHCP客户端所保留的IP地址租约,以给其他DHCP客户端使用
④ 确认阶段 DHCP ACK
当服务端接收到客户端的确认选择后,服务器会回ACK单播报文给客户端,并且告知客户端这个网络参数租约的期限,开始租约计时
注:报文类型可以简单的理解为 广播--- 单播 --- 广播 --- 单播
图上的DHCP OFFER可能为单播/广播原因是有的协议栈不能够允许在没有IP地址前接受单播报文,有的协议栈却可以接受以mac地址为基础的单播报文,是否能够接受客户端在DHCP DISCOVER请求时都会进行说明,DHCP OFFER 将根据DHCP DISCOVER报文内提供的客户端协议栈是否支持单播相关信息来判断是通过广播/单播发送。
DHCP Relay原理图(图四)
两者相差不大,为了能够跨网段传输,所以DHCP中继与DHCP服务器之间都是采用单播形式进行传播。
DHCP完整流程可参考下图:
DHCP完整流程图(图五)
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有