Вот странная проблема.
У нас есть ряд устройств с материнскими платами с двумя сетевыми картами. Некоторые из них - отстойные сетевые адаптеры Realtek. Некоторые из них - Intel e1000, чего нет.
Я только что заметил на двух машинах, одна - сетевая карта Intel, другая - Realtek, и когда я помещаю MAC-адрес одной машины в dhcpd.conf
файл на нашем DHCP-сервере, чтобы заставить его PXE загрузить машину в среду восстановления, изначально все в порядке.
Сервер получает распределение DHCP, и PXE загружается в среду предварительной загрузки Ubuntu.
На одной или двух машинах он достигает конфигурации сети DHCP Ubuntu и терпит неудачу. Если я подниму оболочку busybox (на tty2
на установочной машине) и запустите ip link
, Я вижу, что флаг ВВЕРХ установлен на Другой NIC.
Вот кое-что.
host xeon16-ghz240-gb48-node1 {
hardware ethernet BC:AE:C5:07:1F:18;
filename "pxelinux.0";
next-server 192.168.123.80;
}
Вот что в dhcpd.conf
Вот как выглядит ip-ссылка на злой машине.
Фактически подключена только одна сетевая карта (намеренно).
Как видите, сетевая карта, которая находится в конфигурации dhcpd, не помечена как UP, а ссылка, которая находится в UP, не является таковой в DHCP.
До сих пор я видел это на двух марках конфигурации с двумя сетевыми адаптерами.
Кто-нибудь знает, 1) что его вызывает и б) что мы можем с этим сделать?
Всегда есть несколько способов сделать что-нибудь :)
Материнские платы по одной?
Добавить в черный список любой модуль (ethtool -i eth0
) поддерживает карту Realtek.
Ubuntu поддерживает module_name.blacklist=yes
занести его в черный список при загрузке, и вы сможете изменить параметры modprobe в среде preseed, чтобы его не исследовали позже.
Перефразирую проблему:
У нас есть материнские платы с двумя сетевыми картами, и мы хотим, чтобы они работали стабильно, независимо от того, какой интерфейс подключен. Мы не всегда можем определить, какой интерфейс (с точки зрения ОС) будет подключен.
Настроить склейку! Используйте активно-пассивную конфигурацию (mode=active-backup miimon=100
) с обоими интерфейсами в качестве подчиненных. Таким образом, он всегда будет работать независимо от того, какой интерфейс подключен.
Достаточно ли согласованы материнские платы, чтобы сетевые адаптеры всегда отображались с одним и тем же идентификатором PCI? Используйте правила udev, чтобы всегда назначать карту с конкретным адресом PCI для eth0, а карту с другим адресом - для eth1.
Обратите внимание, что у вас может быть два разных правила udev, которые назначают устройство для eth0 - это позволяет вам обрабатывать случаи Realtek и e1000 одновременно.
Можно попробовать добавить PXELINUX IPAPPEND 2 в файл pxelinux.cfg, чтобы указать сценариям инициализации использовать интерфейс, который выполнял загрузку PXE:
/var/lib/tftpboot/pxelinux.cfg/default
LABEL linux
KERNEL /ubuntu/casper/vmlinuz
APPEND initrd=/ubuntu/casper/initrd.gz root=/dev/nfs boot=casper netboot=nfs nfsroot=192.168.1.1:/var/lib/tftpboot/ubuntu --
IPAPPEND 2
видеть: http://www.syslinux.org/wiki/index.php/SYSLINUX#IPAPPEND_flag_val_.5BPXELINUX_only.5D