使用具有预先存在的 ipv6 地址的 ipv6 隧道服务

使用具有预先存在的 ipv6 地址的 ipv6 隧道服务

编辑:之前的路由表确实有效。问题出在 HE 在洛杉矶的服务器。我用纯 ipv4 服务器进行了测试,也没有用。所以我现在将问题改为如何使本机和隧道 IPv6 地址都能正常工作

我使用的服务器有一个 ipv6 地址。我使用了 HE 的 ipv6 隧道服务并按照给出的说明进行操作:

modprobe ipv6
ip tunnel add he-ipv6 mode sit remote server-ipv4 local client-ipv4 ttl 255
ip link set he-ipv6 up
ip addr add he-ipv6-addr-prefix::2/64 dev he-ipv6
ip route add ::/0 dev he-ipv6
ip -f inet6 addr

其中server-ipv4是 HE 服务器的 ipv4 地址,client-ipv4是我的服务器的 ipv4 地址,是 HE 给我的 ipv6 地址前缀(不包括 HE 服务器和我的服务器的he-ipv6-addr-prefix::最后一个地址)。12

通常在没有 ipv6 的服务器中,这就足够了。但在这里我需要做一些额外的工作。此时 HE ipv6 地址仍处于离线状态,而本机地址处于活动状态。ip -6 route给了

unreachable ::/96 dev lo metric 1024 pref medium
unreachable ::ffff:0.0.0.0/96 dev lo metric 1024 pref medium
he-ipv6-addr::/64 dev he-ipv6 proto kernel metric 256 pref medium
native-ipv6-prefix::/64 dev eth0 proto kernel metric 256 expires 2591931sec pref medium
unreachable 2002:a00::/24 dev lo metric 1024 pref medium
unreachable 2002:7f00::/24 dev lo metric 1024 pref medium
unreachable 2002:a9fe::/32 dev lo metric 1024 pref medium
unreachable 2002:ac10::/28 dev lo metric 1024 pref medium
unreachable 2002:c0a8::/32 dev lo metric 1024 pref medium
unreachable 2002:e000::/19 dev lo metric 1024 pref medium
unreachable 3ffe:ffff::/32 dev lo metric 1024 pref medium
fe80::/64 dev eth0 proto kernel metric 256 pref medium
fe80::/64 dev he-ipv6 proto kernel metric 256 pref medium
default via fe80::fc00:2ff:fe5b:f8c dev eth0 proto ra metric 1024 expires 1621sec hoplimit 64 pref medium

其中native-ipv6-prefix是本机 ipv6 地址的前缀,默认路由fe80::是本机设备的链路本地地址eth0

现在,如果我从路由表中删除最后一行,并将 HE 添加到默认行:ip route add ::/0 dev he-ipv6,则本机行将关闭,而 HE 行将可用。但这样,我无法让它们都正常工作。有什么办法吗?

相关内容