Een DHCP-server voor een lokaal netwerk uitvoeren met Dnsmasq

0
151
Profit_Image/Shutterstock.com

Dnsmasq is een lichtgewicht netwerkserver die DNS-, DHCP-, TFTP- en PXE-functies biedt. In deze handleiding zullen we kijken naar het configureren van een nieuwe Dnsmasq-installatie als een zelfstandige DHCP-server.

DHCP (Dynamic Host Configuration Protocol) is het proces waarmee netwerkapparaten IP-adressen verkrijgen. De DHCP-server van uw netwerk is verantwoordelijk voor het toewijzen van een uniek adres aan elk nieuw apparaat. Adressen kunnen statisch of dynamisch zijn, dit laatste betekent dat ze op shortleasebasis worden uitgegeven, zodat het IP-adres van elk apparaat in de loop van de tijd kan veranderen.

De router fungeert in de meeste kleine netwerken als de DHCP-server. Door Dnsmasq op een Linux-box in te stellen, hebt u controle over het proces en krijgt u beter zicht op eventuele fouten.

Dnsmasq voorbereiden

Dnsmasq is meegeleverd met de meeste Linux-distributies. U kunt meestal het dnsmasq-pakket toevoegen als het niet aanwezig is op het uwe. Het standaard configuratiebestand bevindt zich in /etc/dnsmasq.conf; u kunt ook bestanden toevoegen aan de map /etc/dnsmasq.d als u uw instellingen gescheiden wilt houden van de standaardwaarden.

Dnsmasq luistert meestal op al uw netwerkinterfaces. Als u een specifieke interface wilt gebruiken, stelt u dit nu in door de volgende regel in uw configuratiebestand toe te voegen of te verwijderen:

# Alleen werken op eth0 interface=eth0 Advertentie

DNS-serverfunctionaliteit is standaard ingeschakeld . Je kunt het uitschakelen door de poort te wijzigen in 0:

port=0

Dnsmasq is nu klaar om te werken in de DCHP-only modus.

Uw DHCP-server configureren

De DHCP-server wordt geactiveerd door een DHCP IP-adresbereik op te geven:

dhcp-range=192.168.0.101,192.168.0.150,255.255.255.0,6h

Dit voorbeeld geeft Dnsmasq de opdracht om IP-adressen aan te bieden tussen 192.168.0.101 en 192.168.0.150 in het 255.255.255.0-subnet. Uitgegeven IP-adressen hebben een leaselevensduur van zes uur, waarna klanten een vernieuwde lease moeten aanvragen.

U moet de bovenstaande parameters aanpassen aan de vereisten van uw netwerk. Het is raadzaam om het DHCP-bereik aan te passen, zodat het geen IP-adressen uitsluit die u statisch aan apparaten wilt toewijzen. Dit zorgt ervoor dat een apparaat dat dynamische leases ontvangt nooit een “gereserveerd” adres.

Zo gebruikt, wordt uw Dnsmasq-server de standaardgateway op uw apparaten wanneer ze een IP-adres ontvangen. Als u ook geen DNS instelt, moet u dit wijzigen zodat Dnsmasq zichzelf niet meer als gateway aanbiedt.

dhcp-option=3.192.168.0.50

Wijzig het IP-adres in dat van uw router. Uw apparaten kunnen de router nu normaal gebruiken nadat ze een IP-adres van Dnsmasq hebben verkregen.

Statische IP's instellen

U kunt statische IP-adressen instellen in het Dnsmasq-configuratiebestand. Hiermee kunt u uw IP-reserveringen centraliseren, in plaats van ze te verspreiden over netwerkbestanden op afzonderlijke apparaten.

Advertentie

Gebruik de dhcp-host-instructie om een ​​statisch IP toe te wijzen. Hiervoor zijn een MAC-adres en een hostnaam en IP nodig om toe te wijzen:

dhcp-host=ab:cd:ef:12:34:56,example-host,192.168.0.10,infinite

Hier krijgt het apparaat met MAC ab:cd:ef:12:34:56 de hostnaam voorbeeld- host en een vast IP-adres van 192.168.0.10. De leaseduur is ingesteld op oneindig om ervoor te zorgen dat er geen verlenging nodig is en het IP-adres zal nooit veranderen.

Om extra statische IP's in te stellen, herhaalt u de dhcp-host-instructie zo vaak als nodig is. Overweeg ten minste een expliciete DHCP-host voor uw router toe te voegen, zodat u deze op betrouwbare wijze kunt benaderen met een vast IP-adres. Dit moet overeenkomen met de waarde die je hebt toegewezen in de regel dhcp-option hierboven.

Je kunt hostinformatie laden vanuit een apart bestand of een aparte map met de opties –dhcp-hostsfile en –dhcp-hostsdir. In het geval van een directory laadt Dnsmasq automatisch nieuwe wijzigingen zonder dat deze opnieuw hoeven te worden opgestart.

Uw DHCP-server gebruiken

Zodra u& #8217;als u klaar bent met het instellen van Dnsmasq, test u de configuratie om er zeker van te zijn dat uw wijzigingen geldig zijn:

dnsmasq –test

