Når en DNS-klient må løse et DNS-navn til en IP-adresse, bruker den en biblioteksrutine - en resolver - for å håndtere spørringen. Oppløseren tar seg av å sende spørringsmeldingen over nettverket til DNS-serveren, mottar og tolker svaret og informerer klienten om resultatene av spørringen.
En DNS-klient kan lage to grunnleggende typer søk: rekursiv og iterativ. Følgende liste beskriver forskjellen mellom disse to søketypene. (Følgende diskusjon antar at klienten spør serveren til IP-adressen til et vertsnavn, som er den vanligste typen DNS-spørring. Du finner ut om andre typer søk senere, de kan også være rekursive eller iterativ.)
-
Rekursive spørringer: Når en klient utsteder en rekursiv DNS-spørring, , må serveren svare enten med IP-adressen til det forespurte vertsnavnet eller en feilmelding som indikerer at vertsnavnet eksisterer ikke. Hvis serveren ikke har informasjonen, spør den om en annen DNS-server for IP-adressen.
Når den første serveren endelig får IP-adressen, sender den den tilbake til klienten. Hvis serveren bestemmer at informasjonen ikke eksisterer, returnerer den en feilmelding.
-
Iterative spørringer: Når en server mottar en iterativ spørring, returnerer den IP-adressen til det forespurte vertsnavnet hvis det kjenner adressen. Hvis serveren ikke kjenner adressen, returnerer den en henvisning, som ganske enkelt er adressen til en DNS-server som burde vite. Klienten kan deretter utstede en iterativ spørring til serveren som den ble henvist til.
Normalt utsteder DNS-klienter rekursive spørringer til DNS-servere. Hvis serveren vet svaret på spørringen, svarer det direkte til klienten. Hvis ikke, utsteder serveren en iterativ spørring til en DNS-server som den mener burde vite svaret.
Hvis den opprinnelige serveren får svar fra den andre serveren, returneres svaret til klienten. Hvis den opprinnelige serveren får en henvisning til en tredje server, utsteder den opprinnelige serveren en iterativ forespørsel til den tredje serveren. Den opprinnelige serveren fortsetter å utstede iterative spørringer til den enten får svaret eller det oppstår en feil. Det returnerer deretter svaret eller feilen til klienten.