Problembehandlung beim PXE-Start mit Network Protocol Analyzer

Dokumentation

Wartung und Leistung

000006544

12.02.2020

Lösung

Diese Informationen beschreiben nicht die Fehler, die dazu führen können, dass der PXE-Start fehlschlägt. Dieses Dokument enthält Hintergrundinformationen zu den Voraussetzungen für einen erfolgreichen PXE-Start und beschreibt, was geschieht, wenn kein PXE-Server zur Verfügung steht.

Der PXE-Remote-Boot-Vorgang basiert auf dem DHCP-Protokoll. Um zu verstehen, wie PXE funktioniert, müssen Sie zunächst über ein grundlegendes Verständnis von DHCP verfügen.


DHCP

DHCP basiert auf dem Bootstrap-Protokoll, das gemeinhin als BOOTP bezeichnet wird, das es Systemen ermöglicht, eine IP-Adresse und einen Remote-Boot-Vorgang vom Netzwerk aus zu erhalten. DHCP fügt Funktionen hinzu, z. b. dynamische IP-Adressierung und Optionsfelder zur Übergabe von Systeminformationen.

Der DHCP-Prozess beginnt mit einem Client, der eine Adresse über eine DHCP-Entdeckungs Nachricht anfordert. Die Discovery-Nachricht ist ein UDP-Paket mit einem Quell-Port von 68 (definiert als bootpc, für BOOTP-Client) und einem Ziel-Port von 67 (definiert als bootps für BOOTP-Server). Die Discovery-Nachricht hat die Mac-Adresse des anfordernden Knotens als Quell-MAC-Adresse und eine Übertragung (alle F) als Ziel-MAC-Adresse. Die Quell-IP-Adresse ist 0.0.0.0 und die Ziel-IP-Adresse ist 255.255.255.255 (Broadcast). Der Antrag enthält zumindest die folgenden Optionen.

  • Option 55 (Parameter-Anforderungsliste)
  • Option 1 (Subnetzmaske)
  • Option 3 (Router)
  • Option 6 (Domain Name Server)

Ein oder mehrere DHCP-Server sollten mit einem DHCP-Angebot reagieren. Bei der DHCP-Angebots Nachricht handelt es sich um ein UDP-Paket mit der Mac-Adresse des Clients, der den Dienst als Zieladresse anfordert. Die Ports sollten das Gegenteil der ursprünglichen Anforderung sein (der Quell-Port sollte 67 sein, der Ziel-Port sollte 68 sein). Bei der Quell-IP-Adresse handelt es sich um die Adresse des Servers, der das Angebot ausgibt, und die Ziel-IP-Adresse ist eine Übertragung. Dieses Angebot enthält eine vorgeschlagene IP-Adresse sowie Antworten auf die angeforderten optionalen Parameter.

Der Client reagiert auf eines der Angebote mit einer DHCP-Anfrage. Bei der Anforderungsnachricht handelt es sich um ein UDP-Paket, das der Entdeckungs Nachricht ähnelt und dieselben Quell-und Zielanschlüsse und-Adressen verwendet und dieselben Parameter anfordert.

Der Server antwortet mit einer DHCP-Bestätigung (Bestätigung) mit allen angeforderten Informationen. Die ACK-Nachricht ist ein UDP-Paket, das der Angebots Nachricht ähnelt und die optionalen Informationen angefordert hat.


PXE-Erweiterungen für DHCP

Der PXE-Startvorgang erweitert das DHCP-Protokoll durch Hinzufügen von Informationen, die für den Remote-Start eines Computers benötigt werden. Diese Informationen umfassen den Client-Anbieter und die Klasse, die es dem PXE-Server ermöglicht, ein Client-spezifisches Image auszuwählen.

Das System, das einen PXE-Start anfordert, verwendet die DHCP-Entdeckungs Nachricht, um den Anbieter und die Maschinenklasse zu identifizieren und den Speicherort und den Dateinamen einer Bilddatei anzufordern. Der PXE-Client identifiziert seinen Hersteller und die Klasse des Computers, da es möglicherweise mehrere Images über die PXE-Server gibt.