Start vervolgens de Dnsmasq-service opnieuw om uw wijzigingen toe te passen:

sudo systemctl restart dnsmasq Advertentie

Schakel de ingebouwde DHCP-server van uw router uit. Stel vervolgens uw router of uw clientapparaten in om het IP-adres van uw Dnsmasq-server voor DHCP te gebruiken. De stappen verschillen per routerfabrikant, dus raadpleeg de documentatie van uw apparaat als u verdwaalt.

Nu uw instantie operationeel is als de DHCP-server van uw netwerk, zou u een verlenging van het IP-adres op uw apparaten moeten kunnen forceren om een ​​lease van Dnsmasq te ontvangen. Start de netwerkservice opnieuw, systemctl herstart het netwerk, of gebruik ifdown en ifup om uw verbinding te verbreken en opnieuw tot stand te brengen.

Dnsmasq registreert uitgegeven IP-adressen in zijn leasebestand. U kunt dit bestand inspecteren om actieve apparaten in uw netwerk te zien en te controleren of IP's correct worden geleasd:

cat /var/lib/misc/dnsmasq.leases

Als u fouten tegenkomt, bekijkt u de Dnsmasq-servicelogboeken om te zien wat is er mis:

sudo journalctl -u dnsmasq.service

Authoritative Mode

Een uitdaging die u zou kunnen hebben wanneer u uw server in een bestaand netwerk introduceert, is dat apparaten een time-out krijgen bij het vernieuwen van hun IP's. Elke client stuurt zijn vorige IP naar de DHCP-server, waardoor hetzelfde IP kan worden uitgegeven als het nog steeds beschikbaar is. In het geval van een nieuwe Dnsmasq-instantie heeft deze geen record van het bestaande client/IP-paar, dus het verzoek wordt genegeerd.

De client zal uiteindelijk een time-out krijgen en een nieuw verzoek indienen, dit keer om een ​​beschikbaar IP-adres te vragen. Het tweede verzoek zal slagen, maar het time-outvenster kan behoorlijk lang zijn, wat mogelijk een merkbare vertraging veroorzaakt tijdens het opstarten of de initialisatie van de netwerkstack.

Advertentie

Het toevoegen van deze regel aan uw configuratiebestand lost dit probleem op als Dnsmasq dat doet wees de enige DHCP-server in uw netwerk:

dhcp-authoritative

De gezaghebbende modus instrueert Dnsmasq om verzoeken van klanten te accepteren, zelfs als ze beweren eerder een IP te hebben gehad waarvan het geen record heeft. De client wordt nog steeds toegelaten tot het netwerk en krijgt een IP-adres, waardoor het niet meer nodig is om twee verzoeken in te dienen, gescheiden door een lange time-out.

Andere instellingen aanpassen

Enkele andere instellingen zijn het vermelden waard:

dhcp-sequentiële-ip

Dnsmasq hasht meestal het MAC-adres van elke klant om het IP-adres te bepalen dat ze ontvangen. Dit betekent dat clients over het algemeen hetzelfde IP-adres ontvangen elke keer dat ze verbinding maken, zelfs als er geen statische host is geconfigureerd. Als u de optie dhcp-sequentiële-id instelt, geeft Dnsmasq IP's in sequentiële numerieke volgorde af, beginnend bij het begin van uw opgegeven IP-bereik.

dhcp-lease-max=100

Deze instelling bepaalt hoeveel gelijktijdige leases Dnsmasq zal uitgeven. De standaardwaarde is 1000. Als je een klein netwerk hebt, overweeg dan om deze waarde te verlagen om Dnsmasq te beschermen tegen denial-of-service-aanvallen. Gecompromitteerde hosts kunnen kwaadaardige DHCP-verzoeken verzenden om duizenden redundante leases te creëren.

dhcp-alternate-port=8068,8068

Wijzig de poortnummers die worden gebruikt voor DHCP-servers en clients. De standaardpoorten zijn 67 en 68; deze zouden normaal gesproken niet moeten worden gewijzigd, tenzij uw netwerkinfrastructuur dit vereist.

dhcp-leasefile=/dhcp-leases

Wijzig het bestandspad dat wordt gebruikt om DHCP-lease-informatie op te slaan. Het is standaard /var/lib/misc/dnsmasq.leases.

Samenvatting

Dnsmasq is eenvoudig in te stellen als een eenvoudige DHCP-server voor uw lokale netwerk. Het kan naast of onafhankelijk van de DNS-functionaliteit van de software werken.

Advertentie

Ondanks dat het een opzettelijk lichtgewicht server is, ondersteunt Dnsmasq veel verschillende configuratie-opties om complexere installaties te vergemakkelijken. U kunt deze gebruiken om DHCP-relays en proxy's in te stellen, de conformiteit van Dnsmasq aan te passen aan de DHCP-specificatie en aangepaste scripts toe te voegen die worden uitgevoerd wanneer leases worden gemaakt en vernietigd. Met deze faciliteiten kun je een experimentele Dnsmasq-instantie snel ontwikkelen tot een geharde instantie die meer geschikt is voor gebruik op productieniveau in grotere netwerken.