如何查看我的计算机收到的用于诊断目的的 IPv6 路由器通告?
大多数发行版是否有“内置”工具?
答案1
tcpdump
在许多发行版上默认安装了以下命令:
tcpdump -n -i eth0 icmp6
将向您显示所有 ICMPv6 数据包,其中在通常情况下几乎都是邻居发现数据包。为了仅查看路由器通告,请使用以下命令:
tcpdump -n -i eth0 icmp6 and ip6[40] == 134
如需更详细,请添加-v
;要显示数据包内容,请使用选项-X
。
tshark 通常与wireshark 捆绑在一起,大多数发行版默认情况下不会安装,而是作为附加包提供。
答案2
虽然不是内置的,但我发现命令行工具radvdump
(我的发行版上的软件包的一部分radvd
)非常有用,因为它可以完全解码路由器通告并详细显示它们,包括通告的 DNS 信息。
$ radvdump
interface eth0
{
AdvSendAdvert on;
# Note: {Min,Max}RtrAdvInterval cannot be obtained with radvdump
AdvManagedFlag on;
AdvOtherConfigFlag on;
AdvReachableTime 0;
AdvRetransTimer 0;
AdvCurHopLimit 64;
AdvDefaultLifetime 65535;
AdvHomeAgentFlag off;
AdvDefaultPreference medium;
AdvSourceLLAddress on;
AdvLinkMTU 1280;
AdvIntervalOpt on;
prefix 1111:2222:3333:4444::/64
{
AdvValidLifetime infinity; # (0xffffffff)
AdvPreferredLifetime infinity; # (0xffffffff)
AdvOnLink on;
...