Amazon web services 无通信-在不同子网中具有两个接口的ec2实例

Amazon web services 无通信-在不同子网中具有两个接口的ec2实例,amazon-web-services,amazon-ec2,routing,rhel7,Amazon Web Services,Amazon Ec2,Routing,Rhel7,我被AWS上看似简单的配置所困扰——每个虚拟机都有2个接口,但每个接口位于不同的子网中,我无法通过辅助接口进行通信。重要信息:在虚拟机内部,我可以与所有接口通信,在公共/私有区域的虚拟机之间-仅通过eth0 概述: 专有网络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是开放/默认的,所有接口都有一

我被AWS上看似简单的配置所困扰——每个虚拟机都有2个接口,但每个接口位于不同的子网中,我无法通过辅助接口进行通信。重要信息:在虚拟机内部,我可以与所有接口通信,在公共/私有区域的虚拟机之间-仅通过eth0

概述:

  • 专有网络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启动VM时,我有一个ec2用户数据脚本来启动辅助界面:

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

ifup eth1e

cat正如我在AWS文档总结中所看到的,您需要为您的辅助网络接口添加不同的路由表,因为在某种程度上,来自辅助接口的AWS流量与来自主接口的MAC一起离开,这是不允许的

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

请按此解决此问题


我已经在CentOS 7上测试过了,效果很好。

路由呢?@kintuparantu 10.20.0.0/16 local,如果有人愿意花时间测试如何使用
eth1
的默认设置,那么在vpcI中创建任何路由表时,都是默认设置。您能详细说明一下吗?在创建VM时,eth1没有配置,所以我认为我提供的脚本使用了通过dhcp进行的最小可能配置
[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
[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