我一直在试图弄清楚是否可以在CentOS VPS服务器上设置Hurricane Electric IPv6隧道,但不能将其设置为所有IPv6stream量的默认网关,还要能够使用/ 64子网通过隧道委托。
在本指南(其中一个Linode VPS)中使用CentOS 7示例进行了一些修改:
https://www.linode.com/docs/networking/set-up-an-ipv6-tunnel-on-your-linode
隧道不成为默认网关的原因是我有本地IPv6通过SLAAC和一个委托/ 64已经,但希望添加IPv6隧道作为故障转移场景/额外的IPv6networking路由的一点,以运行在此服务服务器。
我所看到的关于设置“he-ipv6”接口的所有configuration,基本上都接pipe了默认网关,这使得我的本地IPv6地址空间不能再ping到WAN端,但ping和traceroute之类的连接仍然在服务器,通过在testing上指定特定接口进行testing。
traceroute to ipv6.google.com (2a00:1450:400b:801::200e), 30 hops max, 80 byte packets 1 2a01:7e00::xxxx:xxxx:xxxx:xxxx (2a01:7e00::8678:acff:fe5a:1a41) 0.919 ms 1.358 ms 1.425 ms 2 2a01:7e00:7777:6::1 (2a01:7e00:7777:6::1) 0.832 ms 2a01:7e00:7777:1::1 (2a01:7e00:7777:1::1) 0.893 ms 2a01:7e00:7777:3::1 (2a01:7e00:7777:3::1) 2.858 ms 3 2001:7f8:4::3b41:1 (2001:7f8:4::3b41:1) 1.489 ms 1.489 ms 1.470 ms 4 2001:4860:0:1102::2 (2001:4860:0:1102::2) 1.768 ms 2001:4860:0:1103::3 (2001:4860:0:1103::3) 2.129 ms 2.306 ms 5 2607:f8b0:e000:8000::6 (2607:f8b0:e000:8000::6) 11.461 ms 2001:4860::c:4000:dd7a (2001:4860::c:4000:dd7a) 30.924 ms 30.940 ms 6 2001:4860::1:0:b04f (2001:4860::1:0:b04f) 12.182 ms 14.449 ms 13.446 ms 7 2001:4860:0:1::1223 (2001:4860:0:1::1223) 10.631 ms 10.818 ms 11.042 ms 8 dub08s01-in-x0e.1e100.net (2a00:1450:400b:801::200e) 11.695 ms 12.338 ms 11.674 ms
traceroute to ipv6.google.com (2a00:1450:400b:c00::8b), 30 hops max, 80 byte pac kets 1 jamesnetworks-3.tunnel.tserv1.lon2.ipv6.he.net (2001:470:1f1c:xxx::1) 5.321 ms 8.443 ms 11.440 ms 2 ge3-20.core1.lon2.he.net (2001:470:0:320::1) 11.657 ms 11.635 ms 11.610 ms 3 2001:7f8:4::3b41:1 (2001:7f8:4::3b41:1) 12.799 ms 12.776 ms 12.745 ms 4 2001:4860:0:1::2484 (2001:4860:0:1::2484) 12.380 ms 2001:4860:0:1103::3 (20 01:4860:0:1103::3) 13.500 ms 2001:4860:0:1103::2 (2001:4860:0:1103::2) 12.769 ms 5 2001:4860::c:4000:dd7a (2001:4860::c:4000:dd7a) 12.871 ms 2607:f8b0:e000:80 00::6 (2607:f8b0:e000:8000::6) 22.566 ms 2001:4860::c:4000:dd7a (2001:4860::c:4 000:dd7a) 13.663 ms 6 2001:4860::1:0:af90 (2001:4860::1:0:af90) 20.897 ms 11.010 ms 12.375 ms 7 2001:4860::2:0:b051 (2001:4860::2:0:b051) 12.114 ms 22.411 ms 11.200 ms 8 * * * 9 * * * 10 * * * 11 * * * 12 * * * 13 * * * 14 * * * 15 * * * 16 * * * 17 * * * 18 dg-in-x8b.1e100.net (2a00:1450:400b:c00::8b) 11.499 ms 11.035 ms 11.800 ms
我已经build立了隧道,并确认它的工作原理,但是当两个启用时,我的两个/ 64个IPv6地址空间都不起作用。 我正在寻找什么路由configuration我需要得到这个工作,可能稍微超出上面的文档涵盖范围的进一步指导。
eth0设备上的默认网关设置为:
default via fe80::1 dev eth0 proto ra metric 1024 expires 1796sec
当启用he-ipv6接口时,除了上面的内容外,还添加了这个接口:
default via 2001:470:1fxx:xx::1 dev he-ipv6 metric 1
度量值越高,所有的stream量都会尝试通过he-ipv6接口,这不是我想要的。 同样,有两个“默认”路线似乎是一个坏主意。
我想要做的是保持本地IPv6连接工作,同时使he-ipv6处于活动状态,并且可以通过隧道将stream量路由到configuration的IPv6地址(除了现有的/ 64从Linode。
我相信我需要在这里做一些静态路由,但不知道如何解决这个问题。
到目前为止,根据以下指导,能够正确控制指标,这就是IPv6路由表的样子:
unreachable ::/96 dev lo metric 1024 error -113 unreachable ::ffff:0.0.0.0/96 dev lo metric 1024 error -113 # Additional route added by he-ipv6 2001:470:1f1c:xxx::/64 dev he-ipv6 proto kernel metric 256 # Adding any IPv6 in the HE routed /64 to eth0 adds the route below 2001:470:1f1d:xxx::/64 dev eth0 proto kernel metric 256 unreachable 2002:a00::/24 dev lo metric 1024 error -113 unreachable 2002:7f00::/24 dev lo metric 1024 error -113 unreachable 2002:a9fe::/32 dev lo metric 1024 error -113 unreachable 2002:ac10::/28 dev lo metric 1024 error -113 unreachable 2002:c0a8::/32 dev lo metric 1024 error -113 unreachable 2002:e000::/19 dev lo metric 1024 error -113 # Linode SLAAC IPv6 2a01:7e00::/64 dev eth0 proto kernel metric 256 expires 14395sec 2a01:7e00:xxxx:xxx::/64 dev eth0 proto kernel metric 256 unreachable 3ffe:ffff::/32 dev lo metric 1024 error -113 # Having fe80::/64 for both interfaces seems wrong? fe80::/64 dev eth0 proto kernel metric 256 fe80::/64 dev he-ipv6 proto kernel metric 256 # eth0 (Linode IPv4/IPv6) default via fe80::1 dev eth0 proto ra metric 1024 expires 1795sec hoplimit 64 # he-ipv6 default via 2001:470:1f1c:xxx::1 dev he-ipv6 metric 1025
fe80::/64的两个引用在这里看起来不太合适,我不认为在这种情况下he-ipv6会需要这个集合,我可能需要额外的静态路由来允许路由/ 64地址在外部可访问。
任何意见或解决scheme,将不胜感激得到这个工作!
有两条默认路由是可以的,但正如Ron在评论中指出的那样,你几乎可以肯定希望它们有不同的度量标准,通常一个(可能是以太网接口)通常是首选的。
您将要编辑为he-ipv6接口添加的ifup脚本,并将METRIC=100添加到底部。 当出现隧道接口时,这应该导致两个默认路由,一个度量值为1,一个度量值为100的新路由。如果通过以太网端口的默认路由消失,则v6stream量将开始stream动通过隧道。
请记住,您可能还希望通过隧道接口添加一些额外的v6静态路由,具体取决于您希望通过HE访问的内容。
编辑: Redhat / CentOS不一致地实现/兑现各种界面脚本的METRIC值。 您当然可以修改这些脚本以包含此值,但从可操作性的angular度来看,这可能不是理想的,因为您需要跟踪上游对这些库存脚本所做的任何更改。
所以…你可以很容易的通过CLI来做到这一点:
sudo ip -6 delete default via 2001:470:1fxx:xx::1 dev he-ipv6 sudo ip -6 add default via 2001:470:1fxx:xx::1 dev he-ipv6 metric 100
你也可以通过创build一个名为/sbin/ifup-local的脚本来自动添加这个脚本,如下所示:
#!/bin/sh if [[ "$1" == "he-ipv6" ]] then sudo ip -6 delete default via 2001:470:1fxx:xx::1 dev he-ipv6 sudo ip -6 add default via 2001:470:1fxx:xx::1 dev he-ipv6 metric 100 else #DO_NOTHING fi
这应该在每个接口启动之后由CentOS自动调用,但是如果接口的字面意思是“he-ipv6”,那么它只会做任何事情。