Inhalt

Preboot eXecution Environment (PXE, manchmal als Pixie ausgesprochen)

PXE-Client an anderen TFTP-Server umleiten

Wichtige Hinweise zur Fehlerbehebung

DHCP-Optionen, die beim PXE-Booten verwendet werden können

Kundentopologie

Preboot eXecution Environment (PXE, manchmal als Pixie ausgesprochen)

PXE oder Network Booting ermöglicht dem BIOS das Herunterladen und Booten eines Betriebssystems über das Netzwerk. Bei Cisco NX-OS-Routern entspricht dies dem Boot-Loader [loader>] auch als Kickstart.

Beim PXE-Boot überprüft das BIOS des PXE-Clients die konfigurierte Bootreihenfolge und, wenn PXE-Boot konfiguriert ist, ob die Hardware PXE-Boot unterstützt. Wenn ja, versucht er, eine IP-Adresse von der Netzwerkkarte zu DHCP. In der DHCP-Anfrage fordert der PXE-Client bestimmte DHCP-Optionen an, z. B. 67 [Dateiname]. In der DHCP-Antwort antwortet der DHCP-Server mit den angeforderten Optionen. Der PXE-Client lädt dann die in der DHCP-Antwort angegebene Datei [Network Bootstrap Program (NBP)] herunter und führt sie aus, um das Betriebssystem auf den Server laden zu lassen.

PXE-Client an anderen TFTP-Server umleiten

Standardmäßig versucht der PXE-Client, den Dateinamen in der DHCP-Antwort vom DHCP-Server per TFTP herunterzuladen, es sei denn, er erhält die Option 66, Next-Server oder die Option 60/43 in der DHCP-Antwort, um ihn an eine andere IP-Adresse umzuleiten. Die Adresse des nächsten Servers wird in bootp und PXE verwendet, um anzugeben, dass verschiedene Server für DHCP und TFTP verwendet werden.

Die DHCP-Optionen Next-Server (Option 12) und Bootfile (Option 0) geben in der Regel den TFTP-Server und den Dateinamen des anfänglichen Boot-Loaders an. Bootfile wird optional von einem Client verwendet, um einen bestimmten Typ von Bootdatei in einer DHCPDISCOVER-Nachricht anzufordern. Er wird von einem DHCP-Server in einem DHCPOFFER verwendet, um einen Boot-Datei-Verzeichnispfad und einen Dateinamen vollständig anzugeben.

Option 67 muss auch für den Dateinamen angegeben werden. Der Unterschied zwischen bootfile und option 67 besteht darin, dass in der DHCP-Antwort der Dateiname gefunden wird. Bei den reservierten Feldern werden die Antworten nicht im Optionsteil des Antwortpakets nummeriert, sondern in einer bestimmten Reihenfolge angegeben.

Beispielsweise werden der Server-Hostname und die Bootdatei vor den nummerierten Optionen im Bild unten angezeigt.

Wichtige Hinweise zur Fehlerbehebung

Wenn der PXE-Boot-Client keine spezifische DHCP-Option in der Parameteranforderungsliste der Option 55 im DHCP-Anforderungspaket anfordert, IST die DHCP-Option NICHT im DHCP-Serverantwortpaket enthalten, selbst wenn sie auf dem DHCP-Server konfiguriert ist. Es ist wichtig, einen Sniffer-Trace zu erhalten, um die angeforderten und gegebenen Optionen zu überprüfen.

HINWEIS: Wenn die ACI für die DHCP-IP-Helper-Adresse (DHCP Relay) für einen DHCP-Server konfiguriert ist, kann auf dem ersten Hop Leaf-Switch tcpdump verwendet werden. Da der Leaf-Switch als DHCP-Relay fungieren muss, muss die CPU die DHCP-Pakete verarbeiten, um sie an den DHCP-Server weiterzuleiten. Sie können sich mit dem Administratorkonto anmelden und den Befehl

tcpdump -i any -w /tmp/packet.pcap "port 67"

um die DHCP-Pakete zwischen dem Host und dem DHCP-Server zu erfassen. Wenn der Leaf-Switch über keine OOB-IP-Adresse verfügt, können Sie die erfasste Datei auf den APIC übertragen, indem Sie sich mit dem Admin-Benutzernamen beim APIC anmelden und

scp admin@<switch TEP>:/tmp/packet.pcap /home/admin

Sie können die Datei dann mithilfe der GUI-IP-Adresse vom APIC übertragen.

Je nachdem, welche PXE-Server unterstützen, können viele verschiedene Dateinamen angegeben werden. Der gängigste Bootloader-Dateiname für einen Linux-Server heißt "/pxelinux.0" und befindet sich normalerweise im Verzeichnis /tftpboot.

