mail us  |  mail this page

contact us
training  | 
tech stuff  | 

Resolvers

The term resolver can be used in three distinct ways:

  1. As a generic term to describe any entity software/hardware that resolves names to IPs.

  2. More specifically it refers to a set of functions supplied as part of the standard C network/socket libraries (for example, glibc6 in *nix systems) or supplied as part of a package (for example, BIND). These functions are used by applications to answer questions such as 'what is the IP address of this host'. The most common method to invoke such resolver services, used by your browser among many other applications, is to use the POSIX socket functions 'gethostbyname' (or 'getaddrinfo' for sock2) for name to IP and 'gethostbyaddr' (replaced by 'getnameinfo' in sock2) for IP to name. Typically the term 'resolver library' may be applied to this functionality. Every system that accesses the internet (for instance a desktop PC or a mobile device) has a resolver library or resolver functionality.

  3. The term resolver is also used to describe a DNS system whose function, uniquely, is to resolve DNS queries on behalf of clients such as desktop PCs or modile devices. Such a resolver, which may also be called a Caching Name Server or an area resolver, is typically located in a ISP, cellco or large corporate network. The Resolver in this case is hardened against external network attacks, normally contains a huge cache to increase performance for its clients and provides recursive (it can follow referrals) functionality to its clients.

Resolvers are quite complicated and are defined to be capable of following referrals (they can work with systems that do not support recursive queries. However, on desktop and mobile devices almost all resolvers (both Windows and *nix) are stub resolvers. A stub resolver is a minimal resolver which will only work with a DNS (an area resolver) that does support recursive queries, specifically stub-resolvers cannot follow referrals. Modern destop PC and mobile devices now provide what is called a caching resolver. This resolver is a stub resolver but it does maintain a cache of responses to minimize network access and increase performance.

There are a number of ways your system can resolve a name and the actual order will vary based on your configuration:

  1. If you are using a *nix system with the GNU glibc libraries the order of lookup is determined by the 'hosts' entry in the /etc/nsswitch.conf file which will read something like:

    hosts files nisplus dns
    

    Indicating look at /etc/hosts, then use NIS (Network Information Systems), then DNS (via resolv.conf)

  2. If you are using a *nix system with the older GNU libc libraries the order of lookup is determined by the 'order' entry in the /etc/host.conf file which will read something like:

    order hosts,bind
    

    Indicating look at /etc/hosts then DNS (using resolv.conf)

  3. If you are using a windows system the order is:

    1. look in hosts (windows\system32\drivers\etc\hosts)
    2. use the DNS entries in the tcp/ip network definition.
  4. FreeBSD does not install /etc/nsswitch.conf (prior to 5.x releases) by default so NIS assumes a resolution order as if the following 'hosts' line was present in nsswitch.conf:
    hosts dns files
    

    Which means use DNS (via resolve.conf) then /etc/hosts.



Problems, comments, suggestions, corrections (including broken links) or something to add? Please take the time from a busy life to 'mail us' (at top of screen), the webmaster (below) or info-support at zytrax. You will have a warm inner glow for the rest of the day.

Pro DNS and BIND by Ron Aitchison

Contents

tech info
guides home
dns articles
intro
contents
1 objectives
big picture
2 concepts
3 reverse map
4 dns types
quickstart
5 install bind
6 samples
reference
7 named.conf
8 zone records
operations
9 howtos
10 tools
11 trouble
programming
12 bind api's
security
13 dns security
bits & bytes
15 messages
resources
notes & tips
registration FAQ
dns resources
dns rfcs
change log

Creative Commons License
This work is licensed under a Creative Commons License.

If you are happy it's OK - but your browser is giving a less than optimal experience on our site. You could, at no charge, upgrade to a W3C STANDARDS COMPLIANT browser such as Firefox

Search

web zytrax.com

Share

share page via facebook tweet this page

Page

email us Send to a friend feature print this page Decrease font size Increase font size Display full width page

Resources

Systems

FreeBSD
NetBSD
OpenBSD
DragonFlyBSD
Linux.org
Debian Linux

Software

LibreOffice
OpenOffice
Mozilla
GitHub
GNU-Free SW Foundation
get-dns

Organizations

Open Source Initiative
Creative Commons

Misc.

Ibiblio - Library
Open Book Project
Open Directory
Wikipedia

Site

CSS Technology SPF Record Conformant Domain
Copyright © 1994 - 2017 ZyTrax, Inc.
All rights reserved. Legal and Privacy
site by zytrax
Hosted by super.net.sg
web-master at zytrax
Page modified: October 21 2015.