Die DHCP-Entdeckungs Nachricht vom PXE-Client enthält die folgenden optionalen Parameter Anforderungen:

  • 60 – Anbieterklassen Kennung
  • 66 – TFTP-Servername (eine Anforderung für den Namen des TFTP-Servers, der das Startabbild hostet)
  • 67 – Name der Bootdatei (Name der Bilddatei, die heruntergeladen werden soll)


Untersuchung einer Ethereal *-oder wireshark *-Spur eines PXE-Starts

Ein PXE-Startvorgang erfordert viele Austauschvorgänge.

  1. Der PXE-Client sendet eine DHCP-Erkennung mit den auszufüllenden PXE-Optionen.
  2. Der DHCP-Server antwortet mit einem DHCP-Angebot mit TCP/IP-Parametern.
  3. Der PXE-Client antwortet mit einer DHCP-Anfrage
  4. Der DHCP-Server antwortet mit einer DHCP-Bestätigung.
  5. Wenn der DHCP-Server auch der PXE-Server ist, hat die DHCP-ACK normalerweise den TFTP-Servernamen und den Namen der Boot-Datei. Wenn es sich bei dem PXE-Server um ein anderes System handelt, erfolgt ein separater Austausch von Anforderungen und Antworten zwischen dem PXE-Server und dem PXE-Client nach dem anfänglichen DHCP-Vorgang.
    Hinweis
    • Wenn der anfängliche DHCP-Austausch nicht den TFTP-Servernamen und den Start Dateinamen hat, sehen Sie in der Ablaufverfolgung nach, bis eine erfolgreiche DHCP-Bestätigung angezeigt wird, bei der diese beiden Optionen abgeschlossen wurden.
    • Nachdem der PXE-Client eine Bestätigung mit dem Namen des TFTP-Servers und dem Start Dateinamen erhalten hat, stellt der Client eine Verbindung zum TFTP-Server mit einer TFTP-Leseanforderung her, die den Namen der Boot-Datei enthält.
    • Eine TFTP-Sitzung wird hergestellt und wird fortgesetzt, bis die Dateiübertragung abgeschlossen ist.

Abb. 1 ist ein Screenshot einer ätherischen Aufnahme einer DHCP-Entdeckungs Nachricht von einem PXE-Client. Beachten Sie, dass die Option 55 (Parameter-Anforderungsliste) hervorgehoben ist und die angeforderten Parameter aufgeführt sind.

Zu den Parametern gehört auch eine Anfrage nach einem TFTP-Servernamen (Option 66) und einem Boot-Dateinamen (Option 67). Option 60 wird die Vendor-Klassenkennung ebenfalls angefordert. Eine Antwort auf die Anfrage ist optional und wird verwendet, um den Client darüber zu informieren, dass sich der PXE-Server auf einem anderen Server als der DHCP-Server befindet (ein DHCP-Proxy wird verwendet).

DHCP DISCOVER
Abb. 1. DHCP-Erkennung

 

Abb. 2 zeigt die DHCP-ACK-Antwort auf die DHCP-Anforderung. Das DHCP-ACK enthält dieselben Optionen, die Sie im DHCP-Angebot beobachten würden. Beachten Sie, dass der TFTP-Server und der Name der Boot-Datei im Paket enthalten sind, wenn eine DHCP-Transaktion erfolgreich abgeschlossen wurde.

DHCP ACK
Abb. 2. DHCP-ACK

 

Auf ein erfolgreiches DHCP-Exchange folgt eine TFTP-Sitzung, die mit einer TFTP-Leseanforderung beginnt. Abb. 3 zeigt den Beginn einer TFTP-Sitzung.

TFTP Session
Abb. 3. TFTP-Sitzung.

 

Abb. 4 zeigt eine Ablaufverfolgung eines fehlgeschlagenen PXE-Starts, da kein PXE-Server vorhanden ist. Obwohl der PXE-Client einen TFTP-Servernamen (Option 66) und einen Boot-Dateinamen (Option 67) angefordert hat, enthält das angezeigte DHCP-Angebot keine Option 66 oder 67. In diesem Fall macht der PXE-Client wiederholte DHCP-Erkennungsanforderungen, gefolgt von DHCP-Angebots Antworten, die nicht über die erforderlichen Optionen verfügen, um den PXE-Startvorgang abzuschließen.

DHCP OFFER
Abb. 4. DHCP-Angebot
Wo kein PXE-Server verfügbar ist