Syslinux 6.04 PXE Lightweight IP HTTP/FTP Support einrichten

Anmerkung:
Dies ist eine weiterführende Anleitung zu meinem Grundgerüst, basierend auf dem nachfolgenden Artikel:

Syslinux 6.04 PXE&TFTP&DHCP Server einrichten

Schritt: HTTP / FTP Downloads in der PXE Umgebung ermöglichen:

Melden Sie sich zuallererst auf Ihrer DS an und navigieren Sie anschließend ins Paketzentrum. Dort angekommen installieren Sie die Web Station, denn diese ist zwingend Voraussetzung für unser Vorhaben. In Firmenumgebungen gibt es eventuell bereits einen Web Server! In meinem Beispiel beziehe ich mich allerdings nur auf die Einrichtung unter Verwendung der DS.

Es gäbe auch die Möglichkeit einen externen Webserver als Downloadquelle zu nutzen. Die Geschwindigkeit wäre allerdings dann durch Ihren Internetanschluss begrenzt. Bei einer 100 Mbit Leitung wären das dann ca. ~12,5 MB/s (Theoretisch). Das wäre also deutlich langsamer als das über einen Internen Web Server abzuwickeln der im eigenen Intranet steht und mit 1Gbit angebunden ist! Und wer hat schon eine 100 Mbit Leitung beim ISP ? 🙂

Wenn Sie die Webstation installiert haben stellen Sie diese bitte wie auf den Bildern zu sehen ist ein:

Welche PHP Version sie auswählen ist egal, da wir PHP ja nicht benutzen wollen, sondern lediglich einen Webserver mit Downloadmöglichkeit wollen.

Im Unterpunkt “Virtueller Host” klicken sie auf “Erstellen”.

Wählen Sie dort portbasiert aus und aktivieren sie daneben die HTTP Checkbox. HTTPS Verbindungen unterstützt das IPXE Protokoll nicht! Diesen brauchen wir nicht. Vergeben Sie nun einen Port für Ihren Web Server. Im Standardfall ist Port 80 immer der normale HTTP Port. In unserem Fall ist es jedoch ratsam einen speziellen Port auszuwählen. Tragen Sie dort einfach 7777 oder einen Port Ihrer Wahl ein. Bedenken Sie dabei, dass sie keine Ports verwenden dürfen, die durch andere Dienste in Ihrer Umgebung bereits genutzt werden. Der Dokument Root sollte der TFTP Root sein. Wie der bei Ihnen lautet müssen Sie selbst wissen.

Ich mache Ihnen trotzdem mal ein Beispiel (So könnten Sie Ihr TFTP Root in der DS genannt haben):

/PXEServer/TFTP/
/TFTPRoot/

In unserer Anleitung zum Einrichten des TFTP&PXE Servers hatten wir eine gewisse Verzeichnisstruktur angelegt. Suchen Sie einfach die Datei “pxelinux.0“. Alle Ordner die sie dafür wechseln mussten sind der Pfad Ihres TFTP Root’s.

Beispiel:

/PXEServer/TFTP/pxelinux.0 => TFTP Root => /PXEServer/TFTP/

Als nächstes wählen Sie noch bei HTTP-Backend “Nginx” aus. Bei “PHP” das Standard Profil.

Somit ist der Webserver auch soweit eingerichtet.

Schritt: pxelinux.cfg/Konfigdateien editieren

Öffnen Sie die Datei: “pxelinux.cfg/default_BIOS” in einem Editor. Ich mache Ihnen ein Beispiel wie sie bereits vorhandene Einträge abändern könnten.

So sieht ein Eintrag bei mir in dieser Datei aus:

 LABEL WinPE50X32ISO
MENU LABEL 1. WinPE 10.0 Build 1709 x32 Bit - MemDisk ISO
MENU INDENT 2
COM32 linux.c32 memdisk
APPEND iso raw
INITRD images/Winpe/WinPE10.0/WinPE_x86.iso
TEXT HELP
Es wird die Windows Vorinstallations Umgebung 10.0 im
32 Bit Modus geladen mit allen Netzwerktreibern.

Die WinPE Versionen sind abwaertskompatibel. Es ist Ihnen moeglich
mit der WinPE 10.0 Version auch aeltere Windows Versionen zu installieren.

Es wird automatisch das Netzwerkshare zu den Windows Images aufgebaut.
ENDTEXT

Sie sehen hier einen Eintrag um die 32 BIT WinPE 10 Version über Memdisk zu laden.Sie müssen nichts anderes machen, als vor dem Pfad der ISO Datei noch ein http://DS_IP_ADRESSE:PORT/ (Beispiel: http://192.168.1.5:7777/ ) davor zu stellen.

Nach dem Bearbeiten sollte der Eintrag so aussehen:

 LABEL WinPE50X32ISO
MENU LABEL 1. WinPE 10.0 Build 1709 x32 Bit - MemDisk ISO
MENU INDENT 2
COM32 linux.c32 memdisk
APPEND iso raw
INITRD http://192.168.1.5:7777/images/Winpe/WinPE10.0/WinPE_x86.iso
TEXT HELP
Es wird die Windows Vorinstallations Umgebung 10.0 im
32 Bit Modus geladen mit allen Netzwerktreibern.

