Hoe u uw eigen DNS-server op uw lokale netwerk kunt draaien

0
496
jivacore/Shutterstock.com

Het runnen van je eigen DNS-server is een geweldige manier om het reactievermogen van je netwerk te versnellen, je afhankelijkheid van openbare infrastructuur te verminderen en te profiteren van extra functionaliteit zoals hostname-routing. Hier leest u hoe u een DNS-server op een Linux-machine instelt met behulp van Dnsmasq.

Wat is DNS?

DNS is het systeem dat vertaalt een domeinnaam zoals example.com naar het numerieke IP-adres van zijn server. Dit zou eruit kunnen zien als 127.0.0.1. Telkens wanneer u een netwerkverzoek indient met behulp van een domeinnaam, voert uw systeem een ​​DNS-zoekopdracht uit om het serveradres te bepalen waarmee contact moet worden opgenomen.

Dit voegt een overhead toe aan elk verzoek dat u doet. Hoewel uw apparaat DNS-antwoorden in de cache opslaat, zullen bezoeken aan nieuwe domeinen een DNS-rondreis met zich meebrengen voordat het daadwerkelijke verzoek begint. Dit gebeurt op het niveau van de OS-netwerkstack, onzichtbaar voor u als gebruiker.

ISP's gebruiken meestal DNS-servers. U vertrouwt waarschijnlijk op de server van uw ISP als u standaardinstellingen op uw router en apparaten gebruikt. Andere openbare DNS-servers zijn verkrijgbaar bij providers zoals Cloudflare en Google.

Waarom uw eigen DNS gebruiken?

Als u uw eigen DNS-server draait, krijgt u meer controle over uw netwerk. Een veelvoorkomende motivatie is het kunnen configureren van domeintoewijzingen op netwerkniveau, zoals webserver naar 192.168.0.101. Als u uw router configureert om uw DNS te gebruiken, zou elk van uw aangesloten apparaten toegang hebben tot 192.168.0.101 via http://webserver.

Advertentie

Met uw eigen DNS-server kunt u instellingen op één locatie centraliseren in plaats van ze afzonderlijk toe te passen in /etc/hosts op elk apparaat. Ze zijn van toepassing op alles wat u op uw netwerk aansluit, inclusief ingebouwde hardware die geen andere manier biedt om de routeringsstack aan te passen.

Een interne DNS-server kan ook de prestaties verbeteren en een extra laag bieden van veerkracht. Grootschalige DNS-storingen zijn niet ongehoord; het gebruik van een aangepaste server met een langlevende cache voor kritieke services waarmee u communiceert, kan u helpen om downtime bij uw geselecteerde upstream-provider te voorkomen.

DNS met Dnsmasq

Dnsmasq is een lichtgewicht DNS-server die bij de meeste Linux-distributies wordt geleverd. Het is ook verfrissend eenvoudig te configureren.

Voordat je begint, is het de moeite waard om na te denken over welke functionaliteit je DNS-server moet bieden. In deze handleiding zullen we kijken naar het instellen van Dnsmasq met lokale caching, enkele aangepaste domeinroutes en Google's 8.8.8.8 als onze upstream DNS-provider.

De routeringsstroom zal eruitzien zoals dit:

  • Netwerkrouter ontvangt een verzoek van een van je verbonden apparaten. De router wordt geconfigureerd om de Dnsmasq-host als DNS-server te gebruiken.
  • Dnsmasq zal controleren of het een gedefinieerde route heeft voor de domeinnaam, zoals een webserver naar 192.168.0.101. Als het verzoek was voor http://web-server/example-page, wordt 192.168.0.101 teruggestuurd naar de router.
  • Wanneer Dnsmasq geen overeenkomende route heeft, zal het het DNS-verzoek doorsturen naar Google's 8.8.8.8, waardoor resolutie op het openbare internet mogelijk wordt. Dit zorgt ervoor dat u nog steeds het bredere web kunt bereiken wanneer u uw eigen DNS gebruikt.

U hoeft geen configuratiewijzigingen aan te brengen op uw clientapparaten. Alles achter je router zal uiteindelijk DNS-query's maken via Dnsmasq. Het is echter vermeldenswaard dat alle populaire desktop- en mobiele besturingssystemen het instellen van een DNS-server ondersteunen, dus u kunt afzonderlijke apparaten configureren om Dnsmasq te gebruiken zonder dit op routerniveau in te schakelen.

Aan de slag

We gaan ervan uit dat je al een werkende Linux-machine hebt die klaar is om Dnsmasq te hosten. Dnsmasq is niet bijzonder arbeidsintensief – als je weinig client-apparaten hebt, kan het gemakkelijk op een Raspberry Pi draaien.

Advertentie

Je host moet een statisch IP-adres hebben toegewezen. Vanaf hier verwijst IP 192.168.0.1 naar de Dnsmasq-server.

Zorg ervoor dat Dnsmasq is geïnstalleerd:

# Uitgaande van een Debian-systeem apt-update apt install dnsmasq

Het configuratiebestand van Dnsmasq bevindt zich meestal in /etc/dnsmasq.conf. Dit is vooraf ingevuld met initiële instellingen. Er moeten enkele wijzigingen worden aangebracht om Dnsmasq effectief te laten werken in een lokaal netwerkscenario. Voer sudo nano /etc/dnsmasq.conf uit om het bestand te openen, gebruik vervolgens de sneltoets Ctrl+W om de volgende regels te vinden en verwijder de commentaar:

