Dotted Decimal notation for IPv6 addresses
draft-bauer-ipv6-dotted-decimal-address-format-00
This document is an Internet-Draft (I-D).
Anyone may submit an I-D to the IETF.
This I-D is not endorsed by the IETF and has no formal standing in the
IETF standards process.
| Document | Type | Active Internet-Draft (individual) | |
|---|---|---|---|
| Author | Guillaume Bauer | ||
| Last updated | 2026-04-23 | ||
| RFC stream | (None) | ||
| Intended RFC status | (None) | ||
| Formats | |||
| Stream | Stream state | (No stream defined) | |
| Consensus boilerplate | Unknown | ||
| RFC Editor Note | (None) | ||
| IESG | IESG state | I-D Exists | |
| Telechat date | (None) | ||
| Responsible AD | (None) | ||
| Send notices to | (None) |
draft-bauer-ipv6-dotted-decimal-address-format-00
Network Working Group G. Bauer
Internet-Draft 23 April 2026
Intended status: Informational
Expires: 25 October 2026
Dotted Decimal notation for IPv6 addresses
draft-bauer-ipv6-dotted-decimal-address-format-00
Abstract
This document defines a new canonical format for IPv6 addresses, that
uses familiar dotted decimal notation.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
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."
This Internet-Draft will expire on 25 October 2026.
Copyright Notice
Copyright (c) 2026 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights
and restrictions with respect to this document. Code Components
extracted from this document must include Revised BSD License text as
described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Revised BSD License.
Bauer Expires 25 October 2026 [Page 1]
Internet-Draft ddnip6a April 2026
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Conventions and Definitions . . . . . . . . . . . . . . . . . 2
3. Address representation . . . . . . . . . . . . . . . . . . . 3
3.1. Current form . . . . . . . . . . . . . . . . . . . . . . 3
3.2. Issues with current form . . . . . . . . . . . . . . . . 3
3.3. New representation . . . . . . . . . . . . . . . . . . . 4
3.4. Examples of fixed representation . . . . . . . . . . . . 5
4. Implementation considerations . . . . . . . . . . . . . . . . 5
4.1. C standard library . . . . . . . . . . . . . . . . . . . 5
5. Security Considerations . . . . . . . . . . . . . . . . . . . 6
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 6
7.1. Normative References . . . . . . . . . . . . . . . . . . 6
7.2. Informative References . . . . . . . . . . . . . . . . . 6
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 7
1. Introduction
The global use of the Internet Protocol v6 (IPv6) is constantly
growing. At the time of writing of this document, Google reports
that 45% of it's customer traffic uses IPv6 [Google-IPv6]. Other
actors like Cloudflare report a mean IPv6 traffic share of over 40%
in the last 12 moths [Cloudflare-IPv6]. With the slow but steady
grows in IPv6 adoption, network administrator are expected to be
confronted more often with IPv6 addresses, represented in their
canonical form [RFC5952]. While ensuring efficient text
representation, the canonical IPv6 address form requires a deep
knowledge of hexadecimal notation to be understood. This is often
considered a barrier to the understanding ov the IPv6 protocol by
network administrators who are more familiar with IPv4. A secondary
IPv6 address notation could help close the gap between network
administrators and the IPv6 protocol by providing a more familiar way
of representing addresses. This proposal DOES NOT replace the
standard canonical notation, but rather propose an alternate format.
2. Conventions and Definitions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
Bauer Expires 25 October 2026 [Page 2]
Internet-Draft ddnip6a April 2026
3. Address representation
The way of textually representing IPv6 addresses is addressed in this
section.
3.1. Current form
When being displayed or printed, an IPv6 address is represented in
conformance with [RFC4291] and [RFC5952]. An example of an address
with its prefix length is shown below.
2001:db8::bad/64
This representation uses hexadecimal notation in conjunction with the
leading zeroes omission and zero compression rules. the prefix length
is separated from the address by the '/' character.
3.2. Issues with current form
The canonical notation that is currently used for IPv6 address
representation poses a number of issues :
* The use of hexadecimal notation introduces new digits that expand
the traditional ten digits (0-9). However, as the standard
english alphabet doesn't have more glyphs to represent digits, we
are forced to use letters to represent values from 10 to 15. This
introduces a lot of confusion when trying to read a hexadecimal
number and forces network administrators to learn a new numbering
format.
* The zero compression rule introduces a lot of confusion, because
the length of an IPv6 represented in standard notation can vary
greatly. Some examples of IPv6 addresses are shown below.
2001:db8::1
2001:db8:1111:1111:1111:1111
::
* The colon (':') character is normally used to separate an IP
address and a port number. Its usage in the representation of an
IPv6 address introduces event more complexity and the necessity to
use more characters to separate the address from the port number.
An example is shown below.
[2001:db8::1]:443
Bauer Expires 25 October 2026 [Page 3]
Internet-Draft ddnip6a April 2026
These issues have greatly slowed down the global adoption of IPv6.
Some proposals have been made to mitigate the issues, like [IPv8],
but redefining the architecture of the entire Internet seems
excessive just to resolve an address representation issue.
3.3. New representation
The new IPv6 address representation aims to fix the issues listed in
Section 3.2 and improve the readability of IPv6 addresses for
seasoned network administrators. With this new representation, an
IPv6 address is divided into 16 groups of 8 bits. Each byte is
represented in decimal notation. The individual bytes are separated
by dots ('.'). Leading zeroes in a byte MUST be omitted, but there
is no zero compression rule. An example of an IPv6 address is shown
below.
+======================+========================================+
| Classic IPv6 address | New IPv6 address representation |
| representation | |
+======================+========================================+
| 2001:db8::bad | 32.1.13.184.0.0.0.0.0.0.0.0.0.0.11.173 |
+----------------------+----------------------------------------+
Table 1: Dotted decimal format
While being longer, the new representation is more similar to an IPv4
address. The new representation also reintroduces network masks
using the same semantics. An IPv6 prefix length with a value of _N_
can be converted to a network mask by setting the _N_ leftmost bits
of a 128 bits integer to one and the reste of the bits to zero. The
mask can them be displayed using the same new semantics as for an
IPv6 address.
+=============+==================================================+
| IPv6 prefix | Resulting IPv6 netmask in dotted decimal |
| length | notation |
+=============+==================================================+
| 0 | 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 |
+-------------+--------------------------------------------------+
| 32 | 255.255.255.255.0.0.0.0.0.0.0.0.0.0.0.0 |
+-------------+--------------------------------------------------+
| 64 | 255.255.255.255.255.255.255.255.0.0.0.0.0.0.0.0. |
+-------------+--------------------------------------------------+
Table 2: IPv6 network mask notation
Bauer Expires 25 October 2026 [Page 4]
Internet-Draft ddnip6a April 2026
3.4. Examples of fixed representation
The IPv6 specification contains a number of special use addresses
whose representation are very confusion. A few examples and their
dotted decimal representation are listed below.
+===========+==============+=======================================+
|Address |Standard IPv6 |Dotted decimal representation |
| |representation| |
+===========+==============+=======================================+
|Unspecified|:: |0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 |
+-----------+--------------+---------------------------------------+
|Loopback |::1 |0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1 |
+-----------+--------------+---------------------------------------+
|IPv4-Mapped|::ffff:0:0 |0.0.0.0.0.0.0.0.255.255.255.255.0.0.0.0|
+-----------+--------------+---------------------------------------+
Table 3: Special use addresses
Note that in the case of the IPv4-Mapped address, the original IPv4
address is always readable in its native format.
4. Implementation considerations
Most programming languages include in their standard library a way to
parse a string containing an IPv6 address in canonical representation
into an actual binary address and vice-versa. As there has only been
one standard format to represent an IPv4 address and an IPv6 address,
these APIs do not include functionality to choose a format.
Section 4.1 shows an example for adapting the C standard library to
the new dotted decimal format.
4.1. C standard library
The C standard library provides a few functions to convert an IP
address from its textual representation to a binary value and vice-
versa. One of them is inet_pton, that can be used with IPv4 or IPv6
addresses. Its counterpart inet_ntop does the opposite.
int inet_pton(int af,
const char *restrict src,
void *restrict dst);
const char *inet_ntop(socklen_t size,
int af,
const void *restrict src,
char dst[restrict size],
socklen_t size);
Bauer Expires 25 October 2026 [Page 5]
Internet-Draft ddnip6a April 2026
The af argument represents the address family and can be set to
AF_INETfor an IPv4 address and AF_INET6 for an IPv6 address.
One way of implementing the new dotted decimal notation would be to
reserve a new value for the af argument, like AF_INET6_DD. This
constant would have a decimal value of _11_, which follows the value
of the constant AF_INET6 (_10_) defined in linux/socket.h.
5. Security Considerations
IPv6 address representation does not have a direct impact on Internet
infrastructure security.
6. IANA Considerations
This document has no IANA actions.
7. References
7.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/rfc/rfc2119>.
[RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing
Architecture", RFC 4291, DOI 10.17487/RFC4291, February
2006, <https://www.rfc-editor.org/rfc/rfc4291>.
[RFC5952] Kawamura, S. and M. Kawashima, "A Recommendation for IPv6
Address Text Representation", RFC 5952,
DOI 10.17487/RFC5952, August 2010,
<https://www.rfc-editor.org/rfc/rfc5952>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/rfc/rfc8174>.
7.2. Informative References
[Cloudflare-IPv6]
Cloudflare, "Cloudflare Radar", n.d.,
<https://radar.cloudflare.com/adoption-and-
usage?dateRange=52w>.
Bauer Expires 25 October 2026 [Page 6]
Internet-Draft ddnip6a April 2026
[Google-IPv6]
Google, "Google IPv6 Statistics", n.d.,
<https://www.google.com/intl/en/ipv6/
statistics.html#tab=ipv6-adoption>.
[IPv8] Thain, J., "IPv8", n.d., <https://www.ietf.org/archive/id/
draft-thain-ipv8-00.html>.
Author's Address
Guillaume Bauer
Email: guillaume.bauer.418@gmail.com
Bauer Expires 25 October 2026 [Page 7]