我有一台运行 OpenVPN 的 Fedora 服务器。tun 模式下的 VPN 可通过 IPv4 和 IPv6 访问,并成功将所有 IPv4 流量路由到 OpenVPN 服务器。但路由 IPv6 流量不起作用。有什么建议吗?这是我的设置:
服务器接口的 IPv6 地址:
ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
inet6 MYPREFIX::/65 scope global
valid_lft forever preferred_lft forever
tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
inet6 MYPREFIX:8000::1/65 scope global
valid_lft forever preferred_lft forever
我认为服务器配置的相关部分是:
port 1194 # actually, I use another port
proto udp6
dev tun
topology subnet
server 10.8.0.0 255.255.255.0
server-ipv6 MYPREFIX:8000::/65
push "redirect-gateway def1 bypass-dhcp"
push "route-ipv6 2000::/3"
push "dhcp-option DNS 8.8.8.8"
persist-key
persist-tun
似乎有一些正确的路线到达客户端:
$ ip -6 r
CLIENT_ISP_NET::/64 dev wlp3s0 proto ra metric 600 pref medium
CLIENT_ISP_NET::/56 via fe80::HOME_AP dev wlp3s0 proto ra metric 600 pref medium
MYPREFIX:: via fe80::HOME_AP dev wlp3s0 proto static metric 600 pref medium
MYPREFIX:8000::1 dev tun0 proto kernel metric 256 pref medium
MYPREFIX:8000::/65 dev tun0 proto kernel metric 256 pref medium
2000::/3 via MYPREFIX:8000::1 dev tun0 proto static metric 50 pref medium
fe80::HOME_AP dev wlp3s0 proto static metric 600 pref medium
fe80::/64 dev wlp3s0 proto kernel metric 256 pref medium
fe80::/64 dev tun0 proto kernel metric 256 pref medium
default dev tun0 proto static metric 50 pref medium
default via fe80::HOME_AP dev wlp3s0 proto static metric 600 pref medium
但ping -6 google.de
odercurl -L6 google.de
被阻塞并且什么也没有发生。
在我sysctl -w net.ipv6.conf.all.forwarding=1
在服务器上执行此操作后,ping 行为保持不变,而 curl 给出curl: (7) Failed to connect to google.de port 80: Permission denied
。
我目前认为防火墙设置有问题,但我不知道。使用的防火墙是firewalld(Fedora 上的默认防火墙)。对于 IPv4,我启用了伪装,因此firewalld 自动配置了所有转发。对于 IPv6,情况有所不同,因为没有伪装。到目前为止,几篇博客文章中的某些直接 iptables 规则没有帮助。不知道问题出在哪里。