通过VPN隧道的ipv6

我有一个困扰了我一段时间的ipv6问题。 ( 通过VPN的IPv6路由 )的目标是使用HurricaneElectric v6隧道在我的笔记本电脑上获取v6,无论我在哪里使用我的VPN。

我会在这里过分详细的,所以解决。

networking布局:

svr1vpnlaptop

  • svr1是一个带有静态v4和HE的ipv6隧道的Linux OpenVPN客户端。

  • vpn是一个Linux的OpenVPN服务器(除其他外)。 它有一个dynamic的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

我想要什么:

HEsvr1 —( vpn )— laptop

问题的关键在于我能做到这一点,但只有在一定的条件下才能做到这一点。

例如,我连接了一切,ping6 2001:470:a:ed :: 2(和更高版本)是ICMP无法访问。 只要我ping6 2001:470:a:ed :: 20(下一跳)。 这种问题在我第一次在srv1上build立隧道的时候就存在了,但是在接口声明中增加了“度量1”,似乎就消失了。 不过,我已经在vpn上复制了这个,尽pipe我还没有testing过“metric 1”组件。 我一直无法find OSX上的“公制”命令,但我发现有一些与OSX上的ipv6有问题的人

我正在寻找某种解决scheme。 我宁愿静态路由,没有额外的前缀,但在这一点上,我愿意尝试任何事情。 我已经尝试过radvd,vpn上的ipv6,前缀(尽pipe可能不正确)。 我几乎没有ipv6的经验,所以假设我什么也不知道。

所有你的路由表( ip -6 ro )和更精确的描述什么(ping)工作,什么不能很好地理解正在发生的事情,

但我可以猜测你在srv1(sysctl的net.ipv6.conf.all.forwarding )或ip6tables(可能有一个默认的DROP策略)上有ipv6转发设置的问题。

解决scheme是隧道代理隧道和它们提供的路由 / 64之间的区别。 这个寻址scheme是正确的。

接口:

  • HE网关:2001:470:a:ed :: 1

  • svr1 v6:2001:470:a:ed :: 2

  • srv1-tap:2001:470: b :ed :: 1

  • laptop-tap:2001:470: b :ed :: 2