Назад | Перейти на главную страницу

Переупорядочивание NIC на RHEL5 / CentOS 5

У меня есть HP ProLiant DL360 G6 с двумя встроенными сетевыми картами, а также 4-портовая карта PCIe HP NC375T (набор микросхем NetXen NX3031). Система работала с eth0 и eth1, принадлежащими встроенным сетевым адаптерам, и eth2-eth5 на карте NetXen. Недавно я перестроил сервер, и начиная с процесса кикстарта, сетевые адаптеры были переупорядочены так, что встроенные сетевые адаптеры стали eth4 и eth5, а карта NetXen взяла на себя eth0-eth3.

В прошлом у меня был опыт привязки сетевых адаптеров к конкретным интерфейсам с помощью изменений в ifcfg-ethX config, но я впервые увидел, что карта надстройки берет на себя eth0 из интерфейсов материнской платы. Это повлияло на мои сценарии кикстарта, поэтому:

1). Как я могу гарантировать, что встроенные сетевые карты имеют приоритет при кикстарте.

2). Каков наиболее последовательный способ поддерживать этот порядок посредством повторяющихся перезагрузок, изменений ядра (например, переход от основного ядра RHEL к ядру реального времени RHEL MRG) и т. Д.

3). Каково взаимодействие между /etc/modprobe.conf модуль / NIC определения, /etc/sysconfig/network-scripts/ifcfg-ethX и /etc/modprobe.d/blacklist функции в этом контексте?

это известная проблема с RHEL5 и производными. Есть два возможных решения:

  1. сохраните HWADDR настроенным в сценариях ifcfg (вы можете сделать его умным, используя скриптовое регулярное выражение и диапазоны MAC для разных поставщиков сетевых адаптеров)
  2. используйте правила udev, опять же, MAC играет роль здесь

Вставка более 1 NIC в сервер может иногда приводить к тому, что новые NIC загружаются в их собственном порядке, а не в ожидаемом порядке eth0 (существующий nic), eth1 (новый nic), eth2 (новый nic)

Red Hat / CentOS В Red Hat, например, если драйвер называется «tg3» (драйвер Tigon), вы просто указываете желаемый порядок сетевых имен, указав порядок eth (x) путем редактирования

vi /etc/modprobe.conf

псевдоним eth0 tg3

псевдоним eth1 e1000

псевдоним eth2 3com

В приведенном выше примере показано, что драйвер tg3 будет загружен перед ядра e1000 и 3com.

Вы можете использовать опцию kssendmac, чтобы получить MAC-адрес сетевой карты, отправленный сценарию Kickstart. Разберите его с помощью PHP и настройте соответствующим образом.

Таким образом, известная переменная - это MAC-адрес встроенного сетевого адаптера, а неизвестная - это назначенное ядром устройство eth.

Этот фрагмент получит и распечатает все заголовки. Вам нужно будет придумать что-то, что анализирует нужную вам информацию. Строки конфигурации вашей сети будут зависеть от того, что вы от этого получите.

<?
$headers = getallheaders();
foreach ($headers as $key => $value)
{ echo "# $key: $value\n"; }
?>

Если вам нужна дополнительная помощь, дайте мне знать. Однако это должно заставить вас двигаться в правильном направлении.