我目前正在 EC2 上设置 QA 环境以及我们的生产环境。所有实例均在 VPC 设置内,具有以下子网:
10.0.83.0/24 - Production
10.0.81.0/24 - QA
我有一个作为网关机器运行的 EC2 实例,它已经有 2 个 NIC,这似乎是极限(一个 NIC 用于外部 IP,另一个用于内部)。我最初的计划是在子网中添加另一个 NIC 10.0.81.0/24
,但这似乎是不可能的。
因此,我的下一个计划是将新 IP 添加到现有的内部 NIC,从而得到以下配置:
eth1 Link encap:Ethernet HWaddr 06:84:b1:68:6a:72
inet addr:10.0.83.10 Bcast:10.0.83.255 Mask:255.255.255.0
eth1:0 Link encap:Ethernet HWaddr 06:84:b1:68:6a:72
inet addr:10.0.81.10 Bcast:10.0.81.255 Mask:255.255.255.0
然后确保虚拟 NIC 位于正确的安全组中。路由表看起来正确:
10.0.83.0 * 255.255.255.0 U 203 0 0 eth1
10.0.81.0 * 255.255.255.0 U 0 0 0 eth1
然后我为新地址设置了shorewall,并重新启动它:
/etc/shorewall/interfaces:
#ZONE INTERFACE BROADCAST OPTIONS
....
- eth1 10.0.83.255,10.0.81.255 logmartians
....
/etc/shorewall/hosts
#ZONE HOST(S) OPTIONS
loc eth1:10.0.83.0/24
qa eth1:10.0.81.0/24
/etc/shorewall/policy
#SOURCE DEST POLICY LOG LIMIT: CONNLIMIT:
# LEVEL BURST MASK
qa net ACCEPT
$FW qa ACCEPT
生成的 iptables 规则看起来很合理,但是我没有连接到10.0.81.0/24
子网(无论是 ping 还是 nmap)
有谁有在 EC2 中进行过这样的设置的经验,可以指出我遗漏的一些明显的东西吗?
答案1
我无法发表评论,但我想纠正其他答案。至少现在,“单个 EC2 实例现在可以连接到两个 ENI,每个 ENI 位于不同的子网上。ENI(而不是实例)现在与子网相关联。”
答案2
我认为您不能将弹性网络接口 (ENI) 别名化为另一个子网。您是否尝试过通过 AWS 控制台向其添加另一个私有 IP(右键单击实例并单击管理网络接口,或类似操作)?
此外,不同的实例对其可以拥有的接口数量也有限制。以下是一张表格:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI
答案3
您的 EC2 是在 10.0.83.0/24 子网中创建的。因此,您的 EC2 只能从此子网获得 ENI。这是放置规则。您的 EC2 无法看到不属于其的子网。