Adresy MAC na płytach głównych dual-NIC

9

Oto dziwny problem.

Mamy wiele urządzeń z płytami głównymi z podwójną kartą sieciową. Niektóre to NIC Realtek, które są do kitu. Niektóre z nich to Intel e1000, które nie.

Właśnie zauważyłem na 2 komputerach, jeden to Intel NIC, jeden to Realtek, że kiedy umieszczam adres MAC jednej maszyny w dhcpd.confpliku na naszym serwerze DHCP, aby PXE uruchomił maszynę w środowisku odbudowy, początkowo wszystko jest w porządku.

Serwer otrzymuje alokację DHCP, a PXE uruchamia się w wybranym środowisku Ubuntu.

Na jednym lub dwóch komputerach dochodzi do konfiguracji sieci DHCP Ubuntu i kończy się niepowodzeniem. Jeśli ściągnę powłokę busyboksa (na tty2maszynie instalującej) i uruchomię ip link, widzę, że flaga UP jest ustawiona na drugiej karcie sieciowej.

Oto kilka rzeczy.

  host xeon16-ghz240-gb48-node1 {
        hardware ethernet BC:AE:C5:07:1F:18;
        filename "pxelinux.0";
        next-server 192.168.123.80;
  }

Właśnie o to chodzi dhcpd.conf

Tak wygląda łącze ip na złej maszynie. wyjście łącza ip

Tylko jedna karta sieciowa jest faktycznie podłączona (celowo).

Jak widać, karta sieciowa, która jest w konfiguracji dhcpd, nie jest oznaczona jako UP, a łącze, które jest UP, nie jest tym w DHCP.

Do tej pory widziałem to na dwóch markach konfiguracji dual-NIC.

Czy ktoś wie 1) co go powoduje, i b) Co możemy z tym zrobić?

Tom O'Connor
źródło
1. Inna kolejność inicjalizacji urządzeń PCI. Dlatego BIOS używa MAC „: 18”, a system operacyjny najpierw używa MAC „: 19”. 2. Brak pomysłu =]
Chris S
Dodam to jako komentarz, a nie odpowiedź, ponieważ jest dość słaby, ale mogę powiedzieć, że ktoś przed mną znalazł ten sam problem i rozwiązał go, dodając MAC i MAC + 1 do dhcpd.confpliku podczas konfigurowania Kickstartu.
Kyle Smith
Jak wygląda preseed? W szczególności jest netcfg/choose_interfaceustawiony?
Shane Madden
./master/master_preseed.cfg:d-i netcfg/choose_interface select auto
Tom O'Connor,
@KyleSmith Tak .. To trochę stochastyczne.
Tom O'Connor,

Odpowiedzi:

8

Zawsze jest więcej niż jeden sposób na zrobienie czegokolwiek :)

Rozwiązanie 1

Płyty główne z jedną z nich?

Czarna lista, którykolwiek moduł ( ethtool -i eth0) obsługuje kartę Realtek.

Ubuntu obsługuje module_name.blacklist=yes umieszczanie go na czarnej liście podczas rozruchu i powinieneś być w stanie zmienić opcje modprobe w przygotowanym środowisku, aby nie było później sprawdzane.


Rozwiązanie 2

Pozwól mi sformułować problem:

Mamy płyty główne z dwoma kartami sieciowymi i chcemy, aby działały spójnie bez względu na to, który interfejs jest podłączony. Nie zawsze możemy ustalić, który interfejs (z punktu widzenia systemu operacyjnego) zostanie podłączony.

Ustaw wiązanie! Użyj konfiguracji aktywno-pasywnej ( mode=active-backup miimon=100) z obydwoma interfejsami jako niewolnikami. W ten sposób zawsze będzie działać bez względu na to, który interfejs jest podłączony.


Rozwiązanie 3

Czy płyty główne są wystarczająco spójne, aby karty sieciowe były zawsze wyświetlane z tym samym identyfikatorem PCI? Użyj reguł udev, aby zawsze przypisywać kartę pod określonym adresem PCI do eth0, a kartę pod drugim adresem do eth1.

Zauważ, że możesz mieć dwie różne reguły udev, które przypisują urządzenie do eth0 - pozwala to na jednoczesne obsługiwanie sprawy Realtek i e1000.

MikeyB
źródło
Oboje są Realtek niestety. Zdobędę kilka e1000, aby je zastąpić, a potem prawdopodobnie zabiją ich w biosie.
Tom O'Connor,
1
Ooooch, źle zrozumiany. Myślałem, że masz płyty główne z 1 x e1000 i 1 x Realtek.
MikeyB
Dobre odpowiedzi. Nie jestem do końca pewien, co jest obsługiwane, ponieważ problem ten pojawia się między modułem ładującym PXE a DHCP instalatora Debiana. Osobiście uważam, że najlepszą opcją będzie wyłączenie wszystkich przyzwoitych kart sieciowych Intel z wyjątkiem jednej
Tom O'Connor,
Skończyliśmy konfigurowanie łączenia i obejście problemu przez umieszczenie obu adresów w DHCP.
Tom O'Connor,
5

Możesz spróbować dodać opcję PXELINUX IPAPPEND 2 do pliku pxelinux.cfg, aby poinformować skrypty init, aby korzystały z interfejsu, który uruchomił się w 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

patrz: http://www.syslinux.org/wiki/index.php/SYSLINUX#IPAPPEND_flag_val_.5BPXELINUX_only.5D

panticz.de
źródło