我一直在尝试让我的Tap在OpenVPNnetworking上运行IPv6。 服务器已经有了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:
我的networking结构(互联网=>服务器=>客户端)是:
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
服务器configuration:
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
客户configuration:
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
平结果
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上正常上网?
我知道应该有一个开发tap0客户端的默认路由,但没有网关,我已经尝试了工作。 我一直在努力解决这个问题(通过研究和实验),但是我还没有find一个可行的解决scheme(尽pipe这似乎很接近)。
你确定问题出在客户端而不是服务器上吗? 客户端路线看起来很好。 跟踪到ipv6.google.com的路线是否到达2001:470:yyyy:zzzz :: 1? 如果是,则IPv6stream量将使用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
我最终改变了设置,所以这个问题不再适用。
但是,我在想,您需要确保内核已经设置为所有设备转发IPv6数据包。