Mapping a name to an address or an address to a name is called name-address resolution.
Resolver:
- DNS is designed as a client-server application. A host that needs to map an address to a name or a name to an address calls a DNS client called a resolver. The resolver accesses the closest DNS server with a mapping request.
- After the resolver receives the mapping, it interprets the response to see if it is a real resolution or an error, and finally delivers the result to the process that requested it.
Mapping Names to Addresses:
- Most of the time, the resolver gives a domain name to the server and asks for the corresponding address.
- In this case, the server checks the generic domains or the country domains to find the mapping.
- If the domain name is from the generic domains section, the resolver receives a domain name such as “chal.atc.fhda.edu.”.
- The query is sent by the resolver to the local DNS server for resolution. If the local server cannot resolve the query, it either refers the resolver to other servers or asks other servers directly.
- If the domain name is from the country domains section, the resolver receives a domain name such as “ch.fhda.cu.ca.us.”. The procedure is the same.
Mapping Addresses to Names:
- A client can send an IP address to a server to be mapped to a domain name. As mentioned before, this is called a PTR query.
- To answer queries of this kind, DNS uses the inverse domain. However, in the request, the IP address is reversed and
- Two labels, in-addr and arpa, are appended to create a domain acceptable by the inverse domain section.
- For example, if the resolver receives the IP address 132.34.45.121, the resolver first inverts the address and then adds the two labels before sending. The domain name sent is “121.45.34.132.in-addr.arpa.”, which is received by the local DNS and resolved.
Types of Records:
The primary role of a name-server is to handle requests, it accepts domain queries and returns a ‘record’. Two types of records are used in DNS.
The question records are used in the question section of the query and response messages. The resource records are used in the answer, authoritative and additional information sections of the response message.
- Question Record: A question record is used by the client to get information from a server. This contains the domain name.
- Resource Record: Each domain name (each node on the tree) is associated with a record called the resource record. The server database consists of resource records. Resource records are also what are returned by the server to the client.
Recursive Resolution:
- Figure1 shows the recursive resolution.
- The client (resolver) can ask for a recursive answer from a name server. This means that the resolver expects the server to supply the final answer.
- If the server is the authority for the domain name, it checks its database and responds. If the server is not the authority, it sends the request to another server (the parent usually) and waits for the response.
- If the parent is the authority, it responds; otherwise, it sends the query to yet another server. When the query is finally resolved, the response travels back until it finally reaches the requesting client.
Iterative Resolution:
- If the client does not ask for a recursive answer, the mapping can be done iteratively.
- If the server is an authority for the name, it sends the answer. If it is not, it returns the IP address of the server that it thinks can resolve the query.
- The client is responsible for repeating the query to this second server. If the newly addressed server can resolve the problem, it answers the query with the IP address; otherwise, it returns the IP address of a new server to the client.
- Now the client must repeat the query to the third server. This process is called iterative because the client repeats the same query to multiple servers. In Figure 19.13 the client queries five servers before it gets an answer from the mcgraw.com server.