The Domain Name System (DNS)
Description
The Domain Name System is a distributed database primarily intended for translating between domain names and IP addresses. In a typical Linux-based installation:
- A program needing to perform a DNS query does so using a library called a DNS resolver.
- The DNS resolver passes the query to one of the nameservers listed in
/etc/resolv.conf
. - If necessary, this first nameserver contacts other nameservers to obtain the required information.
Each domain usually has two or three authoritative nameservers that have delegated authority to give definitive answers about that domain. Usually one of these is a primary master (with an original copy of the zone data), and the other or others are secondary masters (which obtain their data from the primary master).
The most popular implementation of the DNS protocol is BIND, published by the Internet Systems Consortium. Other notable Open Source implementations include djbdns, MaraDNS, NSD and PowerDNS.
microHOWTOs
- Configure BIND as a slave DNS server
- Convert an IP address to the corresponding domain name in C
- Reset the serial number of a DNS zone
See also
Further reading
- P. Mockapetris, DOMAIN NAMES - CONCEPTS AND FACILITIES, RFC 1024, IETF, November 1987
- P. Mockapetris, DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION, RFC 1025, IETF, November 1987
- R. Elz and R. Bush, Clarifications to the DNS Specification, RFC 2181, IETF, July 1997