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" 

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

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

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

  • Пакет QEMU недоступен для RHEL 64 бит
  • Почему временные метки на старых файлах установлены на моей недавно установленной системе?
  • Могу ли я запускать графический сеанс моего рабочего стола удаленно?
  • Изменение размера окна до половины ширины экрана в KDE 3.5
  • почему resv.conf меняется
  • Что означает TCPRcvCoalesce, TCPAutoCorking и TCPHystartTrainCwnd в netstat?
  • Последний порт libxml2 для RHEL4
  • Ограничение использования журнала транзакций Openldap
  • удаленное подключение к RHEL с X-сервером из Windows
  • При запуске на уровень выполнения он выполняет предыдущие уровни выполнения?
  • Требуется уточнение при перезагрузке apache
  • Linux и Unix - лучшая ОС в мире.