如何在 Linux 上检查我的网络中正在发布哪个 IPv6

如何在 Linux 上检查我的网络中正在发布哪个 IPv6

我的 ISP 提供 IPv6 连接,但他们没有提及前缀长度。但是,我的路由器必须向网络通告某个前缀,才能进行 IPv6 配置。

Linux 上是否有命令可以检查计算机正在接收哪些路由器公告?

答案1

  • 使用rdisc6(来自“ndisc6”)发送路由器请求,它将立即显示广告。

    # rdisc6 -m wlan0
    

    (该-m选项告诉 rdisc6 在第一个 RA 之后继续等待,以防子网上有多个路由器。)

  • 作为一般方法,使用数据包捕获工具(例如tcpdump或)wireshark查看正在接收的数据包。IPv6 路由器通告只是常规数据包,而不是某种隐藏的带外数据。

    可以与所有基于 libpcap 的工具一起使用,icmp6[icmp6type] == icmp6-routeradvert或者icmp6单独使用,以过滤掉不需要的数据包。例如:

    # tcpdump -v -n -i eth0 icmp6
    # tcpdump -v -n -i eth0 "icmp6[icmp6type] == icmp6-routeradvert"
    # termshark -i eth0 -f icmp6
    

    Wireshark 和 tshark 也有一个“显示过滤器”,其功能相同(尽管您也可以使用捕获过滤器):icmpv6.type == 134

    # tshark -ni eth0 -f icmp6 -Y "icmpv6.type == 134" -VO icmpv6
    

    (这些-V -O icmpv6选项告诉 tshark 在打印数据包时扩展 ICMPv6 层。)

相关内容