我应该使用哪种 Wireshark 过滤器来跟踪网络上的 IPv6 DNS 服务器广告?我在网络上看不到任何 DHCPv6 流量,因此我假设客户端的配置是通过路由器广告进行的。
但是,当我使用以下过滤器((icmpv6.type == 134 ) || dhcpv6
)查看 Wireshark 中的所有路由器通告和 DHCPv6 消息时,我可以看到我首选的 DNS 服务器通过路由器通告来宣传自己。
ICMPv6 Option (Recursive DNS Server DNS:Server:Address)
Type: Recursive DNS Server (25)
Length: 3 (24 bytes)
Reserved
Lifetime: 118
Recursive DNS Servers: DNS:Server:Address
我的路由器也会发送路由器通告,但这些消息中没有任何 RDNSS 内容。有一些 DHCPv6 消息,但它们只是客户端发送的请求。
我看到客户端除了我首选的 DNS 服务器之外还配置了不同的 DNS 服务器(我的路由器地址),我很困惑他们从哪里获得该设置。
我还可以在哪里寻找 DNSv6 广告?
更新:正如@vidarlo 指出的那样以下,我看到的是 ICMPv6 路由器通告中的 RDNSS 选项,而不是 DHCPv6。我设法找到了路由器上禁用 RDNSS 的设置,该设置位于标有 DHCP 的接口内。我已禁用此功能,然后使用 Wireshark 检查以监视它们。Wireshark 筛选包含 RDNSS 选项的数据包,icmpv6.opt.rdnss
我可以看到我的路由器不再发送带有此设置的数据包。
但是,我的 Windows 和 macOS 客户端仍然会不时决定使用路由器进行 IPv6 DNS 解析,并忽略 PiHole 发出的 RDNSS 选项。在禁用路由器中的 RDNSS 设置几周后,这种情况仍然会发生,并且不再有带有该设置的数据包,尽管 PiHole 将其自己的地址作为 RDNSS 选项发送,所有设备都多次重新启动,并确认没有手动设置。
更新 2:在我的 Mac 上切换 IPv6 后,我从 wireshark 过滤器中看到icmpv6.opt.rdnss || dhcpv6
我的路由器和 PiHole 服务器都使用自己的 IP 地址作为 DNS 服务器来响应 DHCPv6 请求,因此我的客户端使用他们首先收到的任何数据包 - 典型的 DHCP 竞争情况。这解释了问题。TP-Link 太丢脸了,竟然没有在所有路由器中禁用 DHCPv6!
答案1
答案2
使用 Wireshark 使用以下过滤器查找 DHCPv6 和 ICMPv6 路由器通告:
icmpv6.opt.rdnss || dhcpv6.option.type == 23
然后,您可以看到 IPv6 客户端可能用来设置要使用的 DNS 服务器的所有数据包的详细信息。
请注意,您可能只会看到响应 DHCPv6 设置请求的这种性质的 DHCPv6 数据包,因此请在客户端上切换 IPv6 以触发此功能。