如何查看我的電腦收到的用於診斷目的的 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;
...