У меня есть 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 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"; }
?>
Если вам нужна дополнительная помощь, дайте мне знать. Однако это должно заставить вас двигаться в правильном направлении.