RHEL: Создание стабильных названий сетевых интерфейсов

Да и нет. В среде POSIX утилиты должны вести себя, как описано спецификацией. На практике это означает, что приспосабливание версиям утилит должно присутствовать в $PATH. Однако при запущении программы в совместимой POSIX системе, можно выполнять его в несоответствующей среде. На практике, что часто происходит, то, что ОС имеет режим прежней версии и режим POSIX, и находится в режиме прежней версии по умолчанию. Хуже, чем пропавшие без вести некоторых команд, режим прежней версии имеет тенденцию иметь несовместимости в них, такие как опции с различными значениями.

Можно получить пользу PATH с getconf. Конечно, это хитро, как getconf в оригинале $PATH может не быть правильный. Использование приложений для команды показывает способ сделать это:

command -p getconf PATH

Насколько я понимаю спецификацию, это не необходимо, если Вы запускаете свою программу в приспосабливающей POSIX среде; и если Вы не запускаете свою программу в приспосабливающей POSIX среде, POSIX не применяется. Однако это использование приложений может быть взято в качестве рекомендации: если это не работает, можно чувствовать себя наделенными правом жаловаться поставщику, что независимо от того, что они делают относительно буквы спецификации POSIX, они не выполняют ее дух.

6
12.05.2013, 01:35
3 ответа

Вы попробовали включая MAC-адреса в различных ifcfg-ethX файлах для различных устройств Ethernet? Дополнительно можно управлять, какой get's устройства, который ethX обрабатывают через udev's 60-net.rules файл.

Например,

# /etc/sysconfig/network-scripts/ifcfg-eth0

# Intel Corporation 82573E Gigabit Ethernet Controller (Copper)
DEVICE=eth0
BOOTPROTO=static
DHCPCLASS=
HWADDR=00:30:48:56:A6:2E
IPADDR=10.10.10.15
NETMASK=255.255.255.192
ONBOOT=yes

Затем в файле /etc/udev/rules.d/60-net.rules:

KERNEL=="eth*", SYSFS{address}=="00:30:48:56:A6:2E", NAME="eth0"

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

Конфигурирование больше чем одного ethX устройства

Для контакта с большим количеством устройств просто устанавливают каждого соответствующие устройства /etc/sysconfig/network-scripts/ifcfg-ethX файл, и добавляет другую строку к 60-net.rules файл.

KERNEL=="eth*", SYSFS{address}=="00:30:48:56:A6:2E", NAME="eth0"
KERNEL=="eth*", SYSFS{address}=="00:30:48:56:A6:2F", NAME="eth1"

Вышеупомянутое - то, как Вы делаете это в CentOS 5. X. Файл изменяется в CentOS 6.x на 70-persistent-net.rules, и формат немного отличается также:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="54:52:00:ff:ff:dd", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

Ссылки

3
27.01.2020, 20:28

Насколько я знаю, Вам нужен относительно новый выпуск. RHEL 6, кажется, поддерживает это (Последовательное Именование Сетевого устройства), хотя это действительно должно быть конкретно включено в большинстве систем. Fedora 15 + также делает это, и, Fedora 17, это, кажется, режим по умолчанию.

Я не знаю точно, когда это изменение было полностью принято и, более важное для этого вопроса, если существует какой-либо способ бэкпортировать это к ряду RHEL 5. Это - запуск, по крайней мере.

2
27.01.2020, 20:28
  • 1
    Два приложения: RHEL6 делает персистентное именование через правило udev (в /etc/udev/rules.d/70-persistent-net.rules) так выполнение так в RHEL5 не должно быть слишком трудным. Кроме того, метод Fedora немного отличается в этом, он использует детерминированный алгоритм при именовании интерфейсов, который отличается, чем eth* соглашение о присвоении имен. –  Bratchley 11.05.2013, 17:45

Необходимо получить аппаратный адрес:

ifconfig -a | grep HWaddr

Или возможно:

tail -v /sys/devices/*/*/net/eth*/address
# or
tail -v /sys/devices/*/*/*/net/eth*/address

find должен был соответствовать.

Также проверка:

cat /etc/udev/rules.d/70-persistent-net.rules

Se комментирует ниже.

1
27.01.2020, 20:28
  • 1
    70 персистентный net.rules не существует в CentOS/RHEL 5. X. Это является новым в CentOS/RHEL6.x. –  slm♦ 11.05.2013, 17:57
  • 2
    @slm: Ничто для тестирования на здесь но действительно ли Вы уверены? Касательно: adminlinux.org/2010/09/persistent-eth-interface-names.html –  Runium 11.05.2013, 19:49
  • 3
    имя, 70 персистентных net.rules не являются действительно особенными, таким образом, Вы могли использовать его, добавляя 5.x синтаксис udev строки к нему, но у меня есть несколько дюжин 5.x и 6.x, и это не находится ни на одном из 5.x поля. Дополнительно существуют сценарии и такой на поле, который обычно управляет этими файлами, таким образом, я ожидал бы, что ни одно из этого не произойдет с помощью нестандартных местоположений на 5.x по сравнению с 6.x. –  slm♦ 11.05.2013, 20:01
  • 4
    , который я прошел 5.5 до 5,8 и ни один из них, имеет 70 персистентных net.rules также. При поиске пред 5,5, но я собираюсь ожидать, что у них не было бы его ни одним в этой точке. –  slm♦ 11.05.2013, 20:11
  • 5
    @slm: Еще раз спасибо. Я должен запустить рисование кистью на CentOS и RHEL. RHEL 3 был давным-давно. После этого это был длительный период для меня только с серверами :( –  Runium 11.05.2013, 20:13

Теги

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