• 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地址不一致的问题。这是两次实验才抓够的图。

  • 相关阅读:
    软件测试学习总结
    MySQL数据库中主键和索引的区别和联系
    什么是接口测试及其测试流程
    bug生命周期
    啊这...2-get/post请求区别,来给你看看post请求url中传参
    啊这...1-get/post请求区别,你还在认为get只能在url传参吗?传json格式会咋样?
    关于博客园全站内容审核中...如出现此问题:请移步xxx
    git-2-企业级gitlab的使用及管理工具Sourcetree
    fiddler-12-Proxifier+fiddler进行PC端抓包
    微信小程序弹出订阅消息确认弹窗的限制
  • 原文地址:https://www.cnblogs.com/jackadam/p/14641763.html
Copyright © 2020-2023  润新知