Openswan 隧道到远程公共 NAT 主机

Openswan 隧道到远程公共 NAT 主机

需要帮助才能使此 VPN 设置正常工作。
左手边。EC2:

  • eth0:10.0.0.100/EIP=1.1.1.1(即 NAT 的 IP)
  • eth1:10.0.0.200/EIP=2.2.2.2
  • 对等 ip/leftid:1.1.1.1

右手边。思科:

  • 对等 IP:3.3.3.3
  • 对等主机/右子网:3.3.3.30/32(公共 NAT 的 IP)

Cisco ACL:允许 IP 主机 3.3.3.30/32 主机 2.2.2.2(LH eth1)

  1. 隧道已开启,因为到 3.3.3.30 的出站 ping/telnet 数据包正在通过隧道,但没有回复/路由回来。
  2. 我需要在 IPTABLES 中设置 SNAT、DNAT 或伪装吗?

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

任何有用的建议都将不胜感激。

答案1

分享我的发现以解决我自己的问题,对其他人来说可能也有帮助。ipsec.conf
参数 leftsourceip 拯救了一切!:)
至少我的情况不需要 iptables NAT。
这是完全正常工作的 ipsec.conf
希望这对遇到类似问题的其他人有所帮助。

连接我的VPN

类型 = 隧道
forceencaps = 是
authby = secret
ike = 3des-sha1; modp1024
keyexchange = ike
ikelifetime = 86400s
phase2 = esp
phase2alg = 3des-sha1
salifetime = 3600s
pfs = no
auto = start
keyingtries = 3
rekey = no
left = %defaultroute
leftnexthop = %defaultroute
leftid = 1.1.1.1
leftsourceip = 2.2.2.2
right = 3.3.3.3
rightid = 3.3.3.3
rightsubnet = 3.3.3.30/32
rightnexthop = %defaultroute

答案2

分享您的发现确实对某些人有帮助!:)

解决了我所面临的确切问题!!

感谢您发布解决方案!

以下是我将数据包转发到另一端需要额外做的事情:

  • 在左侧,启用转发

    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 上的加密域 (leftsource)。例如 10.0.0.123,VPN 实例所属的 VPC 内同一冲突域中的 IP 需要出去并到达目的地。还允许任何现有的已建立或相关的会话通过。

    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 state --state RELATED,ESTABLISHED -j ACCEPT

    iptables -A 转发 -i eth1 -o eth0 -j 接受

相关内容