A resolving name server is one of the most important things you need on any computer. They are the ones in charge of querying and finding information from the root servers, authoritative NS, as well as domain names.
A resolving name server can be helpful for certain tasks like setting up a VPN, a dial-up system, an ADSL net, a DSL and many things more.
How can you get a resolving name server? That will depend on your current Internet service, so if you have an Internet service provided by an ISP (Internet Service Provider), then you will have to ask them for it.
In the case that the Internet is managed by an organization, you will have to ask the network admin about it, or whoever is in charge in case there’s a third party resolver in the middle.
When do I need a resolving NS?
Using a resolving name server is very useful if you want to find information about domains (including TLD domains), root servers and also authoritative nameservers too.
By using it you will also get faster queries because you will able to speed them up by using cached results, though this needs to be set up in the TTL field of the domain in order to work.
A few important things to keep in mind while using a resolving name server:
- You will notice that the NS in delegations will be listed by their name instead of the usual listing, which is done by IP.
- All the resolving name servers need to issue DNS requests to properly work, so your resolving name server will need to do a DNS request to find which is the IP of the server that is been referring.
- Keep in mind that this could lead to a loop dependency in case the NS that is used as the referrer is part of the domain that delegates its authority. Once in a while, it will be required for the NS that provides the delegation to start providing the IP of the next NS. This is what we usually know as a glue record.
How can you use resolving name servers?
Well, to start off, you have to specify a minimum of two resolving nameservers, including their dot notation, so the resolver can start using them to query the DNS records from different parts of the internet.
The resolver is the software used by the operating system to provide you access to the Domain Name System (DNS) of the Internet and is possible to setup up to 4 NS (3 NS until a few years ago).
If there are more than two resolving servers, then your system will be using them in the order provided. If there are no NS entries, then the default configuration will take the NS of the local machine, unless explicitly told not to do so.
If the query fails when trying out a particular name server, then the system will try the same query with the next NS, and if that fails too then it will try with the next and so on until all the NS run out.
If all of them fail, then the process will start over again and will be repeated the number of times that it is configured to do so.
DNS Resolver configuration on UNIX, Mac OS X, and Windows systems
Let’s see how to set up custom resolving name servers for the three most popular operating systems. You can use Google DNS (18.104.22.168 and 22.214.171.124), or you can alternatively use Cloudflare DNS (126.96.36.199 and 188.8.131.52).
Configuring resolving name servers on Linux
Most of the Linux/UNIX distros feature the resolver configuration on the same file, and that is /etc/resolv.conf.
This is the file that the system will read first when you launch a routine to access a website.
Due to its nature, the file has been designed to be easy to read and manage, so in case that a change is necessary then it can be done easily.
A typical example of a resolv.conf file would be something like this, depending on the selected nameservers of course:
nameserver 184.108.40.206 nameserver 220.127.116.11
In this case, the IP addresses 18.104.22.168 and 22.214.171.124 are the NS addresses.
If you want to check the content of your file then you can use the cat command to do it, just type the following in your terminal app:
If you want to edit the resolver configuration then you will need to open the file with a tool like nano, pico, vim and so on, depending on what’s installed on your system, for example:
More details can be found at this great guide written by RackSpace:
Configuring resolving name servers on MacOS
If you are using Mac OS X, then the same files as Linux/UNIX distros apply, so you will have to check the /etc/resolv.conf file to find out your current resolver addresses.
There are two ways to change or modify this file on Mac, one is using a GUI tool and the other one is using the networks configuration tool.
If you want to check the file by using the Network configuration tool, then start going to System Preferences on your Mac, then select Networking, the pick on Built-In Ethernet and finally click on Advanced.
In the new window, you should see the resolving name servers that the system is currently using.
In the case that you want to use a terminal app to view the content of the file, you have to proceed the same way that is done for Linux and UNIX system, so you can, for example, use the cat command, like this:
If you need more help, check out this MacOS DNS tutorial:
Configuring resolving name servers on Windows
If you are on a Windows operating system, you can check the current resolving name server by using the Network section of the Control Panel.
So start hitting the Start button down on the left, then select the Control Panel.
After that click on View Network Status, then click on the Properties option, and now go to TCP/IPv6 and finally click on Properties button again.
You should be able to see your current resolving nameservers, just look under the Preferred DNS Server tab.
In case you want to use a terminal-like app to view the name server IPs, then you can start by opening the Start Menu, then select the Run option and type “cmd” in there, hit Enter.
This will open up Windows’ command line interface, and to view the settings you are looking for you will have to type the following and hit enter:
If you have any questions or need any help, check out the official docs from Microsoft:
How do the resolving name servers actually work?
The whole process starts the moment that you type an address on your computer’s browser and hit enter.
In less than a second, the system will check first any local server looking for the desired content, this is done by checking the hosts file of your PC.
If no local content is found, then the request will be passed to the resolving name servers, and they will give back the IP of the desired website.
Depending on the cache configurations, the resolving name server will first check its cache database, and if the information that it’s looking for is there then it will use the cached content to speed up the request.
If no cache is found, then the process mentioned above will take place instead.
If you want to get additional information about how resolving nameservers work, check out this great video about TTL and Resolving NS: