Как добавить второй IPv4 Public IP к Amazon Linux EC2 instance

Вы можете попробовать определить, может ли iconv прочитать файл. Он менее эффективен, чем файл (который просто читает пару байтов с самого начала), но даст более надежные результаты:

ENCODING=utf-8
if iconv --from-code="$ENCODING" --to-code="$ENCODING" your_file.ext > /dev/null 2>&1; then
    echo text
else
    echo binary
fi

Это делает iconv практически бесполезным, но если он обнаружит недопустимые данные (недопустимый UTF-8 в этом примере), он отключится и выйдет.

2
08.03.2019, 23:45
1 ответ

Если вы не используете Windows или AWS Linux, вам потребуется настроить интерфейс вручную.

Launching an Amazon Linux or Windows Server instance with multiple network interfaces automatically configures interfaces, private IPv4 addresses, and route tables on the operating system of the instance.

В разделе Best Practicesтакже содержится предостережение о потенциальной проблеме, связанной с наличием двух интерфейсов (или более )в одной подсети.

If you attach two or more network interfaces from the same subnet to an instance, you may encounter networking issues such as asymmetric routing. If possible, use a secondary private IPv4 address on the primary network interface instead. For more information, see Assigning a Secondary Private IPv4 Address.

Предупреждение Следующие шаги представляют собой проанализированную версию второй ссылки, указанной ниже, ymmv.

Шаги, которые я выполнил для создания вторичного интерфейса, были:

  1. Создайте файл /etc/sysconfig/network -scripts/ifcfg -eth1 со следующим:

    DEVICE=eth1
    NAME=eth1
    HWADDR=<value of link/ether from "ip a" command>
    BOOTPROTO=dhcp
    ONBOOT=yes
    TYPE=Ethernet
    USERCTL=no
    NM_CONTROLLED=no
    
  2. Отредактируйте /etc/sysconfig/network и добавьте:

    GATEWAYDEV=eth0
    
  3. Предотвратите перезапись ваших изменений в облаке -init, отредактируйте /etc/cloud/cloud.cfg и добавьте:

    network:
     ; config: disabled
    
  4. Перезапустите сеть

    systemctl restart network
    
  5. Создать дополнительную таблицу маршрутизации

    ip route add default via <default route ip from "ip route" output> dev eth1 table <new table number>
    
  6. Добавить маршрут в новую таблицу

    ip route add <secondary private ip> dev eth1 table <new table number from above>
    
  7. Установите правило в базе данных политик

    ip rule add from <secondary private ip> lookup 1000
    
  8. Создайте файл статического маршрута /etc/sysconfig/network -scripts/route -eth1 и добавьте:

    default via <default route IP> dev eth1 table 1000
    <private ip> dev eth1 table 1000
    
  9. Создайте файл правил для правила -eth1 /etc/sysconfig/network -scripts/rule -eth1:

    from <secondary private ip> lookup <new table number>
    

ПРИМЕЧАНИЕ

На шаге 4 вы можете получить сообщение об ошибке при перезапуске сети. Если вы это сделаете, переместите/переименуйте файл ifcfg-eth0и pkill dhclient. Затем мне пришлось вернуть файл ifcfg -eth0 обратно, чтобы он загружался при перезагрузке.

Ссылки

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html

https://aws.amazon.com/premiumsupport/knowledge-center/ec2-centos-rhel-secondary-interface/

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/MultipleIP.html#ManageMultipleIP

3
27.01.2020, 22:08

Теги

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