The Domain Name SystemΒΆ

Warning

This chapter is work-in-progress and may contain vastly incomplete information.

The Domain Name System (short: DNS) is a global, hierarchical, distributed key-value database (BINGO!). It is currently specified by RFC 1034 and RFC 1035 as well as several complementing RFCs (which can be found by looking at the Updated By header in the linked RFCs).

The DNS is split in Zones. Each Zone has a group of Name Servers which are responsible for answering queries for Names (keys) within that Zone. Within a Zone, there can be Child Zones for which entirely different Name Servers are responsible. The Parent Zone delegates that responsibility to the Child Zone with special Resource Records (key values).

A Zone is thus a single administrative domain. This is not to be confused with a Domain in the sense of the DNS: A Domain may cover multiple Zones (for example, the de domain covers heise.de, but also wikipedia.de, which are different Zones).

The Root Zone . is operated by the ICANN. Within the Root Zone, all the well-known Top-Level Domains such as com, de, eu and others exist. Those top level domains again delegate part of their namespace to customers via Child Zones. These customers are again free to delegate parts of their namespace to others and this is how the hierarchy is built.

To obtain data from the DNS one must specify the Fully Qualified Domain Name (FQDN) one wants to query as well as the Resource Record Type (RRtype). The RRtype tells the servers which kind of data one is looking for. In the binary wire-format, RRtypes are represented by numbers. “Everywhere” else, they are represented by mnemonic names, such as A or CNAME.

RRtype Content type / Use Value Example
A IPv4 address 138.201.4.137
AAAA IPv6 address 2a01:4f8:171:1d56:1010:1010:0:1
CNAME “redirect” to another FQDN git.domain.example.
MX Specify an inbound mailserver for the domain name, as well as priority 23 mailin.domain.example.