Dynamic Host Configuration Protocol (DHCP) is een computerprotocol dat beschrijft hoe een computer dynamisch zijn netwerkinstelling van een DHCP-server kan verkrijgen. Het DHCP-protocol is gebaseerd op het Internet Protocol IP en werkt met UDP-pakketten.

Introductie

Bij DHCP is het principe dat toestellen in een IP-netwerk geen vast geconfigureerd IP-adres hebben, maar hun IP-adres dynamisch verkrijgen van een centraal beheerde DHCP-server. De server, die zelf een vast IP-adres heeft, beheert hiertoe een "pool" van beschikbare IP-adressen, veelal in de private address space volgens RFC 1918. Na opstarten van de DHCP-server zijn die adressen vrij en kunnen ze aangevraagd worden door de toestellen op het netwerk. Door de aanvragen worden de IP-adressen toebedeeld, uiteraard in aantal beperkt tot de grootte van de pool.

Toestellen die op het netwerk komen, kunnen via een aanvraagsequentie een IP-adres verkrijgen dat beperkt geldig is, voor de ingestelde geldigheidsduur, de "lease time". Toestellen die het netwerk verlaten, dienen hun adres vrij te geven. Dit gebeurt uiteraard niet in alle gevallen. Het adres komt echter uiteindelijk toch weer vrij door het verlopen van de geldigheidsduur.

DHCP-servers kunnen voor bepaalde toestellen een vast uit te reiken IP-adres geconfigureerd hebben. Zo kan het bv. zijn dat binnen een bedrijf alle netwerkprinters een vast IP-adres krijgen, dit terwijl andere toestellen een willekeurig adres uit de pool toebedeeld krijgen.

Oorsprong en classificatie

DHCP vindt zijn oorsprong in het BootP-protocol, dat oorspronkelijk ontworpen was om computers hun besturingssysteem vanaf het netwerk te laten laden. Tegenwoordig bevindt BootP zich net als DHCP in de TCP/IP-suite, om precies te zijn in de internet-laag. Men kan deze laag vergelijken met de netwerklaag in het OSI-model, ofwel laag 3.

Voordelen

Gebruik van DHCP heeft belangrijke voordelen voor het netwerkbeheer:

Protocol

Een toestel dat een IP-adres wenst te verkrijgen, dient daartoe een sequentie van aanvraag te starten. Bij een correcte configuratie van het netwerk zal ten minste één DHCP-server op de aanvraag moeten reageren. Het aanvragende toestel kan vervolgens de finale aanvraag doen, waarop de aanbiedende server normaal bevestigend zal antwoorden. Vanaf dat moment maakt het aanvragende toestel deel uit van het netwerk ook op de internetlaag en kan het op IP-pakketten gebaseerde communicatie uitvoeren. Het is mogelijk dat er zich meer dan één DHCP-server op het netwerk bevindt, voor verschillende subnetten.

DHCP DORA (D)iscover (O)ffer (R)equest (A)cknowledge proces

Het volledige proces ter verkrijging van de netwerkinstellingen bestaat uit een sequentie van vier aanvragen en reacties. Dit proces staat bekend onder de afkorting DORA. Discover Offer Request Acknowledge.

Hieronder het verloop van een succesvolle aanvraag, met vermelding van de naam van de boodschap binnen het DHCP-protocol tussen haakjes:

De client gebruikt dus de gegevens van de eerste DHCP-server waarvan hij antwoord krijgt en gebruikt deze gegevens om zijn netwerkverbinding in te stellen. De betreffende computer heeft nu een uniek IP-adres en kan derhalve vervolgens communiceren met andere toestellen.

Uiteraard is het ook mogelijk dat de aanvraag niet slaagt, door een fout of een reeds bestaande allocatie. Hiertoe dienen de volgende DHCP-berichten:

Een clienttoestel kan het in gebruik zijnde IP-adres ook weer vrijgeven:

Gegevens die onder meer (kunnen) worden doorgestuurd zijn:

Handmatig

Het is niet noodzakelijk om DHCP te gebruiken. Een computer kan ook handmatig van de correcte instellingen worden voorzien. In de praktijk echter vinden veel systeembeheerders DHCP eenvoudiger, omdat zij dan niet zelf alle computers in het netwerk handmatig hoeven te configureren. Ook als er zich wijzigingen in het netwerk voordoen, hoeft alleen de DHCP-server van de nieuwe instellingen te worden voorzien.

