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

时间:2011-05-30 15:55:29

标签: routing routes openvpn ipsec

我有以下情况。两台主机使用Strongswan IpSec

通过Internet连接两个子网
  • 主机1为子网10.13.0.0/24的路由器
  • 主机2是租用的专用Ubuntu服务器,没有子网(ifconfig表示子掩码是Mask:255.255.255.255)
  • 主机2还使用OpenVpn托管另一个子网。该子网为192.168.23.0/24
  • 主机2在该子网上具有192.168.23.1作为IP。

什么时候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

在这里找到答案:http://www.freeswan.org/freeswan_trees/freeswan-1.99/doc/adv_config.html#multitunnel

有可能,有一些额外的配置。不幸的是,我不能控制另一方的配置,所以它对我没用。

2 个答案:

答案 0 :(得分:1)

它没有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

答案 1 :(得分:0)

mighq确定了问题,但是朝着错误的方向寻求解决方案(或者3年前,正确的方向难以实现)。

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

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