Sieciowy start z Linuksem – PXE

Ten artykuł jest nieco związany z naszym poprzednim, w tym sensie, że porusza temat startu i instalacji Linuksa przy użyciu sieci, lokalnej lub nie. Tym razem zajmiemy się instalacją Linuksa bez nośników optycznych, dyskietek czy innych nośników wymiennych, po prostu wykorzystując sieć LAN. Oczekujemy, że będziesz miał co najmniej dwa komputery w swojej sieci, a klient będzie potrzebował NIC i BIOS zdolny do użycia PXE. Poprowadzimy cię od początku do końca, ale wymagana jest podstawowa wiedza na temat sieci i konfiguracji Linuksa oraz umiejętność korzystania z wybranego edytora. Dowiesz się, czym jest PXE, jak skonfigurować serwer DHCP, jak skonfigurować serwer TFTP, aby klient miał dostęp do plików, oraz wiele innych ciekawych rzeczy, jak zwykle.

PXE

PXE (wymawiane jako „pixie”) oznacza Preboot eXecution Environment i zostało wprowadzone przez Intel i Systemsoft w 1999 roku. W skrócie, jest to funkcja, którą posiada większość nowoczesnych kart sieciowych i BIOS-ów, która umożliwia systemowi start z sieci LAN, tak samo jak z dysku twardego lub CD-ROM-u. Obsługa PXE musi być obecna w firmware karty sieciowej, która po odpowiednim skonfigurowaniu w BIOS-ie uzyska adres IP z serwera PXE i pobierze niezbędne obrazy startowe. Aby adres IP był dostępny, serwer musi oferować DHCP. Po wydzierżawieniu adresu IP serwer TFTP (może to być ta sama skrzynka, co serwer DHCP) przekazuje klientowi potrzebne pliki, aby ten mógł je uruchomić po załadowaniu. Taka jest cała idea, więc dość gadania, bierzmy się do roboty, dobrze?

Instalacja niezbędnych narzędzi i konfiguracja

Zanim zaczniemy, ważne jest, aby zrozumieć, jak wygląda konfiguracja sieci, na której testowaliśmy to rozwiązanie. Serwer to Debian z dwiema kartami sieciowymi, a dystrybucja, którą zainstalujemy, to również Debian, czyli Squeeze, amd64. Można użyć dowolnej innej dystrybucji, ale prawdopodobnie niektóre lokalizacje plików konfiguracyjnych będą się różnić. W tym artykule nie zajmiemy się tym, jak skonfigurować źródła oprogramowania do faktycznej instalacji. Zaprowadzimy Cię jedynie do działającego debian-installera i to wszystko. Znajdziesz tam wiele tutoriali o tym, jak założyć lokalne repozytorium Debiana lub jak skonfigurować bramę w Linuksie.

Więc lista kontrolna: będziemy potrzebować serwera DHCP, serwera TFTP oraz initrd i obrazu jądra do przesłania do klienta. W naszej konfiguracji wybraliśmy dość nietypowe podejście, a zaraz zobaczycie dlaczego.

 Outside world ------> Router ------> Switch ------>(eth0) Server(eth1) ------> Client

A więc, router rozdaje adresy DHCP (mały, domowy router) w postaci 192.168.0.x . Serwer, który również będzie rozdawał adresy DHCP, ma swoje zewnętrzne połączenie przez eth0, a wewnętrzne połączenie dla klienta przez eth1. Klient ma jedyne połączenie ethernetowe bezpośrednio do serwera PXE, ale to nie znaczy, że nie można skonfigurować serwera jako bramy dla netinstall lub dodać kolejnego NIC do klienta, aby uzyskać dostęp z zewnątrz. Możliwości jest wiele, najważniejszą kwestią jest bootowanie przez PXE. Zacznijmy od instalacji serwera TFTP.

SUBSKRYBUJ NEWSLETTER & RSS
Subskrybuj RSS i NEWSLETTER i otrzymuj najnowsze wiadomości o Linuksie, ofertach pracy, poradach zawodowych i tutorialach.

TFTP

