RFC 3596

DNS Extensions to Support IP Version 6

πŸ“… published October 2003, from ietf

RFC 3596: DNS Extensions to Support IP Version 6 πŸŽ€

okay bestie, let's start with the vibe check ✨ This is RFC 3596, from the Network Working Group, and it's a Standards Track doc, so it's an actual official protocol spec πŸ’… It's dated October 2003. The authors are S. Thomson (Cisco), C. Huitema (Microsoft), V. Ksinant (6WIND) and M. Souissi (AFNIC) 🫢 It obsoletes RFC 3152 and RFC 1886, so those are out and this one is in. It doesn't say it updates anything.


Status of this Memo

This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.

Copyright (C) The Internet Society (2003). All Rights Reserved.

Abstract ✨

okay so this doc is all about the changes DNS needs so hosts running IP version 6 (IPv6) can actually work πŸ¦‹ There are three big things: a resource record type that stores an IPv6 address, a domain for looking things up by IPv6 address, and updated definitions for existing query types that hand back Internet addresses in additional section processing. The whole point is that everything stays compatible with existing applications and DNS implementations themselves 🫢

Table of Contents 🌸

1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  2
2.  New resource record definition and domain. . . . . . . . . . .  2
    2.1.  AAAA record type . . . . . . . . . . . . . . . . . . . .  3
    2.2.  AAAA data format . . . . . . . . . . . . . . . . . . . .  3
    2.3.  AAAA query . . . . . . . . . . . . . . . . . . . . . . .  3
    2.4.  Textual format of AAAA records . . . . . . . . . . . . .  3
    2.5.  IP6.ARPA domain. . . . . . . . . . . . . . . . . . . . .  3
3.  Modifications to existing query types. . . . . . . . . . . . .  4
4.  Security Considerations. . . . . . . . . . . . . . . . . . . .  4
5.  IANA Considerations. . . . . . . . . . . . . . . . . . . . . .  4
6.  Intellectual Property Statement. . . . . . . . . . . . . . . .  4
Acknowledgments. . . . . . . . . . . . . . . . . . . . . . . . . .  5
Appendix A: Changes from RFC 1886. . . . . . . . . . . . . . . . .  6
Normative References . . . . . . . . . . . . . . . . . . . . . . .  6
Informative References . . . . . . . . . . . . . . . . . . . . . .  6
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . .  7
Full Copyright Statement . . . . . . . . . . . . . . . . . . . . .  8

1. Introduction πŸ’–

okay the situation is this: storing Internet addresses in the Domain Name System (DNS) [1,2] can't just be stretched to cover IPv6 addresses [3], because applications assume that address queries only ever return 32-bit IPv4 addresses πŸ™ˆ

so to get IPv6 addresses into DNS, this doc defines these extensions:

  • A resource record type is defined to map a domain name to an IPv6 address.
  • A domain is defined to support lookups based on address.
  • Existing queries that do additional section processing to find IPv4 addresses are redefined to do additional section processing on both IPv4 and IPv6 addresses.

the changes are designed to play nicely with existing software πŸŽ€ IPv4 support is kept as-is. Transition issues around IPv4 and IPv6 addresses living together in DNS are discussed in [4] 🧚

one thing to know: the IP protocol version used to query resource records is independent of the protocol version of those records. So e.g., IPv4 transport can be used to query IPv6 records and vice versa πŸ¦‹

this document combines RFC 1886 [5] with the changes RFC 3152 [6] made to RFC 1886, and obsoletes both. The main change is swapping the IP6.INT domain for IP6.ARPA, as defined in RFC 3152 🌈

2. New resource record definition and domain πŸ“

a record type is defined to store a host's IPv6 address. A host with more than one IPv6 address must have more than one such record πŸ’œ

2.1 AAAA record type

the AAAA resource record type is a record specific to the Internet class that stores a single IPv6 address ✨

the IANA assigned value of the type is 28 (decimal).

2.2 AAAA data format

a 128 bit IPv6 address is encoded in the data portion of an AAAA resource record in network byte order (high-order byte first) 🫢

2.3 AAAA query

an AAAA query for a specified domain name in the Internet class returns all associated AAAA resource records in the answer section of a response πŸ’…

a type AAAA query does not trigger additional section processing πŸ™…β€β™€οΈ

2.4 Textual format of AAAA records

the textual representation of the data portion of the AAAA resource record used in a master database file is the textual representation of an IPv6 address as defined in [3] πŸ“

2.5 IP6.ARPA Domain πŸ”₯

a special domain is defined to look up a record given an IPv6 address. The intent is to map an IPv6 address to a host name, though it may be used for other purposes as well πŸ‘‘

an IPv6 address is represented as a name in the IP6.ARPA domain by a sequence of nibbles separated by dots, with the suffix ".IP6.ARPA". The nibbles are encoded in reverse order: the low-order nibble comes first, then the next low-order nibble, and so on. Each nibble is a hexadecimal digit 🌸

for example, the reverse lookup domain name for the address

    4321:0:1:2:3:4:567:89ab

would be

b.a.9.8.7.6.5.0.4.0.0.0.3.0.0.0.2.0.0.0.1.0.0.0.0.0.0.0.1.2.3.4.IP6.
                                                              ARPA.

3. Modifications to existing query types 🧚

okay this one's important πŸ‘€ All existing query types that do type A additional section processing, i.e., name server (NS), location of services (SRV) and mail exchange (MX) query types, must be redefined to do both type A and type AAAA additional section processing. What that means is a name server must add any relevant IPv4 addresses and any relevant IPv6 addresses available locally to the additional section of a response when it's processing any one of the above queries πŸ’–

to be continued... πŸŽ€ part 2 has Security Considerations, IANA, the IP rights stuff, acknowledgments, the appendix and the references, so stay tuned bestie 🫢

Copyright (C) The Internet Society (2003). All Rights Reserved. πŸŽ€

okay so this part is the legal fine print, but it's actually pretty chill! 🫢 You can copy and share this document and translations of it. You can also make derivative works that comment on or explain it, or help people implement it, and publish and distribute those in whole or in part, with no restriction of any kind. The one condition is that the above copyright notice and this paragraph are included on all such copies and derivative works.

The document itself is a different story πŸ’… It can't be modified in any way, like removing the copyright notice or the references to the Internet Society or other Internet organizations. There are two exceptions. The first is when it's needed for developing Internet standards, and then the procedures for copyrights defined in the Internet Standards process must be followed. The second is when it's required to translate it into languages other than English.

The limited permissions above are perpetual, and the Internet Society or its successors or assignees will not revoke them. β™ΎοΈβœ¨

This document and the information in it is provided on an "AS IS" basis, and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. πŸ™ˆ


Acknowledgement 🫢

Funding for the RFC Editor function is currently provided by the Internet Society. πŸ’œ

πŸ“¦ where this page comes from