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

Я создал экземпляр CentOS 7 на EC2 , установил необходимое приложение, назначил 1 эластичный IP-адрес к сетевому интерфейсу по умолчанию ( eth0 ), и все это доступно.

Теперь я создал еще один сетевой интерфейс , назначил ему эластичный IP-адрес , а затем прикрепил ENI к экземпляру. Теперь экземпляр недоступен на 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 addr :

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
задан 16 January 2017 в 21:07
1 ответ

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

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

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

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

     GATEWAYDEV = eth0
     

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

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

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

    Измените:

    1. Имя DEVICE для соответствия ENI .

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

    Снова в / etc / sysconfig / network-scripts создайте файл route-eth X для каждого интерфейс.

    Изменить:

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

       по умолчанию через 10.0.0.1 dev eth0 table 1
      10.0.0.0/24 dev eth0 src 10.0.0.10 таблица 1
       
  4. Также в / etc / sysconfig / network-scripts создайте rule-eth X для каждого интерфейса.

    Изменить:

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

       из 10.0.0.10/32, таблица 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 разрешает использовать основной таблица маршрутизации не только работала, но и стала более гибкой.

1
ответ дан 3 December 2019 в 23:36

Теги

Похожие вопросы