Skip to main content

RFC 1034 - DOMAIN NAMES - CONCEPTS AND FACILITIES

  • Status: Internet Standard
  • Published: November 1987
  • Stream: Legacy
  • Obsoletes: RFC882, RFC883, RFC973
  • Errata: No Errata

Status of this Memo​

See 1. Status of this Memo for the full text of this section.


Abstract​

The Domain Name System (DNS) is a fundamental component of the Internet infrastructure, providing a distributed, hierarchical naming system. This RFC introduces domain names, their use for Internet mail and host address support, and the protocols and servers used to implement domain name facilities.


Table of Contents​

1. Status of this Memo​

2. Introduction​

  • 2. Introduction
    • 2.1 The history of domain names
    • 2.2 DNS design goals
    • 2.3 Assumptions about usage
    • 2.4 Elements of the DNS

3. Domain Name Space and Resource Records​

  • 3. Domain Name Space and Resource Records
    • 3.1 Name space specifications and terminology
    • 3.2 Administrative guidelines on use
    • 3.3 Technical guidelines on use
    • 3.4 Example name space
    • 3.5 Preferred name syntax
    • 3.6 Resource Records
      • 3.6.1 Textual expression of RRs
      • 3.6.2 Aliases and canonical names
    • 3.7 Queries
      • 3.7.1 Standard queries
      • 3.7.2 Inverse queries (Optional)
    • 3.8 Status queries (Experimental)
    • 3.9 Completion queries (Obsolete)

4. Name Servers​

  • 4. Name Servers
    • 4.1 Introduction
    • 4.2 How the database is divided into zones
      • 4.2.1 Technical considerations
      • 4.2.2 Administrative considerations
    • 4.3 Name server internals
      • 4.3.1 Queries and responses
      • 4.3.2 Algorithm
      • 4.3.3 Wildcards
      • 4.3.4 Negative response caching (Optional)
    • 4.4 Using the database

5. Resolvers​

  • 5. Resolvers
    • 5.1 Introduction
    • 5.2 Client-resolver interface
    • 5.3 Resolver internals

Appendices​


Core Concepts Quick Reference​

DNS Hierarchy​

                    .  (root)
|
+----------+----------+
| | |
com org net ...
| | |
+----+----+ | +---+---+
| | | | |
google amazon ietf example ...
|
+---+---+
| |
www mail

Domain Name Structure​

www.example.com.
│ │ │ └─ root (usually omitted)
│ │ └───── Top-Level Domain (TLD)
│ └─────────── Second-Level Domain (SLD)
└───────────── hostname/subdomain

Fully Qualified Domain Name (FQDN): www.example.com.
Relative Domain Name: www

DNS Record Types (RR Types)​

TypeNamePurpose
AAddressIPv4 address
AAAAIPv6 AddressIPv6 address
CNAMECanonical NameAlias record
MXMail ExchangeMail server
NSName ServerName server
PTRPointerReverse DNS
SOAStart of AuthorityZone authority
TXTTextText record
SRVServiceService location

DNS Query Types​

Recursive Query:
Client → Local DNS → [recursive query] → Final answer

Iterative Query:
Client → DNS1 → [referral] → DNS2 → [referral] → DNS3 → Answer

Resource Record Format (RR Format)​

name    TTL   class   type   rdata
example.com. 3600 IN A 93.184.216.34
│ │ │ │ │
│ │ │ │ └─ record data
│ │ │ └────── record type
│ │ └──────────── class (IN=Internet)
│ └────────────────── Time To Live (seconds)
└──────────────────────────────── domain name

DNS Resolution Process​

1. User queries www.example.com
↓
2. Check local cache
↓
3. Query local DNS server
↓
4. Query root server → returns .com server
↓
5. Query .com server → returns example.com server
↓
6. Query example.com server → returns IP address
↓
7. Return result and cache

Zone vs Domain​

