📄 draft-ietf-dnsext-aaaa-a6-01.txt
字号:
Internet Engineering Task Force Jun-ichiro itojun HaginoINTERNET-DRAFT IIJ Research LaboratoryExpires: January 19, 2002 July 19, 2001 Comparison of AAAA and A6 (do we really need A6?) draft-ietf-dnsext-aaaa-a6-01.txtStatus of this MemoThis document is an Internet-Draft and is in full conformance with allprovisions of Section 10 of RFC2026.Internet-Drafts are working documents of the Internet Engineering TaskForce (IETF), its areas, and its working groups. Note that other groupsmay also distribute working documents as Internet-Drafts.Internet-Drafts are draft documents valid for a maximum of six monthsand may be updated, replaced, or obsoleted by other documents at anytime. It is inappropriate to use Internet-Drafts as reference materialor to cite them other than as ``work in progress.''To view the list Internet-Draft Shadow Directories, seehttp://www.ietf.org/shadow.html.Distribution of this memo is unlimited.The internet-draft will expire in 6 months. The date of expiration willbe January 19, 2002.AbstractAt this moment, there are two DNS resource record types defined forholding IPv6 address in the DNS database; AAAA [Thomson, 1995] and A6[Crawford, 2000] . AAAA has been used for IPv6 network operation since1996. Questions arose whether we really need A6 or not, or whether itis really possible to migrate to A6 or not. Some says AAAA is enoughand A6 is not necessary. Some says A6 is necessary and AAAA should getdeprecated.The draft tries to understand pros and cons between these two recordtypes, and makes suggestions on deployment of IPv6 record type.The draft does not cover the use of bit string label and DNAME resourcerecord (reverse mapping), as it seems that nibble form is well acceptedin the community, newer formats have too much deployment costs, thus wesee few need/voice that calls for migration. Refer to IETF50 dnsextworking group minutes for more details.HAGINO Expires: January 19, 2002 [Page 1]DRAFT Comparison of AAAA and A6 July 20011. A brief summary of the IPv6 resource record types1.1. AAAA recordAAAA resource record is formatted as follows. DNS record type value forAAAA is 28 (assigned by IANA). Note that AAAA record is formatted as afixed-length data. +------------+ |IPv6 Address| | (16 octets)| +------------+With AAAA, we can define DNS records for IPv6 address resolution asfollows, just like A records for IPv4. $ORIGIN X.EXAMPLE. N AAAA 2345:00C1:CA11:0001:1234:5678:9ABC:DEF0 N AAAA 2345:00D2:DA11:0001:1234:5678:9ABC:DEF0 N AAAA 2345:000E:EB22:0001:1234:5678:9ABC:DEF01.2. A6 recordA6 resource record is formatted as follows. DNS record type value forA6 is 38 (assigned by IANA). Note that A6 record is formatted as avariable-length data. +-----------+------------------+-------------------+ |Prefix len.| Address suffix | Prefix name | | (1 octet) | (0..16 octets) | (0..255 octets) | +-----------+------------------+-------------------+With A6, it is possible to define an IPv6 address by using multiple DNSrecords. Here is an example taken from RFC2874:HAGINO Expires: January 19, 2002 [Page 2]DRAFT Comparison of AAAA and A6 July 2001 $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. 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::If we translate the above into AAAA records, it will be as follows: $ORIGIN X.EXAMPLE. N AAAA 2345:00C1:CA11:0001:1234:5678:9ABC:DEF0 N AAAA 2345:00D2:DA11:0001:1234:5678:9ABC:DEF0 N AAAA 2345:000E:EB22:0001:1234:5678:9ABC:DEF0It is also possible to use A6 records in ``non-fragmented'' manner, likebelow. $ORIGIN X.EXAMPLE. N A6 0 2345:00C1:CA11:0001:1234:5678:9ABC:DEF0 N A6 0 2345:00D2:DA11:0001:1234:5678:9ABC:DEF0 N A6 0 2345:000E:EB22:0001:1234:5678:9ABC:DEF0There is a large design difference between A6 and AAAA. A6 imposesaddress resolutions tasks more to the resolver side, to reduce theamount of zone file maintenance cost. The complexity is in the resolverside. AAAA asks zone file maintainers to supply the full 128bit IPv6address in one record, and the resolver side can be implemented verysimple.2. Deployment status2.1. Name servers/resolversAs of writing, AAAA is deployed pretty widely. BIND4 (since 4.9.4),BIND8, BIND9 and other implementations support AAAA, as both DNS serversand as resolver libraries. On the contrary, the author knows of onlyone DNS server/resolver implementation that supports A6; BIND9.HAGINO Expires: January 19, 2002 [Page 3]DRAFT Comparison of AAAA and A6 July 2001Almost all of the IPv6-ready operating systems ship with BIND4 or BIND8resolver library. [need to check situations with resolver librariesbased on non-BIND code] Therefore, they cannot query A6 records (unlessapplications gets linked with BIND9 libraries explicitly).2.2. IPv6 networkIPv6 network has been deployed widely since 1996. Though many of theparticipants consider it to be experimental, commercial IPv6 serviceshas been deployed since around 1999, especially in Asian countries.Even today, there are numerous IPv6 networks operated just as serious asIPv4.2.3. DNS databaseThere are no IPv6-reachable root DNS servers, partly because we haveboth AAAA and A6, and we are not decided about which is the one we wouldlike to really deploy (so we cannot put IPv6 root NS records). The lackof IPv6-reachable root DNS servers is now preventing IPv6-only orIPv4/v6 dual stack network operations.At this moment, very small number of ccTLD registries acceptregisteration requests for IPv6 glue records. Many of the ccTLDs andgTLDs do not take IPv6 glue records, partly because of the lack ofconsensus between AAAA and A6. Again, the lack of IPv6 glue records iscausing pain in IPv6-ready network operations. For example, JP ccTLDaccepts IPv6 glue records and registers them as AAAA records. IPv6 NSrecords (with AAAA) works flawlessly from our experiences. For example,try the following commands to see how JP ccTLD registers IPv6 gluerecords (``/e'' is for English-language output): % whois -h whois.nic.ad.jp wide.ad.jp/e % whois -h whois.nic.ad.jp ns1.v6.wide.ad.jp/e3. Deploying DNS recordsAt this moment, the following four strategies are proposed for thedeployment of IPv6 DNS resource record; AAAA, fragmented A6 records,non-fragmented A6 records, and AAAA synthesis.3.1. AAAA recordsAAAA records have been used on IPv6 network (also known as 6bone) sinceit has started in 1996 and has been working just fine ever since. AAAArecord is a straight extension of A record; it needs a single query-response roundtrip to resolve a name into an IPv6 address.A6 was proposed to add network renumbering friendliness to AAAA. WithAAAA, a full 128bit IPv6 address needs to be supplied in a DNS resourcerecord. Therefore, in the event of network renumber, administratorsneed to update the whole DNS zone file with the new IPv6 addressHAGINO Expires: January 19, 2002 [Page 4]DRAFT Comparison of AAAA and A6 July 2001prefixes. We will discuss the issues with renumbering in a dedicatedsection.3.2. Fragmented A6 recordsIf we are to use fragmented A6s (128bit splitted into multiple A6s), wehave a lot of issues/worries.If we are to resolve IPv6 addresses using fragmented A6 records, we needto query DNS multiple times to resolve a single DNS name into an IPv6address. Since there has been no DNS record types that require multiplequeries for resolution of the address itself, we have very littleexperience on such resource records.There will be more delays in name resolution compared to queries toA/AAAA records. If we define a record with more number of fragments,there will be more query roundtrips. There are only few possibilitiesto query fragments in parallel. In the above example, we can resolveA.NET.IP6.C.NET and A.NET.IP6.D.NET in parallel, but not others.At this moment, there is very little documents available, regarding tothe relationship between DNS record TTL and the query delays. Forexample, if the DNS record TTL is smaller than the communication delaysbetween the querier and the DNS servers, what should happen?o If we compute DNS record TTL based on the wallclock on the DNS server side, the DNS records are already expired and the querier will not be able to reassemble a complete IPv6 record. Worse, by setting up records with very low TTL, we can let recursive DNS resolvers to go into infinite loop by letting them chase a wrong A6 chain (see the section on security considration) [BIND 9.2.0snap: resolver does not go into infinite loop, meaning that BIND 9.2.0snap resolver does not really honor DNS record TTL during A6 reassembly].o If we compute it starting from the time the querier got the record, we will have some jitter in TTL computation among multiple queriers. If the query delays are long enough, the querier would end up having inconsistent A6 fragments, and the IPv6 address can be bogus after reassembly. With record types other than A6, we had no such problem, since we have never tried to reassemble an address out of multiple DNS records (with CNAME chain chasing a similar problem can arise, but the failure mode is much simpler to diagnose as the records are considered as an atomic entity).Some says that caches will avoid querying fragmented A6s again andagain. However, most of the library resolver implementations do notcache anything. The traffic between library resolver and the first-hopnameserver will not be decreased by the cached records. The TTL problem(see above) is unavoidable for the library resolver without cache. [XXXwill they interpret TTL field? BIND8 resolver does not]HAGINO Expires: January 19, 2002 [Page 5]DRAFT Comparison of AAAA and A6 July 2001If some of the fragments are DNSSEC-signed and some are not, how shouldwe treat that address? RFC2874 section 6 briefly talks about it, notsure if complete answer is given.It is much harder to implement A6 fragment reassemble code, than toimplement AAAA record resolver. AAAA record resolver can be implementedas a straight extension of A record resolver.o It is much harder to design timeout handling for the A6 reassembly. There would be multiple timeout parameters, including (1) communcation timeout for a single A6 fragment, (2) communcation timeout for the IPv6 address itself (total time needed for reassembly) and (3) TTL timeout for A6 fragment records.o In the case of library resolver implementation, it is harder to deal with exceptions (signals in UNIX case) for the large code fragment for resolvers.o When A6 prefix length field is not multiple of 8, address suffix portion needs to be shifted bitwise while A6 fragments are reassembled. Also, resolver implementations must be careful about overwraps of the bits. From our implementatation experiences, the logic gets very complex and we (unfortunately) expect to see a lot of security-critical bugs in the future.In RFC2874, a suggestion is made to use limited number of fragments peran IPv6 address. However, there is no protocol limitation defined. Thelack makes it easier for malicious parties to impose DoS attacks usinglots of A6 fragments (see the section on security consideration). [BIND9.2.0snap: The implementation limits the number of fragments within anA6 chain to be smaller than 16; It is not a protocol limitation but animplementation choice. Not sure if it is the right choice or not]With fragmented A6 records, in multi-prefix network configuration, it isnot possible for us to limit the address on the DNS database to thespecific set of records, like for load distribution purposes. Considerthe following example. Even if we would like to advertise only2345:00D2:DA11:1:1234:5678:9ABC:DEF0 for N.X.EXAMPLE, it is not possibleto do so. It becomes mandatory for us to define the whole IPv6 addressby using ``A6 0'' for N.X.EXAMPLE, and in effect, the benefit of A6(renumber friendliness) goes away.HAGINO Expires: January 19, 2002 [Page 6]DRAFT Comparison of AAAA and A6 July 2001 ; with the following record we would advertise both records $ORIGIN X.EXAMPLE. N A6 64 ::1234:5678:9ABC:DEF0 SUBNET-1.IP6 M A6 64 ::2345:2345:2345:2345 SUBNET-1.IP6 SUBNET-1.IP6 A6 0 2345:00C1:CA11:1:: A6 0 2345:00D2:DA11:1:: ; we need to do the following, jeopardizing renumbering ; friendliness for N.X.EXAMPLE $ORIGIN X.EXAMPLE. N A6 0 2345:00C1:CA11:1:1234:5678:9ABC:DEF0 M A6 64 ::2345:2345:2345:2345 SUBNET-1.IP6 SUBNET-1.IP6 A6 0 2345:00C1:CA11:1:: A6 0 2345:00D2:DA11:1::A6 resource record type and A6 fragment/reassembly were introduced tohelp administrators on network renumber. When network gets renumbered,the administrator needs to update A6 fragment for the higher addressbits (prefixes) only. Again, we will discuss the issues withrenumbering in a dedicated section.3.3. Non-fragmented A6 recordsThere are proposals to use non-fragmented A6 records in most of theplaces, like ``A6 0 <128bit>'', so that we would be able to switch tofragmented A6 records when we find a need for A6.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -