IPv6 仅在 ping 到路由盒后工作

Fic*_*cik 8 linux routing ipv6

情况:

我们的网络中有一个仅 ipv4 的路由器,每台计算机都连接到它(wifi 或电缆)。一台带有 ipv4 和 ipv6 的服务器也连接到这个路由器。该服务器已配置了用于 6to4 隧道和 radvd 的隧道代理。网络中的客户端具有正确的前缀,可以通过 ipv6 互相 ping 通。但是在他们第一次 ping 服务器(有隧道的那个)之前,他们不能 ping 到互联网。我在某处发现这是一个 icmp 问题,但我找不到解决方案。

是路由器只有ipv4的问题吗?

  • 服务器和客户端运行 linux
  • 路由器在没有 ipv6 支持的情况下运行 dd-wrt ​​:(

平尝试:

Standa@standa-laptop:~$ ping6 ipv6.google.com
PING ipv6.google.com(2a00:1450:8007::69) 56 个数据字节
^C
--- ipv6.google.com ping 统计 ---
发送29个数据包,接收0个,100%丢包,时间28223ms

Standa@standa-laptop:~$ ping6 2001:470:XXXX:XXXX:21c:c0ff:fe2b:6478
PING 2001:470:XXXX:XXXX:21c:c0ff:fe2b:6478(2001:470:XXXX:XXXX:21c:c0ff:fe2b:6478) 56 个数据字节
64 字节来自 2001:470:XXXX:XXXX:21c:c0ff:fe2b:6478: icmp_seq=1 ttl=64 time=3.55 ms
64 字节来自 2001:470:XXXX:XXXX:21c:c0ff:fe2b:6478: icmp_seq=2 ttl=64 time=0.311 ms
64 字节来自 2001:470:XXXX:XXXX:21c:c0ff:fe2b:6478: icmp_seq=3 ttl=64 time=0.269 ms
64 字节来自 2001:470:XXXX:XXXX:21c:c0ff:fe2b:6478: icmp_seq=4 ttl=64 time=0.292 ms
^C
--- 2001:470:XXXX:XXXX:21c:c0ff:fe2b:6478 ping 统计 ---
发送 4 个数据包,接收 4 个数据包,0% 数据包丢失,时间 3000ms
rtt min/avg/max/mdev = 0.269/1.107/3.559/1.415 毫秒
Standa@standa-laptop:~$ ping6 ipv6.google.com
PING ipv6.google.com(2a00:1450:8007::69) 56 个数据字节
来自 2a00:1450:8007::69 的 64 个字节:icmp_seq=1 ttl=57 time=20.7 ms
来自 2a00:1450:8007::69 的 64 个字节:icmp_seq=2 ttl=57 time=20.2 ms
来自 2a00:1450:8007::69 的 64 个字节:icmp_seq=3 ttl=57 time=23.4 ms
^C
--- ipv6.google.com ping 统计 ---
发送 3 个数据包,接收 3 个数据包,0% 丢包,时间 2001ms
rtt min/avg/max/mdev = 20.267/21.479/23.413/1.392 毫秒

更新:Radvd 配置

接口 eth0 {
    AdvSendAdvert on;
    MinRtrAdvInterval 3; 
    MaxRtrAdvInterval 10;
    AdvLinkMTU 1280;
    前缀 2001:470:1f0a:1511:1::/64 {
    AdvOnLink 开启;
    AdvAutonomous on;
    AdvRouterAddr on;
    };
};

更新 2:无连接

ip -6 嘶嘶声
fe80::21c:c0ff:fe2b:6478 dev wlan1 lladdr 00:1c:c0:2b:64:78 路由器可达

有连接(ping后)

fe80::21c:c0ff:fe2b:6478 dev wlan1 lladdr 00:1c:c0:2b:64:78 路由器失效
2001:470:1f0a:1511::1 dev wlan1 lladdr 00:1c:c0:2b:64:78 路由器可达

ping 时发生邻居请求:

fe80::21c:c0ff:fe2b:6478 2001:470:1f0a:1511:21c:bfff:fe60:b389 ICMPv6 邻居请求
2001:470:1f0a:1511:21c:bfff:fe60:b389 fe80::21c:c0ff:fe2b:6478 ICMPv6 邻居广告

Jef*_*eff 2

客户端的前缀是否是手动分配的?通常他们应该通过邻居发现协议自动找到路由器(在此期间路由器发送广告并自动为其分配前缀),但听起来可能缺少该步骤。

此外,路由器通告应将其链路层地址作为选项包含在路由器通告的 ICMP 标头中。如果缺少该字段,客户端将不知道如何向路由器发送数据。听起来可能是这样。客户端不知道如何到达路由器,直到它发出邻居发现消息并从路由器接收到邻居通告(在 ICMP 消息集中带有路由器标志)。

要在路由器通告中包含源链路层地址,请将以下内容添加到 radvd.conf 中

AdvSourceLLAddress on;
Run Code Online (Sandbox Code Playgroud)