基本知识
什么是DHCP
动态主机设置协议,即通过特定的服务给指定的终端按照一定规则去分配IP,
使用UDP协议
端口:客户端67 服务器 68
DHCP都能做什么
- 给客户端分配IP地址,同时保证IP在网内的唯一性
- 给指定的客户端分配固定IP地址(根据入网MAC)
- 服务端会自动维护地址池内地址状态,同时可以辨别网内手动添加的ip地址并标记
- 提供一些服务提供配置指引(AP设备上线,PXE装机等)
三个角色
- DHCP服务器
- 可分配的地址范围(网段)
- 需分配的子网掩码
- 需分配的网关
- 需分配的DNS1 DNS2
- 地址租期
- option字段(特殊配置)
- DHCP客户端
- DHCP中继
- 当DHCP服务器与DHCP客户端不在同一个网段时会在网关设备上开启此配置
四个阶段
DHCP Discover:1阶段,发现阶段,客户端寻找dhcp server
DHCP Offer:2阶段,提供阶段,收到discover的服务器都回复给客户端一个offer,携带配置。
DHCP Request:3阶段,选择阶段,收到第一个offer后广播回复告诉所有server。
DHCP Ack:4阶段,确认阶段,DHCP服务器通知客户端可以使用之前分配的ip。
一些命令
windows释放IP地址:ipconfig /release
windows重新获取ip:ipconfig /renew
报文类型
通过wireshark查看DHCP报文需要通过“bootparams"来筛选
- DHCP DISCOVER:第一个报文,是请求IP地址和其它配置参数的广播报文。
- DHCP OFFER:DHCP DISCOVER的响应,是包含IP地址及配置的单播(或广播)报文。
- DHCP REQUEST:DHCP OFFER报文的响应,表示接受相关配置。客户端续延IP地址租期也使用该报文。
- DHCP ACK :对DHCP REQUEST报文的确认报文。收到此报文才真正获得了IP地址和相关的配置信息。
- DHCP DECLINE:发现分配的IP无法使用(如IP地址冲突时),将发出此报文通知服务器
- DHCP NAK:对DHCP REQUEST报文的拒绝响应报文。收到此报文会重新开始新的DHCP过程。
- DHCP RELEASE:主动释放分配的IP地址。当服务器收到此报文后则回收该IP地址。
- DHCP INFORM:获得IP地址后,发送此报文请求获取服务器的其它一些网络配置信息,如DNS等。
扩展
- 客户端会在租期过去50%后续约
- 客户端如何判断offer中的地址是冲突的?
一般情况:客户端在接收分配的IP之前会发送一个ARP请求,由应答了就说明IP在用了
PXE(预执行环境)
多数用来给服务器或者PC机安装操作系统
- DHCP 服务器会给服务器一下信息
- IP地址
- PXE服务器地址
- 启动文件 ***.0
会使的DHCP Option 字段
- Option 66 引导服务器主机名
- Option 67 引导文件名
- Option 60 服务器IP
- 客户端收到以上信息后回去下载指定的启动文件
- 所以PXE服务往往还需要有一个TFTP服务器
- 客户端收到启动文件开始执行,这个启动文件会指示客户端向TFTP服务器请求一个配置信息***.cfg