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(确认)

DHCP抓包-Wireshark分析相关推荐

  1. tcpdump抓包+wireshark分析配合使用(二)

      Tcpdump工具是Unix和Linux系统抓网络数据库包最有效的工具,windows上类似的工具是wireshark. tcpdump可以将网络中传送的数据包的"头"完全截获 ...

  2. 计算机网络实验 ——wireshark抓包简要分析TCP、UDP协议

    [计算机网络实验 --wireshark抓包简要分析TCP.UDP协议] (1)分析 TCPheader: Source Port:16bit源端口,数据发起者的端口号: Destination Po ...

  3. wireshark抓包日志分析--洗号空闲超时案例

    wireshark抓包日志分析 数千线高并发压测时,asr_ring洗号服务报错Session idle too long,意思是洗号这边一直没有收到音频数据直到超时报错.由于缺失日志线索,只能通过w ...

  4. Wireshark抓包——qq分析

    Wireshark抓包qq分析 Wireshark(前称Ethereal)是一个网络封包分析软件.网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料.Wireshark使用Wi ...

  5. 网络抓包wireshark

    网络抓包wireshark 抓包应该是每个技术人员掌握的基础知识,无论是技术支持运维人员或者是研发,多少都会遇到要抓包的情况,用过的抓包工具有fiddle.wireshark,作为一个不是经常要抓包的 ...

  6. 计算机网络抓包参考文献,计算机网络课程设计二(网络抓包与分析)

    <计算机网络课程设计二(网络抓包与分析)>由会员分享,可在线阅读,更多相关<计算机网络课程设计二(网络抓包与分析)(9页珍藏版)>请在人人文库网上搜索. 1.课程设计课程名称: ...

  7. iphone实用配置工具_Debookee for Mac(网络数据抓包及分析工具)

    Debookee for Mac(网络数据抓包及分析工具)​www.macw.com Debookee Mac破解版是MacOS上的一款非常不错的抓包软件,Debookee Mac破解版能够进行网络流 ...

  8. 网络抓包 wireshark

    网络抓包wireshark 抓包应该是每个技术人员掌握的基础知识,无论是技术支持运维人员或者是研发,多少都会遇到要抓包的情况,用过的抓包工具有fiddle.wireshark,作为一个不是经常要抓包的 ...

  9. xmpp协议抓包_开源网络抓包与分析框架学习-Packetbeat篇

    开源简介 packbeat是一个开源的实时网络抓包与分析框架,内置了很多常见的协议捕获及解析,如HTTP.MySQL.Redis等.在实际使用中,通常和Elasticsearch以及kibana联合使 ...

最新文章

  1. JDK5.0 特性-线程任务执行架构 ScheduledExecutorService
  2. windows 10 python哪个版本的好-windows支持哪个版本的python
  3. JS / 闭包的理解
  4. Java输出特定时间段特定格式时间信息
  5. .net 一些常用的工具来破解
  6. 阿里影业“灯塔平台”今日正式启动,阿里影视云解决方案强势推出
  7. Protel 格式网表转换 Allegro 格式网表的 Skill 程序
  8. 基于C语言实现比赛评分系统
  9. matlab 数据白化,数据白化
  10. Fedora34/35/36 软件闪退解决
  11. 分布式事务解决方案(一)Seata集成和使用
  12. 场内场外交易成本_场内基金与场外基金交易手续费是多少?怎么算?
  13. java标签用setbounds_setBounds的用法
  14. -atime、-ctime、mtime、-newer
  15. 1元体验京东云服务器
  16. 391、Java框架46 -【Hibernate - 查询HQL、查询Criteria、查询标准SQL】 2020.10.19
  17. 升级ios10默认ruby版本
  18. pytorch采用GPU加速方法
  19. 中康科技黄毅宁:AI+医疗,于我而言是圆梦
  20. 渲染算法学习(四)-- Environment Lighting

热门文章

  1. Serverless :让「前端开发者」走向「应用研发者」
  2. 关于 CPU 的多核和超线程技术
  3. linux下查看bios命令,Linux系统查看BIOS信息命令
  4. NDK版本、获取以及和ANDROID对应关系
  5. js 用ID获取元素
  6. silverlight安装后网页_iOS 14 下的新机遇:移动网页至应用广告
  7. html css 科技感异形边框,CSS边框外的小三角形+阴影效果的实现。
  8. 如何在keill中添加没有的芯片型号
  9. matlab 理想低通滤波器函数,理想滤波器、原型模拟滤波器和窗函数的特性matlab6...
  10. 如何下载广安门外街道卫星地图高清版大图