PXE/TFTP-Verkettung innerhalb desselben Servers

PXE/TFTP-Verkettung innerhalb desselben Servers

Meine vorhandene Netzwerkumgebung bietet Folgendes:

  • DHCP-Server, der PXE-Clients an einen bestimmten TFTP-Server sendet
  • TFTP-Server mit SYSLINUX-Datei „pxelinux.0“ zum Booten

Bei der SYSLINUX-Installation wird beim Timeout standardmäßig „von der lokalen Festplatte booten“ eingestellt. Dadurch können vorhandene Clients ordnungsgemäß neu gestartet werden, es besteht aber auch die Möglichkeit, in eine Rettungs- oder Bereitstellungsumgebung zu booten.

Ich teste eine neue Bereitstellungsumgebung, die sich auf einem anderen TFTP-Server befindet als dem, auf den der DHCP-Server verweist. Vorhandene Clients sind von der aktuellen Umgebung abhängig, aber ich möchte Testclients zur Bereitstellung auf den neuen TFTP-Server verweisen.

Idealerweise möchte ich in der Lage sein, eine bestimmte Menüoption in der SYSLINUX-Eingabeaufforderung zu verwenden, die den Client dazu veranlasst, von einem anderen (fest codierten und nicht vom DHCP-Server bereitgestellten) TFTP-Server zu booten.

Ich habe versucht, ein benutzerdefiniertes gPXE-Image als Menüoption auf SYSLINUX zu installieren. Das benutzerdefinierte Image hat eine DHCP-Adresse (wieder)erlangt und ist zum fest codierten TFTP-Server gegangen, aber es fehlt ein Teil, den gPXE meiner Meinung nach nicht erfüllen kann.

Das neue Bereitstellungssystem basiert auf Cobbler und hängt von der üblichen PXE-Sequenz ab, bei der der Client nach einer Datei sucht, die mit seiner MAC-Adresse benannt ist, bevor er sich für eine weniger spezifische und schließlich generische Datei entscheidet. Soweit ich das beurteilen kann, scheint gPXE nicht in der Lage zu sein, diese auf der MAC-Adresse basierende Startsequenz auszuführen.

Kann mir jemand einen anderen Weg nennen, dies zu tun? Ich zerbreche mir schon seit mehreren Tagen den Kopf über dieses Problem. Vielen Dank im Voraus!

Antwort1

PXE/TFTP-Verkettung innerhalb desselben Servers

Setzen Sie den anderen PXE-Bootloader als Kernel ein.

Dies ist das Beispiel, das ich zum Kettenladen des BSD-PXE-Bootloaders vom Linux-PXE-Kettenloader verwendet habe.

LABEL openbsd
    MENU LABEL ^OpenBSD 3.9
    KERNEL openbsd_3.9/pxeboot.0

PXE/TFTP-Verkettung mit einem anderen Server

pxechain.comwird zum Kettenladen anderer PXE-Server verwendet.

pxechain.comsyslinux-commonist als Paket in Debian/Ubuntu verfügbar oderSyslinux-Projektarchivunter anderem Dateinamen pxechn.c32.

Beispiel:

LABEL pxeserver2
        menu label Switch to 2nd PXE server...
        kernel pxechain.com
        append 192.168.10.254::pxelinux.0

Beispiel 2:(Dank anEin Hai) Falls der Name und/oder der Pfad Ihrer pxelinux-Konfigurationsdatei auf beiden PXE-Servern unterschiedlich ist, sollten Sie diese explizit mit den Optionen -p und -c definieren, da es sonst nicht funktioniert (es wird versucht, einen per DHCP definierten Wert zu verwenden, der beim aktuellen Booten verwendet wurde).

In der DC-ISO2-Serverkonfiguration:

LABEL DC-ISO1
        MENU LABEL DC-ISO1 (BIOS mode)
        KERNEL pxechn.c32
        APPEND 192.168.1.1::pxelinux.0 -c default -p /
        TEXT HELP
Boot the legacy dc-iso1 menu in bios mode.
        ENDTEXT

Zur alten DC-ISO1-Serverkonfiguration:

LABEL DC-ISO2
        MENU LABEL DC-ISO2 (BIOS mode)
        KERNEL pxechn.c32
        APPEND 192.168.1.2::/configs/pxelinux.0 -p /configs/ -c bios.cfg
        TEXT HELP
Boot the new dc-iso2 menu in bios mode.
        ENDTEXT

Technisch gesehen können Sie jetzt sogar den DHCP-Server von DC-ISO1 deaktivieren (aber nicht TFTP) und Sie booten immer zuerst zu DC-ISO2, während Sie zwischen den Menüs beider Server wechseln können.

Antwort2

Nehmen Sie pxelinux.0 von Ubuntu 10.4 LTS. Das durchläuft die „normale“ Iteration: MAC – IP in HEX – … Standard.

Es wäre einfacher, Ihrem DHCP-Server mitzuteilen, dass er auf bestimmte Anfragen NICHT antworten soll, und einen anderen DHCP im selben Netzwerk (nicht maßgebend) einzurichten, der auf Ihre Testserver-Anfragen antwortet (und auf nichts anderes antwortet).

verwandte Informationen