我遇到了一个 ipv6 问题,困扰我有一段时间了。(通过 VPN 进行 IPv6 路由) 目标是使用 HurricaneElectric v6 隧道通过 VPN 将 v6 传输到我的笔记本电脑上,无论我身在何处。
我将在这里详细描述,所以请放心。
网络布局:
svr1
--- vpn
---laptop
svr1
是一个具有静态 v4 和 HE 的 ipv6 隧道的 Linux OpenVPN 客户端。vpn
是一个 Linux OpenVPN 服务器(除此之外还有其它东西)。它有一个动态 v4 地址,因此不能与 HurricaneElectric 的隧道一起使用。laptop
是一台 OSX 笔记本电脑和 OpenVPN 客户端
接口:
HE 网关:2001:470:a:ed::1
svr1 v6:2001:470:a:ed::2
srv1-tap:2001:470:a:ed::20
笔记本电脑水龙头:2001:470:a:ed::99
我想要的是:
HE
--- svr1
--- (vpn
) ---laptop
问题在于我可以使这个设置工作,但只能在特定条件下。
例如,我连接了所有东西,ping6 2001:470:a:ed::2(及以后)时,ICMP 无法到达。当我 ping6 2001:470:a:ed::20(下一跳)时。当我第一次在 srv1 上设置隧道时,这种问题就存在了,但似乎在接口声明中添加“metric 1”后就消失了。然而,我已经在 上复制了这个问题vpn
,尽管我还没有测试“metric 1”组件。我无法寻找OSX 上的 'metric' 命令,但我发现很多人在 OSX 上遇到了 ipv6 问题
我正在寻找某种解决方案。我更喜欢静态路由,没有额外的前缀,但目前,我愿意尝试任何东西。我尝试过 radvd、vpn 上的 ipv6、前缀(尽管可能不正确)。我几乎没有 ipv6 经验,所以假设我什么都不知道。
答案1
所有路由表(ip -6 ro
)以及关于哪些 ping 有效、哪些无效的更精确描述将有助于理解正在发生的事情,
但我猜你在 srv1(sysctl net.ipv6.conf.all.forwarding
)上的 ipv6 转发设置方面遇到了问题,或者在 ip6tables 方面遇到了问题(可能存在默认DROP
策略)。
答案2
解决方案最终是隧道代理隧道和路由/64 他们提供。这个寻址方案是正确的。
接口:
HE 网关:2001:470:a:ed::1
svr1 v6:2001:470:a:ed::2
srv1-tap:2001:470:b:编辑::1
笔记本电脑水龙头:2001:470:b:编辑::2