1、DHCP协议
- DHCP(动态主机配置协议)是一个局域网的网络协议。
- 指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。
- DHCP采用UDP的68(客户端)和67(服务器)端口进行通信。
2、Wireshark抓包分析工具
Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是截取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。
3、Tcpdump抓包命令详解
tcpdump是Linux下一种网络抓包命令。
【常用选项】
-i tcpdump -i eth0 指定网络接口,any表示所有接口;
-nn tcpdump -nn 不解析IP地址和端口号的名称;
-c tcpdump -c 10 指定抓取包的数量;
-s tcpdump -s 0(不限制) 指定抓取包的大小;
-w tcpdump -w /1.pcap 指定保存的文件,后缀一般是.pcap;
【常用过滤条件】
host,src host,dst host
tcpdump -i eth0 host 10.10.10.30 抓取本机eth0网卡和主机10.10.10.30相关的包;
port,src port,dst port
tcpdump -i eth0 port 22 抓取本机eth0网卡和端口22相关的包;
and,or,not
tcpdump -i eth0 host 10.10.10.30 and port 22 抓取本机eth0网卡和主机10.30端口22相关的包;
4、DHCP报文类型
主要类型:
DHCP Discover(发现)、DHCP Offer(提供)、DHCP Request(请求)、DHCP Ack(确认)
其他类型:
DHCP Nak(拒绝)、DHCP Decline(IP冲突)、DHCP Release(释放)、DHCP Inform(网络配置)
DHCP Discover(发现)
此数据包由DHCP Client发送,采用广播的形式通知网络内的DHCP服务器自己需要获得一个IP地址。
DHCP Offer(提供)
DHCP服务器返回的DHCP offer,此报文携带了各种配置信息,包含了一个可以分配的IP地址,也可以包含DNS服务器的地址。
网络内可能有多个DHCP服务器,因此也可能收到多个offer。
DHCP Request(请求)
此数据包用于申请offer中给出的IP地址,此时仍然没有真正获得IP地址,所以仍然是广播形式发送。
DHCP Ack(确认)
DHCP服务器对客户端的REQUEST报文的确认,客户端收到此报文后,才算获得了 IP 地址和相关的配置信息。
DHCP Nak(拒绝)
服务器对客户端的 DHCP REQUEST 报文的拒绝响应报文。
比如:服务器对客户端分配的 IP 地址已超过使用租借期限(服务器没有找到相应的租约记录)
由于某些原因无法正常分配 IP 地址,则发送 DHCP NAK 报文作为应答(客户端移到了另一个新的网络)。
通知 DHCP 客户端无法分配合适 IP 地址。DHCP 客户端需要重新发送DHCP DISCOVERY 报文来申请新的 IP 地址。
DHCP Decline(IP冲突)
当客户端发现服务器分配给它的 IP 地址发生冲突时会通过发送此报文来通知服务器,并且会重新向服务器申请地址。
DHCP Release(释放)
客户端可通过发送此报文主动释放服务器分配给它的 IP 地址,当服务器收到此报文后,可将这个 IP 地址分配给其它的客户端。
DHCP Inform(网络配置)
客户端已经获得了 IP 地址,发送此报文的目的是为了从服务器获得其他的一些网络配置信息,比如网关地址、DNS 服务器地址等。
5、IP地址租期
DHCP服务器提供的每个IP地址都有租用期,在Offer报文中的IP Address Lease Time中可以看到。
租期时间过长会导致地址资源长期被占用;
租期过短会导致DHCP请求包过多,增加网络负担;
通常情况下,对DHCP客户端数量较大,且断开网络比较频繁的公共场所,一般把DHCP租期配置较短,这样IP地址能很快被回收,比如机场、商铺等。
6、IP地址续租过程
在租期还有1/2时,向DHCP服务器发送第一次DHCP Request报文;
1)如果收到服务器的DHCP Ack后,客户端的IP地址租期重新回满;
2)如果未收到Ack,可以继续使用该IP;
在租期还有1/4时,向DHCP服务器发送第二次DHCP Request报文;
1)如果收到Ack,租期回满;
2)如果未收到Ack,可以继续使用该IP;
在租期还有1/8时,向DHCP服务器发送第三次DHCP Request报文;
1)如果收到Ack,租期回满;
2)如果未收到Ack,租期结束后IP被回收;
7、DHCP抓包过程及包分析
[过程描述]
释放IP:DHCP Release
获取IP:DHCP Discover -- DHCP Offer -- DHCP Request -- DHCP Ack
1)安装tcpdump命令
# apt -y install tcpdump
2)开始抓包,指定保存路径
# tcpdump -i ens18 port 67 and port 68 -w /home/uos/Desktop/1.pcap
3)打开一个新的命令终端
释放dhcp获取的IP地址
# sudo dhclient -r
# ip a
从DHCP重新新获取IP地址
# sudo dhclient
# ip a
4)结束抓包命令后,用Wireshark工具打开保存的文件1.pcap
5)DHCP Release(释放)
客户端释放IP地址时产生的报文
6)DHCP Discover(发现)
客户端从DHCP获取IP地址时,客户端发送DHCP Discover广播报文,所以dst目标地址是255.255.255.255;此时客户端是没有IP的,所以src源IP地址是0.0.0.0;客户端src源端口68,dst目标端口67;另外,客户端会随机产生一个Transaction ID,之后收到的Offer报文中的Transaction ID如果与客户端的不一致,客户端会将Offer报文丢弃。
7)DHCP Offer(提供)
DHCP服务器收到来自客户端的报文后,会发送一个DHCP Offer包给客户端。
8)DHCP Request(请求)
9)DHCP Ack(确认)文章来源:https://www.toymoban.com/news/detail-629002.html
文章来源地址https://www.toymoban.com/news/detail-629002.html
到了这里,关于DHCP抓包-Wireshark分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!