Как заставить команду NIC появиться при загрузке в RHEL 7

Как заставить команду NIC появиться при загрузке в RHEL 7

Чтобы настроить сетевое взаимодействие в RHEL 7, я создал JSON-файл для объединения в команду, а затем выполнил следующие команды:

ip link set down eno1
ip link set down eno2
ip link set down eno3
ip link set down eno4
teamd -g -f lacp.conf -d

Также я создал файлы ifcfg для VLAN и выполнил следующую команду:

systemctl restart network

После этого все работает более-менее так, как и ожидалось, но проблема в том, что это не сохраняется между перезагрузками, поэтому мне приходится делать это каждый раз после запуска.

Как исправить эту проблему? Я ожидаю, что эти команды будут выполнены только один раз, а затем я хочу, чтобы эти настройки сохранялись между перезагрузками.

==========================================================

Я попытался применить предложенное исправление, и возникли следующие вопросы:

  1. Я создал ifcfg-team0файл, и его содержимое:

    DEVICE=team0
    DEVICETYPE=Team
    ONBOOT=yes
    BOOTPROTO=none
    TEAM_CONFIG='{"device":"team0", "runner": { "name": "lacp"...
    

Мне удалить раздел "устройство", поэтому изменить на , TEAMCONFIG='{"runner": { "name": "lacp"...потому что у меня уже есть DEVICE=team0? Или можно упомянуть его дважды?

  1. Мой ifcfg-eno1файл содержит:

    HWADDR=...
    TYPE=Ethernet
    BOOTPROTO=dhcp
    DEFROUTE=yes
    PEERDNS=yes
    IPV4_FAILURE_FATAL=no
    IPV6_INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_PEERDNS=yes
    IPV6_PEERROUTES=yes
    IPV6_FAILURE_FATAL=no
    NAME=eno1
    UUID=e656...
    ONBOOT=no
    

Должен ли я действительно удалить почти все из него? В частности, должен ли я действительно удалить UUID, NAMEразделы и заменить этот файл на то, что предлагает документация? :

    DEVICE=eth1
    HWADDR=D4:85:64:01:46:9E
    DEVICETYPE=TeamPort
    ONBOOT=yes
    TEAM_MASTER=team0
    TEAM_PORT_CONFIG='{"prio": 100}'

Или мне оставить оба файла? Просто назовите их, например, ifcfg-eno1иifcfg-eno1Team

  1. При выполнении этого: systemctl start network.serviceя получаю такую ​​ошибку:

    Failed to start LSB: Bring up/down networking.  Unit network.service entered failed state.
    

решение1

Сначала создайте новый файл в /etc/sysconfig/network-scriptsкаталоге с именем ifcfg-team0, который выглядит следующим образом:

DEVICE=team0
DEVICETYPE=Team
ONBOOT=yes
BOOTPROTO=none
IPADDR=1.2.3.4
NETMASK=255.255.255.0
TEAM_CONFIG='{"runner": {"name": "lacp"}, "link_watch": {"name": "ethtool"}}'

Очевидно, вам необходимо соответствующим образом изменить IP-адрес и маску сети.

Затем в том же каталоге измените все файлы ifcfg-eno[1-4]так, чтобы они выглядели следующим образом:

DEVICE=eno1
HWADDR=00:11:22:33:44:55
DEVICETYPE=TeamPort
ONBOOT=yes
TEAM_MASTER=team0
TEAM_PORT_CONFIG='{"prio": 100}'

Как и выше, ваши локальные файлы будут немного отличаться, поскольку вам нужно будет сохранить существующие HWADDRнастройки.

Этопрямо из руководства.

Файл ifcfg-team0ссылается на lacp.confфайл, который вы уже создали. Однако я не вижу в руководстве, как он находит этот файл. Возможно, teamdпомнит его из вашей предыдущей ручной конфигурации, или, возможно, вам нужно поместить его в общий каталог.

В любом случае, как только это настроено, вы говорите ifup team0, и объединенная группа NIC поднимется вместе. Отдельные интерфейсы должны быть выключены в начале, но вам не нужно будет делать ничего особенного, чтобы гарантировать это при загрузке, поскольку теперь они отмечены как часть группы NIC. Конфигурация загрузки ОС поймет, что она не должна поднимать эти четыре интерфейса по отдельности, а только как часть группы NIC.


Все вышесказанное предполагает, что вы отключилиСетевой менеджери вернулся к старому доброму способу настройки сети в Linux-системах типа Red Hat:

$ sudo systemctl stop NetworkManager.service
$ sudo systemctl disable NetworkManager.service
$ sudo systemctl start network.service
$ sudo systemctl enable network.service

Это часто бывает хорошей идеей на серверах, особенно когда их сетевая конфигурация становится сложной, как в случае с LACP. NetworkManager решает множество проблем, но часто делает это с уклоном, ориентированным на настольные компьютеры, что не подходит для серверов. Например, он решает автоматические переходы с WiFi на Ethernet, распространенные на ноутбуках. Серверы обычно имеют статические сетевые конфигурации, поэтому NetworkManager может в конечном итоге просто мешать.

Тем не менее, если вы обнаружите, что хотите придерживаться настроек Red Hat по умолчанию, они охватывают эту альтернативу.несколько разделов ранее в руководстве.

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