Openswan隧道到远程公共NAT'd主机

需要帮助这个VPN设置工作。
左手。 EC2:

  • eth0:10.0.0.100/EIP=1.1.1.1(即NAT'd IP)
  • ETH1:10.0.0.200/EIP=2.2.2.2
  • Peer ip / leftid:1.1.1.1

右手。 思科:

  • 对等ip:3.3.3.3
  • 对等主机/ rightsubnet:3.3.3.30/32(公共NAT'd IP)

思科ACL:permit ip host 3.3.3.30/32主机2.2.2.2(LH eth1)

  1. 因为到3.3.3.30的出站ping / telnet数据包正在通过隧道,而不是回复/路由回去,所以隧道处于UP状态。
  2. 我是否需要在IPTABLES中设置SNAT,DNAT或伪装。

基本上,LH的目标是使用公共NAT的IP到达对等主机。

任何有用的提示表示赞赏。

分享我的研究结果来解决我自己的问题,并可能为一些。
ipsec.conf param leftsourceip保存了一天! 🙂
至less我的情况没有需要iptables NAT。
这是完全正常工作的ipsec.conf
希望这对其他碰到类似问题的人有所帮助。

conn myVPN

types=隧道
forceencaps = YES
authby =秘密
IKE = 3DES-SHA1; modp1024
keyexchange = IKE
ikelifetime = 86400秒
阶段2 =尤
phase2alg = 3DES-SHA1
salifetime = 3600秒
PFS =无
汽车=启动
keyingtries = 3
密钥更新=没有
左=%defaultroute
leftnexthop =%defaultroute
leftid = 1.1.1.1
leftsourceip = 2.2.2.2
右= 3.3.3.3
rightid = 3.3.3.3
rightsubnet = 3.3.3.30 / 32
rightnexthop =%defaultroute

分享你的发现确实有助于某人! 🙂

修正了我正面临的确切问题!

感谢您发布解决scheme!

这是我需要另外做转发数据包到另一边:

  • 在左侧,启用转发

    echo 1> / proc / sys / net / ipv4 / ip_forward

  • 分配EIP(1.1.1.1)并关联到AWS实例上的eth0接口

  • 将另一个EIP(2.2.2.2)添加到同一个实例的eth1接口
  • 将leftsourceip(2.2.2.2)地址设置为子接口eth1:1
  • 将eth0设置为默认网关

    Centos – 将“GATEWAYDEV = eth0”添加到/ etc / sysconfig / network

  • 在AWS控制台的两个实例接口上将源/目标检查设置为禁用

  • iptables SNAT规则来重写数据包的源头,以便来自eth1上的本地AWS主机的任何内容似乎来自eth1上的encryption域(leftsource)。 例如10.0.0.123,VPN实例所属VPC内同一个冲突域内的IP需要外出去到目的地。 也允许任何现有的已build立或相关的会话通过。

    iptables -t nat -A POSTROUTING -o eth0 -s 10.0.0.123 -j SNAT -to-source 2.2.2.2

    iptables -A FORWARD -i eth0 -o eth1 -m状态 – 状态RELATED,ESTABLISHED -j ACCEPT

    iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT