1

Когда я заменяю NIC-карту в своем RHEL 5, применимые /etc/sysconfig/network-scripts/ifcfg-eth? файл переименовывается в ifcfg-eth?.bak и создается новый файл с настройкой:

ONBOOT=yes
BOOTPROTO=dhcp

Q1) Какой скрипт или программа создает эти файлы по умолчанию?

Поскольку у меня нет dhcp-сервера, загрузка и запуск занимает больше времени.

Q2) Есть ли какая-либо конфигурация, которую я мог бы изменить, чтобы вновь обнаруженные сетевые карты были настроены с ONBOOT=no

ЗАМЕТКИ:

  1. chkconfig --list NetworkManager показывает, что NetworkManager отключен для всех уровней запуска

  2. Правила udev сохраняются в /etc/udev/rules.d . 60-net.rules - это единственный файл с net в имени файла.

  3. 60-net.rules содержит:

    ACTION=="add", SUBSYSTEM=="net", IMPORT{program}="/lib/udev/rename_device"
    SUBSYSTEM=="net", RUN+="/etc/sysconfig/network-scripts/net.hotplug"
    
  4. rename_device , похоже, не та программа, которая записывает исходный файл, потому что строка ONBOOT нигде в исполняемом файле не просматривается с помощью xxd. Кроме того, исходный код онлайн не указывает, что он пишет этот файл.

3 ответа3

2

A. Вы должны поместить NM_UNMANAGED в TRUE в файл в /etc/udev/rules.d, чтобы убедиться, что "не будет установлено соединение по умолчанию и не будет предпринята попытка автоматической активации".

Это отличный вопрос. Я взглянул на это в Fedora, поэтому может произойти изменение в имени каталога.

Это то, что я нашел в документации.

 man NetworkManager

СВОЙСТВА UDEV Диспетчер устройств udev(7) используется для обнаружения сетевых устройств. Следующее свойство влияет на то, как NetworkManager управляет устройствами:

   NM_UNMANAGED
       No default connection will be created and automatic activation will not be attempted when this property of a
       device is set to a true value ("1" or "true"). You will still be able to attach a connection to the device
       manually or observe externally added configuration such as addresses or routes.

В RHEL системные правила должны быть в ls /usr/lib/udev/rules.d/

И файлы по умолчанию, связанные с этим, находятся в:

/usr/lib/udev/rules.d/

В верхней части /usr/lib/udev/rules.d/85-nm-unmanaged.rules написано:

head /usr/lib/udev/rules.d/85-nm-unmanaged.rules

Не изменяйте этот файл, он будет перезаписан при обновлении. Чтобы переопределить или расширить правила, поместите файл в /etc/udev/rules.d

Папка /etc/udev/rules.d в настоящий момент, скорее всего, пуста.



Примеры.

Ключом к управлению файлами запуска для новых сетевых интерфейсов является выбор правильной группы или "конверта".


Пример 1 Настройки для новых сетевых карт pci.

1. Выберите тестовое устройство.

Когда я помещаю новую карту в свою виртуальную машину, она дает мне имя, такое как: ens11

2. Получить информацию для определения группы.

Найдите файл класса устройства:

find /sys/class -name "ens*"

Это происходит в /sys /class /net с другими сетевыми картами:

ls /sys/class/net

Получить информацию об устройстве (или дереве устройств с «-a»):

udevadm info /sys/class/net/ens11
udevadm info -a /sys/class/net/ens11 | more

Вот как это выглядит на моем экране:

[root@s1 ~]# udevadm info /sys/class/net/ens11
P: /devices/pci0000:00/0000:00:0b.0/net/ens11
E: DEVPATH=/devices/pci0000:00/0000:00:0b.0/net/ens11
E: ID_BUS=pci
...
E: ID_NET_NAME_SLOT=ens11
E: ID_PATH=pci-0000:00:0b.0
E: ID_PCI_CLASS_FROM_DATABASE=Network controller
...
E: USEC_INITIALIZED=2939943

Я буду использовать ID_PATH = pci-0000:00:0b.0 для группировки устройств, которые я хочу изменить. Я буду контролировать отдельные автобусы с отдельными файлами.

3. Создайте файл в /etc/udev/rules.d/

cat /etc/udev/rules.d/pci_bus_0b.rules

#state down  ( They are up by default. )
ENV{ID_PATH}=="pci-0000:00:0b.0", ENV{NM_UNMANAGED}="0", ENV{ONBOOT}="1"

#state up
#ENV{ID_PATH}=="pci-0000:00:0b.0", ENV{NM_UNMANAGED}="0", ENV{ONBOOT}="0"

4. Перезагрузите устройства и сеть.

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

