The deployment of IPv6 is rapidly expanding in the Internet. Support for IPv6 in applications is lagging behind. Vendors such as Apple are taking steps to rectify this situation and raise awareness to the problem. This document intends to help application developers across platforms to understand IPv6 and support IPv6 in their applications.
Accelerating adoption of IPv6 in the Internet
The current IPv6 specification, https://tools.ietf.org/html/rfc2460, was standardized in the IETF in 1998. It has been implemented in a number of operating systems including Windows, MacOSX, Linux, and FreeBSD, and used in research networks such as GEANT and Internet2. With the depletion of the IPv4 address space (http://www.potaroo.net/tools/ipv4/), the issue has come to a head, and at this point two thirds of traffic from Verizon Wireless to Google reportedly uses IPv6 (http://www.worldipv6launch.org/measurements/), Deutsche Telekom, Comcast, and AT&T (http://6lab.cisco.com/ciscolive) are pushing their residential customers toward IPv6 deployment, and T-Mobile among others is experimenting with IPv6-only operation to the handset. Worldwide IPv6 use is projected to be about 10% in mid-2016 (Projection of IPv6 Metrics ), and some countries are likely to see it predominate (Projection of IPv6 Metrics ).
Application support for IPv6
The "socket" API is the predominant interface for applications to use IPv4 and IPv6. It was extended almost a decade ago to provide IP version-agnostic support. This means that with single API calls both IPv4 and IPv6 will work in the application - with equal or less application side code than to support only IPv4. Widely used applications like Apache were changed to use these APIs a long time ago. Nevertheless, the larger developer community has been unaware of these changes, and as a result has been using the same IPv4-only APIs for the last 30 years.
Apple waking up developers
In Q2 2015, Apple took a bold step mandating IPv6 support for iOS 9 Apps (http://www.internetsociety.org/deploy360/blog/2015/06/apple-will-require-ipv6-support-for-all-ios-9-apps/). The implication for the developer community - and Cisco DevNet - is that our networks and applications need to become IP version agnostic, happily running in IPv4-only networks, IPv6-only networks, and networks with both.
DevNet is Cisco's developer program. In general, DevNet provides developers with the tools and resources they need to build innovative solutions involving Cisco products. In terms of IPv6, DevNet aims to help internal and external application developers transition from IPv4 specific applications to IP4/6 agnostic applications. With this goal in mind, this Cisco internal community page is being used to gather IPv6 info. When ready, an external version will be hosted within DevNet.
What is IPv6
In short, IPv6 is the replacement for IPv4 being deployed around the world. The current specification is RFC 2460, as updated by a number of other RFCs, along with the addressing architecture, ICMP, Neighbor Discovery (the counterpart to ARP), etc. See the end of this document for the important reference documents for IPv6.
Why does IPv4 need a replacement? It is out of addresses. The "poster" version of that observation is the IPv4 Address Report. Today (Q2 2015) strategically thinking service providers plan for networks that are IPv6-only at their core to be able to simplify and scale it, and support IPv4 only as a service overlay, expecting that the overlay will die of natural causes.
How it works
Detailed network operation in IPv6 differs from IPv4 in important ways. However, at a conceptual level, one can think of IPv6 as IPv4 with longer addresses. IPv6 provides fundamental improvements and simplifications for areas such as mobility, virtualization or multicast. All these derive from clever use of that extended address space. If you want to learn more about IPv6 operation in detail, while looking at it from the "What IPv4 problem does this new feature in IPv6 solve ?", you will enjoy reading this free eBook: IPv6 for IPv4 Experts (draft) - yartikhiy
Facebook is an example of application centric improvements through the use of IPv6. In their network, Facebook was running private IPv4 addresses (RFC1918), and they where running out of that address space AND they where running out of available TCP/UDP port number space (< 16 bits) on their servers. Instead of using just a single IP address per host, they realized that they could route a separate IPv6 /64 or /80 prefix to each of those hosts and use the remaining bits of the IID ("host number", in IPv4-speak) to identify the application. This resolved their entire scale problem. Doing so, however, required them to become IPv6-only within their data centers, and they have chosen to do that.
The IPv6 address, specified in RFC 4291 - IP Version 6 Addressing Architecture , is either multicast or unicast. Unicast addresses (like IPv4 addresses) are CIDR addresses with a prefix that identifies a topological location in the network, and have an Interface Identifier (IID) that corresponds to a host or other device within that location. By convention, the global or unique local unicast IPv6 prefix allocated to a subnet on a LAN is 64 bits in length (a /64).
The preferred way is for IPv6 host addresses to be auto-configured: Routers announce the allocated (e.g. /64) prefixes on LANs, and the host automatically fills in the remaining IID - for example by combination of its MAC-address (48 bits) with other locally generated bits - and then performs an IPv6 address collision detection and mitigation. However, by popular demand, there is support for traditional per-host DHCP address assignment to hosts, and by now all host operating systems support that as well. More importantly though, DHCP "prefix delegation" is used on e.g. home routers (also called home gateways) to learn an IPv6 prefix from the service provider. Instead of only getting a single IPv4 address, homes do in IPv6 therefore get a full /64 - without the need for NAT.
NAT is a lot less relevant in IPv6 than it is in IPv4, but it has a big role in moving to IPv6 for service providers. In this section we cover applicability of NAT to IPv6. In the section below on network operators we discuss its role for migration:
There are definitions and support in some network devices for NATing IPv6 addresses to other IPv6 addresses (NAT66), but this is rarely used because the original purpose to do this in IPv4 (NAT44) was to multiplex limited (mostly global) IPv4 address space. Without this addressing scarcity, NAT is not needed for this purpose. The /64 prefix delegation to homes as opposed to a single IPv4 address is the most common example of this.
Beside address scarcity, the other candidate reasons for NATing between IPv6 addresses are address obfuscation, e.g. NAT "benefits" for security in firewalls (FWs).
Obscuring IP addresses is a contentious topic. Privacy addresses have been defined for IPv6 where dynamic changing of addresses is involved, which can make life of long-lived application more difficult. The authors of this document think it is of little value to the intended goals (e.g. privacy or security). For example take a look at an email envelope sometime and ask yourself where email goes.
Routers that have to perform NAT to multiplex private IPv4 address space onto global IPv4 addresses (such as home gateways or Small Medium Business routers) also happen to be the routers where firewall functions are needed. Because multiple addresses from the inside are mapped to a single address on the outside, this is actually called PAT - Port Address Translation. Different ports of the same global IPv4 address are dynamically used by different hosts on the inside. PAT also has the side-effect that without additional configuration, it is not possible to have arbitrary outside to inside connections. This is occasionally being sold as a security and firewall benefit of NAT/PAT in documents such as Cisco's Zone-Based Policy Firewall Design and Application Guide. In reality, the ability to prohibit in a FW undesired connections, e.g. outside to inside is equally if not more easily possible without NAT in IPv6, so these historic FW recommendations simply confuse the need of address translation because of IPv4 address scarcity with privacy and security benefits.
NAT64 between an IPv6 and IPv4 system is necessary as long as communication is necessary with IPv4 only hosts. There are various technologies for NAT64. In most cases, applications do not have to worry about this at all because they should use DNS names to establish communications, and well managed NAT64 setups will also support DNS: Instead of returning only the IPv4 address of a communications partner, the DNS setup in conjunction with the NAT will also provide the IPv6 address mapped to the IPv4 address.
Multicast addressing IPv6 has a range of improvements over IPv4:
Architecturally defined scoped addresses: The idea of "scoped" addresses was invented in IPv4 but due to limited address space it was left to every network operator to define which address ranges belong to which scope. The range of scopes is scope 1 for within a host, scope 2 link-local, all the way up to scope 14, the Internet.
Unicast prefix multicast addresses: In IPv4, the allocation of multicast group address is a mayor administrative hurdle due to limited IPv4 multicast group address space. In IPv6, RFC3306 (Unicast-Prefix-based IPv6 Multicast Addresses) defines how to derive an IPv6 multicast prefix from an existing IPv6 unicast prefix. Therefore, once an organization owns an IPv6 unicast prefix, it also owns an IPv6 multicast address prefix without any further administrative work - with all scopes.
SSM addresses: For every scope and every prefix, the is also a well-defined SSM address range (through additional bit combinations of the first 8 bits of the address), therefore, SSM is also auto-configuring in the network - for all scopes.
PIM-SM Embedded RP addressing: PIM-SM is the most widely deployed network protocol to support IP multicast. Network wide manual configuration or hard to secure dynamic protocols are required to learn the address of the so-called PIM-SM "Rendezsvous Point". In IPv6, these configurations or protocols are unnecessary, because an extension to RFC3306 permits to indicate in the actual IPv6 multicast group address also the address of the Rendesvous Point. This also makes PIM-SM in IPv6 network 95% auto-configuring.
Why network operators care
Tactical - CGN
When service providers can not aquire sufficient IPv4 addressing space to give at least each of their subscribers a separate IPv4 address, they look for mitigation. On the IPv4 side, this mitigation technique is called CGN - Carrier Grade NAT. It can use various forms of NATing to effectively make multiple subscribers share the same global IPv4 address. These CGN techniques are a mayor cost and painpoint for operators. The following is an incomplete list of problems with them:
- They are expensive
- They are scale limited. Every eg: web application run by a subscriber potentially adds to the state the CGN needs to keep (based on technology use).
- If state churn happens, application start to fail in mysterious ways because some TCP connections will not work - others will. This can become very expensive in support (hard to troubleshoot and confusing to the customers).
- They make potentially government mandated record keeping more difficult
- They eliminate the ability for accurate location services - the location possible to associate with such addresses in application from eg: Google, Facebook Apple or other ecosystems is often limited to only the location where the actual CGN device sits.
To mitigate the problem of CGNs, most operators that run into these IPv4 addressing issues simultaneously enable subscribers for both IPv4 (with a CGN address) and IPv6. IPv6 then is the desired exit strategy from CGN problems: Because host operating systems do prefer IPv6 connectivity/addresses over IPv4, the CGN will only be used for those application connections where the remote side does not support IPv6.
Being able to predict how much network traffic from such subscribers can already use IPv6 natively - and therefore mitigate problems with CGNs - is one of the key reasons for Cisco to track and predict IPv6 adoption via 6lab.cisco.com.
Strategic - Wireline
For wireline network operators like Comcast, AT&T, KDDI/JPNE, Reliance JIO Infocomm, and Deutsche Telekom Terastream, the issue probably comes down to the issues of Reliability, Availability, and Maintainability, and the correlated issues of Security. In short, complexity is the enemy of all of those attributes, and IPv4 networks, due to the need to multiplex address space, are becoming increasingly complex. For a discussion of that, see RFC 3439 - Some Internet Architectural Guidelines and Philosophy. In addition, there is the issue of cost - increased complexity drives cost in diagnosis of faults and of network planning, and buying extra boxes to perform functions like NAT is buying extra boxes.
Strategic - Mobile
Operators of mobile telecom networks have those same issues, and in addition have a fundamental business issue in the cost of an Access Point Name (APN). There is the possibility that this might change, but currently IPv4 and IPv6 use different APNs from a handset, and each has a cost. If the operator can only use one APN, he significantly reduces the operational cost of his network. Hence, mobile wireless operators are motivated by the same costs as wireline operators, but with an additional "thumb on the scale".
Strategic - Enterprises
Large enterprises also have business issues. Microsoft very publicly came to that realization in 2014 (IPv4 Exhaustion Gets Real – Microsoft Runs Out Of U.S. Addresses For Azure Cloud – Time To Move To IPv6! | Deploy360 Pro… ) and 2015 (Microsoft Execs Expressed ‘Shock and Disbelief’ at Internet Address Shortage - Digits - WSJ ).
IPv6 only benefits
Once a move into IPv6 is done, there turn out to be significant benefits to IPv6-only operation, especially in data centers. Facebook reports that, as it has converted to IPv6-only, they have been able to sidestep RFC 1918 and TCP/UDP port number limitations by running a prefix to a machine, and using the IID to identify an application or process.
Additionally, anecdotal evidence from network operators such as Time-Warner Cable says that IPv6 RTTs are often less than IPv4 RTTs between the same two machines. It's difficult to make concrete statements about anecdotal evidence, but they conjecture that it is because the packet traverses less middleware.
Network operators care aboutt IPv6 because it is the only way to scale addressing, because makes their networks more reliable, more available, easier to maintain, and more secure, all of which reduces cost. In the end, it's a business argument, and a strong enough one that at least one operator has said that they want to charge back to their vendor anything that forces them to keep IPv4 running in their network.
Why application developers should care
If the application does not support IPv6, it may not be possible to sell the application anymore as intended or a growing number of possible users of the application will either not be able to use the application all.
"Oh, you wanted your app to be sold through the app store?":
To pick one very prominent data point, Apple has recently announced that IOS 9 for iPhone and iPad will require demonstrated IPv6 support of any application sold through the application store (Your App and Next Generation Networks - WWDC 2015 - Videos - Apple Developer ). A clarification was made to the IETF's IPv6 Operations Working Group on the details of the requirement, in https://www.ietf.org/mail-archive/web/v6ops/current/msg22275.html.
"But my market doesn't need it"
Another example are operators such as T-Mobile USA, which is experimenting with IPv6-only operation for handsets that support it. as noted in "why mobile telecom operators care", T-mobile is of the perspective that a single APN, and a single protocol, gives them a less expensive network to operate. In return: If you do not care supporting IPv6 on the android version of your application because Google may not mandate it, you still may fall short getting sales with subscribers on such networks. And Apple is suggesting that such a network might prefer Apple phones.
Support DNS naming
If your app expects user to input or recognize IPv4 addresses anywhere in the user interface, you need to really rethink how to move to naming when starting to support IPv6. No user, not even a network administrator is willing or capable to deal directly with IPv6 addresses. Please strongly consider leveraging DNS with all its options.
Reap application benefits of IPv6
A range of network services have started or are already thinking of leveraging the ample bits in IPv6 addresses to encode specific semantics that the applications may or want to care about. See below.
Basic Application development for IPv6
Unless specifically mentioned later on this document, none of the application logic in a network facing application needs to change to support IPv6. In the first degree, it is only IPv4 with longer addresses. Port-numbers for UDP/TCP applications stay the same, when/how and why to set up network/web connections stays the same. QoS/DSCP stays the same, diagnostics/tools (traceroute, wireshark, netstat, ...) stay the same, IP multicast supports the same function, .... Therefore we will first describe how to port applications to IPv6 without using advanced functionality new or changed in IPv6.
Sockets: Use address-agnostic APIs
The original API to support IP network was - and still is with a lot of modifications - the socket API. Originally from University California at Berkeley, now via various standards bodies: POSIX and others. Its IP support was originally very specific for IPv6, and when IPv6 was introduced it first was added as yet another so-called Address Family (AF), which resulted in the need for IPv4 and IPv6 capable applications to explicitly enumerate code dealing with both address families - resulting in more than duplication of the network facing code. This was later rectified with the so-called "address-agnostic" APIs which permitted for almost all intent and purposes to avoid duplication of code because the SDK itself would automatically figure out what address - IPV4 or IPv6 is being used. And if sometime in the future (eg: in 2150) IPv9 is introduced, the applications relying only on these address agnostic APIs could support this without changes to the code - just a newer version of the SDK. Of course, as you will see, this is in real applications likely only 95% possible. We describe the details of these APIs below.
Higher layer APIs: Most likely no additional work
In higher layer APIs you will encounter either some modified/enhanced socket like API calls or even better purely address agnostic APIs. For example anything that deals with "web" level programming and therefore URIs is most likely already fully address agnostic without code changes. It is most likely only a matter of the actual SDKs to support IPv6 operations. For SDK/APIs that we are aware of with differences/changes needed for IPv6, we will include them below.
OS specific API considerations
Even if you do not plan to use Linux, it is recommended to read through the Linux section, because we consider it to be today's network programming reference platform, adopting fasted improvements and most often being used as the basis of vendor specific OSs to derive their API and functionality.
Reference / Linux
- Provide Linux Dev VM without v4 support in which app can be compiled
- Support for IPv6 in Windows Server 2008 R2 and Windows 7
- From Microsoft's perspective, IPv6 is a mandatory part of the Windows operating system and it is enabled and included in standard Windows service and application testing during the operating system development process. Because Windows was designed specifically with IPv6 present, Microsoft does not perform any testing to determine the effects of disabling IPv6. If IPv6 is disabled on Windows Vista, Windows Server 2008, or later versions, some components will not function. Moreover, applications that you might not think are using IPv6—such as Remote Assistance, HomeGroup, DirectAccess, and Windows Mail—could be.
- Therefore, Microsoft recommends that you leave IPv6 enabled, even if you do not have an IPv6-enabled network, either native or tunneled. By leaving IPv6 enabled, you do not disable IPv6-only applications and services (for example, HomeGroup in Windows 7 and DirectAccess in Windows 7 and Windows Server 2008 R2 are IPv6-only) and your hosts can take advantage of IPv6-enhanced connectivity.
- Your App and Next Generation Networks - WWDC 2015 - Videos - Apple Developer - this video goes into details of IPv6 requirements of Apple and as well the available APIs and the means of testing.
- Most of the high-level frameworks are usable across iOS/OSX line, if using lower-level frameworks, refer to Linux section which discusses the POSIX APIs.
- see if Apple folks want to team up and help with iOS dev env/VM, check on iOS emulator
Advanced IPv6 considerations
"Happy Eyeballs" has become a term for more or less intelligent decision mechanisms between alternative options for a network connection - to make the user most happy. This can be selection of the best web-ache, the best transport protocol (SCTP, TCP, UDP), or for IPv6 the selection of IPv6 vs. IPv4 when both may be available (v4/v6 happy eyeballs) or the selection or the best out of multiple possible IPv6 addresses for a communication partner (IPv6 address selection, discussed in the next section).
IPv4/IPv6 happy eyeball as well as IPv6 address selection are ideally done by network stacks where a connection is built to a (DNS) named communications partner. The happy function is then to build as fast as possible a working connection - via either v4 or v6, including DNS name resolution.
How Apple plans to perform happy eyeballs for IPv4/IPv6 in iOSv9 is explained here.
The biggest challenge and opportunity with IPv6 is to determine how to select IPv6 addresses for specific connections.
For example: It is quite common in IPv4 applications to support configuration or GUI parameters to specific what IP address to use for particular communications, whether it is the address for a server port to listen to, or as a client an address to use to connect to a server. The host could have multiple interfaces and the application/user wants to select a specific one via the address, or it the addresses have different function. Eg: different web-services. In IPv6, the considerations if or how to do this become a lot more advanced and flexible:
Local address assignment logic
RFC 6555 (RFC 6555 - Happy Eyeballs: Success with Dual-Stack Hosts ) describes how the IPv6 network host stack of an application originating a connection to a remote IPv6 address will pick the best local IPv6 address and outgoing interface for this connection. You only need to bind(3) the local IPv6 address of a connection to a different address if your application wants to use a different IPv6 address.
Link-local addresses are automatically assigned by a host, but can not be routed, so they only allow to reach other hosts on the same LAN/subnet. In IPv4, the most commonly encountered link-local addresses are 169.254/16 as defined in RFC3927. Normally, these are only assigned when the host fails to assign a better address, eg: via DHCP, so it is uncommon to see them. In result, IPv4 applications do usually not deal with the specifics of link local addresses. In IPv6, link-local IPv6 addresses are always assigned on every interface, independent of what other global address(es) the host has on the interfaces, and IPv6 is going to be a lot more prevalent in ad-hoc or weak/not administered networks. If your application specifically knows that it wants to talk with another device If you application wants to specific communicate with other result in a potentially badly set up network.
The root document is RFC 2460, but there are a number of RFCs that update it in minor ways. In addition, there are important RFCs that document the addressing architecture, ICMPv6, Neighbor Discovery, and other components.
RFC 2460 - Internet Protocol, Version 6 (IPv6) Specification S. Deering, R. Hinden. December 1998. (Format: TXT=85490 bytes) (Obsoletes RFC1883) (Updated by RFC5095, RFC5722, RFC5871, RFC6437, RFC6564, RFC6935, RFC6946, RFC7045, RFC7112) (Status: DRAFT STANDARD) (DOI: 10.17487/RFC2460)
A. Conta. June 2001. (Format: TXT=40416 bytes) (Status: PROPOSED STANDARD) (DOI: 10.17487/RFC3122)
R. Droms, Ed., J. Bound, B. Volz, T. Lemon, C. Perkins, M. Carney. July 2003. (Format: TXT=231402 bytes) (Updated by RFC4361, RFC5494, RFC6221, RFC6422, RFC6644, RFC7083, RFC7227, RFC7283, RFC7550) (Status: PROPOSED STANDARD) (DOI: 10.17487/RFC3315)
R. Bush, A. Durand, B. Fink, O. Gudmundsson, T. Hain. August 2002. (Format: TXT=11055 bytes) (Updates RFC2673, RFC2874) (Updated by RFC6672) (Status: INFORMATIONAL) (DOI: 10.17487/RFC3363)
O. Troan, R. Droms. December 2003. (Format: TXT=45308 bytes) (Updated by RFC6603, RFC7550) (Status: PROPOSED STANDARD) (DOI: 10.17487/RFC3633)
P. Nikander, Ed., J. Kempf, E. Nordmark. May 2004. (Format: TXT=56674 bytes) (Status: INFORMATIONAL) (DOI: 10.17487/RFC3756)
R. Hinden, B. Haberman. October 2005. (Format: TXT=35908 bytes) (Status: PROPOSED STANDARD) (DOI: 10.17487/RFC4193)
R. Hinden, S. Deering. February 2006. (Format: TXT=52897 bytes) (Obsoletes RFC3513) (Updated by RFC5952, RFC6052, RFC7136, RFC7346, RFC7371) (Status: DRAFT STANDARD) (DOI: 10.17487/RFC4291)
D. Thaler, M. Talwar, C. Patel. April 2006. (Format: TXT=38124 bytes) (Status: EXPERIMENTAL) (DOI: 10.17487/RFC4389)
T. Narten, E. Nordmark, W. Simpson, H. Soliman. September 2007. (Format: TXT=235106 bytes) (Obsoletes RFC2461) (Updated by RFC5942, RFC6980, RFC7048, RFC7527, RFC7559) (Status: DRAFT STANDARD) (DOI: 10.17487/RFC4861)
S. Thomson, T. Narten, T. Jinmei. September 2007. (Format: TXT=72482 bytes) (Obsoletes RFC2462) (Updated by RFC7527) (Status: DRAFT STANDARD) (DOI: 10.17487/RFC4862)
T. Narten, R. Draves, S. Krishnan. September 2007. (Format: TXT=56699 bytes) (Obsoletes RFC3041) (Status: DRAFT STANDARD) (DOI: 10.17487/RFC4941)
J. Abley, P. Savola, G. Neville-Neil. December 2007. (Format: TXT=13423 bytes) (Updates RFC2460, RFC4294) (Status: PROPOSED STANDARD) (DOI: 10.17487/RFC5095)
S. Krishnan. December 2009. (Format: TXT=11838 bytes) (Updates RFC2460) (Updated by RFC6946) (Status: PROPOSED STANDARD) (DOI: 10.17487/RFC5722)
S. Kawamura, M. Kawashima. August 2010. (Format: TXT=26570 bytes) (Updates RFC4291) (Status: PROPOSED STANDARD) (DOI: 10.17487/RFC5952)
C. Bao, C. Huitema, M. Bagnulo, M. Boucadair, X. Li. October 2010. (Format: TXT=41849 bytes) (Updates RFC4291) (Status: PROPOSED STANDARD) (DOI: 10.17487/RFC6052)
E. Jankiewicz, J. Loughney, T. Narten. December 2011. (Format: TXT=64407 bytes) (Obsoletes RFC4294) (Status: INFORMATIONAL) (DOI: 10.17487/RFC6434)
S. Amante, B. Carpenter, S. Jiang, J. Rajahalme. November 2011. (Format: TXT=35269 bytes) (Obsoletes RFC3697) (Updates RFC2205, RFC2460) (Status: PROPOSED STANDARD) (DOI: 10.17487/RFC6437)
S. Krishnan, J. Woodyatt, E. Kline, J. Hoagland, M. Bhatia. April 2012. (Format: TXT=12879 bytes) (Updates RFC2460) (Status: PROPOSED STANDARD) (DOI: 10.17487/RFC6564)
Z. Shelby, Ed., S. Chakrabarti, E. Nordmark, C. Bormann. November 2012. (Format: TXT=130616 bytes) (Updates RFC4944) (Status: PROPOSED STANDARD) (DOI: 10.17487/RFC6775)
F. Gont. May 2013. (Format: TXT=18843 bytes) (Updates RFC2460, RFC5722) (Status: PROPOSED STANDARD) (DOI: 10.17487/RFC6946)
F. Gont. August 2013. (Format: TXT=20850 bytes) (Updates RFC3971, RFC4861) (Status: PROPOSED STANDARD) (DOI: 10.17487/RFC6980)
B. Carpenter, S. Jiang. December 2013. (Format: TXT=21852 bytes) (Updates RFC2460, RFC2780) (Status: PROPOSED STANDARD) (DOI: 10.17487/RFC7045)
F. Gont, V. Manral, R. Bonica. January 2014. (Format: TXT=15897 bytes) (Updates RFC2460) (Status: PROPOSED STANDARD) (DOI: 10.17487/RFC7112)
B. Carpenter, S. Jiang. February 2014. (Format: TXT=23172 bytes) (Updates RFC4291) (Status: PROPOSED STANDARD) (DOI: 10.17487/RFC7136)
F. Gont. April 2014. (Format: TXT=48497 bytes) (Status: PROPOSED STANDARD) (DOI: 10.17487/RFC7217)
L. Dunbar, W. Kumari, I. Gashinsky. August 2014. (Format: TXT=28413 bytes) (Status: INFORMATIONAL) (DOI: 10.17487/RFC7342)
R. Droms. August 2014. (Format: TXT=10831 bytes) (Updates RFC4007, RFC4291) (Status: PROPOSED STANDARD) (DOI: 10.17487/RFC7346)
M. Boucadair, S. Venaas. September 2014. (Format: TXT=18327 bytes) (Updates RFC3306, RFC3956, RFC4291) (Status: PROPOSED STANDARD) (DOI: 10.17487/RFC7371)