我有一个开放的堆栈虚拟机实例,从同一个子网中添加两个网卡。 两个nics都configuration为DHCP。 当我启动VM实例时,它在每个接口上获得一个DHCP IP。 我能够从该虚拟机实例内的同一networking和其他虚拟机中的其他虚拟机虚拟机中虚拟机实例。 当我将浮动IP分配给其中一个接口时,问题就来了。 如果将浮动IP分配给具有默认网关的接口,则可以从浮动IP访问虚拟机。
我有两个接口eth0广告eth1和私人DHCP IP分配
[#] ifconfig|egrep "Link encap|inet addr" eth0 Link encap:Ethernet HWaddr FA:16:3E:44:CA:E5 inet addr:10.0.0.13 Bcast:10.0.0.255 Mask:255.255.255.0 eth1 Link encap:Ethernet HWaddr FA:16:3E:DA:95:C5 inet addr:10.0.0.155 Bcast:10.0.0.255 Mask:255.255.255.0
以下是路由表:
[#] netstat -ar Destination Gateway Genmask Flags MSS Window irtt Iface 10.0.0.0 * 255.255.255.0 U 0 0 0 eth0 10.0.0.0 * 255.255.255.0 U 0 0 0 eth1 link-local * 255.255.0.0 U 0 0 0 eth0 link-local * 255.255.0.0 U 0 0 0 eth1 default host-10-0-0-1.s 0.0.0.0 UG 0 0 0 eth1
如果我将某些浮动IP与私有IP“10.0.0.55”(分配给eth1)相关联,并且默认网关也configuration在eth1之外,如上面的路由表中所示,那么我可以通过浮动IP访问VM。 但是,如果我将浮动IP与私有IP“10.0.0.13”(分配给eth0)相关联,则我无法通过浮动IP访问虚拟机。 现在,如果我删除这个默认路由,并添加新的路由与相同的网关,但这次使用接口eth0。 然后在连接浮动IP IP10.0.0.13(分配给eth0)时,我可以访问虚拟机,但现在不能访问虚拟机,如果我将浮动IP分配给私有IP“10.0.0155”(分配给eth1)。