796 lines
34 KiB
Plaintext
796 lines
34 KiB
Plaintext
IPng Working Group Matt Crawford
|
|
Internet Draft Fermilab
|
|
Christian Huitema
|
|
Susan Thomson
|
|
Bellcore
|
|
May 20, 1999
|
|
|
|
DNS Extensions to Support IPv6 Address Aggregation and Renumbering
|
|
<draft-ietf-ipngwg-dns-lookups-04.txt>
|
|
|
|
Status of this Memo
|
|
|
|
This document is an Internet-Draft and is in full conformance with
|
|
all provisions of Section 10 of RFC2026. Internet-Drafts are working
|
|
documents of the Internet Engineering Task Force (IETF), its areas,
|
|
and its working groups. Note that other groups may also distribute
|
|
working documents as Internet-Drafts.
|
|
|
|
Internet-Drafts are draft documents valid for a maximum of six
|
|
months and may be updated, replaced, or obsoleted by other documents
|
|
at any time. It is inappropriate to use Internet- Drafts as
|
|
reference material or to cite them other than as "work in progress."
|
|
|
|
|
|
The list of current Internet-Drafts can be accessed at
|
|
http://www.ietf.org/ietf/1id-abstracts.txt
|
|
|
|
The list of Internet-Draft Shadow Directories can be accessed at
|
|
http://www.ietf.org/shadow.html.
|
|
|
|
1. Abstract
|
|
|
|
This document defines changes to the Domain Name System to support
|
|
renumberable and aggregatable IPv6 addressing. The changes include
|
|
a new resource record type to store an IPv6 address in a manner
|
|
which expedites network renumbering, and updated definitions of
|
|
existing query types that return Internet addresses as part of
|
|
additional section processing.
|
|
|
|
For lookups keyed on IPv6 addresses (often called reverse lookups),
|
|
this document defines a new zone structure which allows a zone to be
|
|
used without modification for parallel copies of an address space
|
|
(as for a multihomed provider or site) and across network
|
|
renumbering events.
|
|
|
|
Expires November 25, 1999 Crawford et al. [Page 1]
|
|
|
|
Internet Draft IPv6 DNS May 20, 1999
|
|
|
|
2. Introduction
|
|
|
|
Maintenance of address information in the DNS is one of several
|
|
obstacles which have prevented site and provider renumbering from
|
|
being feasible in IP version 4. Arguments about the importance of
|
|
network renumbering for the preservation of a stable routing system
|
|
and for other purposes may be read in documents cited here as
|
|
[RENUM]. To support the storage of IPv6 addresses without impeding
|
|
renumbering we define the following extensions.
|
|
|
|
o A new resource record type, "A6", is defined to map a domain
|
|
name to an IPv6 address, with a provision for indirection for
|
|
leading "prefix" bits.
|
|
|
|
o Existing queries that perform additional section processing to
|
|
locate IPv4 addresses are redefined to do that processing for
|
|
both IPv4 and IPv6 addresses.
|
|
|
|
o A new domain, IP6.INT, is defined to support lookups based on
|
|
IPv6 address.
|
|
|
|
o A new prefix-delegation method is defined, relying on new DNS
|
|
features [BITLBL, DNAME].
|
|
|
|
The changes are designed to be compatible with existing application
|
|
programming interfaces. The existing support for IPv4 addresses is
|
|
retained. Transition issues related to the coexistence of both IPv4
|
|
and IPv6 addresses in DNS are discussed in [TRANS].
|
|
|
|
This memo proposes a replacement for the specification in RFC 1886
|
|
and a departure from current implementation practices. The changes
|
|
are designed to facilitate network renumbering and multihoming.
|
|
Domains employing the A6 record for IPv6 addresses can have
|
|
automatically-genrerated AAAA records to ease transition. It is
|
|
expected that after a reasonable period, RFC 1886 will become
|
|
Historic.
|
|
|
|
The next three major sections of this document are an overview of
|
|
the facilities defined or employed by this specification, the
|
|
specification itself, and examples of use.
|
|
|
|
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
|
|
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
|
|
document are to be interpreted as described in [KWORD]. The key
|
|
word "SUGGESTED" signifies a strength between MAY and SHOULD: it is
|
|
believed that compliance with the suggestion has tangible benefits
|
|
in most instances.
|
|
|
|
Expires November 25, 1999 Crawford et al. [Page 2]
|
|
|
|
Internet Draft IPv6 DNS May 20, 1999
|
|
|
|
3. Overview
|
|
|
|
This section provides an overview of the DNS facilities for storage
|
|
of IPv6 addresses and for lookups based on IPv6 address, including
|
|
those defined here and elsewhere.
|
|
|
|
3.1. Name-to-Address Lookup
|
|
|
|
IPv6 addresses are stored in one or more A6 resource records. A
|
|
single A6 record may include a complete IPv6 address, or a
|
|
contiguous portion of an address and information leading to one or
|
|
more prefixes. Prefix information comprises a prefix length and a
|
|
DNS name which is in turn the owner of one or more A6 records
|
|
defining the prefix or prefixes which are needed to form one or more
|
|
complete IPv6 addresses. When the prefix length is zero, no DNS
|
|
name is present and all the leading bits of the address are
|
|
significant. There may be multiples levels of indirection and the
|
|
existence of multiple A6 records at any level multiplies the number
|
|
of IPv6 addresses which are formed.
|
|
|
|
An application looking up an IPv6 address will generally cause the
|
|
DNS resolver to access several A6 records, and multiple IPv6
|
|
addresses may be returned even if the queried name was the owner of
|
|
only one A6 record. The authenticity [DNSSEC] of the returned
|
|
address(es) cannot be directly verified. The A6 records which
|
|
contributed to the address(es) may of course be verified if signed.
|
|
|
|
3.2. Underlying Mechanisms for Reverse Lookups
|
|
|
|
This section describes the new DNS features which this document
|
|
exploits. This section is an overview, not a specification of those
|
|
features. The reader is directed to the referenced documents for
|
|
more details on each.
|
|
|
|
3.2.1. Delegation on Arbitrary Boundaries
|
|
|
|
This new scheme for reverse lookups relies on a new type of DNS
|
|
label called the "bit-string label" [BITLBL]. This label compactly
|
|
represents an arbitrary string of bits which is treated as a
|
|
hierarchical sequence of one-bit domain labels. Resource records
|
|
can thereby be stored on arbitrary bit-boundaries.
|
|
|
|
Examples in section 6 will employ the following textual
|
|
representation for bit-string labels, which is a subset of the
|
|
syntax defined in [BITLBL]. A base indicator "x" for hexadecimal
|
|
|
|
Expires November 25, 1999 Crawford et al. [Page 3]
|
|
|
|
Internet Draft IPv6 DNS May 20, 1999
|
|
|
|
and a sequence of hexadecimal digits is enclosed between "\[" and
|
|
"]". The bits denoted by the digits represent a sequence of one-bit
|
|
domain labels ordered from most to least significant. (This is the
|
|
opposite of the order they would appear if listed one bit at a time,
|
|
but it appears to be a convenient notation.) The digit string may
|
|
be followed by a slash ("/") and a decimal count. If omitted, the
|
|
implicit count is equal to four times the number of hexadecimal
|
|
digits.
|
|
|
|
Consecutive bit-string labels are equivalent (up to the limit
|
|
imposed by the size of the bit count field) to a single bit-string
|
|
label containing all the bits of the consecutive labels in the
|
|
proper order. As an example, either of the following domain names
|
|
could be used in a QCLASS=IN, QTYPE=PTR query to find the name of
|
|
the node with IPv6 address 3ffe:7c0:40:9:a00:20ff:fe81:2b32.
|
|
|
|
\[x3FFE07C0004000090A0020FFFE812B32/128].IP6.INT.
|
|
|
|
\[x0A0020FFFE812B32/64].\[x0009/16].
|
|
\[x07C00040/32].\[xFFF0/13].\[x2/3].IP6.INT.
|
|
|
|
Note that bits are left-justified in a hexadecimal string.
|
|
|
|
3.2.2. Reusable Zones
|
|
|
|
DNS address space delegation is implemented not by zone cuts and NS
|
|
records, but by a new analogue to the CNAME record, called the DNAME
|
|
resource record [DNAME]. The DNAME record provides alternate naming
|
|
to an entire subtree of the domain name space, rather than to a
|
|
single node. It causes some suffix of a queried name to be
|
|
substituted with a name from the DNAME record's RDATA.
|
|
|
|
For example, a resolver or server providing recursion, while looking
|
|
up a QNAME a.b.c.d.e.f may encounter a DNAME record
|
|
|
|
d.e.f. DNAME w.xy.
|
|
|
|
which will cause it to look for a.b.c.w.xy.
|
|
|
|
4. Specifications
|
|
|
|
4.1. The A6 Record Type
|
|
|
|
The A6 record type is specific to the IN (Internet) class and has
|
|
type number 38 (decimal).
|
|
|
|
Expires November 25, 1999 Crawford et al. [Page 4]
|
|
|
|
Internet Draft IPv6 DNS May 20, 1999
|
|
|
|
4.1.1. Format
|
|
|
|
The RDATA portion of the A6 record contains two or three fields.
|
|
|
|
+-----------+------------------+-------------------+
|
|
|Prefix len.| Address suffix | Prefix name |
|
|
| (1 octet) | (0..16 octets) | (0..255 octets) |
|
|
+-----------+------------------+-------------------+
|
|
|
|
o A prefix length, encoded as an eight-bit unsigned integer with
|
|
value between 0 and 128 inclusive.
|
|
|
|
o An IPv6 address suffix, encoded in network order (high-order
|
|
octet first). There MUST be exactly enough octets in this field
|
|
to contain a number of bits equal to 128 minus prefix length,
|
|
with 0 to 7 leading pad bits to make this field an integral
|
|
number of octets. Pad bits, if present, MUST be set to zero
|
|
when loading a zone file and ignored (other than for SIG
|
|
[DNSSEC] verification) on reception.
|
|
|
|
o The name of the prefix, encoded as a domain name. By the rules
|
|
of [DNSIS], this name MUST NOT be compressed.
|
|
|
|
The domain name component SHALL NOT be present if the prefix length
|
|
is zero. The address suffix component SHALL NOT be present if the
|
|
prefix length is 128.
|
|
|
|
It is SUGGESTED that an A6 record intended for use as a prefix for
|
|
other A6 records have all the insignificant trailing bits in its
|
|
address suffix field set to zero.
|
|
|
|
4.1.2. Processing
|
|
|
|
A query with QTYPE=A6 causes type A and type AAAA additional section
|
|
processing for the QNAME, and type A6 and type NS additional section
|
|
processing for the DNS names, if any, in the RDATA field of the A6
|
|
records in the answer section. When and if the type AAAA record
|
|
becomes deprecated, the type AAAA additional section processing for
|
|
type A6 queries SHOULD be omitted from new implementations of this
|
|
specification.
|
|
|
|
It is an error for a A6 record with prefix length L1 > 0 to refer to
|
|
a domain name which owns a A6 record with a prefix length L2 > L1.
|
|
If such a situation is encountered by a resolver, the A6 record with
|
|
the offending (larger) prefix length MUST be ignored. Robustness
|
|
precludes signalling an error if addresses can still be formed from
|
|
|
|
Expires November 25, 1999 Crawford et al. [Page 5]
|
|
|
|
Internet Draft IPv6 DNS May 20, 1999
|
|
|
|
valid A6 records, but it is SUGGESTED that zone maintainers from
|
|
time to time check all the A6 records their zones reference.
|
|
|
|
4.1.3. Textual Representation
|
|
|
|
The textual representation of the RDATA portion of the A6 resource
|
|
record in a zone file comprises two or three fields separated by
|
|
whitespace.
|
|
|
|
o A prefix length, represented as a decimal number between 0 and
|
|
128 inclusive,
|
|
|
|
o the textual representation of an IPv6 address as defined in
|
|
[AARCH] (although some leading and/or trailing bits may not be
|
|
significant),
|
|
|
|
o a domain name, if the prefix length is not zero.
|
|
|
|
The domain name MUST be absent if the prefix length is zero. The
|
|
IPv6 address MAY be be absent if the prefix length is 128. A number
|
|
of leading address bits equal to the prefix length SHOULD be zero,
|
|
either implicitly (through the :: notation) or explicitly, as
|
|
specified in section 4.1.1.
|
|
|
|
4.1.4. Name Resolution Procedure
|
|
|
|
To obtain the IPv6 address or addresses which belong to a given
|
|
hostname, a DNS client MUST obtain one or more complete chains of A6
|
|
records, each chain beginning with a record owned by the given
|
|
hostname and including a record owned by the prefix name in that
|
|
record, and so on recursively, ending with an A6 record with a
|
|
prefix length of zero. One IPv6 address is formed from one such
|
|
chain by taking the value of each bit position from the earliest A6
|
|
record which validly covers that position, as indicated by the
|
|
prefix length. The set of all IPv6 records for the given hostname
|
|
comprises the addresses formed from all complete chains of A6
|
|
records beginning at that hostname, discarding records which have
|
|
invalid prefix lengths as defined in section 4.1.2.
|
|
|
|
4.2. Zone Structure for Reverse Lookups
|
|
|
|
Very little of the new scheme's data actually appears under IP6.INT;
|
|
only the first level of delegation needs to be under that domain.
|
|
More levels of delegation could be placed under IP6.INT if some
|
|
top-level delegations were done via NS records instead of DNAME
|
|
|
|
Expires November 25, 1999 Crawford et al. [Page 6]
|
|
|
|
Internet Draft IPv6 DNS May 20, 1999
|
|
|
|
records, but this would incur some cost in renumbering ease at the
|
|
level of TLAs [AGGR]. Therefore, it is declared here that all
|
|
address space delegations SHOULD be done by the DNAME mechanism
|
|
rather than NS.
|
|
|
|
In addition, since uniformity in deployment will simplify
|
|
maintenance of address delegations, it is SUGGESTED that address and
|
|
prefix information be stored immediately below a DNS label "IP6".
|
|
Stated another way, conformance with this suggestion would mean that
|
|
"IP6" is the first label in the RDATA field of DNAME records which
|
|
support IPv6 reverse lookups.
|
|
|
|
When any "reserved" or "must be zero" bits are adjacent to a
|
|
delegation boundary, the higher-level entity MUST retain those bits
|
|
in its own control and delegate only the bits over which the lower-
|
|
level entity has authority.
|
|
|
|
To find the name of a node given its IPv6 address, a DNS client MUST
|
|
perform a query with QCLASS=IN, QTYPE=PTR on the name formed from
|
|
the 128 bit address as one or more bit-string labels [BITLBL],
|
|
followed by the two standard labels "IP6.INT". If recursive service
|
|
was not obtained from a server and the desired PTR record was not
|
|
returned, the resolver MUST handle returned DNAME records as
|
|
specified in [DNAME] and iterate.
|
|
|
|
5. Modifications to Existing Query Types
|
|
|
|
All existing query types that perform type A additional section
|
|
processing, i.e. the name server (NS), mail exchange (MX), and
|
|
mailbox (MB) query types, and the experimental AFS data base (AFSDB)
|
|
and route through (RT) types, must be redefined to perform both type
|
|
A and type A6 additional section processing. These new definitions
|
|
mean that a name server may add any relevant IPv4 addresses and any
|
|
relevant A6 records available locally to the additional section of a
|
|
response when processing any one of the above queries.
|
|
|
|
6. Usage Illustrations
|
|
|
|
This section provides examples of use of the mechanisms defined in
|
|
the previous section. All addresses and domains mentioned here are
|
|
intended to be fictitious and for illustrative purposes only.
|
|
Example delegations will be on 4-bit boundaries solely for
|
|
readability; this specification is indifferent to bit alignment.
|
|
|
|
Use of the IPv6 aggregatable address format [AGGR] is assumed in the
|
|
examples.
|
|
|
|
Expires November 25, 1999 Crawford et al. [Page 7]
|
|
|
|
Internet Draft IPv6 DNS May 20, 1999
|
|
|
|
6.1. A6 Record Chains
|
|
|
|
Let's take the example of a site X that is multi-homed to two
|
|
"intermediate" providers A and B. The provider A is itself multi-
|
|
homed to two "transit" providers, C and D. The provider B gets its
|
|
transit service from a single provider, E. For simplicity suppose
|
|
that C, D and E all belong to the same top-level aggregate (TLA)
|
|
with identifier (including format prefix) '2345', and the TLA
|
|
authority at ALPHA-TLA.ORG assigns to C, D and E respectively the
|
|
next level aggregate (NLA) prefixes 2345:00C0::/28, 2345:00D0::/28
|
|
and 2345:000E::/32.
|
|
|
|
C assigns the NLA prefix 2345:00C1:CA00::/40 to A, D assigns the
|
|
prefix 2345:00D2:DA00::/40 to A and E assigns 2345:000E:EB00::/40 to
|
|
B.
|
|
|
|
A assigns to X the subscriber identification '11' and B assigns the
|
|
subscriber identification '22'. As a result, the site X inherits
|
|
three address prefixes:
|
|
|
|
o 2345:00C1:CA11::/48 from A, for routes through C.
|
|
o 2345:00D2:DA11::/48 from A, for routes through D.
|
|
o 2345:000E:EB22::/48 from B, for routes through E.
|
|
|
|
Let us suppose that N is a node in the site X, that it is assigned
|
|
to subnet number 1 in this site, and that it uses the interface
|
|
identifier '1234:5678:9ABC:DEF0'. In our configuration, this node
|
|
will have three addresses:
|
|
|
|
o 2345:00C1:CA11:0001:1234:5678:9ABC:DEF0
|
|
o 2345:00D2:DA11:0001:1234:5678:9ABC:DEF0
|
|
o 2345:000E:EB22:0001:1234:5678:9ABC:DEF0
|
|
|
|
6.1.1. Authoritative Data
|
|
|
|
We will assume that the site X is represented in the DNS by the
|
|
domain name X.EXAMPLE, while A, B, C, D and E are represented by
|
|
A.NET, B.NET, C.NET, D.NET and E.NET. In each of these domains, we
|
|
assume a subdomain "IP6" that will hold the corresponding prefixes.
|
|
The node N is identified by the domain name N.X.EXAMPLE. The
|
|
following records would then appear in X's DNS.
|
|
|
|
$ORIGIN X.EXAMPLE.
|
|
N A6 64 ::1234:5678:9ABC:DEF0 SUBNET-1.IP6
|
|
SUBNET-1.IP6 A6 48 0:0:0:1:: IP6
|
|
IP6 A6 48 0::0 SUBSCRIBER-X.IP6.A.NET.
|
|
IP6 A6 48 0::0 SUBSCRIBER-X.IP6.B.NET.
|
|
|
|
Expires November 25, 1999 Crawford et al. [Page 8]
|
|
|
|
Internet Draft IPv6 DNS May 20, 1999
|
|
|
|
And elsewhere there would appear
|
|
|
|
SUBSCRIBER-X.IP6.A.NET. A6 40 0:0:0011:: A.NET.IP6.C.NET.
|
|
SUBSCRIBER-X.IP6.A.NET. A6 40 0:0:0011:: A.NET.IP6.D.NET.
|
|
|
|
SUBSCRIBER-X.IP6.B.NET. A6 40 0:0:0022:: B-NET.IP6.E.NET.
|
|
|
|
A.NET.IP6.C.NET. A6 28 0:0001:CA00:: C.NET.ALPHA-TLA.ORG.
|
|
|
|
A.NET.IP6.D.NET. A6 28 0:0002:DA00:: D.NET.ALPHA-TLA.ORG.
|
|
|
|
B-NET.IP6.E.NET. A6 32 0:0:EB00:: E.NET.ALPHA-TLA.ORG.
|
|
|
|
C.NET.ALPHA-TLA.ORG. A6 0 2345:00C0::
|
|
D.NET.ALPHA-TLA.ORG. A6 0 2345:00D0::
|
|
E.NET.ALPHA-TLA.ORG. A6 0 2345:000E::
|
|
|
|
6.1.2. Glue
|
|
|
|
When, as is common, some or all DNS servers for X.EXAMPLE are within
|
|
the X.EXAMPLE zone itself, the top-level zone EXAMPLE must carry
|
|
enough "glue" information to enable DNS clients to reach those
|
|
nameservers. This is true in IPv6 just as in IPv4. However, the A6
|
|
record affords the DNS administrator some choices. The glue could
|
|
be any of
|
|
|
|
o a minimal set of A6 records duplicated from the X.EXAMPLE zone,
|
|
|
|
o a (possibly smaller) set of records which collapse the structure
|
|
of that minimal set,
|
|
|
|
o or a set of A6 records with prefix length zero, giving the
|
|
entire global addresses of the servers.
|
|
|
|
The trade-off is ease of maintenance against robustness. The best
|
|
and worst of both may be had together by implementing either the
|
|
first or second option together with the third. To illustrate the
|
|
glue options, suppose that X.EXAMPLE is served by two nameservers
|
|
NS1.X.EXAMPLE and NS2.X.EXAMPLE, having interface identifiers
|
|
::1:11:111:1111 and ::2:22:222:2222 on subnets 1 and 2 respectively.
|
|
Then the top-level zone EXAMPLE would include one (or more) of the
|
|
following sets of A6 records as glue.
|
|
|
|
Expires November 25, 1999 Crawford et al. [Page 9]
|
|
|
|
Internet Draft IPv6 DNS May 20, 1999
|
|
|
|
$ORIGIN EXAMPLE. ; first option
|
|
X NS NS1.X
|
|
NS NS2.X
|
|
NS1.X A6 64 ::1:11:111:1111 SUBNET-1.IP6.X
|
|
NS2.X A6 64 ::2:22:222:2222 SUBNET-2.IP6.X
|
|
SUBNET-1.IP6.X A6 48 0:0:0:1:: IP6.X
|
|
SUBNET-2.IP6.X A6 48 0:0:0:2:: IP6.X
|
|
IP6.X A6 48 0::0 SUBSCRIBER-X.IP6.A.NET.
|
|
IP6.X A6 48 0::0 SUBSCRIBER-X.IP6.B.NET.
|
|
|
|
$ORIGIN EXAMPLE. ; second option
|
|
X NS NS1.X
|
|
NS NS2.X
|
|
NS1.X A6 48 ::1:1:11:111:1111 SUBSCRIBER-X.IP6.A.NET.
|
|
A6 48 ::1:1:11:111:1111 SUBSCRIBER-X.IP6.B.NET.
|
|
NS2.X A6 48 ::2:2:22:222:2222 SUBSCRIBER-X.IP6.A.NET.
|
|
A6 48 ::2:2:22:222:2222 SUBSCRIBER-X.IP6.B.NET.
|
|
|
|
$ORIGIN EXAMPLE. ; third option
|
|
X NS NS1.X
|
|
NS NS2.X
|
|
NS1.X A6 0 2345:00C1:CA11:1:1:11:111:1111
|
|
A6 0 2345:00D2:DA11:1:1:11:111:1111
|
|
A6 0 2345:000E:EB22:1:1:11:111:1111
|
|
NS2.X A6 0 2345:00C1:CA11:2:2:22:222:2222
|
|
A6 0 2345:00D2:DA11:2:2:22:222:2222
|
|
A6 0 2345:000E:EB22:2:2:22:222:2222
|
|
|
|
The first and second glue options are robust against renumbering of
|
|
X.EXAMPLE's prefixes by providers A.NET and B.NET, but will fail if
|
|
those providers' own DNS is unreachable. The glue records of the
|
|
third option are robust against DNS failures elsewhere than the
|
|
zones EXAMPLE and X.EXAMPLE themselves, but must be updated when X's
|
|
address space is renumbered.
|
|
|
|
If the EXAMPLE zone includes redundant glue, for instance the union
|
|
of the A6 records of the first and third options, then under normal
|
|
circumstances duplicate IPv6 addresses will be derived by DNS
|
|
clients. But if provider DNS fails, addresses will still be
|
|
obtained from the zero-prefix-length records, while if the EXAMPLE
|
|
zone lags behind a renumbering of X.EXAMPLE, half of the addresses
|
|
obtained by DNS clients will still be up-to-date.
|
|
|
|
The zero-prefix-length glue records can of course be automatically
|
|
generated and/or checked in practice.
|
|
|
|
Expires November 25, 1999 Crawford et al. [Page 10]
|
|
|
|
Internet Draft IPv6 DNS May 20, 1999
|
|
|
|
6.1.3. Variations
|
|
|
|
Several more-or-less arbitrary assumptions are reflected in the
|
|
above structure. All of the following choices could have been made
|
|
differently, according to someone's notion of convenience or an
|
|
agreement between two parties.
|
|
|
|
First, that site X has chosen to put subnet information in a
|
|
separate A6 record rather than incorporate it into each node's
|
|
A6 records.
|
|
|
|
Second, that site X is referred to as "SUBSCRIBER-X" by both of
|
|
its providers A and B.
|
|
|
|
Third, that site X chose to indirect its provider information
|
|
through A6 records at IP6.X.EXAMPLE containing no significant
|
|
bits. An alternative would have been to replicate each subnet
|
|
record for each provider.
|
|
|
|
Fourth, B and E used a slightly different prefix naming
|
|
convention between themselves than did A, C and D. Each
|
|
hierarchical pair of network entities must arrange this naming
|
|
between themselves.
|
|
|
|
Fifth, that the upward prefix referral chain topped out at
|
|
ALPHA-TLA.ORG. There could have been another level which
|
|
assigned the TLA values and holds A6 records containing those
|
|
bits.
|
|
|
|
Finally, the above structure reflects an assumption that address
|
|
fields assigned by a given entity are recorded only in A6 records
|
|
held by that entity. Those bits could be entered into A6 records in
|
|
the lower-level entity's zone instead, thus:
|
|
|
|
IP6.X.EXAMPLE. A6 40 0:0:11:: IP6.A.NET.
|
|
IP6.X.EXAMPLE. A6 40 0:0:22:: IP6.B.NET.
|
|
|
|
IP6.A.NET. A6 28 0:1:CA00:: IP6.C.NET.
|
|
and so on.
|
|
|
|
Or the higher-level entities could hold both sorts of A6 records
|
|
(with different DNS owner names) and allow the lower-level entities
|
|
to choose either mode of A6 chaining. But the general principle of
|
|
avoiding data duplication suggests that the proper place to store
|
|
assigned values is with the entity that assigned them.
|
|
|
|
It is possible, but not necessarily recommended, for a zone
|
|
|
|
Expires November 25, 1999 Crawford et al. [Page 11]
|
|
|
|
Internet Draft IPv6 DNS May 20, 1999
|
|
|
|
maintainer to forego the renumbering support afforded by the chaning
|
|
of A6 records and to record entire IPv6 addresses within one zone
|
|
file.
|
|
|
|
6.2. Reverse Mapping Zones
|
|
|
|
Supposing that address space assignments in the TLAs with Format
|
|
Prefix (001) binary and IDs 0345, 0678 and 09AB were maintained in
|
|
zones called ALPHA-TLA.ORG, BRAVO-TLA.ORG and CHARLIE-TLA.XY, then
|
|
the IP6.INT zone would include
|
|
|
|
$ORIGIN IP6.INT.
|
|
\[x234500/24] DNAME IP6.ALPHA-TLA.ORG.
|
|
\[x267800/24] DNAME IP6.BRAVO-TLA.ORG.
|
|
\[x29AB00/24] DNAME IP6.CHARLIE-TLA.XY.
|
|
|
|
Eight trailing zero bits have been included in each TLA ID to
|
|
reflect the eight reserved bits in the current aggregatable global
|
|
unicast addresses format [AGGR].
|
|
|
|
6.2.1. The TLA level
|
|
|
|
ALPHA-TLA's assignments to network providers C, D and E are
|
|
reflected in the reverse data as follows.
|
|
|
|
\[xC/4].IP6.ALPHA-TLA.ORG. DNAME IP6.C.NET.
|
|
\[xD/4].IP6.ALPHA-TLA.ORG. DNAME IP6.D.NET.
|
|
\[x0E/8].IP6.ALPHA-TLA.ORG. DNAME IP6.E.NET.
|
|
|
|
6.2.2. The ISP level
|
|
|
|
The providers A through E carry the following delegation information
|
|
in their zone files.
|
|
|
|
\[x1CA/12].IP6.C.NET. DNAME IP6.A.NET.
|
|
\[x2DA/12].IP6.D.NET. DNAME IP6.A.NET.
|
|
\[xEB/8].IP6.E.NET. DNAME IP6.B.NET.
|
|
\[x11/8].IP6.A.NET. DNAME IP6.X.EXAMPLE.
|
|
\[x22/8].IP6.B.NET. DNAME IP6.X.EXAMPLE.
|
|
|
|
Note that some domain names appear in the RDATA of more than one
|
|
DNAME record. In those cases, one zone is being used to map
|
|
multiple prefixes.
|
|
|
|
Expires November 25, 1999 Crawford et al. [Page 12]
|
|
|
|
Internet Draft IPv6 DNS May 20, 1999
|
|
|
|
6.2.3. The Site Level
|
|
|
|
Consider the customer X.EXAMPLE using IP6.X.EXAMPLE for address-to-
|
|
name translations. This domain is now referenced by two different
|
|
DNAME records held by two different providers.
|
|
|
|
$ORIGIN IP6.X.EXAMPLE.
|
|
\[x0001/16] DNAME SUBNET-1
|
|
\[x123456789ABCDEF0].SUBNET-1 PTR N.X.EXAMPLE.
|
|
and so on.
|
|
|
|
SUBNET-1 need not have been named in a DNAME record; the subnet bits
|
|
could have been joined with the interface identifier. But if
|
|
subnets are treated alike in both the A6 records and in the reverse
|
|
zone, it will always be possible to keep the forward and reverse
|
|
definition data for each prefix in one zone.
|
|
|
|
6.3. Lookups
|
|
|
|
A DNS resolver looking for a hostname for the address
|
|
2345:00C1:CA11:0001:1234:5678:9ABC:DEF0 would acquire certain of the
|
|
DNAME records shown above and would form new queries. Assuming that
|
|
it began the process knowing servers for IP6.INT, but that no server
|
|
it consulted provided recursion and none had other useful additional
|
|
information cached, the sequence of queried names and responses
|
|
would be (all with QCLASS=IN, QTYPE=PTR):
|
|
|
|
Expires November 25, 1999 Crawford et al. [Page 13]
|
|
|
|
Internet Draft IPv6 DNS May 20, 1999
|
|
|
|
To a server for IP6.INT:
|
|
QNAME=\[x234500C1CA110001123456789ABCDEF0/128].IP6.INT.
|
|
|
|
Answer:
|
|
\[x234500/24].IP6.INT. DNAME IP6.ALPHA-TLA.ORG.
|
|
|
|
To a server for IP6.ALPHA-TLA.ORG:
|
|
QNAME=\[xC1CA110001123456789ABCDEF0/104].IP6.ALPHA-TLA.ORG.
|
|
|
|
Answer:
|
|
\[xC/4].IP6.ALPHA-TLA.ORG. DNAME IP6.C.NET.
|
|
|
|
To a server for IP6.C.NET.:
|
|
QNAME=\[x1CA110001123456789ABCDEF0/100].IP6.C.NET.
|
|
|
|
Answer:
|
|
\[x1CA/12].IP6.C.NET. DNAME IP6.A.NET.
|
|
|
|
To a server for IP6.A.NET.:
|
|
QNAME=\[x110001123456789ABCDEF0/88].IP6.A.NET.
|
|
|
|
Answer:
|
|
\[x11/8].IP6.A.NET. DNAME IP6.X.EXAMPLE.
|
|
|
|
To a server for IP6.X.EXAMPLE.:
|
|
QNAME=\[x0001123456789ABCDEF0/80].IP6.X.EXAMPLE.
|
|
|
|
Answer:
|
|
\[x0001/16].IP6.X.EXAMPLE. DNAME SUBNET-1.IP6.X.EXAMPLE.
|
|
\[x123456789ABCDEF0/64].SUBNET-1.X.EXAMPLE. PTR N.X.EXAMPLE.
|
|
|
|
All the DNAME (and NS) records acquired along the way can be cached
|
|
to expedite resolution of addresses topologically near to this
|
|
address. And if another global address of N.X.EXAMPLE were resolved
|
|
within the TTL of the final PTR record, that record would not have
|
|
to be fetched again.
|
|
|
|
6.4. Deployment Note
|
|
|
|
In the illustrations in section 6.1, hierarchically adjacent
|
|
entities, such as a network provider and a customer, must agree on a
|
|
DNS name which will own the definition of the delegated prefix(es).
|
|
One simple convention would be to use a bit-string label
|
|
representing exactly the bits which are assigned to the lower-level
|
|
entity by the higher. For example, "SUBSCRIBER-X" could be replaced
|
|
by "\[x11/8]". This would place the A6 record(s) defining the
|
|
|
|
Expires November 25, 1999 Crawford et al. [Page 14]
|
|
|
|
Internet Draft IPv6 DNS May 20, 1999
|
|
|
|
delegated prefix at exactly the same point in the DNS tree as the
|
|
DNAME record associated with that delegation. The cost of this
|
|
simplification is that the lower-level zone must update its upward-
|
|
pointing A6 records when it is renumbered. This cost may be found
|
|
quite acceptable in practice.
|
|
|
|
7. Transition from AAAA Records
|
|
|
|
Administrators of zones which contain A6 records can easily
|
|
accommodate deployed resolvers which understand AAAA records but not
|
|
A6 records. Such administrators can do automatic generation of AAAA
|
|
records for all of a zone's names which own A6 records by a process
|
|
which mimics the resolution of a hostname to an IPv6 address (see
|
|
section 4.1.4). Attention must be paid to the TTL assigned to a
|
|
generated AAAA record, which MUST be no more than the minimum of the
|
|
TTLs of the A6 records that were used to form the IPv6 address in
|
|
that records If the zone is secure [DNSSEC], the generated AAAA
|
|
records SHOULD be signed along with the rest of the zone data.
|
|
|
|
A zone-specific heuristic MAY be used to avoid generation of AAAA
|
|
records for A6 records which record prefixes, although such
|
|
superfluous records would be relatively few in number and harmless.
|
|
Examples of such heuristics include omitting A6 records with a
|
|
prefix length less than the largest value found in the zone file, or
|
|
records with an address suffix field with a certain number of
|
|
trailing zero bits.
|
|
|
|
A server providing recursive service MAY be configurable to
|
|
synthesize AAAA records from A6 records in response to clients' AAAA
|
|
queries.
|
|
|
|
8. Security Considerations
|
|
|
|
The signing authority [DNSSEC] for the A6 records which determine an
|
|
IPv6 address is distributed among several entities, reflecting the
|
|
delegation path of the address space which that address occupies.
|
|
DNS Security is fully applicable to bit-string labels and DNAME
|
|
records. However, just as with IPv4's IN-ADDR.ARPA, authentication
|
|
of data in the reverse zones is not equivalent to authentication of
|
|
any forward data.
|
|
|
|
9. Acknowledgments
|
|
|
|
The authors would like to thank the following persons for valuable
|
|
discussions and reviews: Mark Andrews, Rob Austein, Jim Bound,
|
|
|
|
Expires November 25, 1999 Crawford et al. [Page 15]
|
|
|
|
Internet Draft IPv6 DNS May 20, 1999
|
|
|
|
Randy Bush, Brian Carpenter, David Conrad, Steve Deering, Robert
|
|
Elz, Bob Fink, Olafur Gudmundsson, Bob Halley, Bob Hinden, Bill
|
|
Manning, Keith Moore, Thomas Narten, Erik Nordmark, Mike O'Dell and
|
|
Ken Powell.
|
|
|
|
10. References
|
|
|
|
[AARCH] Hinden, R. and S. Deering, "IP Version 6 Addressing
|
|
Architecture", RFC 2373.
|
|
|
|
[AGGR] Hinden, R., O'Dell, M. and S. Deering, "An IPv6 Aggregatable
|
|
Global Unicast Address Format". RFC 2374.
|
|
|
|
[BITLBL] Crawford, M., "Binary Labels in the Domain Name System",
|
|
currently draft-ietf-dnsind-binary-labels-03.txt.
|
|
|
|
[DNAME] Crawford, M., "Non-Terminal DNS Name Redirection", currently
|
|
draft-ietf-dnsind-dname-00.txt.
|
|
|
|
[DNSCF] Mockapetris, P. V., "Domain names - concepts and
|
|
facilities", RFC 1034.
|
|
|
|
[DNSIS] Mockapetris, P. V., "Domain names - implementation and
|
|
specification", RFC 1035.
|
|
|
|
[DNSSEC] Eastlake, D. 3rd and C. Kaufman, "Domain Name System
|
|
Security Extensions", RFC 2065.
|
|
|
|
[KWORD] Bradner, S., "Key words for use in RFCs to Indicate
|
|
Requirement Levels," RFC 2119.
|
|
|
|
[RENUM] Carpenter, B. and Y. Rekhter, "Renumbering Needs Work", RFC
|
|
1900.
|
|
|
|
Ferguson, P. and H. Berkowitz, "Network Renumbering Overview:
|
|
Why would I want it and what is it anyway?", RFC 2071.
|
|
|
|
Carpenter, B., Crowcroft, J. and Y. Rekhter, "IPv4 Address
|
|
Behaviour Today", RFC 2101.
|
|
|
|
[TRANS] Gilligan, R. and E. Nordmark, "Transition Mechanisms for
|
|
|
|
Expires November 25, 1999 Crawford et al. [Page 16]
|
|
|
|
Internet Draft IPv6 DNS May 20, 1999
|
|
|
|
IPv6 Hosts and Routers", RFC 1933.
|
|
|
|
11. Authors' Addresses
|
|
|
|
Matt Crawford Christian Huitema Susan Thomson
|
|
Fermilab Bellcore Bellcore
|
|
MS 368 MCC 1J236B MCC 1C259B
|
|
PO Box 500 445 South Street 445 South Street
|
|
Batavia, IL 60510 Morristown, NJ 07960 Morristown, NJ 07960
|
|
USA USA USA
|
|
|
|
+1 630 840-3461 +1 201 829-4266 +1 201 829-4514
|
|
crawdad@fnal.gov huitema@bellcore.com set@bellcore.com
|
|
|
|
Expires November 25, 1999 Crawford et al. [Page 17]
|