我希望通过仅支持 IPv4 的 ISP 的路由器获取 LAN PC 的 IPv6 地址。
我有一个 dd-wrt 路由器。我已使用 Hurricane Electric 设置了 IPv6 隧道(http://tunnelbroker.net/)。
有效的方法:
我可以从路由器 ping6 到 IPv6 地址,从路由器外部可以使用其隧道 IPv6 地址进行 ping。我还为路由器 LAN iface 设置了一个 IPv6 地址,并使 radvd、转发规则和 sysctl 为我的 LAN 工作,以获得给定 /64 范围内的地址。我在 Windows 7 和 Ubuntu 上也获得了 IPv6 IP(不是 fe80: 而是 2001:)。Windows 7 本身运行良好,但几乎总是丢失第一个 ping 数据包,但之后其他数据包都正常。这也很奇怪,但不是一个大问题。
什么没有真正起作用:
Ubuntu 启动时无法工作,但如果我 ping 路由器的 LAN ifaces IPv6 地址,它会工作半分钟,然后停止。我发现如果我 ping LAN iface,邻居表会得到一个新行(ip -6 ne 输出):
2001:470:xxxx:xxxx:0:98fc:1148:4507 dev eth2 lladdr 98:fc:11:48:45:07 router REACHABLE
过了一会儿它就会变得不新鲜甚至消失。
我尝试手动将其添加到邻居表中,但它也变得陈旧或消失了。我应该怎么做才能让它永久起作用?
顺便说一下,我的 radvd 配置如下:
interface br0 {
MinRtrAdvInterval 3;
MaxRtrAdvInterval 10;
AdvLinkMTU 1480;
AdvSendAdvert on;
prefix 2001:470:xxxx:xxxx::/64 {
AdvOnLink on;
AdvAutonomous on;
AdvValidLifetime 43200;
AdvPreferredLifetime 43200;
};
};
谢谢你的建议。
但我无法让它只使用一个 /64 前缀来为 LAN 和 WAN 工作,所以我请求了一个 /48。这样,路由器的 WAN 接口和 LAN 接口就有了单独的 /64 前缀。这样,计算机就可以自动生成自己的地址,并且不会出现路由和网络问题。
答案1
尝试禁用 ip6tables。您可能阻止了 fe80 链路层地址、ICMP 消息或其他一些关键信息的交换。
还报告 tcpdump 在这段时间内显示涉及两个主机的 ipv6 流量的情况(通过 mac 地址搜索)。
一般来说,一旦 radvd 运行,它就会奇迹般地工作,除非你做了一些破坏它的事情。