无通讯-ec2实例在不同子网中具有两个接口

时间:2018-09-02 09:56:50

标签: amazon-web-services amazon-ec2 routing rhel7

我一直坚持在AWS上看似简单的配置-向上旋转每个具有2个接口的VM,但是每个接口位于不同的子网中,并且我无法通过辅助接口进行通信。重要的一点:在VM内部,我可以与所有接口进行通信,只能在eth0上在公共/专用区域中的VM之间进行通信。

概述:

  • VPC 10.20.0.0/16
  • 公共区域:
      子网10.20.0.0/20中的
    • 管理界面
    • 子网10.20.48.0/20中的
    • 生产接口
  • 专用区:
      子网10.20.16.0/20中的
    • 管理界面
    • 子网10.20.64.0/20中的生产接口

网络ACL为打开/默认状态,所有接口都有一个安全组,该安全组允许从0.0.0.0/0进行ping

当我使用RHEL7.5启动虚拟机时,我具有以下ec2-user-data脚本来启动辅助接口:

cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-eth1
BOOTPROTO=dhcp
DEVICE=eth1
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
EOF

ifup eth1e

对eth0进行ping操作没有任何问题,对eth1进行ping挂起。

这是在专用区域中的VM上进行路由:

[ec2-user@ip-10-20-8-62 ~]$ ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9001
    inet 10.20.8.62  netmask 255.255.240.0  broadcast 10.20.15.255

[ec2-user@ip-10-20-8-62 ~]$ ifconfig eth1
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9001
    inet 10.20.53.116  netmask 255.255.240.0  broadcast 10.20.63.255

[ec2-user@ip-10-20-8-62 ~]$ ip route
default via 10.20.0.1 dev eth0 proto dhcp metric 100
default via 10.20.48.1 dev eth1 proto dhcp metric 101
10.20.0.0/20 dev eth0 proto kernel scope link src 10.20.8.62 metric 100
10.20.48.0/20 dev eth1 proto kernel scope link src 10.20.53.116 metric 101

[ec2-user@ip-10-20-8-62 ~]$ ip rule
0:  from all lookup local
32766:  from all lookup main
32767:  from all lookup default

与私有区域中的VM相同:

[ec2-user@ip-10-20-19-55 ~]$ ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9001
    inet 10.20.19.55  netmask 255.255.240.0  broadcast 10.20.31.255

[ec2-user@ip-10-20-19-55 ~]$ ifconfig eth1
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9001
    inet 10.20.68.48  netmask 255.255.240.0  broadcast 10.20.79.255

[ec2-user@ip-10-20-19-55 ~]$ ip route
default via 10.20.16.1 dev eth0 proto dhcp metric 100
default via 10.20.64.1 dev eth1 proto dhcp metric 101
10.20.16.0/20 dev eth0 proto kernel scope link src 10.20.19.55 metric 100
10.20.64.0/20 dev eth1 proto kernel scope link src 10.20.68.48 metric 101

[ec2-user@ip-10-20-19-55 ~]$ ip rule
0:  from all lookup local
32766:  from all lookup main
32767:  from all lookup default

请让我知道是否可以提供其他信息,我已经花了太多时间试图使其正常工作。进行这种设置的原因是我们公司的内部政策。而且以后我还需要使其与3个接口一起使用,因此尝试了解我在这里做错了什么。

1 个答案:

答案 0 :(得分:1)

正如我在AWS文档中所看到的那样,由于某种原因,您需要为辅助网络接口添加一个不同的路由表,辅助接口的AWS流量与主要接口的MAC保持联系,这是不允许的。

主网络接口和辅助网络接口都位于不同的子网中,默认情况下只有一个路由表。仅网络接口之一用于管理非本地子网流量。进入未使用默认网关配置的网络接口的任何非本地子网流量,都尝试使用具有默认网关的接口离开实例。不允许这样做,因为辅助IP地址不属于主要网络接口的媒体访问控制(MAC)地址。

请按照此guide解决此问题。

我已经在CentOS 7中对其进行了测试,并且可以正常工作。