ConceptDefinitionExample
DomainA node in the name tree and all its subnodesexample.com and all its subdomains
ZoneA portion of a domain managed by a single authorityexample.com zone file

Key Difference: A domain can be divided into multiple zones for management purposes.

Name Server Types​

TypeDescription
AuthoritativeOfficial source for zone data
RecursivePerforms complete resolution on behalf of clients
CachingOnly caches query results
ForwarderForwards queries to other servers

Zone File Example​

$ORIGIN example.com.
$TTL 3600

@ IN SOA ns1.example.com. admin.example.com. (
2024010101 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ) ; Minimum TTL

IN NS ns1.example.com.
IN NS ns2.example.com.

IN MX 10 mail.example.com.

www IN A 93.184.216.34
mail IN A 93.184.216.35
ftp IN CNAME www.example.com.

DNS Key Features​

1. Hierarchical Namespace​

  • Tree structure with root at top
  • Uses dots (.) to separate levels
  • Read from right to left (root → TLD → SLD → host)

2. Distributed Database​

  • No single point of failure
  • Data distributed across thousands of servers globally
  • Each zone managed by authoritative servers

3. Caching Mechanism​

  • Reduces query latency
  • Lowers load on root servers
  • TTL controls cache validity period

4. Redundancy​

  • 13 root server clusters (A-M)
  • Each zone typically has multiple NS records
  • Primary/secondary server architecture

5. Extensibility​

  • Supports new RR types
  • Supports new query types
  • EDNS0 extension mechanism

DNS vs Early Systems (HOSTS.TXT)​

FeatureHOSTS.TXTDNS
ManagementCentralizedDistributed
ScalabilityPoor (O(n²) bandwidth)Good (hierarchical)
UpdatesManual FTPAutomatic sync
QueriesLocal file lookupNetwork queries
StructureFlat listHierarchical tree
PerformanceLimited by file sizeOptimized with caching

DNS Data Flow​

+----------+
| Client |
| App |
+----------+
↓ ↑
Query | Response
↓ ↑
+----------+
| Resolver | ← Config: /etc/resolv.conf
+----------+
↓ ↑
DNS Protocol
↓ ↑
+----------+
| Name | ← Zone files
| Server |
+----------+

Root Server System​

Global 13 root server identifiers (A-M):

A.ROOT-SERVERS.NET  - VeriSign
B.ROOT-SERVERS.NET - ISI
C.ROOT-SERVERS.NET - Cogent
D.ROOT-SERVERS.NET - UMD
E.ROOT-SERVERS.NET - NASA
F.ROOT-SERVERS.NET - ISC
G.ROOT-SERVERS.NET - DISA
H.ROOT-SERVERS.NET - ARL
I.ROOT-SERVERS.NET - Netnod
J.ROOT-SERVERS.NET - VeriSign
K.ROOT-SERVERS.NET - RIPE NCC
L.ROOT-SERVERS.NET - ICANN
M.ROOT-SERVERS.NET - WIDE

Note: Through anycast, each "root server" is actually hundreds of physical servers distributed globally.



Useful DNS Commands​

Unix/Linux/macOS​

# Query A record
dig example.com A

# Query all records
dig example.com ANY

# Trace resolution path
dig +trace example.com

# Reverse DNS query
dig -x 8.8.8.8

# Query specific DNS server
dig @8.8.8.8 example.com

# nslookup command
nslookup example.com

# host command
host example.com

Windows​

# Query domain name
nslookup example.com

# Query specific type
nslookup -type=MX example.com

# Clear DNS cache
ipconfig /flushdns

# Display DNS cache
ipconfig /displaydns

Important Note: DNS is a critical Internet infrastructure that nearly all Internet applications depend on. Understanding DNS concepts and how it works is essential for network management, security, and troubleshooting.

Next Steps: Read RFC 1035 - DNS Implementation and Specification for detailed protocol implementation details.