En DNS -server ser ut på två primära platser när du löser en fråga:
1. zonregister (auktoritativa data):
* Om DNS -servern är * auktoritativ * för domänen i fråga (vilket betyder att den ansvarar för att hantera DNS -poster för den zonen) konsulterar den först sina egna zonregister. Dessa poster lagras i filer eller databaser på servern och innehåller information om domänens resurser, till exempel:
* A Records: MAP -domännamn till IPv4 -adresser.
* aaaa poster: MAP -domännamn till IPv6 -adresser.
* cname -poster: Skapa alias för domännamn.
* mx poster: Ange e -postservrar som ansvarar för att acceptera e -post.
* ns poster: Delegera myndighet för ett underdomän till en annan DNS -server.
* txt -poster: Förvara godtyckliga textdata (ofta används för verifiering eller metadata).
* SOA -poster: Start av myndighetspost, som definierar zonens administrativa information.
* srv -poster: Definiera platsen för tjänster.
* etc.
* Servern söker i sina konfigurerade zonfiler eller databas för den begärda posttypen och namnet. Om den hittar en matchande skiva returnerar det svaret till klienten.
2. cache:
* DNS -servrar upprätthåller en cache av tidigare löst DNS -poster. Denna cache är ett tillfälligt lagringsområde i minnet (RAM) som lagrar resultaten från tidigare DNS -frågor. Huvudsyftet med cachen är att förbättra prestandan och minska belastningen på auktoritativa DNS -servrar.
* Hur cachen fungerar:
* När en DNS -server får en fråga, kontrollerar den först * sin cache för att se om den har en giltig, oväntad post för den begärda domänen och posttypen.
* Om en matchande post finns i cachen och tiden till liv (TTL) inte har gått ut, returnerar servern den cachade posten till klienten. Detta är mycket snabbare än att fråga en auktoritativ server.
* Om posten inte finns i cachen, eller om TTL har gått ut, fortsätter servern att lösa frågan genom att kontakta andra DNS -servrar (rekursivt eller iterativt, beroende på dess konfiguration).
* Time-to-live (TTL): Varje DNS -post har ett TTL -värde associerat med den. Detta värde anger hur länge posten anses vara giltig och kan cachas. När TTL löper ut kasseras den cachade posten och DNS -servern måste fråga en auktoritativ server igen för att få en ny kopia. TTL ställs in av den auktoritativa DNS -serveradministratören.
Operations Order:
Vanligtvis utför en DNS -server dessa steg i följande ordning:
1. Få fråga: DNS -servern får en DNS -fråga från en klient (t.ex. en dator, smartphone eller annan enhet).
2. Kontrollera cache: Den kontrollerar först sin lokala cache för ett giltigt (oväntat) svar på frågan. Om den finns i cachen returnerar den det cachade svaret till klienten.
3. Kontrollera zonregister (om det är auktoritativt): Om DNS -servern är auktoritativ för domänen i frågan kontrollerar den sina zonfiler eller databas för svaret. Om den finns i zondata returnerar det svaret till klienten.
4. Rekursiv/iterativ frågeställning (om inte auktoritativ och inte i cache): Om servern är * inte * auktoritativ och frågan inte finns i cachen, måste den lösa frågan med någon av:
* Rekursiv upplösning: Servern tar fullt ansvar för att lösa frågan. Den frågar andra DNS-servrar (rotservrar, toppnivå domän (TLD) servrar och auktoritativa servrar) på klientens vägnar tills den hittar svaret.
* iterativ upplösning: Servern ger endast remisser. Det ger klienten adressen till en DNS -server som är närmare svaret (t.ex. en TLD -server). Klienten frågar sedan den servern direkt. Detta tillvägagångssätt kräver att klienten gör mer av arbetet.
5. cache -svar: När DNS -servern har fått svaret från en auktoritativ server (eller från en annan server under rekursiv upplösning) cachar den svaret (inklusive TTL) för framtida frågor.
6. Retursvar: Slutligen returnerar DNS -servern det upplösta svaret till klienten.
Sammanfattningsvis:
En DNS -server ser först ut i sin cache, och om den är auktoritativ för domänen kommer den att kontrollera sina zonregister. Om det inte är auktoritativt och svaret inte finns i cachen kommer det att fråga andra DNS -servrar.