DHCP客户端从DHCP服务器动态获取IP地址,主要通过四个阶段进行: (1) 发现阶段,即DHCP客户端寻找DHCP服务器的阶段。客户端以广播方式发送DHCP-DISCOVER报文。
(2) 提供阶段,即DHCP服务器提供IP地址的阶段。DHCP服务器接收到客户端的DHCP-DISCOVER报文后,根据IP地址分配的优先次序选出一个IP地址,与其他参数一起通过DHCP-OFFER报文发送给客户端。DHCP-OFFER报文的发送方式由DHCP-DISCOVER报文中的flag字段决定。
(3) 选择阶段,即DHCP客户端选择IP地址的阶段。如果有多台DHCP服务器向该客户端发来DHCP-OFFER报文,客户端只接受第一个收到的DHCP-OFFER报文,然后以广播方式发送DHCP-REQUEST报文,该报文中包含DHCP服务器在DHCP-OFFER报文中分配的IP地址。
(4) 确认阶段,即DHCP服务器确认IP地址的阶段。DHCP服务器收到DHCP客户端发来的DHCP-REQUEST报文后,只有DHCP客户端选择的服务器会进行如下操作:如果确认将地址分配给该客户端,则返回DHCP-ACK报文;否则返回DHCP-NAK报文,表明地址不能分配给该客户端。
DHCP有8种类型的报文,每种报文的格式相同,只是某些字段的取值不同。DHCP报文格式基于BOOTP的报文格式,具体格式如图所示(括号中的数字表示该字段所占的字节)。
各字段的解释如下:
op:报文的操作类型,分为请求报文和响应报文,1为请求报文;2为响应报文。具体的报文类型在option字段中标识。 htype、hlen:DHCP客户端的硬件地址类型及长度。
hops:DHCP报文经过的DHCP中继的数目。DHCP请求报文每经过一个DHCP中继,该字段就会增加1。
xid:客户端发起一次请求时选择的随机数,用来标识一次地址请求过程。
secs:DHCP客户端开始DHCP请求后所经过的时间。目前没有使用,固定为0。
flags:第一个比特为广播响应标识位,用来标识DHCP服务器响应报文是采用单播还是广播方式发送,0表示采用单播方式,1表示采用广播方式。其余比特保留不用。
ciaddr:DHCP客户端的IP地址。
yiaddr:DHCP服务器分配给客户端的IP地址。
siaddr:DHCP客户端获取IP地址等信息的服务器IP地址。 giaddr:DHCP客户端发出请求报文后经过的第一个DHCP中继的IP地址。
chaddr:DHCP客户端的硬件地址。
sname:DHCP客户端获取IP地址等信息的服务器名称。
file:DHCP服务器为DHCP客户端指定的启动配置文件名称及路径信息。
options:可选变长选项字段,包含报文的类型、有效租期、DNS服务器的IP地址、WINS服务器的IP地址等配置信息。
DHCP Server
Mac: cc00.0a.0000 Ip:192.168.1.1
DHCP client
Mac: cc01.0a.0000 Ip:dhcp
1. 客户端发discover
2. 服务器收到discover,从地址池选出地址192.168.1.2.选完地址以后,在发送
offer之前,会先发送ARP.
3. 接着服务器会发送offer
4. 客户端收到offer以后,回request
5. 服务器收到request,回ack
6. 客户端发免费ARP
免费ARP报文是一种特殊的ARP报文,该报文中携带的发送端IP地址和目标IP地址都是本机IP地址,报文源MAC地址是本机MAC地址,报文的目的MAC地址是广播地址。
设备通过对外发送免费ARP报文来实现以下功能:
确定其它设备的IP地址是否与本机的IP地址冲突。当其它设备收到免费ARP报文后,如果发现报文中的IP地址和自己的IP地址相同,则给发送免费ARP报文的设备返回一个ARP应答,告知该设备IP地址冲突。
设备改变了硬件地址,通过发送免费ARP报文通知其它设备更新ARP表项。
如果发免费ARP,发现重复的地址,则客户端会再发送广播
服务器端收到以后,会重新分发新的IP地址.
如果有DHCP代理,则代理和服务器之间是都是单播,而代理和客户端之间就像DHCP服务器直接和客户端之间一样,发送广播.
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- jqkq.cn 版权所有 赣ICP备2024042794号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务