Address resolution mechanism
Domain name resolvers bepalen de domeinnaamservers die verantwoordelijk zijn voor de domeinnaam in kwestie door een reeks queries te beginnen met het meest rechtse (top-level) domeinlabel.,
Een DNS-resolver die de door RFC 1034 voorgeschreven iteratieve aanpak implementeert; in dit geval raadpleegt de resolver drie nameservers om de volledig gekwalificeerde domeinnaam op te lossen “www.wikipedia.org”.
voor een goede werking van de domain name resolver wordt een netwerkhost geconfigureerd met een initiële cache (hints) van de bekende adressen van de root name servers. De hints worden periodiek bijgewerkt door een beheerder door een dataset van een betrouwbare bron op te halen.,
aangenomen dat de resolver geen records in de cache heeft om het proces te versnellen, begint het resolutieproces met een query naar een van de rootservers. In de typische werking, de root servers niet direct antwoord, maar reageren met een verwijzing naar meer gezaghebbende servers, bijvoorbeeld, een query voor “www.wikipedia.org” wordt verwezen naar de org servers. De resolver vraagt nu naar de servers waarnaar wordt verwezen en herhaalt dit proces iteratief totdat het een gezaghebbend antwoord ontvangt. Het diagram illustreert dit proces voor de host die wordt genoemd door de volledig gekwalificeerde domeinnaam “www.wikipedia.org”.,
dit mechanisme zou een grote verkeersbelasting op de rootservers veroorzaken, als elke resolutie op het Internet vereist vanaf de root. In de praktijk wordt caching gebruikt in DNS-servers om de rootservers uit te laden, en als gevolg daarvan zijn root name servers eigenlijk slechts betrokken bij een relatief klein deel van alle verzoeken.
recursieve en caching name server
in theorie zijn gezaghebbende nameservers voldoende voor de werking van het Internet., Met alleen gezaghebbende nameservers die werken, moet elke DNS-query echter beginnen met recursieve query ‘ s in de rootzone van het domeinnaamsysteem en moet elk gebruikerssysteem resolver-software implementeren die recursief kan werken.
om de efficiëntie te verbeteren, het DNS-verkeer op het Internet te verminderen en de prestaties in eindgebruikerstoepassingen te verhogen, ondersteunt het Domain Name System DNS-cacheservers die DNS-queryresultaten opslaan gedurende een periode die is bepaald in de configuratie (time-to-live) van het domeinnaamrecord in kwestie.,Dergelijke caching-DNS-servers implementeren doorgaans ook het recursieve algoritme dat nodig is om een bepaalde naam, beginnend met de DNS-root, om te zetten naar de gezaghebbende nameservers van het opgevraagde domein. Met deze functie geïmplementeerd in de name server, gebruikersapplicaties winnen efficiëntie in ontwerp en werking.
De combinatie van DNS-caching en recursieve functies in een nameserver is niet verplicht; de functies kunnen onafhankelijk worden geïmplementeerd in servers voor speciale doeleinden.
internetproviders bieden doorgaans recursieve en caching nameservers aan voor hun klanten., Daarnaast implementeren veel thuisnetwerkrouters DNS-caches en recursors om de efficiëntie in het lokale netwerk te verbeteren.
DNS-resolvers
de client van de DNS wordt een DNS-resolver genoemd. Een resolver is verantwoordelijk voor het initiëren en rangschikken van de query ‘ s die uiteindelijk leiden tot een volledige resolutie (vertaling) van de gezochte bron, bijvoorbeeld het vertalen van een domeinnaam naar een IP-adres. DNS-resolvers worden geclassificeerd door een verscheidenheid aan query-methoden, zoals recursieve, niet-recursieve en iteratieve. Een oplossingsproces kan een combinatie van deze methoden gebruiken.,
in een niet-recursieve query vraagt een DNS-resolver een DNS-server die een record levert waarvoor de server als autoriteit fungeert, of een gedeeltelijk resultaat zonder andere servers te bevragen. In het geval van een caching DNS resolver, de niet-recursieve query van de lokale DNS-cache levert een resultaat en vermindert de belasting op upstream DNS-servers door caching DNS bronrecords voor een periode van tijd na een eerste reactie van upstream DNS-servers.
in een recursieve query vraagt een DNS-resolver een enkele DNS-server, die op zijn beurt andere DNS-servers kan opvragen namens de aanvrager., Een eenvoudige stub resolver die op een thuisrouter wordt uitgevoerd, maakt bijvoorbeeld meestal een recursieve query naar de DNS-server die wordt uitgevoerd door de ISP van de gebruiker. Een recursieve query is een query waarvoor de DNS-server de query volledig beantwoordt door naar behoefte andere nameservers te bevragen. Bij een typische bewerking geeft een client een recursieve query uit aan een recursieve DNS-server in de cache, die vervolgens niet-recursieve query ‘ s uitgeeft om het antwoord te bepalen en één antwoord terug te sturen naar de client., De resolver, of een andere DNS-server die recursief optreedt namens de resolver, onderhandelt over het gebruik van recursieve service met behulp van bits in de query-headers. DNS-servers zijn niet vereist om recursieve query ‘ s te ondersteunen.
de iteratieve query-procedure is een proces waarbij een DNS-resolver een keten van een of meer DNS-servers query ‘ s. Elke server verwijst de client naar de volgende server in de keten, totdat de huidige server het verzoek volledig kan oplossen. Bijvoorbeeld, een mogelijke resolutie van www.example.com zou query een globale root server, dan een “com” server, en ten slotte een “example.com” server.,
circulaire afhankelijkheden en glue records
nameservers in delegaties worden geïdentificeerd met naam in plaats van met IP-adres. Dit betekent dat een resolving name server een ander DNS-verzoek moet doen om het IP-adres te achterhalen van de server waarnaar het is verwezen. Als de naam in de delegatie een subdomein is van het domein waarvoor de delegatie wordt verstrekt, is er een circulaire afhankelijkheid.
In dit geval moet de nameserver die de delegatie levert ook een of meer IP-adressen verstrekken voor de gezaghebbende nameserver die in de delegatie wordt genoemd., Deze informatie heet lijm. De naamserver delegeren biedt deze lijm in de vorm van records in het extra gedeelte van het DNS-antwoord en de delegatie in het gedeelte autoriteit van het antwoord. Een glue record is een combinatie van de name server en IP adres.
bijvoorbeeld, als de gezaghebbende naamserver voor example.org is ns1.example.org, een computer die probeert op te lossen www.example.org eerste oplost ns1.example.org. aangezien ns1 is opgenomen in example.org, dit vereist oplossen example.org ten eerste, die een circulaire afhankelijkheid presenteert., Om de afhankelijkheid te breken, bevat de name server voor het top level domain org lijm samen met de Delegatie voor example.org. de lijmrecords zijn adresrecords die IP-adressen leveren voor ns1.example.org. de resolver gebruikt een of meer van deze IP-adressen om een van de gezaghebbende servers van het domein te bevragen, waardoor de DNS-query kan worden voltooid.
Record caching
een standaardpraktijk bij het implementeren van naamomzetting in toepassingen is het verminderen van de belasting op de servers van het Domain Name System Door resultaten lokaal te cachen, of in tussenliggende resolver hosts., De resultaten van een DNS-aanvraag worden altijd geassocieerd met de time to live (TTL), een vervaldatum waarna de resultaten moeten worden weggegooid of ververst. De TTL wordt ingesteld door de beheerder van de gezaghebbende DNS-server. De geldigheidsduur kan variëren van enkele seconden tot dagen of zelfs weken.
als gevolg van deze gedistribueerde cachingarchitectuur worden wijzigingen in DNS-records niet onmiddellijk door het netwerk doorgegeven, maar moeten alle caches verlopen en na de TTL worden ververst. RFC 1912 bevat basisregels voor het bepalen van geschikte TTL-waarden.,
sommige resolvers kunnen TTL-waarden overschrijven, omdat het protocol caching tot achtenzestig jaar ondersteunt of helemaal geen caching. Negatieve caching, dat wil zeggen de caching van het feit dat een record niet bestaat, wordt bepaald door nameservers die gezaghebbend zijn voor een zone en die de Start of Authority (SOA)-record moeten bevatten wanneer er geen gegevens van het gevraagde type worden gerapporteerd. De waarde van het minimumveld van de SOA-record en de TTL van de SOA zelf wordt gebruikt om de TTL voor het negatieve antwoord vast te stellen.,
Reverse lookup
een reverse DNS lookup is een query van de DNS voor domeinnamen wanneer het IP-adres bekend is. Meerdere domeinnamen kunnen worden gekoppeld aan een IP-adres. De DNS slaat IP-adressen op in de vorm van domeinnamen als speciaal geformatteerde namen in pointer-records (PTR) binnen de infrastructuur top-level domain arpa. Voor IPv4 is het domein in-addr.arpa. voor IPv6 is het domein reverse lookup ip6.arpa. het IP-adres wordt weergegeven als een naam in omgekeerde geordende octetweergave voor IPv4, en omgekeerde geordende nibble-weergave voor IPv6.,
bij het uitvoeren van een reverse lookup converteert de DNS-client het adres naar deze formaten voordat de naam van een PTR-record wordt opgevraagd volgens de delegatieketen zoals voor elke DNS-query. Bijvoorbeeld, aangenomen dat het IPv4-adres 208.80.152.2 is toegewezen aan Wikimedia, wordt het weergegeven als een DNS-naam in omgekeerde volgorde: 2.152.80.208.in-addr.arpa. wanneer de DNS resolver krijgt een pointer (PTR) verzoek, het begint met het opvragen van de root servers, die verwijzen naar de servers van American Registry for Internet Numbers (ARIN) voor de 208.in-addr.arpa zone. De servers van ARIN delegeren 152.80.208.in-addr.,arpa naar Wikimedia waarnaar de resolver een andere zoekopdracht stuurt voor 2.152.80.208.in-addr.arpa, wat resulteert in een gezaghebbende reactie.
Client lookup
DNS-resolutiereeks
gebruikers communiceren over het algemeen niet rechtstreeks met een DNS-resolver. In plaats daarvan vindt de DNS-resolutie transparant plaats in toepassingen zoals webbrowsers, e-mailclients en andere internettoepassingen., Wanneer een toepassing een verzoek indient waarvoor een domeinnaam moet worden opgezocht, sturen dergelijke programma ‘ s een resolutieverzoek naar de DNS-resolver in het lokale besturingssysteem, die op zijn beurt de vereiste communicatie afhandelt.
de DNS-resolver heeft vrijwel altijd een cache (zie hierboven) met recente lookups. Als de cache het antwoord op het verzoek kan geven, zal de resolver de waarde in de cache retourneren aan het programma dat het verzoek heeft gedaan. Als de cache het antwoord niet bevat, stuurt de resolver het verzoek naar een of meer aangewezen DNS-servers., In het geval van de meeste thuisgebruikers zal de internetprovider waarmee de machine verbinding maakt deze DNS-server meestal leveren: een dergelijke gebruiker heeft het adres van die server handmatig geconfigureerd of DHCP toegestaan om het in te stellen; echter, waar systeembeheerders systemen hebben geconfigureerd om hun eigen DNS-servers te gebruiken, wijzen hun DNS-resolvers naar afzonderlijk onderhouden naamservers van de organisatie. In ieder geval zal de aldus opgevraagde Nameserver het hierboven beschreven proces volgen, totdat hij of met succes een resultaat vindt of niet., Het geeft vervolgens zijn resultaten terug aan de DNS-resolver; ervan uitgaande dat het een resultaat heeft gevonden, cacht de resolver dat resultaat naar behoren op voor toekomstig gebruik, en geeft het resultaat terug aan de software die het verzoek heeft gestart.
gebroken resolvers
sommige grote ISP ‘ s hebben hun DNS-servers geconfigureerd om regels te overtreden, zoals door TTLS niet te gehoorzamen, of door aan te geven dat een domeinnaam niet bestaat alleen omdat een van de nameservers niet reageert.
sommige toepassingen zoals webbrowsers onderhouden een interne DNS-cache om herhaalde opzoeken via het netwerk te voorkomen., Deze praktijk kan extra problemen toevoegen bij het debuggen van DNS-problemen omdat het de geschiedenis van dergelijke gegevens verduistert. Deze caches gebruiken meestal zeer korte caching tijden in de Orde van één minuut.
Internet Explorer is een opmerkelijke uitzondering: versies tot IE 3.X cache DNS records voor 24 uur standaard. Internet Explorer 4.x en latere versies (tot IE 8) verlagen de standaard timeout waarde tot een half uur, die kan worden gewijzigd door het wijzigen van de standaard configuratie.
wanneer Google Chrome problemen met de DNS-server detecteert, wordt een specifieke foutmelding weergegeven.,
andere toepassingen
Het Domain Name System bevat verschillende andere functies en functies.
hostnamen en IP-adressen hoeven niet overeen te komen in een één-op-één relatie. Meerdere hostnamen kunnen overeenkomen met een enkel IP-adres, wat handig is in virtuele hosting, waarin veel websites worden geserveerd vanaf een enkele host. Als alternatief kan een enkele hostnaam oplossen naar veel IP-adressen om fouttolerantie en ladingsdistributie naar meerdere serverinstanties in een onderneming of het wereldwijde Internet te vergemakkelijken.,
DNS dient andere doeleinden naast het vertalen van namen naar IP-adressen. Bijvoorbeeld, mail transfer agents gebruiken DNS om de beste e-mailserver te vinden om e-mail te leveren: een MX record biedt een toewijzing tussen een domein en een mail exchanger; dit kan een extra laag van fouttolerantie en load distributie bieden.
de DNS wordt gebruikt voor efficiënte opslag en distributie van IP-adressen van e-mailhosts op de zwarte lijst., Een veelgebruikte methode is om het IP-adres van de host van het onderwerp in het subdomein van een domeinnaam op een hoger niveau te plaatsen en die naam om te zetten in een record dat een positieve of een negatieve indicatie aangeeft.
bijvoorbeeld:
E-mailservers kunnen een zwarte lijst opvragen.voorbeeld om uit te vinden of een specifieke host verbinding met hen is in de zwarte lijst. Veel van dergelijke zwarte lijsten, hetzij abonnement-gebaseerde of gratis, zijn beschikbaar voor gebruik door e-mailbeheerders en anti-spam software.,
om veerkracht te bieden in het geval van een computer-of Netwerkstoring, worden gewoonlijk meerdere DNS-servers ter dekking van elk domein verstrekt. Op het hoogste niveau van wereldwijde DNS, dertien groepen van root name servers bestaan, met extra “kopieën” van hen wereldwijd verspreid via anycast adressering.
dynamische DNS (ddns) werkt een DNS-server on-the-fly bij met een client-IP-adres, bijvoorbeeld bij het verplaatsen tussen internetproviders of mobiele hotspots, of wanneer het IP-adres administratief verandert.