路由问题 IPv6 客户端/服务器,其中服务器同时具有本机地址和隧道地址

路由问题 IPv6 客户端/服务器,其中服务器同时具有本机地址和隧道地址

我一直在尝试让 IPv6 在我的 Tap OpenVPN 网络上工作。服务器已经有 IPv6,但它只有 /64,可用的最大范围是 /116(这会破坏 autoconf)。我从 he.net 获取 6-in-4 /48 来为我的 VPN 提供地址。

IPv6 隧道端点

Server IPv6 Address:2001:470:xxxx:xxxx::1/64
Client IPv6 Address:2001:470:xxxx:xxxx::2/64

路由 IPv6 前缀

Routed 2001:470:yyyy::/48:

我的网络结构(互联网=>服务器=>客户端)是:

Internet
 ||
OpenVPN server
eth0 (Native ipv6): 2600:3c01::xxxx:xxxx:xxxx:xxxx/64
he-ipv6 (6-in-4): 2001:470:xxxx:xxxx::2/64
tap0 (VPN): 2001:470:yyyy:zzzz::1/64
 ||
OpenVPN client
wlan0 (ipv4)
tap0 (VPN - autconf): 2001:470:yyyy:zzzz:wwww:wwww:wwww:wwww/64

服务器配置:

server # ip -6 route
2001:470:xxxx:xxxx::/64 via :: dev he-ipv6  proto kernel  metric 256 
2001:470:yyyy:zzzz::/64 dev tap0  proto kernel  metric 256 
2600:3c01::xxxx:xxxx:xxxx:xxxx dev eth0  proto kernel  metric 256 
fe80::/64 dev eth0  proto kernel  metric 256 
fe80::/64 dev tap0  proto kernel  metric 256 
fe80::/64 via :: dev he-ipv6  proto kernel  metric 256 
default dev he-ipv6  metric 1024 
default via fe80::xxxx:xxxx:xxxx:xxxx dev tap0  proto kernel  metric 1024  expires 4748sec

客户端配置:

client # ip -6 route                                           
2001:470:xxxx:xxxx::/64 via 2001:470:yyyy:zzzz::1 dev tap0  metric 1 
2001:470:yyyy:zzzz::/64 dev tap0  proto kernel  metric 256  expires 86388sec
fe80::/64 dev wlan0  proto kernel  metric 256 
fe80::/64 dev tap0  proto kernel  metric 256 
default via fe80::xxxx:xxxx:xxxx:xxxx dev tap0  proto kernel  metric 1024  expires 5383sec hoplimit 64

Ping 结果

Internet => 2600:3c01::xxxx:xxxx:xxxx:xxxx           Works
Internet => 2001:470:yyyy:zzzz::1                    Works
Internet => 2001:470:yyyy:zzzz:wwww:wwww:wwww:wwww   Timed Out

Server => 2600:3c01::xxxx:xxxx:xxxx:xxxx             Works
Server => 2001:470:yyyy:zzzz::1                      Works
Server => 2001:470:yyyy:zzzz:wwww:wwww:wwww:wwww     Works
Server => 2404:6800:4006:802::1011 (ipv6.google.com) Works

Client => 2600:3c01::xxxx:xxxx:xxxx:xxxx             Works
Client => 2001:470:yyyy:zzzz::1                      Works
Client => 2001:470:yyyy:zzzz:wwww:wwww:wwww:wwww     Works
Client => 2404:6800:4006:802::1011 (ipv6.google.com) Destination unreachable: Address unreachable

客户端要怎样设置路由才能正常使用 ipv6 上网?

我知道客户端上应该有一个 dev tap0 的默认路由,但我试过的所有网关都没有起作用。我一直在尝试解决这个问题(通过研究和实验),但我还没有找到一个可行的解决方案(尽管似乎很接近)。

答案1

您确定问题出在客户端而不是服务器上吗?客户端路由看起来没问题。到 ipv6.google.com 的跟踪路由是否到达 2001:470:yyyy:zzzz::1?如果到达,则 IPv6 流量使用 VPN 作为其默认网关,并且您的客户端路由已全部设置。

我认为问题可能出在服务器上的 tap0 和 he-ipv6 之间转发数据包。我不太熟悉 OpenVPN,但通常这类事情除了路由表外还受策略控制。

我认为 OpenVPN 使用 iptables,因此允许两个 ipv6 接口之间双向转发需要这样的操作。

iptables -I FORWARD -i tap0 -o he-ipv6 -j ACCEPT
iptables -I FORWARD -i he-ipv6 -o tap0 -j ACCEPT

答案2

我最终改变了设置,因此这个问题不再适用。

但是,我认为您需要确保内核已设置为为所有设备转发 IPv6 数据包。

相关内容