The primary function of DNS is to provide name resolution for requesting clients , so the query mechanism is subsequently one of the most important elements in the system. Two types of queries are commonly made to a DNS database: recursive and iterative. Recursive QueriesRecursive queries are most often performed by resolvers , or clients that need to have a specific name resolved by a DNS server. Recursive queries are also accomplished by a DNS server if forwarders are configured to be used on a particular name server. A recursive query essentially asks whether a particular record can be resolved by a particular name server. The response to a recursive query is either negative or positive. A common recursive query scenario is illustrated in Figure 13.16. Figure 13.16. Recursive and iterative queries.
Iterative QueriesIterative queries ask a DNS server to either resolve the query or make a "best guess" referral to a DNS server that might contain more accurate information about where the query can be resolved. Another iterative query is then performed to the referred server and so on until a result, positive or negative, is obtained. In the example shown in Figure 13.16, Client1 in CompanyABC opens a Web browser and attempts to browse to the Web site for www.microsoft.com . A recursive query is initiated to the default name server; in this case, Server1 is contacted. Because Server1 is authoritative only for the companyabc.com namespace, and no entries exist for microsoft.com , the query is sent to an "upstream" DNS server that is listed in the root hints of the DNS server. That server, Server2, is not authoritative for microsoft.com but sends a referral back to Server1 for Server3, which is a name server for the .com namespace. Server3 knows that Server4 handles name-resolution requests for microsoft.com and sends that information back to Server1. A final iterative query is then sent from Server1 to Server4, and Server4 successfully resolves www to the proper IP address. Server1, with this information in hand, returns Client1's original recursive query with the proper IP address and Client1's browser successfully resolves www.microsoft.com . This type of functionality lies at the heart of the distributed nature of DNS and allows DNS lookups to function as efficiently as they do. |