PCAP 过滤器如何捕获所有与 DHCP 相关的流量?

PCAP 过滤器如何捕获所有与 DHCP 相关的流量?

据我了解,对于 IPv4,我需要捕获

  • UDP 端口 67 和 68,
  • 地址地址解析协议,
  • ICMP 回显请求和答复,

对于 IPv6,我需要

  • UDP 端口 546 和 547,
  • 所有与 DHCP 相关的多播地址,
  • ICMPv6 邻居发现。

我想使用 tcpdump 或 wireshark 捕获 DHCP 相关流量以供后续分析。

虽然我想使过滤器尽可能具体以获得较小的捕获文件,但我不想错过一些重要的数据包,例如用于验证 IP 地址尚未被占用的数据包。

我是否遗漏了什么?

答案1

我选择了以下 PCAP 过滤器:

( udp and ( port 67 or port 68 ) )
or arp
or ( icmp and (icmp[icmptype] == 8 or icmp[icmptype] == 0 ) )
or ( udp and ( port 546 or port 547 ) )
or ( icmp6 and ( ip6[40] == 135 or ip6[40] == 136 ) )
or dst net ff02:0:0:0:0:1:ff00::/104
or dst host ff01::1
or dst host ff02::1
or dst host ff02::1:2
or ( icmp6 and ( ip6[40] == 128 or ip6[40] == 129 ) )

前三行捕获 DHCPv4、ARP(重复地址检测)和 PING。

第四行捕获 DHCPv6,第五至第八行捕获 IPv6 的重复地址检测。第九行捕获 DHCPv6 代理的多播,最后一行用于 PING6。

当然,这会捕获许多与 DHCP 流量无关的数据包。这些必须在事后进行整理。

也许根本不需要 PING 和 PING6 流量。

答案2

过滤器port 67 or port 68将为您提供 DHCP 对话本身,这是正确的。

过滤器arp应捕获子网上的 arp 流量。这本质上是广播,因此可以从子网上的任何端口捕获。

并且您已经概述了 ICMP 请求。

我想说你有一个完整的清单。

答案3

您希望过滤所有 BOOTP 流量,因为 DHCP 使用 BOOTP 作为通信协议。请参见:

https://wiki.wireshark.org/DHCP

相关内容