EC2弹性IP在debian实例上不能parsing为私有IP

我已经在很多网站上看到,将多个公有IP地址附加到EC2实例(对于SSL,redirect,无论什么用途)的答案是创build多个私有IP地址,将弹性IP地址附加到上述私有地址,确保将私有IP地址ENI连接到EC2实例,最后确保在运行在EC2实例上的操作系统上创build并configuration相应的networking接口。

所以如果我的理解是正确的,只要私有IP地址链接到一个EC2实例,并随后在其上configuration,一个弹性IP将parsing到该私有IP地址,从而到该机器(如果networking接口是正确的在机器上设置并对应于所附的ENI)。

我不能为了我的生活,让这个工作。 我有一个新的ENI,有一个新的私有IP,附在我的实例上。 我有一个弹性(公共)IP连接到该ENI上的私有IP。

我使用私有IP在我的Debian 7计算机上创build了一个新的networking接口(eth1,由AWS在创build第二个ENI时分配),如下所示:

auto lo iface lo inet loopback auto eth0 eth1 iface eth0 inet dhcp iface eth1 inet static address xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx 

编辑:我也试过

 auto lo iface lo inet loopback auto eth0 eth1 iface eth0 inet dhcp iface eth1 inet dhcp 

我已经validation了私有IP地址和第二个接口通过“ifconfig”命令正确安装,该命令同时显示eth0和eth1。 我可以ping专用IP地址。 我有相应的公共IP设置在DNS(这是应该解决私有IP)。

长话短说,我不能ping一个名字,映射到我的第二个公共IP,或IP本身。 他们都超时。 我的防火墙允许ICMP请求,我的AWS安全组允许所有端口/主机入站和出站。

我究竟在想什么? 我已经坚持了近三天了。 我觉得我很接近,但一定是明显的。

 ping dev2.my.tld PING dev2.my.tld (xxx.xxx.xxx.xxx) 56(84) bytes of data. ^C --- dev2.my.tld ping statistics --- 4 packets transmitted, 0 received, 100% packet loss, time 3022ms 

我有类似的问题,但我能通过修改路由来解决它。 我不得不在我的/ etc / networking / interfaces文件中添加这些路由:

 auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp post-up ip route add default via gggg dev eth0 tab 1 post-up ip rule add from x1.x1.x1.x1/32 tab 1 priority 500 auto eth1 iface eth1 inet dhcp post-up ip route add default via gggg dev eth1 tab 2 post-up ip rule add from x2.x2.x2.x2/32 tab 2 priority 600 

其中x1.x1.x1.x1和x2.x2.x2.x2是我的私有IP地址。 gggg是从现有路由表中收集的IP。 为了得到它,在命令行上运行ip route showdefault via gggg dev eth0的IP

一旦我重新启动networking,一切工作。

我可以通过AWS上的以下论坛post将它们组合在一起: https : //forums.aws.amazon.com/message.jspa? messageID =404454

您不必对实例networking设置进行任何更改。 如果您configuration了EIP并将它们与您的ENI关联,那么它将起作用。 我build议你控制你的安全组设置。