DHCP Server

Bilde av Kabiur Rahman Riyad fra Unsplash

Bilde av Kabiur Rahman Riyad fra Unsplash

Hvordan sette opp en DHCP server i Linux?
Sist oppdatert 20. januar 2022

Alle nettverk trenger en DHCP server. DHCP er en forkortelse av Dynamic Host Configuration Protocol. Og brukes til å automatisk konfigurere en host (les: datamaskin) slik at den kan koble seg til nettverket.

En DHCP server har som oppgave å dele ut nødvendig informasjon som treng for at en datamaskin skal kunne koble seg til nettverket uten at man trenger å gjøre noe mer enn å enten koble seg til nettverket med kabel eller via WiFi.

Når datamaskinen skjønner at den er tilkoblet nettverket, og er konfigurert til å automatisk motta nettverks innstillinger vil den forsøke å hente data fra DHCP serveren på nettverket.

Som et minimum vil DHCP serveren dele ut en unik IP adresse, riktig informasjon om subnet masken til nettverket, default gateway (router) og hvilke DNS servere som skal benyttes.

DHCP detaljer

Hvordan det kommuniseres over DHCP

For å forklarer hvordan DHCP fungerer må vi først si litt om nettverket det skal brukes på. Som et eksempel sier vi at vi har ett nettverk med med CIDR adressen 192.168.0.0/24 eller subnet masken 255.255.255.0. Det si at IP adressene på nettverket er fra 192.168.0.1 til 192.168.0.255.

Når en datamaskin kobler seg til nettverket vil den sende ut et DHCPDIS(cover) pakke på broadcast adressen til nettverket at den er interessert i en IP adresse. Broadcast adressen på nettveket er den siste adressen på nettverket,som på vårt nettverk er adressen 192.168.0.255.

DHCP serveren vil svare med en DHCPOFF(er) pakke at ja, jeg kan gi deg IP adresse. Sammen med DHCPOFF pakken sender den med all nødvendig informasjon om hvilken IP adresse datamaskinen kan få, hva som er routeren på nettverket og hvilken DNS server det skal brukes.

Når datamaskinen mottar denne svarer den med en DHCPREQ(uest), som bekrefter at informasjonen er mottatt.

DHCP serveren sender da en DHCPACK(nowledgment) for å bekrefte at det er registret at datamaskinen har blitt tildelt en IP adresse og at denne er gyldig in fastsatt tid. Tiden IP adressene er gyldig heter "lease".

Når halve "lease" tiden er ferdig vil datamaskinen på nytt sende en DHCPREC(quest) pakke til DHCP serveren at den ønkser å fornye leasen sin. DHCP servern vil da svare med en DHCPACK(nowledgment) pakke at fornyingen er registret og hvor lenge den nye leasen er gyldig. Slik vil det fortsette så lenge datamaskinen er tilkoblet nettverket. I praksis vil det si at en datamaskin som er tilkoblet nettverket vil beholde samme IP sålenge den fornyer leasen av IP adressen den har blitt tildelt.

Hvis en datamaskin ikke fornyer IP leasen sin vil adressen bli frigjort slik at en annen datamaskin kan ta den. Dette gjør at et nettverk ikke vil gå tom for IP adresser.

Installasjon av DHCP server

Hvordan sette opp og konfigurere en DHCP server i ubuntu 20.04

Det er mange grunner til at du vil sette opp en egen DHCP server på nettverket. En av de er at du ønsker å ha kontroll på hvilke datamaskiner som er tildelt hvilken IP adresse, eller at du vil dele ut mer informasjon om nettverket enn bare IP, submet mask og DNS server.

Som et eksempel kan du sette opp informasjon som gjør det mulig å kjøre operativsystem på en datamaskin som ligger lagret på en server, eller du kan installere operativsystem over nettverket.

Et nettverk kun kan ha en DHCP server. Hvis det er flere vil det bli rot i databasen over hvilke IP adresser som er utdelt og er i bruk.

I denne guiden vil vi installere og sette opp en DHCP server på Ubuntu 20.04. Fremgangsmåten er nesten identisk med andre GNU/Linux distroer, men DHCP server pakkene kan ha forskjellige navn. Config-filene har vert på samme sted i filsystemet i alle GNU/Linux distroer jeg har satt opp DHCP server på.

Det aller første steget er å sette tilordne en statisk IP adresse til serveren din.

Når det er på plass kan du installere DHCP serveren

sudo apt install isc-dhcp-server

Første del av konfigurasjonen er å definere hvilket nettverkskort som DHCP serveren skal serves på. Dette kan man hoppe over på enkelte GNU/Linux distroer som f.eks. Fedora, som bruker en annen type DHCP server som vil serve DHCP på alle nettverkskort og dermed ikke trenger å definere hvilke nettverkskort som skal brukes til DHCP serving.

sudo vim /etc/default/isc-dhcp-server
/etc/default/isc-dhcp-server
...
INTERFACEv4=”enp0s3”
...

Videre må det settes parameter på DHCP serveren.

sudo vim /etc/dhcp/dhcpd.conf
/etc/dhcp/dhcpd.conf
subnet 192.168.0.0 netmask 255.255.255.0 {
        default-lease-time 600;
        max-lease-time 7200;
        range 192.168.0.50 192.168.0.254;

        option domain-name-servers 8.8.8.8;
        option routers 192.168.0.1;
}

Før du aktiverer DHCP serveren din. Må du stoppe en eventuell annen DHCP server du har på nettverket ditt. I tillegg må du åpne port 67 for UDP på brannmuren til serveren.

Typisk har alle routere til hjem og små kontorer en innebygd DHCP server. Dessverre er det ikke alle slike routere som tillater at du stopper eller skrur av den innebygde DHCP serveren. Om din router har denne begrensningen blir du nødt til å skifte den ut med en ny og mer fleksibel router.

For at instillingene i .conf filen skal tas i bruk er det bare å resterte DHCP serveren.

sudo systemctl restart isc-dhcp-server

For å sjekke status og leve av eventuelle feilmeldinger du kjøre denne kommandoen:

sudo systemctl status isc-dhcp-server

Gratulerer! Du har nå en fungerende DHCP på på nettverket ditt!