Die WinPE Versionen sind abwaertskompatibel. Es ist Ihnen moeglich
mit der WinPE 10.0 Version auch aeltere Windows Versionen zu installieren.

Es wird automatisch das Netzwerkshare zu den Windows Images aufgebaut.
ENDTEXT

Schritt: Das Booten über lpxelinux.0 einrichten:

Aus unserer vorherigen Anleitung booten wir die pxelinux.0 Datei im Legacy Modus. Da diese Datei den HTTP / FTP Modus nicht unterstützt werden wir noch ein wenig verändern müssen.

Laden Sie sich deswegen nochmal die aktuellste Syslinux Version herunter.

https://www.kernel.org/pub/linux/utils/boot/syslinux/Testing/6.04/syslinux-6.04-pre1.zip

Nach dem Entpacken kopieren Sie die Datei Syslinux 6.04\bios\core\lpxelinux.0 in das TFTP Root Verzeichnis Ihrer DS. Die Datei muss im selben Ordner liegen wie die Datei “pxelinux.0“!

Schritt: DHCP via SSH editieren

Melden Sie sich mit Putty über SSH auf Ihrer Synology an. Der Benutzername ist admin und nicht root liebe Leute 😉 Ich wollte es nur gesagt haben. Wenn Ihr eingeloggt seid, dann tippt folgendes ein:

cd /etc/dhcpd/
sudo vi dhcpd-pxe.conf

Sie werden nun erneut nach dem Passwort gefragt! Nach dem eingeben erscheint der Inhalt der Datei!

Die Datei kann verschieden aussehen, je nachdem welche Anleitungen Sie bereits durchgegangen sind. In dieser Datei ist immer pxelinux.0 durch lpxelinux.0 zu ersetzen!

Kopieren Sie bitte nicht mein Beispiel, sondern ändern die das bitte von Hand!

dhcp-boot=tag:pxe,pxelinux.0
dhcp-vendorclass=set:pxe,PXEClient
dhcp-match=set:bios,60,PXEClient:Arch:00000
dhcp-boot=tag:bios,pxelinux.0,192.168.1.5
dhcp-option-force=tag:bios,209,pxelinux.cfg/default_BIOS
dhcp-match=set:efi32,60,PXEClient:Arch:00006
dhcp-boot=tag:efi32,pxelinuxEFI32.efi,192.168.1.5
dhcp-option-force=tag:efi32,209,pxelinux.cfg/default_EFI32
dhcp-match=set:efi64bc,60,PXEClient:Arch:00007
dhcp-boot=tag:efi64bc,pxelinuxEFI64.efi,192.168.1.5
dhcp-option-force=tag:efi64bc,209,pxelinux.cfg/default_EFI64
dhcp-match=set:efi64,60,PXEClient:Arch:00009
dhcp-boot=tag:efi64,pxelinuxEFI64.efi,192.168.1.5
dhcp-option-force=tag:efi64,209,pxelinux.cfg/default_EFI64

Wenn Sie die EINFÜGEN Taste einmal drücken können Sie die Einträge verändern. Wenn Sie damit fertig sind drücken Sie einmal die ESC Taste.

Danach schreiben Sie folgendes:

:w und mit ENTER bestätigen. Die Meldung erscheint, das der Inhalt gespeichert wurde!
:q und mit ENTER bestätigen. Sie verlassen den Editor!

Der letzte Schritt: DHCP Server neu starten:

Damit unsere Änderungen auch angenommen werden, muss der DHCP Server einmal neu gestartet werden. Gehen Sie dafür im DSM auf Systemsteuerung und dann DHCP-Server und klicken dort einmal auf DHCP deaktivieren und im Anschluss nochmals auf aktivieren.

Schritt: Der Test:

Starten Sie den Rechner über PXE im Legacy Modus und überprüfen Sie, ob der Eintrag ordnungsgemäß funktioniert! Die Geschwindigkeit sollte deutlich besser sein, als TFTP Transfers. Ich habe selber mal geprüft wie viel schneller das nun vonstatten geht und in meinem Fall ist es der Faktor X4. Im TFTP Protokoll werden die Daten mit ca. ~5 MB/s übertragen. Über HTTP mit ca. ~20 MB/s im eigenen Intranet. Ich habe hier privat überall 1Gbit verlegt. Theoretisch wären 125 MB/s möglich. Warum aber immer nur 20MB/s maximal übertragen werden weiß ich nicht. Vielleicht weil das eventuell die Obergrenze in einer PXE Umgebung ist. Das ist allerdings rein spekulativ meinerseits. Ich wäre Euch zutiefst verbunden, wenn Ihr eure Geschwindigkeiten angeben würdet in den Kommentaren. Vielleicht ist es auch nur eine Einstellung in der DS selbst. Wenn das einer weiß, bitte melden!

Testen Sie es einfach selbst wie schnell es nun geht. Es ist jedenfalls eine deutlich spürbare Verbesserung.

Zum Anfang!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.