Categorie:PXE: verschil tussen versies

Uit Wiki Facet
Naar navigatie springenNaar zoeken springen
Geen bewerkingssamenvatting
Geen bewerkingssamenvatting
Regel 67: Regel 67:


We hebben nu de classes beschikbaar die nodig zijn voor de policies.
We hebben nu de classes beschikbaar die nodig zijn voor de policies.
== Aanmaken policies iPXE ==
De policies kunnen nu  aangemaakt worden binnen de scope of op globaal niveau. Wat voor u het handigste is, hangt af van uw inrichting. In dit voorbeeld maken wij ze aan onder de scope zelf.
1. Onder de scope configuratie in de DHCP console ziet u policies staan. Rechtsklik deze en kies voor ‘New policy’. Geef de policy een logische naam, zoals bijvoorbeeld ‘iPXE Config’ en klik op ‘Next’.<br>
2. U moet nu de condities voor de policy opgeven. Klik op ‘Add’. Zet ‘Criteria’ op ‘User Class’ en de ‘Operator’ op ‘Equals’. Bij ‘Value’ kiest u voor ‘iPXE’. U klikt op ‘Add’ en daarna op ‘OK’. Klik op ‘Next’ om naar het volgende venster te gaan. <br>
3. Het is normaliter niet nodig om een separaat deel van de range uit de scope te gebruiken, zet derhalve bij de ‘Do you want to configure an IP address range for the policy’ op ‘No’ en klik op ‘Next’.<br>
4. Nu kunt u de opties opgeven die nodig zijn voor deze policy. Deze zijn afhankelijk van waar u de configuratie wilt laden. In dit voorbeeld ga wij er van uit dat u een webserver heeft staan met IP adres 10.0.0.1 en de configuratie in de root van deze webserver te vinden is met de bestandsnaam ‘ipxe.php’. Zet derhalve optie ‘067 Bootfile Name’ aan en verwijs deze naar ‘http://10.0.0.1/ipxe.php’ en klik daarna op ‘Next’ en dan op ‘Finish’. Het is belangrijk dat deze policy bovenaan blijft staan. <br>
Als de policies om te testen of het een EFI of BIOS systeem betreft, erboven komen te staan blijft er verwezen worden naar de respectievelijke iPXE versies. Gezien die tests het ook gewoon doen als de iPXE client boot (die stuurt ook mee of het EFI of BIOS systeem betreft).
== BIOS of EFI ==

Versie van 11 aug 2017 12:20

Generiek boot proces

Het boot proces van de BCLD bestaat uit het laden van de kernel en een initrd image (Linux machine).

Voor de BCLD geldt dat het initrd image tevens het root filesystem is. Een initrd wordt (vaak) voornamelijk gebruikt om het uiteindelijke root filesystem te vinden. Hierbij moet u denken aan het laden van de benodigde drivers om de opslag te vinden of het initialiseren/mounten van filesystems met een complexere layout zoals bijv. software RAID of BTRFS volumes die meerdere schijven omvatten.

Gezien de BCLD helemaal uit RAM draait, wordt de initrd tevens als root filesystem gebruikt. Dit verkleint de complexiteit.

In de laatste images zit nog maar één archief, wat direct het root filesystem is. Het is belangrijk dat de kernel en initrd geladen worden en de juiste parameters mee gegeven worden.

Let op: Vergeet niet de juiste afname URL mee te geven aan de BCLD. Voor de online afname-omgeving is dat https://afname.facet.onl/facet-afname. Voor de offline afname-omgeving is dat https://IP-AdresFAO/facet-afname.

PXE boot

Er zijn vele bootloaders die linux kernels kunnen laden en starten. Voor PXE boot denken wij dat iPXE (ipxe.org) de makkelijkste is, gezien er voor de syntax veel documentatie op hun website te vinden is.

Daarbij geeft iPXE mogelijkheden om de images o.a. van een webserver binnen te halen en laat deze ook de voortgang van de download zien in percentages. Dit geeft een duidelijk beeld van hoelang het duurt om het bestand binnen te halen.

Om via PXE te booten is er ondersteuning nodig van de DHCP server, met name voor de DHCP opties 66 en 67. Optie 66 geeft het adres van de TFTP server aan, optie 67 geeft het bestand aan welke geladen dient te worden.

Nu is er met iPXE een zogenaamd chainloading probleem. Na het laden van de iPXE boot loader zal deze wederom een DHCP request doen. De DHCP server moet dit af kunnen vangen, anders blijft iPXE zich zelf laden:

1. iPXE laden.
2. Doet een nieuwe DHCP request.
3. Ontvangt via optie 67 weer dat iPXE geladen moet worden.
4. Download zichzelf opnieuw en start dan.

Met DHCP policies kunt u dit ondervangen. De DHCP server kijkt dan of de request van een normale, niet iPXE client komt. Wijzen optie 66 en 67 naar de iPXE loader, maar komen als de request van een iPXE cliënt af, dan wijzen we deze naar het benodigde configuratie bestand.

