我的 ISP 默认提供 IPv6。但是,我的 ISP 的 IPv6 设置似乎有点奇怪,因为默认 IPv6 网关位于我的服务器子网之外。在 Linux 下,可以使用 设置到该网关的静态路由ip -6 route add <gateway ip> dev <interface>
。但是,这在 openbsd 上不起作用,有人知道 openbsd 上该命令的等效命令吗?或者有人知道解决此问题的其他方法吗?
答案1
将以下内容添加到 /etc/rc.conf:
ipv6_defaultrouter="<v6-gateway-ip>"
然后通过重启或运行重置网络
/etc/rc.d/network_ipv6 restart
或者你可以手动完成:
route -n add -inet6 default <v6-gateway-ip>
答案2
我知道三种解决这个问题的方法:
- 查找网关的另一个 IPv6 地址。它可能已为接口分配了多个地址。使用哪一个作为网关并没有什么区别,只要邻居发现可以将其解析为正确的 MAC 地址即可。
- 添加静态路由,指定包含该 MAC 地址的前缀直接连接到给定的以太网接口。即使您自己没有该前缀中的地址,这也应该有效。除非您有非常特殊的原因,否则您应该为该静态路由使用 /128。
- 为网关创建一个 IPv6 地址,并将其手动插入到邻居缓存中。只有当您知道网关的 MAC 地址并且它保持固定时,此方法才有效。这应该适用于任何可以手动创建邻居缓存条目的操作系统,但我只在 Linux 上测试过它。
答案3
这看起来像是网络配置错误。IPv6 中每个网段的默认路由器都包含在路由器公告中。查看他们在 RA 中给您的内容,它应该是链路层 (fe80:...) IPv6 地址。
如上所述,您可以覆盖该设置,但您不必这样做。