IPv6 - VPN (Packet Tunnel Provider)

I've implemented a VPN app with Packet Tunnel Provider.


For the moment, my server supports only IPv4, so I'm only intrested in IPv4 addresses.

(And I do so by routing only IPv4 -

newSettings.IPv4Settings?.includedRoutes = [NEIPv4Route.defaultRoute()]

)


My question is regarding the IPv6 only environment and App store approval -

Since I'm only interested in IPv4, Is it OK for me not to handle IPv6 for the moment?

All I have in the app is a button to activate the VPN.

In IPv6 environment, the connection (from my app to my server) fails, and the VPN can't start, but that OK with me, because even if it was possible for the connection to start, I wouldn't handle any IPv6 (because I'm including only IPv4).


Is it enough to pass this check at the App Store?

It’s fine for your VPN to only transport IPv4 packets; ultimately that’s something controlled by the capabilities of the server.

However, your VPN client should be able to work in an IPv6-only environment. In this context your VPN tunnel is like any other TCP or UDP connection. In a DNS64/NAT64 setup this connection looks different depending on your viewpoint:

  • from the server’s perspective it looks like an IPv4 connection

  • from the client’s perspective it looks like an IPv6 connection

That is the magic of NAT64.

In IPv6 environment, the connection (from my app to my server) fails …

You should investigate the cause of this failure and fix it. Unless your VPN protocol is particularly weird, that should be quite feasible.

Does your VPN work behind an IPv4 NAT? If so, it should be possible to make it work from behind a NAT64 NAT.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"

WWDC runs Mon, 13 Jun through to Fri, 17 Jun. During that time all of DTS will be at the conference, helping folks out face-to-face. http://developer.apple.com/wwdc/

IPv6 - VPN (Packet Tunnel Provider)
 
 
Q