Routing Ping到IPsec主机上的子网仅适用于-I参数

Routing Ping到IPsec主机上的子网仅适用于-I参数,routing,routes,openvpn,ipsec,Routing,Routes,Openvpn,Ipsec,我有以下情况。两台主机使用IpSec通过Internet连接两个子网 主机1子网10.13.0.0/24的路由器 主机2是租用的专用Ubuntu服务器,没有子网(ifconfig说子网是掩码:255.255.255.255) 主机2还使用OpenVpn托管另一个子网。该子网为192.168.23.0/24 主机2在该子网上的Ip为192.168.23.1 当执行ping-I 192.168.23.1 10.23.23.23时,我可以到达其他服务器。当我ping 10.23.23.23时,它不

我有以下情况。两台主机使用IpSec通过Internet连接两个子网

  • 主机1子网10.13.0.0/24的路由器
  • 主机2是租用的专用Ubuntu服务器,没有子网(ifconfig说子网是掩码:255.255.255.255)
  • 主机2还使用OpenVpn托管另一个子网。该子网为192.168.23.0/24
  • 主机2在该子网上的Ip为192.168.23.1
当执行ping-I 192.168.23.1 10.23.23.23时,我可以到达其他服务器。当我ping 10.23.23.23时,它不起作用。在192.168.0./24网络中的所有其他客户端上,ping都可以工作

我必须添加哪个路由条目才能使其正常工作?因为现在主机本身无法到达另一端的客户端

进一步资料: host2有两个接口:eth0和tun0(用于openvpn)

host2上的ipconfig如下所示:

charonstart=yes
plutostart=yes
left=host2externalIp
leftsubnet=192.168.23.0/24
leftnexthop=host2router
right=remoteIp
rightsubnet=10.13.0.0/24

在这里找到了答案:


这是可能的,需要一些额外的配置。不幸的是,我无法控制另一端的配置,因此它对我不起作用。

它不会ping,因为从host2 ping时,ping将使用您的公共IP地址(来自eth0)作为源

IPSec的内核规则说,只有来自192.168.23.0/24=>10.13.0.0/24的流量通过该隧道

您需要添加NAT以使其工作,例如:

iptables -t nat -A POSTROUTING ! -s 192.168.23.0/24 -d 10.13.0.0/24 -j SNAT --to-source 192.168.23.1

mighq解决了这个问题,但却朝着错误的方向寻求解决方案(或许3年前,正确的方向太难实现)

问题:您已经将防火墙配置为允许出站数据包发送到默认网关,但您没有在网络列表中包括作为最终接口的端点

解决方案:通过/32或/128屏蔽网络将上行IP(路由器用于与默认网关通信的地址)添加到左/右网络列表中。

at的好人可能会更好地帮助您:)因此主要用于编程