Hoofdindex » Servers » » Een eigen webserver » » DNS » » Queries
Webservers en meer
DNS: hoe wordt een query uitgevoerd?
Een eigen webserver?

DNS resolutie

Veronderstel dat je het adres www.verfaillie.be in de adresbalk van je browser intipt. Volgende stappen worden ondernomen:
  1. Je computer vraagt de hulp in van een resolver. Dit is meestal de DNS server van je provider, bijvoorbeeld Telenet of Skynet.
  2. De resolver van Telenet heeft nooit gehoord van www.verfaillie.be. Hij vraagt het verder aan een root server. De root server is de basis server van het internet. Er zijn meerdere root servers in ieder land.
  3. De root server bevat geen IP adressen, maar hij kan wel zeggen welke de root servers zijn voor het '.be' domein.
  4. De resolver contacteert nu de root servers voor het domein .be
  5. Een van de root servers geeft aan wie de servers zijn voor het domein verfaillie.be (meestal zijn dat er meer dan één)
  6. De resolver contacteert nu de domain name servers die aangesteld zijn voor het domein verfaillie.be
  7. ns1.afraid.org is authoritative voor verfaillie.be: deze server (samen met de back up servers ns2, ns3 en ns4) is de enige server die ingesteld staat om het juiste antwoord te geven. In sommige gevallen is een andere server verantwoordelijk voor www.verfaillie.be en moet er nog een stap doorlopen worden, op dezelfde manier als de stap van .be naar verfaillie.be
  8. Het antwoord wordt doorgegeven door de Telenet resolver aan je computer.
Opmerkingen
  • Je computer zal nu het ip adres van www.verfaillie.be bewaren in zijn DNS cache, zodat de volgende keer het adres uit de cache gehaald zal worden, wat een tijdswinst en minder belasting voor het netwerk oplevert.
  • De resolver van Telenet zal eveneens het antwoord in zijn cache opslaan, voor het geval dat een andere klant dezelfde domein opvraagt. Het antwoord dat de resolver zal geven is non-authoritative.
    Na een tijdje worden de adressen uit de cache gewist (hoe lang de gegevens "vers" blijven wordt door de authoritative server aangegeven (TTL of Time To Live)).
    Zo kan het gebeuren dat als je dynamisch IP adres juist veranderd is, de resolver nog steeds de oude gegevens blijft uitsturen.

Root servers
Dit zijn speciale servers. Deze servers geven nooit een antwoord, maar geven wel aan wie verder verantwoordelijk is. Ze hebben geen cache (dit is ook niet nodig, want zoals je uit het schema kan zien ontvangen ze nooit ip adressen).

Recursive -- Iterative
Je computer voert een recursive query uit (hij vraagt één welbepaalde server de taak uit te voeren). De resolver van Telenet voert een iterative query uit: hij blijft vragen tot hij een antwoord krijgt.

Parent servers
Dit is (of zijn) de servers die naar een bepaalde DNS server doorverwezen hebben. Dit is meestal een root server, maar het kan ook een gewone, andere DNS server zijn indien een subdomein gedelegeerd werd aan een andere name server.

UDP -- TCP
Alle gegevens die over het internet verstuurd worden worden ingedeeld in packets, die los van elkaar verstuurd worden. Ieder packet heeft een afzender en een bestemmeling (ip adres en poortnummer) en wordt van de ene naar de andere internet computer gestuurd, tot het bij zijn bestemmeling komt. Omdat iedere packet los verstuurd wordt, kan aankomstvolgorde verschillend zijn.

DNS afhandeling maakt gebruik van UDP (User Datagram Protocol). Dit protocol heeft als voordeel zeer snel te zijn (in het grafiek boven heb je gemerkt dat de resolver een aantal servers moet contacteren). UDP is "connectionless", de client stuurt gewoon een vraag naar de server en ontvangt (misschien) een antwoord. De client weet niet of zijn vraag toegekomen is, maar voor deze toepassing is dit van ondergeschikt belang: de resolver stuurt de vraag naar een aantal DNS servers, en gebruikt dan in het vervolg de server die het snelst was met zijn antwoord. Dat een van de servers geen antwoord geeft is niet van belang omdat er toch meerdere servers beschikbaar zijn. Het protocol is erg rudimentair, maar veroorzaakt weinig overhead: geen enkele controle dat het packet toegekomen is en geen indicatie van volgorde. Een volgorde is ook niet nodig, want een DNS vraag en antwoord passen ieder in een packet.
Streaming (audio en video) gebruiken ook UDP: de snelheid is belangrijker dan de foutcorrectie.

Alle andere verrichtingen gebeuren met TCP (Transmission Control Protocol). Hierbij wordt er een virtuele verbinding gelegd tussen server en client: bij transmissiefouten worden de foutieve datapaketten automatisch opnieuw verstuurd. De foutcorrectie zit in het protocol zelf, zodat een internet client of server zich daarmee niet moet bezig houden. TCP wordt bijvoorbeeld gebruik bij het versturen van mails en het lezen van webpagina's: er is maar één server die antwoord kan geven (in tegenstelling met DNS servers), de antwoord is doorgaans meer dan één packet lang (wat volgordebepaling noodzakelijk maakt) en moet op fouten gecontroleerd worden.

Met al deze boeken zal ik het wel weten, zeker?
Met al deze boeken zal ik het wel weten, zeker?

Links to relevant pages - Liens vers d'autres pages au contenu similaire - Links naar gelijkaardige pagina's