Table of Contents
Although the "official" beginning of the Domain Name System occurred in 1984 with the publication of RFC 920, the core of the new system was described in 1983 in RFCs 882 and 883. From 1984 to 1987, the ARPAnet (the precursor to today's Internet) became a testbed of experimentation for developing the new naming/addressing scheme in an rapidly expanding, operational network environment. New RFCs were written and published in 1987 that modified the original documents to incorporate improvements based on the working model. RFC 1034, "Domain Names-Concepts and Facilities", and RFC 1035, "Domain Names-Implementation and Specification" were published and became the standards upon which all DNS implementations are built.
The first working domain name server, called "Jeeves", was written in 1983-84 by Paul Mockapetris for operation on DEC Tops-20 machines located at the University of Southern California's Information Sciences Institute (USC-ISI) and SRI International's Network Information Center (SRI-NIC). A DNS server for Unix machines, the Berkeley Internet Name Domain (BIND) package, was written soon after by a group of graduate students at the University of California at Berkeley under a grant from the US Defense Advanced Research Projects Administration (DARPA). Versions of BIND through 4.8.3 were maintained by the Computer Systems Research Group (CSRG) at UC Berkeley. Douglas Terry, Mark Painter, David Riggle and Songnian Zhou made up the initial BIND project team. After that, additional work on the software package was done by Ralph Campbell. Kevin Dunlap, a Digital Equipment Corporation employee on loan to the CSRG, worked on BIND for 2 years, from 1985 to 1987. Many other people also contributed to BIND development during that time: Doug Kingston, Craig Partridge, Smoot Carl-Mitchell, Mike Muuss, Jim Bloom and Mike Schwartz. BIND maintenance was subsequently handled by Mike Karels and O. Kure.
BIND versions 4.9 and 4.9.1 were released by Digital Equipment Corporation (now Compaq Computer Corporation). Paul Vixie, then a DEC employee, became BIND's primary caretaker. Paul was assisted by Phil Almquist, Robert Elz, Alan Barrett, Paul Albitz, Bryan Beecher, Andrew Partan, Andy Cherenson, Tom Limoncelli, Berthold Paffrath, Fuat Baran, Anant Kumar, Art Harkin, Win Treese, Don Lewis, Christophe Wolfhugel, and others.
BIND Version 4.9.2 was sponsored by Vixie Enterprises. Paul Vixie became BIND's principal architect/programmer.
BIND versions from 4.9.3 onward have been developed and maintained by the Internet Software Consortium with support being provided by ISC's sponsors. As co-architects/programmers, Bob Halley and Paul Vixie released the first production-ready version of BIND version 8 in May 1997.
BIND development work is made possible today by the sponsorship of several corporations, and by the tireless work efforts of numerous individuals.
IPv6 addresses are 128-bit identifiers for interfaces and sets of interfaces which were introduced in the DNS to facilitate scalable Internet routing. There are three types of addresses: Unicast, an identifier for a single interface; Anycast, an identifier for a set of interfaces; and Multicast, an identifier for a set of interfaces. Here we describe the global Unicast address scheme. For more information, see RFC 2374.
The aggregatable global Unicast address format is as follows:
3 |
13 |
8 |
24 |
16 |
64 bits |
FP |
TLA ID |
RES |
NLA ID |
SLA ID |
Interface ID |
<------ Public Topology ------> |
|||||
<-Site Topology-> |
|||||
<------ Interface Identifier ------> |
Where
FP |
= |
Format Prefix (001) |
TLA ID |
= |
Top-Level Aggregation Identifier |
RES |
= |
Reserved for future use |
NLA ID |
= |
Next-Level Aggregation Identifier |
SLA ID |
= |
Site-Level Aggregation Identifier |
INTERFACE ID |
= |
Interface Identifier |
The Public Topology is provided by the upstream provider or ISP, and (roughly) corresponds to the IPv4 network section of the address range. The Site Topology is where you can subnet this space, much the same as subnetting an IPv4 /16 network into /24 subnets. The Interface Identifier is the address of an individual interface on a given network. (With IPv6, addresses belong to interfaces rather than machines.)
The subnetting capability of IPv6 is much more flexible than that of IPv4: subnetting can now be carried out on bit boundaries, in much the same way as Classless InterDomain Routing (CIDR).
The Interface Identifier must be unique on that network. On ethernet networks, one way to ensure this is to set the address to the first three bytes of the hardware address, "FFFE", then the last three bytes of the hardware address. The lowest significant bit of the first byte should then be complemented. Addresses are written as 32-bit blocks separated with a colon, and leading zeros of a block may be omitted, for example:
2001:db8:201:9:a00:20ff:fe81:2b32
IPv6 address specifications are likely to contain long strings of zeros, so the architects have included a shorthand for specifying them. The double colon (`::') indicates the longest possible string of zeros that can fit, and can be used only once in an address.
Specification documents for the Internet protocol suite, including
the DNS, are published as part of the Request for Comments (RFCs)
series of technical notes. The standards themselves are defined
by the Internet Engineering Task Force (IETF) and the Internet Engineering
Steering Group (IESG). RFCs can be obtained online via FTP at
ftp://www.isi.edu/in-notes/RFCxxx
.txt (where xxx
is
the number of the RFC). RFCs are also available via the Web at
http://www.ietf.org/rfc/.
[RFC974] Mail Routing and the Domain System. January 1986.
[RFC1034] Domain Names — Concepts and Facilities. November 1987.
[RFC1035] Domain Names — Implementation and Specification. November 1987.
[RFC2181] Clarifications to the DNS Specification. July 1997.
[RFC2308] Negative Caching of DNS Queries. March 1998.
[RFC1995] Incremental Zone Transfer in DNS. August 1996.
[RFC1996] A Mechanism for Prompt Notification of Zone Changes. August 1996.
[RFC2136] Dynamic Updates in the Domain Name System. April 1997.
[RFC2845] Secret Key Transaction Authentication for DNS (TSIG). May 2000.
Note: the following list of RFCs are undergoing major revision by the IETF.
[RFC1886] DNS Extensions to support IP version 6. December 1995.
[RFC2065] Domain Name System Security Extensions. January 1997.
[RFC2137] Secure Domain Name System Dynamic Update. April 1997.
[RFC1535] A Security Problem and Proposed Correction With Widely Deployed DNS Software.. October 1993.
[RFC1536] Common DNS Implementation Errors and Suggested Fixes. October 1993.
[RFC1982] Serial Number Arithmetic. August 1996.
[RFC1183] New DNS RR Definitions. October 1990.
[RFC1706] DNS NSAP Resource Records. October 1994.
[RFC2168] Resolution of Uniform Resource Identifiers using the Domain Name System. June 1997.
[RFC1876] A Means for Expressing Location Information in the Domain Name System. January 1996.
[RFC2052] A DNS RR for Specifying the Location of Services.. October 1996.
[RFC2163] Using the Internet DNS to Distribute MIXER Conformant Global Address Mapping. January 1998.
[RFC2230] Key Exchange Delegation Record for the DNS. October 1997.
[RFC1101] DNS Encoding of Network Names and Other Types. April 1989.
[RFC1123] Requirements for Internet Hosts - Application and Support. October 1989.
[RFC1591] Domain Name System Structure and Delegation. March 1994.
[RFC2317] Classless IN-ADDR.ARPA Delegation. March 1998.
[RFC1537] Common DNS Data File Configuration Errors. October 1993.
[RFC1912] Common DNS Operational and Configuration Errors. February 1996.
[RFC2010] Operational Criteria for Root Name Servers.. October 1996.
[RFC2219] Use of DNS Aliases for Network Services.. October 1997.
Note: the following list of RFCs, although DNS-related, are not concerned with implementing software.
[RFC1464] Using the Domain Name System To Store Arbitrary String Attributes. May 1993.
[RFC1713] Tools for DNS Debugging. November 1994.
[RFC1794] DNS Support for Load Balancing. April 1995.
[RFC2240] A Legal Basis for Domain Name Allocation. November 1997.
[RFC2345] Domain Names and Company Name Retrieval. May 1998.
[RFC2352] A Convention For Using Legal Names as Domain Names. May 1998.
[RFC1712] DNS Encoding of Geographical Location. November 1994.
Internet Drafts (IDs) are rough-draft working documents of the Internet Engineering Task Force. They are, in essence, RFCs in the preliminary stages of development. Implementors are cautioned not to regard IDs as archival, and they should not be quoted or cited in any formal documents unless accompanied by the disclaimer that they are "works in progress." IDs have a lifespan of six months after which they are deleted unless updated by their authors.