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 NEPacketTunnelProvider based tunnels running at the same time which are created by different applications?
Is it possible to have one NEPacketTunnelProvider based 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 NEPacketTunnelProvider based VPN tunnels?
Assuming answer to second question is, yes, what would be the behaviour if there is include route overlap between our NEPacketTunnelProvider based 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 NETunnelProviderManager which is not visible in System Preferences -> Network Preferences like NETransparentProxyManager which are not visible since Big Sur?
Thanks in advance for your response.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
I am pretty new to macOS development with background in iOS development. I am trying to create a Network Extension based VPN in macOS. When I try to add new target, I see Network Extension as part of App Extensions as well as System Extensions. When I add the Network Extension target from different categories, I see different build settings for both of them. This confuses me specially because in iOS, there is only App Extensions. So, what's the difference between the two Network Extension options in macOS? How do they differ in functionality?