通信人家园
标题:
DHCP协议原理及抓包分析
[查看完整版帖子]
[打印本页]
时间:
2019-9-17 23:45
作者:
zc7h
标题:
DHCP协议原理及抓包分析
DHCP
的作用:
DHCP 全称Dynamic Host configuration protocol
,动态主机配置协议。它可以为客户机
自动
分配
IP
地址、子网掩码以及缺省网
关
、
DNS
服务器的
IP
地址等
TCP/IP参数
,简单来说,就是在
DHCP服务器
上有
一个
数据库,存放着
IP地址、网关、DNS
等参数。当客户端请求使用时,服务器则负责将相应的参数
分配个
客户端,
避免客户端
手动指定
IP
地址等。特别是在一些大规模的网络中。客户端数目较多,使用
DHCP
可以方便对这些机器进行管理,为客户机提供
TCP/IP
参数配置,如
IP
地址、网关地址和
DNS
服务器等,不仅效率高,而且不存在
IP
地址冲突的情况现在的无线路由器默认都带有
DHCP
功能,也就是说一个无线路由器同时也是一个
DHCP
服务器。
DHCP
的工作过程
DHCP
的大致流程
为
下图所示
DHCP DISCOVER:
寻找服务器
当DHCP
客户端
第一次登录
网络的时候或者是开机的时候,此设备发
现
本机上
没有任何
IP
设定
,就会
网络
广播
去
寻找DHCP服务器
。由于客户端此时还不知道自己属于哪一个网路﹐所以封包的来
源地址会为
0.0.0.0
,
目的地址则为
255.255.255.255
,然后再附上
DHCP discover
的信息﹐向网路进行广播。 网络上每一台安装了
TCP/IP
协议的主机都会接收到这种广播信息,但只有
DHCP
服务器才会做出响应。
DHCP OFFER
分配
IP
地址
当
DHCP
服务器监听到客户端发出的
DHCP Discover
广播后,会针对这个客户端的硬件地址
(MAC)
与本身的设定数据来进行下列工作:
1
到服务器的登录文件中寻找该用户之前是否曾经用过某个
IP
,若有且该
IP
目前无人使用,则提供此
IP
给客户机;
2
若配置文件针对该
MAC
提供额外的固定
IP (static IP)
时,则提供该固定
IP
给客户机;
3
若不符合上述两个条件, 则随机取用目前没有被使用的
IP
参数给客户端,并记录下来。回应给客户端一个
DHCP OFFER
封包,由于客户端在开始的时候还没有
IP
地址﹐所以在其
DHCP Discover
封包内会带有其
MAC
地址信息﹐并且有一个
XID
编号来辨别该封包﹐
DHCP
服务器回应的
DHCP Offer
封包则会根据这些资料传递给要求租约的客户。根据服务器端的设定﹐
DHCP Offer
封包会包含一个租约期限的信息。但这里仅仅是分配,客户端还没有真正的使用
DHCP REQUEST
请求使用
如果客户端收到网路上多台
DHCP
服务器的回应﹐只会挑选其中一个
DHCP Offer(
通常是最先抵达的那个
)
并且向网路发送一个
DHCP Request广播
封包,告诉所有
DHCP
服务器它将指定接受哪一台服务器提供的
IP
位址。之所以要以广播方式回答,是为了通知所有的
DHCP
服务器,他将选择某台
DHCP
服务器所提供的
IP
地址, 同时,客户端还会发送一个
ARP
封包,查询网
路
上有没有其他机器使用该
IP
地址,如果发现该
IP被
占用,客户端会发送一个
DHCP Decline封包
给
DHCP服务器
,拒绝接受其
DHCP Offer,
并重
新
开始发送
DHCP Discover信息
。
DHCP ACK IP
地址分配确认
当
DHCP
服务器收到
DHCP
客户机回答的
DHCP Request
请求信息之后, 它便
向DHCP
客户机发送一个包含它
所
提供的
IP
地址和其他设置的
DHCP Ack确认
信息。以确认
IP
地址的正式生效。然后
DHCP
客户机便将其
TCP/IP
协议与网卡绑定,另外,除
DHCP
客户机选中的服务器外,其他的
DHCP
服务器都将收回曾提供的
IP
地址
重新登录
当DHCP
客户机分配到
IP后
,
每次
当
DHCP
客户
机
重新登录登录时,则不需要发送
DHCP Discover信息
了,而是直接发送包含前一次所分配的
IP
地址的
DHCP Request请求
信息。
当DHCP服务
器收到这一信息后,它会尝试
DHCP
客户机继续使用原来的
IP地址
,并回答一个
DHCP Ack确认
信息。如果此
IP地址
无法继续在分配给原来的
DHCP
客户机使用时
(
比如此
IP
地址以分配给其他
DHCP
客户机
)
,
则DHCP服务器
给
DHCP
客户机回答一个
DHCP NAck否认
信息。当原来的
DHCP
客户机收到此
DHCP NAck否认
信息后,它必须重新发送
DHCP Discover信息
来重新请求信的
IP
地址
更新租约
DHCP
服务器向
DHCP
客户机出租的
IP
地址一般都有一个租借期限,期满后
DHCP
服务器
便
会收回出租的
IP
地址,
如果DHCP
客户机要延长其
IP
租约,则必须更新其
IP
租
约
。
DHCP客户机
启动时和
IP
租约
期限
过
一半
时,
DHCP客户机
都会自动向
DHCP服务器
发送
其IP
租约的信息。
DHCP
客户机除了在开机的时候发出
DHCP Request请求
在外,
在使用租期超过
50%
时刻处,
DHCP
客户机
会以单播形式向
DHCP Server
发送
DHCP Request
报文来续租
IP
地址。如果
DHCP
客户机
成功收到
DHCP服务器
发送的
DHCP ACK
报文,则按相应时间延长
IP
地址租期;如果没有收到
DHCP服务器
发送的
DHCP ACK
报文,则
DHCP客户机
继续使用这个
IP
地址。在使用租期超过
87.5%
时刻处,
DHCP客户机
会以广播形式向
DHCP Server
发送
DHCP Request
报文来续租
IP
地址。如果
DHCP客户机
成功收到
DHCP服务器
发送的
DHCP ACK
报文,则按相应时间延长
IP
地址租期;如果没有收到
DHCP服务器
发送的
DHCP ACK
报文,则
DHCP客户机
继续使用这个
IP
地址,直到
IP
地址使用租期到期时,
DHCP Client
才会向
DHCP Server
发送
DHCPRelease
报文来释放这个
IP
地址
。
客户端
想提前
退
租
,可以随时发送
DHCP
Release
命令解约
时间:
2019-9-18 11:11
作者:
oooooooo
学习了,讲得很明白
通信人家园 (https://www.txrjy.com/)
Powered by C114