Сервер недоступен на eth1 (дополнительный сетевой интерфейс) CentOS 7 на AWS EC2

Сервер недоступен на eth1 (дополнительный сетевой интерфейс) CentOS 7 на AWS EC2

Я создалCentOS7экземпляр наЕС2, установил необходимое мне приложение-программное обеспечение, назначено 1Эластичный IPк сетевому интерфейсу по умолчанию (eth0) и все это доступно.

Теперь я создал еще одинСетевой интерфейс, назначенЭластичный IPк этому и затем прикрепитеЭНИпосле этого к экземпляру. Теперь экземпляр недоступен наeth1(новый дополнительный сетевой интерфейс).

Я пробовал разные подходы, найденные в Google, создаваяifcfg-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"

решение1

Наконец, никто, кроме этого парня:https://www.internetstaff.com/multiple-ec2-network-interfaces-on-red-hat-centos-7/помог мне.

Для сохранения информации на случай, если ссылка в будущем станет недействительной, вот содержательная часть поста:

  1. Принудительно установите шлюз по умолчаниюeth0:

    Редактировать/etc/sysconfig/сетьи добавить:

    GATEWAYDEV=eth0
    

    Если этого не сделать, то шлюзом по умолчанию основной таблицы маршрутизации станет последний настроенный интерфейс, что вызвало странное поведение.

  2. Настройте каждый дополнительный интерфейс, который вы добавили:

    В/etc/sysconfig/network-scripts, создатьifcfg-этИксдля каждого нового интерфейса.

    Изменить:

    1. TheУСТРОЙСТВОимя, чтобы соответствоватьЭНИ.

      DEVICE="eth1"
      BOOTPROTO="dhcp"
      ONBOOT="yes"
      TYPE="Ethernet"
      USERCTL="yes"
      PEERDNS="yes"
      IPV6INIT="no"
      PERSISTENT_DHCLIENT="1"
      
  3. Добавьте индивидуальный маршрут для каждого дополнительного интерфейса.

    Снова в/etc/sysconfig/network-scripts, создатьмаршрут-ethИксфайл для каждого интерфейса.

    Изменить:

    1. Имя устройства.
    2. Увеличьте номер таблицы.
    3. Шлюз к шлюзу вашей подсети VPC.
    4. Измените исходный IP-адрес на назначенный внутренний сетевой адрес ENI.

      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, создатьправило-ethИксдля каждого интерфейса.

    Изменить:

    1. Увеличьте номер таблицы для соответствиямаршрут-ethИкс.
    2. Измените IP на назначенный внутренний сетевой адрес ENI.

      from 10.0.0.10/32 table 1
      

Перезапустите сетевую службу, и все должно заработать. Вы можете подтвердить это с помощьюправило 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использование основной таблицы маршрутизации по умолчанию не только работает, но и является более гибким.

Связанный контент