NEPacketTunnelProvider excluded routes issue

This is what I am seeing on an iPhone 6S with iOS 12 :

  • Included my server in the Excluded routes list.
  • When the packet tunnel is started through VPN, I can connect to the Server.
  • Then I restarted my phone. At this point I can no longer connect to the Server.
  • If I switch networks (in this case, WiFi to LTE) I can connect back to the Server. But if I go back to WiFi, then it can no longer connect to the Server.
  • After a period of time, it did go back to normal. (It also went back to normal when I restarted the phone again.)


Should I file this as a Bug? Any idea why this is happening and is there a work around to this?
I thought by toggling back and forth by adding and removing the servers from the Packet tunnel and restarting the VPN, this may go back to a normal state but it didn't.

Replies

I’ve seen reports from other developers about the system not applying routes correctly after a connectivity change (r. 36741303). I am not, alas, following this issue closely enough to say for sure whether the problem you’re seeing is the same or not. Given that, my recommendation is that, yes, you should file a bug about this.

Please post your bug number, just for the record.

Two things:

  • If the problem reproduces with the shipping version of your product, point to that.

  • If not, a buildable test project would be helpful (although not absolutely necessary).

  • After reproducing the problem, trigger a sysdiagnose log (see our Bug Reporting > Profiles and Logs page) and include that with your bug report.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"

I too encoutered a problem with the split tunnel, and I'm not sure If I have a bug or if it's related to what you said about "system not applying routes correctly".

I'm connected with my VPN app (on MacOS) and I added an IP (IPv4) to the exclude list. I want to access this IP from outside the tunnel.

If I'm connected to an IPv4 network, it works well.

But if I'm connected to an IPv6 network (via Internet sharing), I exclude this IP, but I can't access it - I get a resolve error (ERR_ADDRESS_UNREACHABLE)


Is it related to the bugs you mentioned before? Or maybe it's related to the internet sharing?


P.S

I'm excluding an IPv4 while I'm connected to an IPv6 network - I expected one of the following to happen:

a. When I'll try to access this IP, it will still be at the tunnel (since it's using IPv6 and I excluded IPv4)

or

b. I'll reach this IP outside the tunnel.


But the result I got is different - I can't even access this IP.