MAC-адреса на платах с двумя сетевыми платами

9

Вот странная проблема.

У нас есть несколько устройств с платами с двумя сетевыми платами. Некоторые из них являются сетевыми картами Realtek, которые отстой. Некоторые из них Intel E1000s, которые этого не делают.

Я только что заметил, что на 2 машинах, одна из них - сетевая карта Intel, другая - Realtek, - когда я помещаю MAC-адрес одной машины в dhcpd.confфайл на нашем DHCP-сервере, чтобы передать его в PXE, загрузите машину в среду восстановления, изначально все нормально.

Сервер получает распределение DHCP, и PXE загружается в среду preseed Ubuntu.

На одной или двух машинах он достигает конфигурации сети Ubuntu DHCP и завершается ошибкой. Если я открою оболочку busybox (на установочной tty2машине) и запустлюсь ip link, я увижу, что флаг UP установлен на другой сетевой карте.

Вот кое-что

  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-ссылка на злой машине. выход ip-ссылки

Только один NIC действительно подключен (намеренно).

Как вы можете видеть, сетевая карта, которая находится в конфигурации dhcpd, не помечена как UP, а ссылка UP - не та, что в DHCP.

До сих пор я видел это на двух марках конфигурации с двумя сетевыми платами.

Кто-нибудь знает 1) что это вызывает, и б) что мы можем с этим поделать?

Том О'Коннор
источник
1. Различный порядок инициализации устройств PCI. Таким образом, BIOS использует «: 18» MAC, а ОС сначала использует «: 19» MAC. 2. Понятия не имею =]
Крис С
Я добавлю это как комментарий, а не как ответ, потому что он довольно слабый, но я могу сказать, что кто-то до меня обнаружил точно такую ​​же проблему и решил ее, добавив MAC и MAC + 1 в dhcpd.confфайл при настройке Kickstart.
Кайл Смит
Как выглядит семя? Конкретно netcfg/choose_interfaceустановлено?
Шейн Мэдден
./master/master_preseed.cfg:d-i netcfg/choose_interface select auto
Том О'Коннор
@KyleSmith Да .. Хотя это немного стохастично.
Том О'Коннор

Ответы:

8

Всегда есть несколько способов сделать что-нибудь :)

Решение 1

Материнские платы с одной из каждой?

Черный список, какой бы модуль ( ethtool -i eth0) не поддерживал карту Realtek.

Ubuntu поддерживает module_name.blacklist=yes внесение его в черный список при загрузке, и вы сможете изменить параметры modprobe в среде preseed, чтобы позже его не проверяли.


Решение 2

Позвольте мне перефразировать проблему:

У нас есть материнские платы с двумя сетевыми картами, и мы хотим, чтобы они работали согласованно, независимо от того, какой интерфейс подключен. Мы не всегда можем определить, какой интерфейс (с точки зрения ОС) будет подключен.

Установите связь! Используйте активно-пассивную конфигурацию ( mode=active-backup miimon=100) с обоими интерфейсами в качестве ведомых. Таким образом, он всегда будет работать независимо от того, какой интерфейс подключен.


Решение 3

Достаточно ли стабильны материнские платы, чтобы сетевые адаптеры всегда отображались с одним и тем же PCI ID? Используйте правила udev, чтобы всегда назначать карту на определенном PCI-адресе для eth0, а карту на другом адресе для eth1.

Обратите внимание, что у вас может быть два разных правила udev, которые назначают устройство для eth0 - это позволяет обрабатывать случай Realtek и e1000 одновременно.

MikeyB
источник
Они оба Realtek, к сожалению. Они получат несколько e1000, чтобы заменить их, а затем, вероятно, убьют их в биосе.
Том О'Коннор
1
Оооооо, неправильно понял. Думаю, у вас были материнские платы с 1 x e1000 и 1 x Realtek.
MikeyB
Хорошие ответы ... Я не совсем уверен, что поддерживается, поскольку эта проблема проявляется между загрузчиком PXE и ​​DHCP-установщиком Debian. Я лично считаю, что лучшим вариантом будет отключить все, кроме одного приличного сетевого адаптера Intel
Том О'Коннор
В итоге мы установили связь и обошли проблему, поместив оба адреса в DHCP.
Том О'Коннор
5

Вы можете попробовать добавить опцию 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

panticz.de
источник