为什么 Linux Tun 接口不返回 ICMPv6 Echo 回复?

为什么 Linux Tun 接口不返回 ICMPv6 Echo 回复?

我编写了一个连接到 TUN 接口并回复 ICMPv6 Echo 请求的程序。

尽管我可以在 TUN 接口上使用 tcpdump 成功观察到回显和回复,但回复似乎没有被发送回 ping 命令(在同一台计算机上运行)。

我已启用 IPv6 转发,并且可以成功 ping 通 tun0 接口。

是什么阻止我的回显回复发送回 ping6 命令?

平命令:

ping6 fd02:c0de::2

ifconfig 输出(为了清楚起见,省略了其他接口):

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet6 addr: fd02:c0de::1/64 Scope:Global
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12 errors:0 dropped:2090 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:0 (0.0 B)  TX bytes:1248 (1.2 KB)

tcpdump 输出:

14:23:57.229106 IP6 fd02:c0de::1 > fd02:c0de::2: ICMP6, echo request, seq 1295, length 64
    0x0000:  6000 0000 0040 3a40 fd02 c0de 0000 0000
    0x0010:  0000 0000 0000 0001 fd02 c0de 0000 0000
    0x0020:  0000 0000 0000 0002 8000 19d5 2f22 050f
    0x0030:  4d11 c155 0000 0000 e57e 0300 0000 0000
    0x0040:  1011 1213 1415 1617 1819 1a1b 1c1d 1e1f
    0x0050:  2021 2223 2425 2627 2829 2a2b 2c2d 2e2f
    0x0060:  3031 3233 3435 3637
14:23:58.151833 IP6 fd02:c0de::2 > fd02:c0de::1: ICMP6, echo reply, seq 1295, length 64
    0x0000:  6000 0000 0040 3aff fd02 c0de 0000 0000
    0x0010:  0000 0000 0000 0002 fd02 c0de 0000 0000
    0x0020:  0000 0000 0000 0001 8100 18d5 2f22 050f
    0x0030:  4d11 c155 0000 0000 e57e 0300 0000 0000
    0x0040:  1011 1213 1415 1617 1819 1a1b 1c1d 1e1f
    0x0050:  2021 2223 2425 2627 2829 2a2b 2c2d 2e2f
    0x0060:  3031 3233 3435 3637

相关内容