Wireshark分析DHCP数据包(准备WDS)

简介:

为什么要分析dhcp数据包呢?因为一般情况下,DHCP服务器也就下发一下网关地址,DNS,而使用PXE、WDS、MDT、等高级网络应用,需要dhcp服务器下发一些可选项的内容。

尤其是跨网关、三层交换等一些复杂环境,需要验证DHCP是否有正常下发这些可选项。以前常用的Fiddler,并不擅长进行这个数据包的分析。就用Wireshark吧。

一:安装

https://www.wireshark.org/

https://nmap.org/npcap/

https://www.winpcap.org/

上面三个地址,分别是wireshark、npcap、winpcap的官网。

安装wireshark必须配合一个pcap类的驱动才可以。

我以前用Fiddler的时候,用的是npcap,继续用它,因为听说Winpcap已经停止更新了。

安装没啥特别的。如果你只下载wireshark,那么安装的时候可以选择自动下载winpcap。

二:监听

 打开Wireshark,就是这个界面,选择一个需要捕获的网络连接即可。

我这里是用的WLAN,双击 选一下就可以了。

三:过滤器

 现代计算机已经进入互联网时代,各个后台程序,检查更新、保持连接、检查邮箱、检索通知……操作太多了,这里将不停的滚动被捕获的数据包。

我们将使用过滤器来过滤只显示我们需要的数据包,其他的数据包就不关心了,毕竟每次抓包分析,都是有特定的目的。

针对DHCP的数据包,过滤器输入bootp或者bootparams,只显示DHCP相关数据包。

四:捕获(抓包)

我们需要捕获完整的一次DHCP数据包,那么我们就需要先向DHCP服务器请求一次。

我们已经有IP地址了,再次请求前,应该先释放已请求的IP地址。

具体命令是:

ipconfig /release    #释放IP

ipconfig /renew      #申请DHCP获取IP

 

 

 这样我们就完成了一次释放IP,重新向DHCP服务器申请IP的过程。

 当我们看到右边有DHCP ACK这个类型的数据包后,就可以点左上角的红方块,停止抓包了。

五:分析

根据抓包的结果,我们一共看到了五个DHCP相关的数据包。

release,释放IP,也要跟DHCP服务器沟通,这个地址,服务器可以继续使用了。

discover,广播发现dhcp服务器,在没有ip地址的时候,我们和傻子一样,并不知道找哪个服务器申请IP,需要广播,大喊一声,我新来的,要个IP,你们谁管这个事呀?

offer,分配IP地址,仅仅是分配,客户端并没有开始使用这个IP地址,一是客户端没有确认,服务器不能把这个标记为已用,二是如果网络中有多个DHCP,都在相应客户端,那么客户端用了哪个呢?

request,请求使用,如果客户端收到网路上多台DHCP服务器的回应﹐只会挑选其中一个DHCP Offer(通常是第一个)并且向网路发送一个DHCP Request广播,告诉所有DHCP服务器它将指定接受哪一台服务器提供的IP位址。之所以要以广播方式回答,是为了通知所有的DHCP服务器,他将选择某台DHCP服务器所提供的IP地址, 同时,客户端还会发送一个ARP封包, 查询网路上有没有其他机器使用该IP地址, 如果发现该IP被占用, 客户端会发送一个DHCP Decline封包给DHCP服务器, 拒绝接受其DHCP Offer,并重新开始发送DHCP Discover信息。

ack,当DHCP服务器收到DHCP客户机回答的DHCP Request请求信息之后, 它便向DHCP客户机发送一个包含它所提供的IP地址和其他设置的DHCP Ack确认信息。以确认IP地址的正式生效。然后DHCP客户机便将其TCP/IP协议与网卡绑定,另外,除DHCP客户机选中的服务器外,其他的DHCP服务器都将收回曾提供的IP地址

六:验证服务器

 这里就是我们收到的DHCP可选参数66和67

 我是设置在openwrt里面了,具体设置位置在这里。

请忽略前后IP地址不一致的问题。这是两次实验才抓够的图。

原文地址:https://www.cnblogs.com/jackadam/p/14641763.html