We are developing a split tunnel based VPN application (PacketTunnel) for macOS using NetworkExtension and SystemExtension. We are currently assessing whether there could be any problems or limitations with multiple VPN tunnels (from different apps) running simultaneously that could cause any traffic routing conflict or any other problems. So here are the scenarios that we have questions about?
- Is it possible to have multiple
NEPacketTunnelProviderbased tunnels running at the same time which are created by different applications? - Is it possible to have one
NEPacketTunnelProviderbased VPN and one kext based VPN tunnel running at the same time? We are planning on supporting from macOS Catalina. - Assuming answer to first question is, yes, what would be the behaviour if there is include route overlap between two
NEPacketTunnelProviderbased VPN tunnels? - Assuming answer to second question is, yes, what would be the behaviour if there is include route overlap between our
NEPacketTunnelProviderbased VPN tunnel and other kext based VPN tunnel? - Is there a way to create custom VPN tunnel or utun interface, from an app, apart from suing NetworkExtension or kext, in macOS? Could that cause a route overlap or conflict with our NetworkExtension tunnel when running simultaneously?
- Is there a way to find out tunnel address, match domains and include routes of other VPN tunnels or utun interfaces created by other applications? This may help us use different include routes than existing tunnels and avoid route overlap.
- Is there a way to create a VPN profile using
NETunnelProviderManagerwhich is not visible inSystem Preferences -> Network PreferenceslikeNETransparentProxyManagerwhich are not visible sinceBig Sur?
Thanks in advance for your response.