TFTP oznacza Trivial File Transfer Protocol (Trywialny Protokół Transferu Plików) i jest de facto „językiem”, jeśli chodzi o przesyłanie plików do użycia z PXE. W Debianie instalujemy go w następujący sposób:

 # aptitude install tftpd-hpa

Teraz musimy go odpowiednio skonfigurować. Zanim cokolwiek zrobimy, w naszym przykładzie uruchomimy tftpd samodzielnie, co oznacza, że nie będziemy używać xinetd. Konfiguracja będzie inna, jeśli planujesz używać xinetd, i nie zalecamy tego. Teraz wszystko, co musimy zrobić, to edytować /etc/default/tftpd-hpa :

#make sure these lines are presentRUN_DAEMON=yesTFTP_OPTIONS="-l -s /var/lib/tftpboot"

Upewnijmy się, że powyższy katalog istnieje i uruchommy demona:

 # mkdir -p /var/lib/tftpboot # /etc/init.d/tftpboot-hpa start

DHCP

Musimy zaoferować klientowi adres, zanim zaczniemy instalować sieć, a to jest robione przez Dynamic Host Configuration Protocol. Serwer DHCP posiada pulę adresów, z której na żądanie oferuje adresy IP. Instalujemy część serwerową za pomocą

 # aptitude install dhcp3-server

Teraz musimy ustawić informacje sieciowe eth1, znalezione w /etc/network/interfaces :

allow-hotplug eth1iface eth1 inet staticaddress 192.168.1.2netmask 255.255.255.0

Restart sieci i jesteśmy prawie gotowi:

 # ifdown eth1 # ifup eth1

Konfigurowanie PXE

Musimy teraz skonfigurować plik, którego klient będzie żądał, plik, w którym powiemy mu, jak znaleźć to, czego potrzebuje. Więc, stwórzmy katalog pxelinux.cfg :

 # mkdir /var/lib/tftpboot/pxelinux.cfg 

i stwórzmy plik o nazwie 'default’, który będzie miał następującą zawartość:

Widzisz odniesienie do pliku boot.txt , więc stwórz go w /var/lib/tftpboot i dodaj do niego linię „squeeze_amd64_install”.

Teraz, aby skopiować potrzebne pliki gdzieś, gdzie zostaną znalezione przez klienta:

Teraz, mając nadzieję, że wszystko jest w porządku, możesz po prostu uruchomić swojego klienta i zmienić jego ustawienia BIOS-u dla rozruchu sieciowego. Zanim skończymy, jesteśmy ci winni wyjaśnienie, dlaczego wybraliśmy taką konfigurację sieci. Prawdopodobnie mogliśmy to uprościć, na przykład używając bezpośrednio połączenia od naszego ISP i mając również dostęp do sieci (Internetu). Chodzi o to, że serwer PXE w naszym scenariuszu nie może uzyskać swojego adresu IP (eth0) z DHCP, ponieważ taka konfiguracja nie zadziała: jeśli nie zamierzasz używać scenariusza z dwoma NIC na serwerze, tak jak my, potrzebujesz jakiegoś stałego adresu IP. Tak więc, możliwości byłyby następujące: ISP podłączony bezpośrednio, ustawienie routera tak, aby dawał tylko statyczne IP, uczynienie serwera PXE/DHCP/TFTP również bramą lub stworzenie lokalnego repozytorium. Wybraliśmy tę ostatnią opcję, ponieważ najlepiej pasuje do naszej topologii i celów, i wymaga tylko skonfigurowania serwera WWW w sieci LAN, naprawdę. Gdybyśmy wyjaśnili wszystkie możliwości wyboru, włączając w to iptables dla bramy lub apache dla serwera HTTP, ten artykuł byłby ogromny. Zamiast tego, woleliśmy trzymać się tytułu i dać ci dokładnie to: Sieciowy rozruch z Linuksem.

Pamiętaj, że to tylko przykład: podobnie jak w przypadku NetbootCD, możesz dodać tyle dystrybucji, ile chcesz, pod warunkiem, że masz odpowiednią ilość miejsca na serwerze.

Myślenia końcowe

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.