我正在尝试为以下用例设置AWS VPC:
我能够使用以下指南创建VPC:
https://aws.amazon.com/articles/2781451301784570
我已确认源自私有子网上的计算机的出站请求具有预期的NAT地址。虽然不一定与问题相关,但我还确认NAT实例根据需要正确地相互故障转移(对所提供的脚本进行了一些更新)。基本上,一切都在这里按预期工作。
问题是连接到私有子网上的Web客户端。我在这里尝试了一些不同的选项,包括为实例分配弹性IP和ELB产生相同的结果。收到实例的入站流量,但实例的响应正在通过NAT实例进行路由。
这是私有子网的示例路由表:
Destination Target Status Propagated
10.0.0.0/16 local Active No
0.0.0.0/0 eni-0e42d978 / i-1c0d43f7 Active No
这是公共子网的示例路由表:
Destination Target Status Propagated
10.0.0.0/16 local Active No
0.0.0.0/0 igw-e5429280 Active No
这是NAT实例上IP表配置的示例:
# Generated by iptables-save v1.4.18 on Fri Oct 3 19:08:18 2014
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [1:84]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Fri Oct 3 19:08:18 2014
对于来自私有子网的请求,这完全没问题,正如我们所期望的那样。对于源自公共互联网的请求,最终会从客户端不期望的IP地址路由响应,从而破坏任何尝试的HTTP连接。
有没有办法修改上面示例中的现有设置,以允许对实例的入站HTTP请求,以便通过ELB正确路由响应?