Stel je eens voor hoe het zou zijn als we de IP-adressen van alle websites die we dagelijks gebruiken zouden moeten onthouden. Zelfs als we een buitengewoon geheugen hadden, zou het proces om naar een website te gaan belachelijk langzaam en tijdrovend zijn.
En wat als we meerdere websites moesten bezoeken of verschillende applicaties moesten gebruiken die zich op dezelfde machine of virtuele host bevinden? Dat zou een van de ergste hoofdpijnen zijn die ik me kan voorstellen – om nog maar te zwijgen van de mogelijkheid dat het IP-adres dat aan een website of applicatie is gekoppeld, zonder voorafgaande kennisgeving kan worden gewijzigd.
Alleen al bij de gedachte eraan zou genoeg reden zijn om na verloop van tijd te stoppen met het gebruik van het internet of interne netwerken.
Dat is precies hoe een wereld zonder Domeinnaamsysteem (ook bekend als DNS) zou zijn. Gelukkig lost deze service al de genoemde problemen op – zelfs als de relatie tussen een IP-adres en een naam verandert.
Om die reden zullen we in dit artikel leren hoe we een eenvoudige DNS-server kunnen configureren en gebruiken, een service die het vertalen van domeinnamen naar IP-adressen en vice versa mogelijk maakt.
Introductie van DNS-naamresolutie
Voor kleine netwerken die niet vaak veranderen, kan het bestand /etc/hosts worden gebruikt als een rudimentaire methode voor de resolutie van domeinnaam naar IP-adres.
Met een zeer eenvoudige syntaxis stelt dit bestand ons in staat om een naam (en/of een alias) te associëren met een IP-adres als volgt:
[IP address] [name] [alias(es)]
Bijvoorbeeld,
192.168.0.1 gateway gateway.mydomain.com 192.168.0.2 web web.mydomain.com
Zo kun je de webmachine bereiken via zijn naam, het alias web.mydomain.com, of zijn IP-adres.
Voor grotere netwerken of netwerken die regelmatig veranderingen ondergaan, zou het gebruik van het /etc/hosts-bestand om domeinnamen naar IP-adressen te vertalen geen acceptabele oplossing zijn. Daarom is er behoefte aan een toegewijde service.
Onder de motorkap raadpleegt een DNS-server een grote database in de vorm van een boom, die begint bij de root (“.”)
-zone.
De volgende afbeelding zal ons helpen dit te illustreren:

In de bovenstaande afbeelding bevat de root (.)
-zone de domeinen com, edu en net. Elk van deze domeinen wordt (of kan worden) beheerd door verschillende organisaties om niet afhankelijk te zijn van één grote, centrale entiteit. Dit maakt het mogelijk om verzoeken op een hiërarchische manier goed te verdelen.
Laten we eens kijken wat er onder de motorkap gebeurt:
1. Wanneer een client een query maakt naar een DNS-server voor web1.sales.me.com, stuurt de server de query naar de top (root) DNS-server, die de query doorstuurt naar de nameserver in de .com
-zone.
Dit stuurt de query op zijn beurt naar de nameserver op het volgende niveau (in de me.com
-zone), en vervolgens naar sales.me.com
. Dit proces wordt herhaald zoveel keer als nodig is totdat de FQDN (Fully Qualified Domain Name, web1.sales.me.com in dit voorbeeld) wordt geretourneerd door de nameserver van de zone waar het bij hoort.
2. In dit voorbeeld reageert de nameserver in sales.me.com.
op het adres web1.sales.me.com
en retourneert de gewenste domeinnaam-IP-koppeling en andere informatie (indien geconfigureerd).
Al deze informatie wordt verzonden naar de oorspronkelijke DNS-server, die het vervolgens terugstuurt naar de client die er in de eerste plaats om heeft gevraagd. Om herhaling van dezelfde stappen voor toekomstige identieke query’s te voorkomen, worden de resultaten van de query opgeslagen in de DNS-server.
Dit zijn de redenen waarom dit soort configuratie algemeen bekend staat als een recursieve, caching DNS-server.
Source:
https://www.tecmint.com/setup-recursive-caching-dns-server-and-configure-dns-zones/