我使用 OpenVPN TUN 网络。 IPv4 工作正常。但我添加了对 IPv6 的支持。我的 IPv6 连接有问题。 IPv6 只能在短时间内正常工作。当我从客户端 ping VPN 服务器上的 tun0 IPv6 地址时,我可以访问所有 IPv6 网站,并且可以从客户端 ping 其他 IPv6 地址。但在很短的时间内,我无法访问任何 IPv6 网站,并且我的客户端对其他 IPv6 地址的 IPv6 ping 不成功。当我再次从客户端 ping VPN 服务器上的 tun0 IPv6 地址时,短时间内一切正常。像客户端一样,我尝试了 Windows 8 和 Linux Debian 8。
我已经从我的公共 IPv6 地址 MY_PUBLIC_IPv6/64: 创建了 /67 子网MY_PUBLIC_IPv6:2000::/67
,我的 OpenVPN 服务器上的 tun0 有 IPv6: MY_PUBLIC_IPv6:2000::1/67
并且始终可以实现,没有任何问题。例如客户端有MY_PUBLIC_IPv6:2000::1000
.
我创建了 NDP 代理:
ip -6 neigh add proxy MY_PUBLIC_IPv6:2000::1 dev eth0
ip -6 neigh add proxy MY_PUBLIC_IPv6:2000::1000 dev eth0
我允许:
sysctl -w net.ipv6.conf.all.forwarding=1
sysctl -w net.ipv6.conf.all.proxy_ndp=1
我添加了 ip6tables 规则:
ip6tables -I FORWARD 1 -s MY_PUBLIC_IPv6:2000::/67 -i tun0 -o eth0 -m state --state NEW -j ACCEPT
ip6tables -I FORWARD 2 -d MY_PUBLIC_IPv6:2000::/67 -i eth0 -o tun0 -m state --state NEW -j ACCEPT
ip6tables -I FORWARD 3 -m state --state RELATED,ESTABLISHED -j ACCEPT
OpenVPN server.conf
(IPv6 部分):
proto tcp6-server
mode server
tls-server
ifconfig 10.1.1.1 10.1.1.30
ifconfig-pool 10.1.1.2 10.1.1.100
tun-ipv6
push tun-ipv6
ifconfig-ipv6 MY_PUBLIC_IPv6:2000::1 MY_PUBLIC_IPv6:2000::100
push "route 10.1.1.0 255.255.255.0"
push "route-ipv6 MY_PUBLIC_IPv6:2000::1/67"
push "route-ipv6 2000::/3"
push "setenv ipv6dns 2001:4860:4860::8888"
radvd配置文件:
interface tun0
{
AdvSendAdvert on;
prefix MY_PUBLIC_IPv6:2000::/67
{
};
};
我收到错误消息:radvd: no linklocal address configured for tun0