服务器无法通过eth1访问(其他networking接口)AWS EC2上的CentOS 7

我在EC2上创build了一个CentOS 7实例,安装了我所需要的应用软件,分配了1个弹性IP到默认networking接口( eth0 ),并且都是可访问的。

现在我创build了另一个networking接口 ,为它指定一个Elastic IP ,然后将ENI附加到实例。 现在,实例在eth1 (新增的networking接口)上不可访问。

我已经尝试过在google上创buildifcfg-eth1 / etc / sysconfig / network-scripts但是没有运气的各种方法。

为了获得帮助,这是ifconfig -a (IP被屏蔽)的输出:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 9001 inet 1XX.3XX.2XX.4XX netmask 255.255.240.0 broadcast 1XX.3XX.2XX.4XX inet6 fe80::2e:a1ff:fe01:c763 prefixlen 64 scopeid 0x20<link> ether 02:2e:a1:01:c7:63 txqueuelen 1000 (Ethernet) RX packets 219 bytes 28188 (27.5 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 284 bytes 31055 (30.3 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth1: flags=4098<BROADCAST,MULTICAST> mtu 1500 ether 02:78:73:34:66:35 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 0 (Local Loopback) RX packets 23 bytes 4968 (4.8 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 23 bytes 4968 (4.8 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 

这是从ip地址

 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP qlen 1000 link/ether 02:2e:a1:01:c7:63 brd ff:ff:ff:ff:ff:ff inet 1XX.3XX.2XX.4XX/20 brd 1XX.3XX.2XX.4XX scope global dynamic eth0 valid_lft 3404sec preferred_lft 3404sec inet6 fe80::2e:a1ff:fe01:c763/64 scope link valid_lft forever preferred_lft forever 3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000 link/ether 02:78:73:34:66:35 brd ff:ff:ff:ff:ff:ff 

我的/ etc / sysconfig / network-scripts / ifcfg-eth0文件有这些内容:

 DEVICE="eth0" BOOTPROTO="dhcp" ONBOOT="yes" TYPE="Ethernet" USERCTL="yes" PEERDNS="yes" IPV6INIT="no" PERSISTENT_DHCLIENT="1" 

最后,除了这个人之外,没有人能够帮助我: https : //www.internetstaff.com/multiple-ec2-network-interfaces-on-red-hat-c​​entos-7/ 。

为了保存信息,如果链接在将来变得无效,这里是来自post的富有成效的内容:

  1. 强制您的默认网关是eth0

    编辑/ etc / sysconfig / network并添加:

     GATEWAYDEV=eth0 

    不这样做,主路由表的默认网关设置为最后一个要configuration的接口,导致一些奇怪的行为。

  2. configuration您添加的每个附加界面:

    / etc / sysconfig / network-scripts中 ,为每个新接口创build一个ifcfg-eth X.

    修改:

    1. DEVICE名称与ENI匹配。

       DEVICE="eth1" BOOTPROTO="dhcp" ONBOOT="yes" TYPE="Ethernet" USERCTL="yes" PEERDNS="yes" IPV6INIT="no" PERSISTENT_DHCLIENT="1" 
  3. 为每个附加接口添加一个自定义路由。

    再次在/ etc / sysconfig / network-scripts中 ,为每个接口创build一个route-eth X文件。

    修改:

    1. 设备名称。
    2. 增加表号。
    3. 您的VPC子网网关的网关。
    4. 将源IP更改为ENI分配的内部networking地址。

       default via 10.0.0.1 dev eth0 table 1 10.0.0.0/24 dev eth0 src 10.0.0.10 table 1 
  4. 同样在/ etc / sysconfig / network-scripts中 ,为每个接口创build一个rule-eth X.

    修改:

    1. 增加表号以匹配route-eth X。
    2. 将IP更改为ENI的分配的内部networking地址。

       from 10.0.0.10/32 table 1 

重新启动networking服务,您应该启动并运行。 你可以用ip规则来确认:

 # ip rule 0: from all lookup local 32764: from 10.0.0.10 lookup 3 32765: from 10.0.0.11 lookup 2 32766: from all lookup main 32767: from all lookup default 

请注意,Amazon为eth0提供了一个自定义路由和规则,但是我们发现允许eth0使用默认的主路由表不仅工作而且更灵活。