We are using an NEPacketTunnel provider for our custom VPN solution, and doing so we are setting NEPacketTunnelNetworkSettings
with setting IPv4 and IPv6 default routes. We are then setting DNS
networkSettings.dnsSettings?.matchDomains = [""]
However, apps like FaceTime still go around the VPN.
Once you set setTunnelNetworkSettings
is there no way to ask the system to return what the current saved configuration?
Testing, Ive also tried turning off IPv6 on my home network and cell data to force all traffic to my IPv4 default routes.
Ive seen FaceTime work on one session, relaunch the app and never again.
Note: IncludeAllNetworks does work, but comes with a lot of downsides too. Our goal is to securely and redundantly help with video calls , streaming apps etc.
If you’re concerned about ‘leaking’ traffic then your best path forward is to set includeAllNetworks
. You can find more on this in Routing your VPN network traffic.
IMPORTANT It’s likely that you’ll want to exclude some traffic, otherwise you can break things like Xcode debugging!
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"