In macOS, this can be done using multiple utunx virtual interfaces with routing.
Is it possible to achieve the same in iOS?
The short answer is no. The longer answer is in the Configuration Model explanation here. A summary of this is that only one NEPacketTunnelProvider can run on the system at one time because they are considered Enterprise VPNs. If a Personal VPN (NEVPNManager) is running on the system and a Enterprise VPN (NEPacketTunnelProvider) is started then the Enterprise VPN will take precedence over the traffic claimed by the Personal VPN. Only one Personal VPN can claim traffic at one time. If an Enterprise VPN (NEPacketTunnelProvider) is running and only claiming a small subset of traffic and a Personal VPN is enabled, a Personal VPN would have an opportunity to claim traffic not routed by the Enterprise VPN (this is a very rare case though).Is it possible to achieve the same in iOS?
Matt Eaton
DTS Engineering, CoreOS
meaton3@apple.com