Recursive Lookup is a DNS function where a DNS server repeats a DNS query to one server after another, following DNS heirarchy from the DNS root to the responsible authoritative DNS server, where the query can finally be resolved to an answer. Recursive lookup is the most common type of DNS query.
When you type any named address into your computer for a website or a server, your computer performs a DNS lookup to figure out the IP address of that server. The only step of doing a DNS lookup performed by your computer is sending the request to a DNS server, usually a local DNS server whose IP address was provided at the time your computer connected to the network and acquired an IP address via DHCP.
If the local DNS server your computer sent the lookup request to has an answer in a zone file or in its cache, the DNS server responds. However if the DNS server does not have an answer, it begins a recursive lookup starting a the root of the DNS heirarchy to find other DNS servers to ask for an answer.
Lets use the example of the recursive resolution process for a ficticious host called zeus in the computer science LAN at Berkeley: zeus.cs.berkeley.edu.
- The local DNS server queries a Root DNS server (InterNIC) about the .edu domain.
- The Root name servers respond with the name and IP address of the berkeley.edu name server.
- The local DNS server queries the berkeley.edu DNS server.
- The berkeley.edu DNS server responds with the name and address of the cs.berkeley.edu DNS server.
- The local DNS server queries the cs.berkeley.edu DNS server for the host zeus.
- The cs.berkeley.edu DNS server is authoritative for the 'cs' zone which contains an address resource record entry in a text file (a zone file) for 'zeus'. The cs.berkeley.edu DNS server responds with the IP address for the name zeus.
- The local DNS server caches the answers it recieved from all remote DNS servers for future use, and returns the IP address of zeus.cs.berkeley.edu to the computer that requested the lookup.