Recently I tested my VPN application on iOS 15 beta 8 / Xcode 13 beta 5. It looks like that the precedence is IPSec VPN > iCloud private relay > NEPacketTunnelProvider VPN.
When the iCloud private relay
is switched on if use IPSec VPN(I think it's using the IPSec interface) the browser's network traffic is still being routed to the IPSec tunnel.
But for the implementation with NEPacetTunnelProvider VPN(UTUN interface) the browser's traffic is being routed to the private relay. I don't see any doc describing this but it seems this is the design.
And another question is the IncludeAllNetworks
setting for the VPN. If set the IncludeAllNetworks
to be 1 then the device global traffic would be routed to the VPN, but the excludedRoutes
settings in the VPN would be unavailable, no routes would be excluded.
Is the above understanding correct?