1. sending a recursive query to the local DNS server; 2. checking its local cache to determine whether the name has recently been resolved. If there is an entry in the local cache, the IP address is returned to the client before forwarding the request to a root server; 3. sending an iterative query to a root name server if no entry exists in the cache for a hostname; 4. the root name server referring the DNS server to a name server responsible for the first-level domain within the hostname; 5.
referring the original DNS server to second-level DNS servers, and then third-level DNS servers, until one of them can resolve the hostname to an IP address and return the results back to the client. For DNS forwarders, the following process is followed: 1. The DNS server attempts to resolve the request using its local cache and zone information 2. If it cant be resolved locally, the DNS server sends a recursive query to the forwarding DNS server 3. If the forwarder does not respond in its attempt to resolve the query, the DNS server attempts to resolve the request by contacting the appropriate DNS server, as specified in the root hints.