Synthesizing IPv6 addresses from IPv4 literals

The WWDC "Your App and Next Generation Networks" presentation discusses how the NSURLSession and CFNetworkAPIs in iOS 9 can synthesize IPv6 addresses when presented with IPv4 literals on an IPv6-only network.


For those of us who still need to use sockets-level APIs due to existing code frameworks, is this procedure documented somewhere? Or is there any API available to just do the translation process?

Is this in fact using RFC 6052 and RFC 7050?

Accepted Answer

I guess, you are right, it is RFC 7050.


During heavy googling I found this email post by David Schinazi, Apple CoreOS Networking Engineer:

https://www.ietf.org/mail-archive/web/v6ops/current/msg22324.html


Here is an excerpt:

...if you use NSURLSession to connect to an IPv4 literal on an IPv6-only NAT64-DNS64 network, the API will bump in a IPv6 literal synthesized using RFC 7050. Note that this will not happen when using sockets directly. We do not support under-the-sockets bump-in-API (RFC 3338) and we do not support 464XLAT...

Synthesizing IPv6 addresses from IPv4 literals
 
 
Q