DHCP原理与配置
概述
DHCP:动态主机配置协议
- 采用C/S报文适用UDP风状态,端口号67、68
- 服务器监听:67
- 客户端监听 :68
优点:效率高,灵活性强、易于管理
工作过程
发现阶段
-
DHCP客户端发送discover报文,发现网络中的DHCP服务器,源地址为0.0.0.0.目的IP地址为255.255.255.255,DHCP服务器接收到后,回复响应报文,客户端根据此获得DHCP服务器的位置
-
注意DHCP报文的广播标志位字段(flage,16bit),只是用了最高比特位(B位),其他固定为0
- 当B位0时,表示客户端希望服务器以单播的方式客户端发送DHCP offer报文
- 当B位1时,表示客户端希望服务器以广播的方式客户端发送DHCP offer报文
-
提供阶段
-
网络中的DHCP服务器接收到discover报文后,从地址池中选择一个合适的IP地址,连同IP地址租期,网关地址等信息通过DHCP offer报文发送给DHCP客户端,同时记录客户端的MAC地址和分配的IP地址的映射关系(租约记录)
-
如果是单播:
- 报文的源IP地址为server的IP地址,目的IP地址为分配给主机适用的IP地址。如果16s后没有接收到客户端的响应报文,则分配其他主机使用
选择阶段
- 如果DHCP客户端接收到多份DHCP offer报文,则选择最先接收到的offer报文,然后以广播方式发送DHCP request报文,该报文option54(服务器标识选项),用于告知网络中其他DHCP server,客户端选择了那个服务器提供的IP地址信息
确认阶段
-
当DHCP服务器接收到DHCP客户端恢复的request报文,则根据request报文中携带的MAC地址查看有没有对应的租约记录
- 如果有,则回复DHCP ack报文,客户端接收到后发送免费的ARP检测网络中是否有其他客户端在使用
- 如果没有,则回复NAK报文,客户端重新发送discover报文申请新的IP地址
DHCP报文参数
OP:1B,取值1或2,表示消息类型
- 客户端请求报文:1
- 服务器响应报文:2
htype:1B,表示硬件地址类型,如果为以太网,用1表示
hlength:1B,表示硬件地址的长度,如果为以太网,用6表示
hops:跳数,客户端配置为0,每经过一台DHCP中继器,跳数+1
xid:4B,事务ID,由客户端随机产生,用来表示请求和响应报文的关联性
seconds:2B,有客户端填充,表示从客户端开始使用该IP地址或者续租后所使用了的秒数
flags:2B,只有最高比特位(B位)使用,其他都未使用,固定为0
ciaddr:4B,客户端的IP地址,由客户端填充,只有客户端Bound、renew、rebinding状态,并且能响应ARP请求时,才能被填充
yiaddr:4B,服务器给客户端分配的IP地址,由服务器填充
diaddr:4B,DHCP服务器的IP地址,由服务器填充
giaddr:4B,表示第一个DHCP中继器的接口IP地址,由第一跳DHCP中继器填充
- 当DHCP客户端和服务器处于不同网段,DHCP客户端的去请求报文在经过DHCP中继器时,会将DHCP中继器的IP地址填充到该字段,DHCP服务器接收到填充该字段的请求后,则会根据此地址选择地址池分配IP地址
- 此字段只会在第一个中机器上进行填充,后续再经过其他DHCP中继时,该地址不改变,只是hops+1
chaddr:16B,表示客户端的MAC地址,DHCP服务器会为不同的chaddr分配可用的IP地址
- 需要和 上面的Htype/Hlength两字段匹配
snme:64B,DHCP服务器名字,可选,由服务器填充,如填充,必须是以0结束的字符串
file:128B,DHCP客户端的启动配置文件名,可选,由服务器填充,如填充,必须是以0结束的字符
options:可选项,采用TLV结构
DHCP的消息类型
option 53:携带消息类型
- type=1:DHCP discover报文
type=2:DHCP offer报文
type=3:DHCP request报文
type=4:DHCP DCLINE报文
- 客户端发现服务器分配的IP地址存在冲突
type=5:DHCP ACK报文
type=6:DHCP NAK报文
type=7:DHCP release报文
type=8:DHCP inform报文
- 用于客户端向服务器请求更多详细配置参数
自定义选项
-
option 82:中继代理信息选项,华为自定义
-
该选项可以携带255个子选项,若定义了一个option 82,其中必须定义一个sub-option,目前常用的3个子选项
-
sub-option 1:circuit ID,电路标识子选项
- 主要用来表示DHCP客户端所处的vlan和接口信息,由DHCP中继器填充
-
sub-option 2:remote ID,代理远程标识子选项
- 主要用来标识客户端接入的中继器设备,一般为设备MAC地址
- 子选项1和2通常一起使用,用来标识DHCP客户端的位置
-
sub-option 5:link selection 链路选项子选项
- 主要用来携带DHCP 中继器的I怕地址,DHCP服务器给客户端分配与该地址相同网段的IP地址
-
该选项记录了DHCP客户端的位置,DHCP中继器接收到DHCP客户端发送给DHCP服务器的请求报文后,在该报文中添加option 82,并转发给服务器
-
管理员可以从option 82中获取客户端的位置信息,实现对客户端的安全和计费等控制
-
-
-
option 43:厂商特定信息选项
-
被携带在客户端发送的请求报文的option 55(携带客户端请求的参数选项列表)中,服务器接收到后,在响应报文中携带option 43,用于携带厂商指定信息
-
应用场景
- 在WLAN组网中,AP需要获取到AC的I怕地址用于建立CAPWAP隧道,但是AP与AC处于不同的网段,AP无法获取到AC的IP地址,可以通过option 43请求AC的IP地址
-