In veel grote netwerken wordt juist wél gewerkt met vaste IP-nummers (en dus geen DHCP), om op die wijze voor tienduizenden PC's de instellingen eenmalig handmatig te verrichten. Daarmee kunnen ook eenvoudiger routes van het ene netwerkapparaat (PC) naar het andere (een printer bijvoorbeeld) worden opgegeven, op basis van het IP-adres. Een van de grootste netwerken in Nederland (Defensie MULAN) is op deze wijze ingericht. Bijkomend voordeel op gebied van beveiliging is dat IP-pakketten van onbekende MAC-adressen meteen kunnen worden gedetecteerd.

ISP's

Internet Service Providers maken ook graag gebruik van DHCP. Zo konden ze het aantal benodigde IP-adressen beperken, omdat niet al hun abonnees tegelijkertijd verbinding maken, en daarnaast de configuratie van de gebruikersapparatuur eenvoudig houden, wat zorgt voor flexibiliteit bij de inrichting van het netwerk. Bij tijdelijke verbindingen zoals inbelverbindingen zijn niet meer IP-adressen nodig dan er modems dat bij de ISP aanwezig zijn. Dit is door de landelijke uitrol van ADSL en kabelinternet achterhaald. Doordat veel computers met ADSL-, glasvezel- of kabelinternet continu op het internet aangesloten zijn (als het modem thuis aan blijft staan), hebben ze in de praktijk vaak lang hetzelfde IP-adres, ook als daar door de ISP geen garanties voor worden gegeven.

Looptijd

Voorbeeld van DHCP lease, waarbij de DHCP-server (192.168.1.1) een client het adres 192.168.1.111 heeft gegeven met een lease van 86400 seconden (1 dag).

Aan de DHCP-gegevens is een bepaalde leasetime of looptijd gekoppeld, variërend van enkele minuten tot enkele weken. In die tijd is het IP-adres voor deze specifieke computer gereserveerd. Voordat de leasetijd verlopen is moet de computer opnieuw een aanvraag indienen, en krijgt dan eventueel een ander IP-adres (maar meestal hetzelfde IP-adres). Als een computer, of netwerkverbinding, herstart tijdens de looptijd van een lease voorziet het protocol in een voortzetting van het reeds verkregen IP-nummer zodat de eerste stap (initiële aanvraag) overgeslagen wordt en een verlenging gebruikt wordt. Voor het opnieuw uitgeven van IP-adressen gebruikt de DHCP-server een groep adressen ('pool'). Met de standaardinstellingen van consumentenapparatuur heeft die pool een omvang die varieert van enkele tientallen tot enkele honderden adressen.

Breedband

In het geval van breedband-internetverbindingen, zoals kabelinternet en ADSL, wordt vaak ook met DHCP gewerkt, hoewel een aantal providers ook vaste adressen uitdeelt. Mensen met een dynamisch IP-adres zullen iets meer moeite moeten doen als zij een server willen draaien. Hoewel hun IP-adres over het algemeen hetzelfde zal blijven (toegewezen op basis van hun MAC-adres), kan het zijn dat het toch verandert. Dit gebeurt bijvoorbeeld als de host langere tijd offline is geweest (en het IP-adres is vrijgegeven of zelfs al toegewezen aan iemand anders), of als er bijvoorbeeld een andere netwerkkaart wordt geplaatst. De ISP herkent dan het MAC-adres van de host niet meer. Eventuele DNS-instellingen moeten dan worden aangepast. Dit kan handmatig of automatisch door middel van een script (zoals DynDNS) gebeuren.

Problemen bij DHCP

