MAC-Adressen auf Dual-NIC-Mainboards

9

Hier ist ein seltsames Problem.

Wir haben eine Reihe von Geräten mit Dual-NIC-Mainboards. Einige sind Realtek-NICs, die saugen. Einige sind Intel e1000s, die dies nicht tun.

Ich habe gerade auf 2 Computern bemerkt, einer ist eine Intel-Netzwerkkarte, einer ist ein Realtek. Wenn ich die MAC-Adresse eines Computers in die dhcpd.confDatei auf unserem DHCP-Server eingebe, um sie zu PXE zu bringen, starte der Computer in einer Wiederherstellungsumgebung. anfangs ist alles in ordnung.

Der Server erhält eine DHCP-Zuweisung, und PXE startet in die Ubuntu-Umgebung.

Auf einem oder zwei Computern reicht es bis zur DHCP-Netzwerkkonfiguration von Ubuntu und schlägt fehl. Wenn ich eine Busybox-Shell (auf tty2dem installierenden Computer) aufrufe und ausführe ip link, kann ich sehen, dass das UP-Flag auf der anderen Netzwerkkarte gesetzt ist.

Hier sind einige Sachen.

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

Das ist was drin ist dhcpd.conf

So sieht der IP-Link auf der bösen Maschine aus. IP-Link-Ausgabe

Tatsächlich ist nur eine Netzwerkkarte (absichtlich) verbunden.

Wie Sie sehen können, ist die Netzwerkkarte in der dhcpd-Konfiguration nicht als UP markiert, und der Link UP ist nicht der in DHCP.

Bisher habe ich dies bei zwei Marken von Dual-NIC-Konfigurationen gesehen.

Weiß jemand 1) was es verursacht und b) was wir dagegen tun können?

Tom O'Connor
quelle
1. Unterschiedliche Reihenfolge der Initialisierung von PCI-Geräten. Das BIOS verwendet also den MAC ": 18" und das Betriebssystem verwendet zuerst den MAC ": 19". 2. Keine Ahnung =]
Chris S
Ich werde dies eher als Kommentar als als Antwort hinzufügen, da es ziemlich schwach ist, aber ich kann sagen, dass jemand vor mir genau das gleiche Problem gefunden und es gelöst hat, indem er der dhcpd.confDatei beim Einrichten eines Kickstarts MAC und MAC + 1 hinzugefügt hat .
Kyle Smith
Wie sieht der Preseed aus? Insbesondere ist netcfg/choose_interfaceeingestellt?
Shane Madden
./master/master_preseed.cfg:d-i netcfg/choose_interface select auto
Tom O'Connor
@ KyleSmith Ja .. Es ist allerdings ein wenig stochastisch.
Tom O'Connor

Antworten:

8

Es gibt immer mehr als einen Weg, etwas zu tun :)

Lösung 1

Motherboards mit jeweils einem?

Blacklist für jedes Modul ( ethtool -i eth0), das die Realtek-Karte unterstützt.

Ubuntu unterstützt module_name.blacklist=yes das Blacklisting beim Booten und Sie sollten in der Lage sein, die Modprobe-Optionen in der vorab festgelegten Umgebung zu ändern, damit es später nicht überprüft wird.


Lösung 2

Lassen Sie mich das Problem umformulieren:

Wir haben Motherboards mit zwei Netzwerkkarten und möchten, dass diese unabhängig von der angeschlossenen Schnittstelle konsistent funktionieren. Wir können nicht immer bestimmen, welche Schnittstelle (aus Sicht des Betriebssystems) angeschlossen wird.

Verklebung einrichten! Verwenden Sie eine Aktiv-Passiv-Konfiguration ( mode=active-backup miimon=100) mit beiden Schnittstellen als Slaves. Auf diese Weise funktioniert es immer, egal welche Schnittstelle angeschlossen ist.


Lösung 3

Sind die Motherboards konsistent genug, dass die Netzwerkkarten immer auf derselben PCI-ID angezeigt werden? Verwenden Sie die udev-Regeln, um eth0 immer die Karte an einer bestimmten PCI-Adresse und eth1 die Karte an der anderen Adresse zuzuweisen.

Beachten Sie, dass Sie zwei verschiedene udev-Regeln haben können, die eth0 ein Gerät zuweisen. Auf diese Weise können Sie den Fall Realtek und e1000 gleichzeitig bearbeiten.

MikeyB
quelle
Sie sind beide leider Realtek. Ich werde ein paar e1000 bekommen, um sie zu ersetzen, und werde sie dann wahrscheinlich im BIOS töten.
Tom O'Connor
1
Ooohhhh, missverstanden. Ich dachte du hättest Motherboards mit 1 x e1000 und 1 x Realtek.
MikeyB
Gute Antworten. Ich bin mir nicht ganz sicher, was unterstützt wird, da dieses Problem zwischen dem PXE-Loader und dem DHCP des Debian-Installers auftritt. Ich persönlich denke, die beste Option wird sein, alle bis auf eine anständige Intel- Netzwerkkarte zu deaktivieren
Tom O'Connor
Am Ende haben wir Bonding eingerichtet und das Problem umgangen, indem wir beide Adressen in DHCP eingegeben haben.
Tom O'Connor
5

Sie können versuchen, Ihrer Datei pxelinux.cfg die Option PXELINUX IPAPPEND 2 hinzuzufügen, um Init-Skripten anzuweisen, die Schnittstelle zu verwenden, über die der PXE-Start durchgeführt wurde:

/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

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

panticz.de
quelle