Bootowanie z sieci – konfiguracja routera

PXE (Preboot eXecution Environment) to technologia pozwalająca na zabootowanie systemu operacyjnego z innego komputera znajdującego się w sieci lokalnej.

Proces bootowania systemu operacyjnego w technologii PXE wygląda w dużym skrócie następująco. BIOS komputera wywołuje BIOS katy sieciowej. Ten z kolei próbuje odnaleźć w sieci lokalnej serwer DHCP. Od serwera DHCP otrzymuje swój adres IP oraz adres IP serwera TFTP i nazwę pliku do załadowania, zwykle pxelinux.0 (PXE) lub gpxelinux.0 (gPXE). Komputer klienta pobiera ten plik, a potem kolejne pliki, których nazwy trudno tu wymienić, gdyż zależą wprost od konfiguracji PXE / gPXE. W oryginalnym PXE wszystkie te pliki przesyłane są przy pomocy protokołu TFTP, który niestety jest bardzo wolny. Z tego względu zwykle stosuje się także trzeci, pomocniczy serwer, najczęściej NFS, ewentualnie HTTP lub FTP, który służy do przesłania największych plików. Można też skorzystać z rozszerzonej wersji PXEgPXE, która sama obsługuje protokół HTTP. Przykłady konfiguracji podane w ostatniej części cyku artykułów o bootowaniu z sieci lokalnej – Bootowanie z sieci – konfiguracja PXE dostosowane są do klasycznej wersji PXE (gPXE jest z nimi wstecznie kompatybilny). Natomiast w pozostałych częściach cyklu traktujących o instalacji serwerów TFTP, NFS oraz Syslinuksa na Linuksie, Cygwinie i Windowsie przedstawię instalację gPXE ze względu na większe możliwości.

Każdy z wyżej wymienionych serwerów może być umieszczony na osobnych maszynach, bądź też wszystkie serwery mogą być zainstalowane na jednej maszynie.

Konfiguracja klienta

Konfiguracja komputera klienta ogranicza się do 2 rzeczy: ustawienia w BIOS-ie bootowania w pierwszej kolejności z sieci lokalnej (LAN) oraz podpięcia karty sieciowej komputera do portu LAN routera. Technologia PXE pochodzi z 1999 r., więc nawet naprawdę stare komputery ją wspierają. Jeśli trafi się Wam jakiś złom, z niedziałającym napędem optycznym i bez możliwości bootowania z USB, technologia PXE może okazać się zbawienna. Tak naprawdę, aby zabootować system operacyjny poprzez PXE, komputer klienta nie musi posiadać żadnych urządzań magazynujących dane, takich jak dyski twarde, pendrive-y, napędy optycznie czy stacje dyskietek, gdyż system operacyjny ładowany jest do RAM-u. I tu dochodzimy do największej wady PXE / gPXE jaką jest zapotrzebowanie na pamięć, które wynika z zapotrzebowania samego systemu operacyjnego powiększonego dodatkowo o pamięć potrzebną do załadowania obrazu systemu operacyjnego do RAM-u.

Serwer DHCP – konfiguracja routera z OpenWrt / Gargoyle

Konfigurując środowisko PXE zdecydowałem, że powinno ono działać na istniejącej już sieci lokalnej. Instalacja osobnego serwera DHCP na którymś z komputerów w sieci lokalnej odpadła w przedbiegach. Wady takiego rozwiązania są oczywiste – konieczność odpięcia komputerów od routera i spięcia ich kablem skrosowanym. No właśnie skoro już o routerze mowa, wykorzystajmy jego do zainicjowania bootowania z secie lokalnej. W OpenWrt / Gargoyle do realizacji usług DHCP, DNS i TFTP używany jest serwer Dnsmasq o szerokich możliwościach, zatem wykorzystajmy go.

Jak część z Was pewnie wie, ja na swoim routerze mam zainstalowany build OpenWrt by vargalex. W jego przypadku wystarczy na zakładce Network -> DHCP and DNS -> TFTP Settings zaznaczyć Enable TFTP server. W Network boot image wpisujemy przykładowo: gpxelinux.0,,192.168.1.240. Adres ten wskazuje serwer TFTP Trivial File Transfer Protocol. Jak już wcześniej wspomniałem, nic nie stoi na przeszkodzie, aby tą maszyną był sam router, wtedy wpisujemy odpowiednio gpxelinux.0,,192.168.1.1, a w TFTP server root podajemy ścieżkę do głównego katalogu serwera TFTP.

Network - DHCP and DNS - TFTP Settings

Network – DHCP and DNS – TFTP Settings

W mniej klikalnych dystrybucjach OpenWrt / Gargoyle wydajemy natomiast następujące polecenia:

Serwer DHCP na routerze z OpenWrt / Gargoyle został skonfigurowany, przejdźmy zatem do dalszej konfiguracji opisanych w kolejnych częściach cyklu.

Spis treści artykułów o PXE / gPXE

Tematykę bootowania z sieci lokalnej opisuję w serii 5 artykułów, zapraszam do zapoznania się z pozostałymi częściami:

  1. Bootowanie z sieci – konfiguracja routera.
  2. Bootowanie z sieci – PXE na Linuksie.
  3. Bootowanie z sieci – PXE na Cygwinie.
  4. Bootowanie z sieci – PXE na Windowsie.
  5. Bootowanie z sieci – konfiguracja PXE.