DHCP-Optionen, die beim PXE-Booten verwendet werden können

NAME

OPTIONSNUMMER

Konfiguration

BOOTDATEI

0

Bootfile <Datei>

STANDARD-ROUTER

1

Standard-Router 10.250.118.1

NETZWERK

11

Netzwerk 10.250.118.0 255.255.255.0

NEXT_SERVER

12

Next-Server 10.45.67.8

Mit übereinstimmender Option senden 60

43

Option 43 hex 06010708070000010afbd015

Übereinstimmende Zeichenfolge für Option 43

60

Option 60 "PXEClient"

Einzelner TFTP-Server

66

Option 66 IP 10.240.221.21

PXE-Dateiname

67

Option 67 "/pxelinux.0"

TFTP-Serverliste

150

Option 150 10.240.208.21

Option 43 wird an den PXE-Client zurückgegeben, wenn der DHCP-Server die 60-Option mit der 60-Zeichenfolge vergleicht, die vom Client gesendet wurde. Option 43 weist in aufsteigender Reihenfolge mehrere Unteroptionen auf (Option 6, dann 8 usw.):

Unteroption 6 ist definiert als

06: Unteroption 6

01: 1 Byte lang

07: PXE_BOOT_SERVERS-Liste verwenden, Multicast- und Broadcast-Erkennung deaktivieren (nur Unicast)

Unteroption 8 ist definiert als

08: Unteroption 8

07: Größe von 08 Option in Byte

0000: PXE-Servertyp 0 (PXE-Bootserver)

01: Anzahl der PXE-Server

0afbd015: 10.251.208.21

Die Option sieht in der DHCP-Konfiguration folgendermaßen aus:

Option 43 hex 06010708070000010afbd015

Laut https://support.microsoft.com/en-us/kb/259670, wenn der DHCP-Server über folgende Optionen verfügt:

60 = Client Identifier (auf "PXEClient" festgelegt)

66 = Host-Name oder IP-Adresse des Bootservers

67 = BootFile Name

Wenn das anfängliche DHCP-Angebot des DHCP-Servers diese Boot-Optionen enthält, wird versucht, vom PXE-Client aus eine Verbindung mit Port 4011 auf dem DHCP-Server herzustellen, und es wird der Fehler "Proxy DHCP Service hat nicht auf Port 4011 geantwortet" angezeigt.

HINWEIS: Microsoft unterstützt die Verwendung dieser Optionen auf einem DHCP-Server zur Umleitung von PXE-Clients nicht.

Kundentopologie

In diesem Beispielfall hatte der Benutzer zwei verschiedene ACI-Fabrics. In der ACI-Fabric Nr. 1 führten die PXE-Clients DHCP aus und starteten einen Microsoft-Server in der Fabric. In der anderen ACI-Fabric wiesen die PXE-Clients einen externen IOS-XE 4507-Router über einen L3Out-Router aus, nutzten jedoch denselben Microsoft-Server, um die Datei herunterzuladen, sodass der DHCP-Server nicht als TFTP-Server fungierte.

Die endgültige Lösung bestand darin, auf einen Linux-DHCP-Server zu wechseln. Die Analyse der DHCP-Paketverfolgung sieht so aus, als ob der Kunde die Option 43 String falsch konfiguriert hat und der IOS-XE DHCP-Server nie funktionierte.

Hierfür kann die ACI verwendet werden:

1. Ein DHCP-Relay muss konfiguriert werden, um die DHCP-Client-Pakete weiterzuleiten.

2. Die Verträge müssen DHCP- und TFTP-Pakete zwischen dem L3Out und der EPG zulassen, in der sich der PXE-Client befindet.

Bei den Leaf-Switches für die TFTP-Pakete werden unter Verwendung des Befehls möglicherweise Verträge verworfen.

calo2-leaf2# show logging ip access-list internal paket log | grep <Client-IP-Adresse>

Dieser Befehl ändert sich in Version 2.0, um das deny-Schlüsselwort oder das permit-Schlüsselwort hinzuzufügen. Daraus wird

calo2-leaf2# show logging ip access-list internal paket log deny | grep <Client-IP-Adresse>

Im Beispielfall forderte der PXE-Client Option 66 nicht an, gab aber Option 60 an und forderte Option 43 in der Parameterliste für Option 55 an. Außerdem wurde Next-Server angefordert (Option 12). Beachten Sie, dass der PXE-Dateiname über Option 67 angefordert wurde.

Die Antwort zeigt die Bootdatei und Option 67.

TCPdump auf Leaf-Switch: