如何解决ipsec隧道-iptables假面舞会间歇性地工作
TL; DR-在我的ipsec隧道启动并运行了一段时间后,间歇性地,来自隧道另一端的MASQUERADE流量的iptables规则有时无法工作。
我在AWS中有一个专用子网,所有流量都需要通过我们数据中心中运行Centos 7.3的网关VM进行路由。网关VM位于数据中心防火墙之后,并且NAT位于公共IP之后。设置如下:
AWS subnet (10.10.101.0/24) <- ipsec tunnel -> Gateway VM (10.10.110.245)
我从AWS导出了OpenSwan的站点到站点VPN配置,并在网关VM上安装了ipsec。 ipsec.conf看起来像这样:
conn Tunnel1
type=tunnel
authby=secret
auto=start
left=%defaultroute
leftid=<Gateway VM public IP>
leftsubnets={10.10.110.245/32,0.0.0.0/0,}
right=<AWS IP>
rightsubnet=10.10.101.0/24
ikelifetime=8h
keylife=1h
phase2alg=aes128-sha1;modp1024
ike=aes128-sha1;modp1024
keyingtries=%forever
keyexchange=ike
dpddelay=10
dpdtimeout=30
dpdaction=restart_by_peer
我按照AWS指令配置sysctl:
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.default.accept_source_route = 0
然后将防火墙配置为伪装来自AWS子网的所有数据包:
iptables -t nat -A POSTROUTING -s 10.10.101.0/24 -j MASQUERADE
最后,我启动ipsec隧道。隧道已启动并正在运行,并且最初,AWS子网中的计算机可以连接到互联网(ping 8.8.8.8)。网关VM(10.10.110.245)上的Tcpdump显示了从AWS端到达的数据包,并且最初正确地伪装了VM的IP地址。
但是,经过一段时间(通常大约1个小时)之后,网关VM不再遵守iptables中的伪装规则。网关VM(10.10.110.245)上的Tcpdump显示了从AWS子网到达的ICMP数据包,发往8.8.8.8,但没有被伪装。因此,没有响应从远端返回。
发生这种情况时,/ var / log / pluto.log中的日志显示以下内容:
Sep 1 18:51:29.013427: "Tunnel1/2x0" #4: initiating Quick Mode PSK+ENCRYPT+TUNNEL+PFS+UP+IKEV1_ALLOW+IKEV2_ALLOW+SAREF_TRACK+IKE_FRAG_ALLOW+ESN_NO to replace #3 {using i
sakmp#1 msgid:6a19c08b proposal=AES_CBC_128-HMAC_SHA1_96-MODP1024 pfsgroup=MODP1024}
Sep 1 18:51:29.091604: "Tunnel1/2x0" #4: STATE_QUICK_I2: sent QI2,IPsec SA established tunnel mode {ESP/NAT=>0x694e0f34 <0xb094bfa2 xfrm=AES_CBC_128-HMAC_SHA1_96 NATOA=none NATD=<AWS_IP>:4500 DPD=active}
Sep 1 18:54:58.974795: "Tunnel1/1x0" #5: initiating Quick Mode PSK+ENCRYPT+TUNNEL+PFS+UP+IKEV1_ALLOW+IKEV2_ALLOW+SAREF_TRACK+IKE_FRAG_ALLOW+ESN_NO to replace #2 {using isakmp#1 msgid:53ff8204 proposal=AES_CBC_128-HMAC_SHA1_96-MODP1024 pfsgroup=MODP1024}
Sep 1 18:54:59.050329: "Tunnel1/1x0" #5: STATE_QUICK_I2: sent QI2,IPsec SA established tunnel mode {ESP/NAT=>0x0e9d2c4a <0xe1c78e2c xfrm=AES_CBC_128-HMAC_SHA1_96 NATOA=none NATD=<AWS_IP>:4500 DPD=active}
在18:54:59,从AWS子网对8.8.8.8的ping停止获得响应。
什么可能导致这种情况发生?我该如何解决?
我还注意到,如果在启动ipsec隧道后创建iptables伪装规则,则该规则将永远不会被兑现,数据包也不会被伪装。我认为这可能有关吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。