Wanneer de computer niet als zodanig is ingesteld dat deze zelf aan de DHCP-server verlenging van de looptijd vraagt, of er is langere tijd geen DHCP-server beschikbaar, wordt de verbinding met een regelmaat van een half uur tot een dag tijdelijk verbroken. Dit kan bij applicaties als IRC hinderlijk zijn. Ook het onjuist instellen van de DHCP-server en/of de overige netwerkapparatuur kan problemen geven: indien een netwerkgebruiker een IP-adres gebruikt dat binnen de pool van de DHCP-server ligt, dan zijn er op een gegeven moment twee netwerkapparaten met hetzelfde IP-adres. Hierdoor ontstaan op ethernetverbindingen veel collisions en haperende apparatuur. Het reserveren van adresgebieden is van groot belang. Indien de client geen DHCP server kan bereiken (of niet tijdig kan bereiken) gaat de client gebruikmaken van APIPA.

DHCP Authentication

Om DHCP veiliger te maken werd in juni 2001 authenticatie voor DHCP-berichten bedacht. DHCP Authentication is beschreven in RFC 3118[1] en is een verbetering in de beveiliging die de normale DHCP-berichten met geverifieerde servers/clients vervangt. Clients en servers controleren de afkomst van de bron met verificatie-informatie en berichten. Indien ongeldig zal de bron geweigerd worden. Een DHCP Authentication-server kan tevens overweg met clients die alleen het standaard DHCP-protocol ondersteunen (backwards compatible).

DHCP Relay Agent

In grotere, typisch hiërarchisch georganiseerde netwerkomgevingen met vele subnetten en verschillende IP-reeksen is het niet efficiënt om één DHCP-server per LAN/subnet op te zetten en te onderhouden. Voor dergelijke netwerken zal men er daarom de voorkeur aan geven om te werken met een of meer centrale DHCP-servers die IP-adressen kunnen toewijzen voor verschillende LANs/subnetten. Dit betekent echter dat DHCP-verkeer tussen de verschillende LANs en de DHCP-server mogelijk moet zijn, waarbij er toestellen op hogere lagen dan de datalinklaag, zoals routers, moeten worden gepasseerd. Om dit toe te laten kan men werken met DHCP-relay-agents.

Een DHCP-relay-agent communiceert met een DHCP-server in een ander IP-netwerk (segment) en fungeert als een proxy voor DHCP-broadcastberichten die moeten worden gerouteerd naar dat andere IP-netwerk. Hierdoor verloopt het DHCP-verkeer, in verschillende netwerken, transparanter.

Om de DHCP-relay-agent goed DHCP-verkeer te laten uitwisselen is het essentieel om zowel een DHCP-server als een DHCP-relay-agent te hebben in de andere IP-netwerken. De DHCP-relay-agent wordt geïnstalleerd op een geschikt apparaat (router, modem of server) dat het protocol ondersteunt.

Het gebruik van een DHCP-relay-agent compliceert op zich de opzet en is daardoor doorgaans alleen geëigend voor grote, complexe netwerkomgevingen met vele subnetten, waar centralisatie meer voordelen biedt dan het behouden van eenvoud op het niveau van de individuele netwerksegmenten.

DHCP MAC Binding

DHCP wijst een willekeurig IP-adres toe aan elk apparaat in het netwerk. Om te voorkomen dat een apparaat steeds een ander IP-adres krijgt bestaat er MAC-binding (Bind IP to MAC). In feite doet MAC-binding niets anders dan dit: Een MAC-adres met een vast IP-adres reserveren in het netwerk met een leasetime die nooit verloopt. Het grote voordeel hiervan is dat er een betere controle is op de apparaten binnen een netwerk en het beheer met DHCP doeltreffender is. MAC-binding kent twee mogelijkheden:

Voorbeeld bij ADSL

Een mogelijke instelling zoals bij ADSL gebruikt kan worden: 10.0.0.0

10.0.0.1 standaard gateway (ADSL-modem)

10.0.0.150 - 10.0.0.200 pool van uit te geven IP-adressen

10.0.0.255 broadcastadres (bericht aan alle netwerkstations in dit segment)

Apparatuur die via DHCP werkt, krijgt van de DHCP-server op aanvraag een adres uit de adressen-pool. Overige apparatuur op het netwerk dat niet met DHCP werkt (dus handmatig of fabrieksmatig is ingesteld) moeten buiten dit adressen-gebied blijven. Een mogelijke indeling zou kunnen zijn:

10.0.0.10 - 10.0.0.50 netwerkopslagapparatuur (NAS) en netwerkprinters

10.0.0.51 - 10.0.0.100 PC's op vaste adressen

Zie ook