#domain-needed #bogus-priv

Verwijder het # teken uit het begin van elke regel. Dit is wat deze instellingen inschakelen:

  • domein nodig– Dit voorkomt dat Dnsmasq lokale namen zonder domeindeel doorstuurt naar de upstream DNS-server. In onze installatie betekent dit dat voorbeeld.com in aanmerking komt voor resolutie via Google, maar voorbeeld of webserver niet. Het reserveert namen zonder punten voor uw lokale netwerk.
  • bogus-priv– Voorkomt het doorsturen van DNS reverse lookup-query's naar de upstream DNS-server. Het betekent dat interne IP's zoals 192.168.0.101 nooit worden blootgesteld aan Google. Als u dit niet inschakelt, kan de architectuur van uw interne netwerk onbedoeld naar uw upstream-provider lekken.

Om uw upstream DNS-server in te stellen, voegt u een nieuwe regel toe aan uw configuratiebestand:

server= 8.8.8.8 server=4.4.4.4

Dit geeft Dnsmasq de opdracht om onopgeloste vragen door te sturen naar 8.8.8.8. Als die server niet beschikbaar is, wordt in plaats daarvan 4.4.4.4 gebruikt. Deze adressen zijn de primaire en secundaire resolvers voor de DNS-service van Google.

Pas vervolgens de cachegrootte aan. Dit is standaard ingesteld op een relatief lage waarde van 150 in de cache opgeslagen verzoeken. Als u dit verhoogt, kan Dnsmasq meer zoekopdrachten uit de cache uitvoeren, waardoor de netwerklatentie wordt verminderd. Zoek de regel cache-size, verwijder commentaar en wijzig de waarde:

cache-size=1000

Sla het bestand nu op en sluit het.

Hostnamen toewijzen aan IP's

Er zijn een paar verschillende manieren om hostnamen toe te wijzen aan hun IP-adressen. De eenvoudigste is om items toe te voegen aan het bestaande /etc/hosts-bestand van uw server. Dnsmasq laadt automatisch de regels uit dit bestand als onderdeel van de standaardconfiguratie.

Advertentie

Open /etc/hosts en voeg je routes toe onderaan het bestand. Het IP-adres komt eerst, gevolgd door de naam die moet worden toegewezen:

192.168.0.101 web-server 192.168.0.105 gateway.lan

Deze regels betekenen dat elk verzoek aan http://web-server zal worden doorgestuurd naar 192.168 .0.101 terwijl http://gateway.lan eindigt op 192.168.0.5. Sla het bestand op en sluit het wanneer u klaar bent met het toewijzen van uw apparaten.

Uw server testen

Start Dnsmasq opnieuw om al uw wijzigingen toe te passen:

sudo service dnsmasq restart

Controleer of de server correct werkt:

sudo service dnsmasq status

U zou moeten zien dat actief (actief) in het groen wordt weergegeven . Als je dat niet doet, controleer dan de logregels onderaan de statusinformatie om erachter te komen wat er mis is.

Nu ben je klaar om je server te testen. U kunt handmatige DNS-zoekpogingen doen met de graaftool. Mogelijk moet u eerst het dnsutils-pakket installeren.

dig google.com @localhost dig gateway.lan @localhost

Beide opdrachten moeten een IP-adres weergeven in het ANTWOORDSECTIE. In het geval van gateway.lan zou het resultaat 192.168.0.5 moeten zijn volgens de routeringsregel die is ingesteld in /etc/hosts. Het @localhost-gedeelte van de opdrachten geeft dig de opdracht om een ​​query uit te voeren op uw lokale DNS-server.

Uw netwerk configureren

De laatste stap is het configureren van uw netwerkrouter om DNS-lookups te maken via uw Dnsmasq-server. De stappen hiervoor zijn afhankelijk van de routeringsapparatuur die u gebruikt.

Advertentie

Zodra u de juiste instellingenpagina hebt gevonden, stelt u het IP-adres van uw server (192.168.0.1 in deze handleiding) in als de primaire DNS-server van de router. Het is een goed idee om een ​​openbare DNS-provider, zoals Google's 8.8.8.8, te configureren als secundaire server. Dit zorgt ervoor dat je nog steeds internettoegang hebt als je DNS-server crasht en offline gaat.

Nu zullen alle apparaten die op je router zijn aangesloten DNS-query's uitvoeren via je Dnsmasq-instantie. Ze kunnen uw apparaten bereiken met hun toegewezen namen, zoals webserver en gateway.lan, en profiteren van DNS-caching op netwerkniveau.

Conclusie

h2>

DNS is een ingewikkeld onderwerp, maar Dnsmasq maakt het gemakkelijk om een ​​basisserver operationeel te krijgen. Er zijn nog veel meer instellingen die u kunt verkennen zodra u de kernfunctionaliteit hebt laten werken. Hiermee kunt u query's filteren, relays en proxy's beheren, scripts uitvoeren wanneer gebeurtenissen plaatsvinden en andere soorten DNS-records instellen, zoals MX-resultaten voor mailservers.

Dnsmasq heeft meestal niet veel handleiding nodig interventie zodra het live is. U kunt logboeken controleren met behulp van service dnsmasq-status of systemctl-status dnsmasq. Nu bent u klaar om te profiteren van uw zelf-gehoste DNS-server, waardoor de prestaties worden gemaximaliseerd en u interne domeinnamen kunt gebruiken om lokale netwerkapparaten te bereiken.