如何使用 Wireshark 追踪 IPv6 DNS 服务器配置?

如何使用 Wireshark 追踪 IPv6 DNS 服务器配置?

我应该使用哪种 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

这通常是 RA 消息的一部分: RA 消息

这应该由发送路由器公告消息的主机发送,并且您可能应该配置用于使用适当的 DNS 服务器发送 RA 的机制。

如果没有配置这样的消息,则您的主机可能具有静态定义的 IPv6 DNS 服务器,或者未在 IPv6 上使用 DNS。

答案2

使用 Wireshark 使用以下过滤器查找 DHCPv6 和 ICMPv6 路由器通告:

icmpv6.opt.rdnss || dhcpv6.option.type == 23

然后,您可以看到 IPv6 客户端可能用来设置要使用的 DNS 服务器的所有数据包的详细信息。

请注意,您可能只会看到响应 DHCPv6 设置请求的这种性质的 DHCPv6 数据包,因此请在客户端上切换 IPv6 以触发此功能。

相关内容