DHCP mini-HOWTO | ||
---|---|---|
Terug |
Er zijn verscheidene DHCP servers beschikbaar voor U*X-achtige OS'sen, zowel commercieel als gratis. Een van de populairdere vrije DHCP servers is Paul Vixie/ISC DHCPd. Thans is de laatste versie 2.0 (aanbevolen voor de meeste gebruikers), maar 3.0 is in beta testfase. Je kunt het ophalen vanaf
Een aantal distributies voorzien in binaire packages voor dhcpd, dus sla de volgende sectie over als je het op die manier installeerde.
Pak het uit nadat je het hebt gedownload. Daarna ga je naar de distributiedirectory en typt: ./configure
De configure fase duurt even. Daarna tik je in: make en make install.
Typ na de installatie ifconfig -a. Je krijgt iets te zien als:
eth0 Link encap:10Mbps Ethernet HWaddr 00:C0:4F:D3:C4:62 inet addr:183.217.19.43 Bcast:183.217.19.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2875542 errors:0 dropped:0 overruns:0 TX packets:218647 errors:0 dropped:0 overruns:0 Interrupt:11 Base address:0x210 |
Als er geen MULTICAST is weergegeven, dan moet je de kernel opnieuw configureren en ondersteuning voor multicast opnemen. Op de meeste systemen zul je dit niet hoeven doen.
De volgende stap bestaat uit het toevoegen van de route voor 255.255.255.255. Aangehaald uit de DHCPd README:
"Voor de juiste werking van dhcpd met lastige DHCP clients (b.v. Windows 95), moet het in staat zijn pakketjes met het IP doeladres 255.255.255.255 te verzenden. Helaas staat Linux erop 255.255.255.255 in het lokale subnet broadcastadres te wijzigen (hier is dat 192.5.5.223). Dit resulteert in een overtreding van het DHCP protocol, en ondanks dat veel DHCP clients het probleem niet opmerken, doen een aantal (b.v. alle Microsoft DHCP clients) dit wel. Clients die dit probleem hebben, lijken de DHCPOFFER meldingen van de server niet te zien."
Typ: route add -host 255.255.255.255 dev eth0
Als je de melding "255.255.255.255: Unknown host" krijgt, dan zou je moeten proberen de volgende entry aan het bestand /etc/hosts toe te voegen:
255.255.255.255 all-ones |
Probeer daarna:
route add -host all-ones dev eth0 |
of
route add 255.255.255.0 dev eth0 |
eth0 is uiteraard de naam van het netwerkdevice dat je gebruikt. Als het verschilt, wijzig dit dan overeenkomstig.
Nu moet je DHCPd nog configureren. Hiervoor moet je het bestand /etc/dhcpd.conf aanmaken of bewerken. Er bestaat onder KDE een grafische interface voor de configuratie van dhcpd. ( http://www.kde.org/ ) genaamd kcmdhcpd dat veel lijkt op de DHCP configurator onder Windows NT. Wanneer KDE 2.0 uitkomt, zal het met kcmdhcpd worden meegeleverd, of kun je het direct ophalen vanaf:
ftp://ftp.us.kde.org/pub/kde/unstable/apps/network/
Volg onderstaande instructies op als je het met de hand wilt configureren:
Het meest gebruikelijke dat je zult willen is het willekeurig toekennen van IP-adressen. Dit kan met instellingen als volgt worden gedaan:
# Voorbeeld /etc/dhcpd.conf # (voeg hier je opmerkingen toe) default-lease-time 600; max-lease-time 7200; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; option routers 192.168.1.254; option domain-name-servers 192.168.1.1, 192.168.1.2; option domain-name "mydomain.org"; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.100; range 192.168.1.150 192.168.1.200; } |
Dit zal resulteren in een DHCP server die een client een IP-adres in het bereik 192.168.1.10-192.168.1.100 of 192.168.1.150-192.168.1.200 toekent. Het zal voor 600 seconden een IP-adres verstrekken als de client niet vraagt om een speciek tijdsfragment. Anders zal de maximaal (toegestande) tijd 7200 seconden zijn. De server zal de client ook "adviseren" dat het 255.255.255.0 als subnetmask gebruikt, 192.168.1.255 als het broadcastadres, 192.168.1.254 als de router/gateway en 192.168.1.1 en 192.168.1.2 als DNS servers.
Als je een WINS server voor je Windows clients op moet geven, dan zul je de optie netbios-name-servers op moeten nemen, b.v.:
option netbios-name-servers 192.168.1.1; |
Je kunt ook specifieke IP-adressen toekennen gebaseerd op het ethernetadres van de client, b.v.:
host haagen { hardware ethernet 08:00:2b:4c:59:23; fixed-address 192.168.1.222; } |
Dit zal IP-adres 192.168.1.222 toekennen aan een client met het ethernetadres 08:00:2b:4c:59:23.
Je kunt ook mengen en matchen, b.v. je kunt bepaalde clients "statisch" IP-adressen (b.v. servers) toekennen en anderen dynamische IP's (b.v. mobiele gebruikers met laptops). Er zijn een aantal andere opties, b.v. nis server adressen, time server adressen enz., mocht je een van die opties nodig hebben, lees dan alsjeblieft de manpage van dhcpd.conf.
Voor het starten van de server moet er nog één ding worden gedaan. In de meeste gevallen maakt de DHCP installatie geen dhcpd.leases bestand aan. Dit bestand wordt door DHCPd gebruikt om informatie over huidige leases op te slaan. Het is in gewoon tekstformaat, dus je kunt het gedurende de werking van DHCPd bekijken. Typ voor het aanmaken van dhcpd.leases:
touch /var/state/dhcp/dhcpd.leases |
Hiermee zal een leeg bestand (bestandsomvang = 0) worden aangemaakt. Een aantal van de oudere versies van dhcpd 2.0 plaatste het bestand in /etc/dhcpd.leases. Je hoeft geen wijzigingen aan te brengen aan het leases bestand, het zal worden gemanipuleerd door dhcpd. Als je een melding krijgt waarin wordt aangegeven dat het bestand bestaat, dan kun je dit simpelweg negeren en verder gaan met de volgende stap.
Je kunt nu de DHCP server aanroepen. Typ simpelweg (of neem het op in de opstartscripts):
/usr/sbin/dhcpd |
Hiermee zal dhcpd met het eth0 device worden aangeroepen. Als je het wilt aanroepen met een ander device, dan kun je dit simpelweg op de opdrachtregel opgeven, b.v.:
/usr/sbin/dhcpd eth1 |
Ter verificatie dat alles prima werkt, zou je als eerste de debugging modus aan moeten zetten en de server in de voorgrond plaatsen. Je kunt dit doen met:
/usr/sbin/dhcpd -d -f |
Start dan één van de clients en bekijk de console van je server. Je zult een aantal debugging meldingen tevoorschijn zien komen. Als alles prima werkt, dan ben je klaar :-). Verlaat dhcpd en start het zonder de -d en -f argumenten. Als je wilt dat dhcpd tijdens het booten opstart, neem dhcpd dan op in b.v.:
/etc/rc.d/rc.local |
Linux Magazine heeft een tamelijk goed artikel in hun uitgave van april genaamd Network Nirvana: How to make Network Configuration as easy as DHCP waarin de setup voor DHCP wordt besproken.