我有一个功能齐全的 ipsec 隧道:
Windows7_lan_mashine -> VPS_IPSEC (OpenVZ virtual machine)
我可以从 Win7 ping VPS_IPSEC,也可以从 VPS_IPSEC ping Win7
现在我尝试通过 ipsec 隧道从 Win7 ping 我的第二个互联网机器 VPS_TEST。
在 VPS_IPSEC 上我有:
net.ipv4.ip_forward=1
Chain POSTROUTING (policy ACCEPT 1 packets, 84 bytes)
0 0 ACCEPT all -- * venet0 192.168.88.0/24 0.0.0.0/0 policy match dir out pol ipsec
8 480 MASQUERADE all -- * venet0 192.168.88.0/24 0.0.0.0/0
通过 tcpdump -nni venet0 icmp,我在传出的 venet0 上看到
IP 192.168.88.251 > 194.67.209.193: ICMP echo request, id 54790, seq 1821, length 64
IP 185.69.52.31 > 194.67.209.193: ICMP echo request, id 54790, seq 1821, length 64
IP 192.168.88.251 > 194.67.209.193: ICMP echo request, id 54790, seq 1822, length 64
IP 185.69.52.31 > 194.67.209.193: ICMP echo request, id 54790, seq 1822, length 64
也就是说,我看到传出接口上有 ping,但没有重放,VPS_TEST 上也没有传入 icmp 流量(我通过 tcpdump 看到)。因此,所有 ping 流量都停留在 VPS_IPSEC 上。
到底是怎么回事??
如果有必要,我可以授予 VPS_IPSEC 的 root 访问权限
答案1
此问题与 OpenVz vps 限制有关。在 KVM vps 上运行相同的 ipsec 隧道可解决问题。