本地 IPv6 与 SixXS 隧道之间缺少链接

本地 IPv6 与 SixXS 隧道之间缺少链接

我从 SixXS 获得了一个 IPv6 隧道,我想在本地 FreeBSD 9.0 机器上使用它。我已使用 sixxs-aiccu 设置了 Aiccu 隧道,rtadvd 已开始运行。

只要我使用 gif0 隧道接口,我就可以实现 v6 连接。但 re0 和 gif0 之间似乎存在路由问题。

$ ping6 example.com
[...]
16 bytes from 2001:500:88:200::10, icmp_seq=0 hlim=53 time=156.963 ms

$ ping6 -I re0 example.com
ping6: sendmsg: No route to host
ping6: wrote example.com 16 chars, ret=-1

netstat -rn给我

2001:6f8:900:xxx::/64             link#6                        U           re0
2001:6f8:900:xxx::1               2001:6f8:900:xxx::2           UH         gif0
2001:6f8:900:xxx::2               link#13                       UHS         lo0
2001:6f8:900:xxx::3               link#6                        UHS         lo0

此时,很明显我必须在 ::3(机器的静态 v6 地址)和 ::2(隧道的我的一端)之间建立某种路由。

我该如何设置缺失的链接?

编辑正如 Michael 正确指出的那样,我在 rc.conf 和 rtadvd 中选择了错误的范围。现在我已将它们更改为正确的子网 2001:6f8:900:yxxx::。但我仍然遇到同样的问题。我的 rc.conf 如下所示:

ipv6_enable="YES"
ipv6_interfaces="auto"
ipv6_activate_all_interfaces="YES"
ipv6_gateway_enable="YES"
ipv6_defaultrouter="2001:6f8:900:xxx::2"
ipv6_ifconfig_re0="2001:6f8:900:yxxx::1 prefixlen 64"
sixxs_aiccu_enable="YES"
rtadvd_enable="YES"
rtadvd_interfaces="re0"
ip6addrctl_enable="YES"
ip6addrctl_policy="ipv6_prefer"
gateway_enable="YES

我究竟做错了什么?

答案1

你这样做是错的。

您的点对点隧道仅使用 /64 2001:db8:900:32::1(SixXS 的一端)和2001:db8:900:32::2(您的一端)两个地址。不应使用该 /64 中的其他地址。

您应该使用分配给您的单独的 /64 或 /48 子网配置您的本地网络(和 rtadvd),例如2001:db8:900:8032::/64

(另请确保您已gateway_enable="YES"/etc/rc.conf


看来你是明确地将您发送ping到错误的接口。我不知道您为什么会期望这样做。路由器上的 re0 没有到 2001:500:88:200::10 的路由;该地址只能通过 gif0 访问。除非您在某处有第二个路由器而您没有提到...

相关内容