网络命名空间不适用于 VPN

网络命名空间不适用于 VPN

我创建了一个网络命名空间(名为ppn)来在其中运行某些应用程序。这工作得很好,但是当我的商业 VPN(基于 OpenVPN)也启用时,流量似乎只是单向的。

对于网络命名空间的创建,遵循以下逻辑(也使用相同的 IP 地址):https://askubuntu.com/a/499850/820897

当 VPN 被禁用时,从网络命名空间 ping 8.8.8.8 可以正常工作:

sudo ip netns exec ppn ping 8.8.8.8

但是,当启用 VPN 时,尽管tcpdump -i tun0 host 8.8.8.8记录了 ICMP 回显请求,但我没有收到 ICMP 回显回复。

下面你可以找到我的 iptables 和 ip 路由列表:

  • wlo1 位于 192.168.2.106
  • tun0 位于 10.8.1.12

sudo iptables -S

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -s 5.180.62.60/32 -i wlo1 -j ACCEPT
-A INPUT -s 5.180.62.60/32 -i enp5s0 -j ACCEPT
-A INPUT -i wlo1 -j DROP
-A INPUT -i enp5s0 -j DROP
-A OUTPUT -d 5.180.62.60/32 -o wlo1 -j ACCEPT
-A OUTPUT -d 5.180.62.60/32 -o enp5s0 -j ACCEPT
-A OUTPUT -o wlo1 -j DROP
-A OUTPUT -o enp5s0 -j DROP

sudo iptables -t nat -S

-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-A POSTROUTING -s 192.168.163.0/24 -o wlo1 -j SNAT --to-source 192.168.2.106

ip路由

0.0.0.0/1 via 10.8.1.1 dev tun0 
default via 192.168.2.1 dev wlo1 proto dhcp metric 600 
5.180.62.60 via 192.168.2.1 dev wlo1 
10.8.1.0/24 dev tun0 proto kernel scope link src 10.8.1.12 
128.0.0.0/1 via 10.8.1.1 dev tun0 
169.254.0.0/16 dev tun0 scope link metric 1000 
192.168.2.0/24 dev wlo1 proto kernel scope link src 192.168.2.106 metric 600 
192.168.163.0/24 dev veth-b proto kernel scope link src 192.168.163.254 

sudo ip netns 执行 ppn ip 路由

default via 192.168.163.254 dev veth-a 
192.168.163.0/24 dev veth-a proto kernel scope link src 192.168.163.1

如何使网络命名空间在 VPN 下也能正常工作?

--------编辑--------

sysctl net.ipv4.ip_forward = 1在我的系统中

答案1

当数据包离开网络命名空间时,它们(在您的情况下)在网络中具有源地址192.168.163.0/24。在本地,路由回网络命名空间工作得很好,但是一旦数据包离开本地系统,您需要将此源地址转换为下一跳/网关知道如何路由回您的地址。

这就是表中链的-j SNAT作用。但是,在您的情况下,您只能将数据包离开接口。这就是为什么路由 via工作正常,但 via (VPN 接口)失败的原因。POSTROUTINGnatSNATwlo1wlo1tun0

当数据包通过 路由时tun0,它们仍然具有网络中的源地址192.168.163.0/24,并且您的 VPN 服务器不知道如何从该源地址返回数据包。

要解决此问题,您需要将SNAT数据包离开tun0接口。这里最简单的选择(因为粘合网络地址通常是动态的)是使用目标-j MASQUERADE

iptables -A POSTROUTING -t nat -s 192.168.163.0/24 -o tun0 -j MASQUERADE

相关内容