DHCP抓包-Wireshark分析

1、DHCP协议

  • DHCP(动态主机配置协议)是一个局域网的网络协议。
  • 指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。
  • DHCP采用UDP的68(客户端)和67(服务器)端口进行通信。

2Wireshark抓包分析工具

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相关的包;

4DHCP报文类型

主要类型:

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地址能很快被回收,比如机场、商铺等。

6IP地址续租过程
在租期还有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(确认)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值