我遇到了一个问题:我以前有一个提供 L2TP 连接的 VPN 服务器,我将其升级到 IKEv2。一切顺利,多平台客户端可以正确访问它,没有问题。我在 vpn-up 和 vpn-down 调度程序脚本中添加了一条路由:ip route add to default dev tun0 proto static scope link metric 50
问题出现在当服务的某个客户端从使用带有 NetworkManager 的 Strongswan 的 Unbuntu 机器上使用 Docker 时,在这种情况下容器会表现出以下奇怪的行为:
如果我连接到此机器的容器,我会启动 google.fr traceroute,我注意到容器没有考虑到隧道的存在,如果我连接到 L2TP,情况并非如此,我清楚地看到正确的网关的传输。另一方面,如果我重新启动机器,连接到我的 IKE 服务,断开连接然后连接到 L2TP,断开连接然后重新连接到 IKE,那么 traceroute 会正确地引导我通过隧道。
我对 id 220 路由表进行了不同的测试,但没有成功,我尝试根据上述描述重现路由元素,在它可以正常工作的情况下为第一个连接进行设置,但没有任何效果。
我比较了 iptables 规则在有效和无效情况下的表现,发现它们是相同的。我还比较了我们通过 sysctl -a 观察到的参数,我没有看到任何值得注意的元素,sysctl net.ipv4.ip_forward 确实等于 1。
我已经接近比赛的尾声了,如果有人有什么想法可以告诉我,我会很感兴趣!
我在 Ubuntu 18、Ubuntu 22、Debian 11 和 12 上得到了这个,在我的测试机器上我有:
- 网络管理器 1.36.6-0ubuntu2
- 网络管理器配置连接-ubuntu 1.36.6-0ubuntu2
- 网络管理器-l2tp 1.20.8-1~ubuntu22.04.1~ppa1.1
- 网络管理器-l2tp-gnome 1.20.8-1~ubuntu22.04.1~ppa1.1
- 网络管理器-openvpn 1.8.18-1
- 网络管理器-openvpn-gnome 1.8.18-1
- 网络管理器-pptp 1.2.10-1
- 网络管理器-pptp-gnome 1.2.10-1
- 网络管理器-strongswan 1.5.2-1
- networkd-manager-dispatcher 2.1-2ubuntu0.22.04.2