У меня была виртуальная машина, работающая на внутреннем жестком диске без проблем, но жесткие диски, подключенные по USB, пошли немного быстрее. Более медленной альтернативой может быть перезагрузка.

udevadm trigger
# You should see the changes already:
udevadm info /sys/class/net/wlp0s8f7u4
systemctl restart NetworkManager
ip a


Пример 2 Беспроводная локальная сеть USB Карта сетевого интерфейса. (WLAN)

1. Выберите тестовое устройство.

Когда я подключаю свой беспроводной USB-адаптер, он дает мне имя, например: wlp0s8f7u4

2. Получить информацию для определения группы.

Найти класс файла устройства

find /sys/class -name "wlp*"

Это происходит в /sys /class /net с другими сетевыми картами:

ls /sys/class/net

Получить информацию об устройстве (или дереве устройств с «-a»):

udevadm info /sys/class/net/wlp0s8f7u4
udevadm info -a /sys/class/net/wlp0s8f7u4 | more

Вот как это выглядит на моем экране:

[root@s1 ~]# udevadm info /sys/class/net/wlp0s8f7u4
P: /devices/pci0000:00/0000:00:08.7/usb1/1-4/1-4:1.0/net/wlp0s8f7u4
E: DEVPATH=/devices/pci0000:00/0000:00:08.7/usb1/1-4/1-4:1.0/net/wlp0s8f7u4
E: DEVTYPE=wlan
E: ID_BUS=usb
E: ID_MODEL=802.11_n_WLAN
...
E: SYSTEMD_ALIAS=/sys/subsystem/net/devices/wlp0s8f7u4
E: TAGS=:systemd:
E: USEC_INITIALIZED=4672793558

Я буду использовать «DEVTYPE = wlan» для группировки устройств, которые я хочу изменить.

3. Создайте файл в /etc/udev/rules.d/

cat /etc/udev/rules.d/Wireless_lan.rules
# State down
ENV{DEVTYPE}=="wlan", ENV{NM_UNMANAGED}="0", ENV{ONBOOT}="1"

# State up
#ENV{DEVTYPE}=="wlan", ENV{NM_UNMANAGED}="0", ENV{ONBOOT}="0"

4. Перезагрузите устройства и сеть.

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

У меня была виртуальная машина, работающая на внутреннем жестком диске без проблем, но жесткие диски, подключенные по USB, пошли немного быстрее. Более медленной альтернативой может быть перезагрузка.

udevadm trigger
# You should see the changes already:
udevadm info /sys/class/net/wlp0s8f7u4
systemctl restart NetworkManager
ip a

Рекомендации:

Правила: человек 7 удев

Атрибуты Udev: Arch Linux wiki

Список переменных среды:(любезно предоставлено Лекенштейном на форуме Unix):

grep -hrPo 'ENV {\K [^}] *(?=} = [^ =])'/ndometc,lib‹/udev/rules.d | сортировать -у

0

В более новых системах Linux этот NetworkManager часто заботится об этих файлах. Для этого есть инструмент командной строки, но обычно он настраивается через графический интерфейс, доступный на рабочем столе по вашему выбору.

Поскольку RHEL 5 действительно старый, я предполагаю, что вы можете / должны использовать инструмент конфигурирования Redhat system-config-network . Есть несколько основных информационных файлов и некоторые файлы (как вы упомянули), которые генерируются скриптами. Проще всего использовать этот простой инструмент настройки.

0

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

Заголовок в /etc/NetworkManager/NetworkManager.conf указывает на страницу руководства для файла конфигурации:

# Configuration file for NetworkManager.
#
# See "man 5 NetworkManager.conf" for details.

На странице руководства это говорит вам:

   no-auto-default
       Specify devices for which NetworkManager shouldn't create default
       wired connection (Auto eth0). By default, NetworkManager creates a
       temporary wired connection for any Ethernet device that is managed
       and doesn't have a connection configured. List a device in this
       option to inhibit creating the default connection for the device.
       May have the special value * to apply to all devices.

       When the default wired connection is deleted or saved to a new
       persistent connection by a plugin, the device is added to a list in
       the file /var/run/NetworkManager/no-auto-default.state to prevent
       creating the default connection for that device again.

       See the section called “Device List Format” for the syntax how to
       specify a device.

       Example:

           no-auto-default=00:22:68:5c:5d:c4,00:1e:65:ff:aa:ee
           no-auto-default=eth0,eth1
           no-auto-default=*

Так что, если вы «no-auto-default = *» в /etc/NetworkManager/NetworkManager.conf, мы надеемся, что следует прекратить создание этих файлов, если они являются источником.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .