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

У нас есть коробка RHEL 5.5 с 8 интерфейсами. Именование имен eth – flip flopping. Иногда eth0 появляется на физическом порту 7-го, а иногда и на другом физическом порту.

Мы хотим, чтобы имя было в соответствии с последовательностью PCI BUS. Я провел исследование и обнаружил, что

 cat /sys/devices/pci0000\:00/0000\:00\:1e.0/0000\:07\:07.0/net\:eth0/address\ 

Эти местоположения имеют адрес mac этих устройств. Поэтому, если я получаю «адрес» в последовательности из этих мест шины pci и помещаю их в ifconfig-eth0 в ifconfig-eth7 в порядке расположения шины PCI, мое eth имя будет стабильным.

Я пытался:

 find /sys/devices/ -name "address" 

но это не приносит никаких результатов. Я не знаю, почему …

Любая помощь здесь?

  • Подключение терминала VT100 к Redhat Linux
  • Нет действительных источников судопроизводства
  • MongoDB «сервис» на чистом Redhat не может быть запущен
  • в какой директории должен быть скомпилирован Firefox?
  • linux + написать синтаксис в visudo
  • Как распечатать последнюю версию ядра из grub.conf в Linux 7
  • Пакеты пропущены из-за проблем с зависимостями:
  • Как просмотреть несколько групп пользователей с помощью sssd?
  • 3 Solutions collect form web for “RHEL: создание стабильных имен для сетевых интерфейсов”

    Вы пытались включить MAC-адреса в различные файлы ifcfg-ethX для различных устройств ethernet? Кроме того, вы можете контролировать, какое устройство получает, с каким 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" 

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

    • сохраняя eth0 как ETH0. – Блог пользователя pwrusr.com

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

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

    Вы должны получить аппаратный адрес:

     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 комментарии ниже .

    Linux и Unix - лучшая ОС в мире.