这应该是一个非常简单的问题,但我无法通过谷歌找到答案!
我在 1.1.1.1 和 2.2.2.2(公网 IP)之间建立了一个 ipsec VPN 隧道。第一台机器(1.1.1.1)有一个网关为 10.253.0.93 的 LAN。在这个 LAN 中,有一台 IP 为 172.21.83.60 的机器(网关已经制定了将流量从 10.252.0.93 转发到 172.21.83.60 的规则)。
在机器2.2.2.2上,我可以正常ping通10.252.0.93。这证明VPN已经正确建立。
我的问题是:我需要做什么才能从 2.2.2.2 ping 机器 172.21.83.60?我尝试使用命令添加路线:
route add -net 172.21.83.0 netmask 255.255.255.0 gw 10.253.0.93
但得到:
SIOCADDRT: No such process
答案1
至于 NAT,您是否使用 iptables 对流量进行 NAT?您不应该这样做(流向 ipsec 隧道的流量应该绕过 NAT 规则,如下所示:
iptables -t nat -A POSTROUTING ! -d <ipsec_lan> -j SNAT --to-source <ip>
Linux 中的 ipsec vpn 可以实现低级流量路由和加密,你可以看到它
ip xfrm state
另外,尝试选择 ping 源的接口,可能会有所帮助。