Netwerk booten met Linux – PXE

Dit artikel is enigszins verwant aan ons vorige, in die zin dat het het onderwerp behandelt van het booten en installeren van Linux met behulp van het netwerk, of het nu lokaal is of niet. Deze keer behandelen we het installeren van Linux zonder optische, floppy of andere verwijderbare media, door gewoon gebruik te maken van het LAN. Er wordt verwacht dat je minstens twee computers in je netwerk hebt, en de client zal een NIC en een BIOS nodig hebben dat PXE kan gebruiken. Wij zullen u van begin tot einde begeleiden, maar enige basiskennis van netwerken en Linux-configuratie, plus het gebruik van een editor naar keuze zijn vereist. U leert wat PXE is, hoe u een DHCP server configureert, hoe u een TFTP server configureert zodat de client toegang heeft tot de bestanden, plus veel interessante dingen, zoals gebruikelijk.

PXE

PXE (spreek uit als “pixie”) staat voor Preboot eXecution Environment en werd in 1999 geïntroduceerd door Intel en Systemsoft. In het kort is het een mogelijkheid die de meeste moderne netwerkkaarten en BIOSen hebben die het systeem in staat stelt op te starten vanaf LAN, net zoals het zou opstarten vanaf harde schijf of CD-ROM. De PXE ondersteuning moet aanwezig zijn in de firmware van de NIC die, indien dienovereenkomstig ingesteld in het BIOS, een IP adres zal krijgen van de PXE server en de nodige boot images zal downloaden. Om een IP-adres beschikbaar te maken, moet de server DHCP aanbieden. Nadat een IP adres is gehuurd, deelt de TFTP server (die dezelfde doos kan zijn als de DHCP server) de benodigde bestanden uit aan de client, zodat deze na het laden kan booten. Dat is het hele idee, dus genoeg gepraat, laten we aan de slag gaan, zullen we?

Installeren van de benodigde tools en opzetten

Voordat we beginnen, is het belangrijk om te begrijpen hoe de opzet van het netwerk waarop we dit getest hebben in elkaar zit. De server is een Debian machine met twee netwerkkaarten, en de distributie die we zullen installeren is ook Debian, namelijk Squeeze, amd64. Je kunt elke andere distributie gebruiken, maar waarschijnlijk zullen sommige locaties van de configuratiebestanden verschillen. Dit artikel gaat niet in op hoe je de softwarebronnen instelt voor de eigenlijke installatie. We brengen je alleen naar een werkende debian-installer en dat is het wel zo’n beetje. Er zijn veel tutorials te vinden over hoe je een lokale Debian repository opzet of hoe je een gateway onder Linux configureert.

Dus, de checklist: we hebben een DHCP server nodig, een TFTP server en de initrd en het kernel image om naar de client over te brengen. We hebben een nogal ongebruikelijke aanpak gekozen in onze opstelling, en je zult zien waarom.

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

Dus, de router deelt DHCP adressen uit (kleine, thuis-router) in de vorm van 192.168.0.x . De server, die ook DHCP adressen zal uitdelen, heeft zijn buitenverbinding via eth0 en de binnenverbinding voor de client via eth1. De client heeft de enige Ethernet verbinding direct met de PXE server, maar dat betekent niet dat je de server niet kunt configureren als een gateway voor netinstall of een andere NIC aan de client kunt toevoegen voor toegang van buitenaf. Er zijn een heleboel mogelijkheden, waar het nu om gaat is het booten via PXE. Laten we beginnen met het installeren van de TFTP server.

SUBSCRIBE NEWSLETTER & RSS
Schrijf je in voor RSS en NEWSLETTER en ontvang het laatste Linux nieuws, banen, carriere advies en tutorials.

TFTP

TFTP staat voor Trivial File Transfer Protocol en het is de de facto “taal” als het gaat om het overzetten van bestanden om te gebruiken met PXE. Op Debian installeren we het als volgt:

 # aptitude install tftpd-hpa

Nu moeten we het goed configureren. Voordat we iets doen, in ons voorbeeld zullen we tftpd standalone draaien, wat betekent dat we xinetd niet gaan gebruiken. De configuratie zal anders zijn als u van plan bent om xinetd te gebruiken, en we raden het niet aan. Nu hoeven we alleen nog maar /etc/default/tftpd-hpa te bewerken :

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

Zorg ervoor dat de bovenstaande directory bestaat en start de daemon:

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

DHCP

We moeten de client een adres aanbieden voordat we beginnen met de installatie via het netwerk, en dit wordt gedaan door gebruik te maken van het Dynamic Host Configuration Protocol. De DHCP server heeft een pool van adressen waaruit hij IP’s aanbiedt wanneer daarom wordt gevraagd. Men installeert het server gedeelte met

 # aptitude install dhcp3-server

Nu moeten we eth1’s netwerk informatie instellen, te vinden in /etc/network/interfaces :

allow-hotplug eth1iface eth1 inet staticaddress 192.168.1.2netmask 255.255.255.0

Start het netwerk opnieuw op en we zijn bijna klaar:

 # ifdown eth1 # ifup eth1

PXE configureren

We moeten nu het bestand configureren dat de client zal opvragen, een bestand waarin we hem zullen vertellen hoe hij moet vinden wat hij nodig heeft. Dus, laten we de pxelinux.cfg directory aanmaken :

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

en een bestand aanmaken met de naam ‘default’ dat de volgende inhoud zal hebben:

U ziet een verwijzing naar het boot.txt bestand , dus maak het aan in /var/lib/tftpboot en voeg de regel “squeeze_amd64_install” eraan toe.

Nu, om de benodigde bestanden ergens naar toe te kopiëren zodat de client ze kan vinden:

Nu, in de hoop dat alles in orde is, kun je gewoon je client booten en zijn’ BIOS instellingen voor netwerk boot wijzigen. Voor we eindigen, zijn we je een uitleg verschuldigd over de netwerk setup die we kozen. We hadden het waarschijnlijk eenvoudiger kunnen maken, door bijvoorbeeld de verbinding van onze ISP direct te gebruiken, en ook toegang te hebben tot het netwerk (Internet). Het idee is dat de PXE server in ons scenario zijn IP adres (eth0) niet van DHCP kan krijgen, omdat deze setup niet zal werken: als je niet het twee-NIC scenario op de server gaat gebruiken, zoals wij deden, heb je een soort vast IP adres nodig. Dus, de mogelijkheden zouden zijn: ISP direct aangesloten, router instellen om alleen statische IP’s te geven, de PXE/DHCP/TFTP server ook een gateway maken of een lokale repository maken. Wij hebben voor het laatste gekozen omdat dit het beste past bij onze topologie en doeleinden, en er eigenlijk alleen maar een webserver op het LAN hoeft te worden opgezet. Als we alle keuzes zouden hebben uitgelegd, inclusief iptables voor een gateway of apache voor een HTTP server, dan zou dit artikel enorm zijn geweest. In plaats daarvan hielden we ons liever aan de titel en geven we je precies dat: Netwerk booting met Linux.

Houd in gedachten dat dit slechts een voorbeeld is: net als met NetbootCD, kun je zoveel distributies toevoegen als je wilt, mits je de benodigde ruimte op de server hebt.

Eindgedachten

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.