Indien u met zowel BIOS als EFI systemen te maken heeft wordt het iets complexer. Een bootloader voor BIOS heeft namelijk een andere binaire vorm dan een bootlader voor een EFI systeem.

Door middel van policies wordt gekeken of de DHCP request afkomstig is van een iPXE client. Indien dit het geval is, verwijzen we naar het configuratie bestand voor iPXE. Indien de request niet afkomstig is van een iPXE client, testen we of de request afkomt van een BIOS of een EFI systeem en verwijzen naar de juiste iPXE loader voor het gebruikte systeem. Deze laadt iPXE en doet vervolgens weer een DHCP request.

Deze request is dan afkomstig van een iPXE client en de DHCP server verwijst in dat geval optie 67 naar de configuratie en indien nodig optie 66 ook. Optie 67 kan in dit geval een http URL bevatten bijvoorbeeld http://10.0.0.1/ipxe-config.txt en optie 66 is dan niet nodig. Indien het alleen een bestandsnaam bevat zal optie 66 wel nodig zijn. Deze dient dan te verwijzen naar de TFTP server waarop het genoemde bestand in optie 67 te vinden is.

Indien uw omgeving alleen EFI of BIOS systemen bevat kunt u deze laatste test overslaan. U moet in dat geval altijd naar of de EFI of de BIOS versie verwijzen. Wij raden u aan de test, indien mogelijk, altijd te implementeren. Het is robuuster voor het geval er toch een keer een ander type systeem in het netwerk staat.



Voorbeeld configuratie MS DHCP server

Voor de policies is minimaal een 2012 server nodig. Voor 2012 zijn niet alle benodigde opties in Microsoft DHCP beschikbaar voor het aanmaken van de policies. Voor het testen van de client is een zogenaamde ‘User Class’ nodig. Voor het testen of het EFI of BIOS betreft een ‘Vendor Class’. Vendor classes kunnen pas aangemaakt worden sinds 2012. Zonder vendor classes kunt u geen onderscheid maken op basis van EFI of BIOS systemen.


Aanmaken DHCP classes

Voor het aanmaken van de classes klikt u rechts op het ‘IPv4’ gedeelte in de DHCP configuratie console. Hier ziet u dan de opties ‘Define User Classes’ en ‘Define Vendor Classes’. We maken eerst de ‘User Class’ aan.

1. Rechtsklik op ‘IPv4’ en kies voor ‘Define User Classes’.
2. Klik op Add in het venster dat verschijnt.
3. Vul bij ‘Display name’ en bij ‘Description’ een herkenbare naam in. Wij gebruiken hiervoor ‘iPXE’ en ‘iPXE clients’.
4. In het veld daaronder typt u in het ‘ASCII’ deel ‘iPXE’

Als deze is aangemaakt moet u nog 2 vendor classes aanmaken.

1. Rechtsklik hiervoor weer op IPv4 en kies nu voor ‘Define Vendor Classes’.
2. Klik op ‘Add’ in het venster dat verschijnt.
3. Doe dit 2 keer en vul de benodigde velden in.

We hebben nu de classes beschikbaar die nodig zijn voor de policies.


Aanmaken policies iPXE

De policies kunnen nu aangemaakt worden binnen de scope of op globaal niveau. Wat voor u het handigste is, hangt af van uw inrichting. In dit voorbeeld maken wij ze aan onder de scope zelf.

1. Onder de scope configuratie in de DHCP console ziet u policies staan. Rechtsklik deze en kies voor ‘New policy’. Geef de policy een logische naam, zoals bijvoorbeeld ‘iPXE Config’ en klik op ‘Next’.
2. U moet nu de condities voor de policy opgeven. Klik op ‘Add’. Zet ‘Criteria’ op ‘User Class’ en de ‘Operator’ op ‘Equals’. Bij ‘Value’ kiest u voor ‘iPXE’. U klikt op ‘Add’ en daarna op ‘OK’. Klik op ‘Next’ om naar het volgende venster te gaan.
3. Het is normaliter niet nodig om een separaat deel van de range uit de scope te gebruiken, zet derhalve bij de ‘Do you want to configure an IP address range for the policy’ op ‘No’ en klik op ‘Next’.
4. Nu kunt u de opties opgeven die nodig zijn voor deze policy. Deze zijn afhankelijk van waar u de configuratie wilt laden. In dit voorbeeld ga wij er van uit dat u een webserver heeft staan met IP adres 10.0.0.1 en de configuratie in de root van deze webserver te vinden is met de bestandsnaam ‘ipxe.php’. Zet derhalve optie ‘067 Bootfile Name’ aan en verwijs deze naar ‘http://10.0.0.1/ipxe.php’ en klik daarna op ‘Next’ en dan op ‘Finish’. Het is belangrijk dat deze policy bovenaan blijft staan.


Als de policies om te testen of het een EFI of BIOS systeem betreft, erboven komen te staan blijft er verwezen worden naar de respectievelijke iPXE versies. Gezien die tests het ook gewoon doen als de iPXE client boot (die stuurt ook mee of het EFI of BIOS systeem betreft).


BIOS of EFI

Deze categorie bevat geen pagina’s of media.