[wireguard-apple] [iOS] Changing network fails with includeAllNetworks (Kill Switch)

Juraj Hilje juraj.hilje at gmail.com
Tue Oct 19 12:22:37 UTC 2021


Thanks for the follow-up!
I had the same result on my end, everything worked as expected on the iOS 15.1 Beta.

> On 19.10.2021., at 11:54, Andrej Mihajlov <and at mullvad.net> wrote:
> 
> Follow up on this. It looks like the VPN connection breaks on my iPad running iPadOS 15 after changing DNS settings via WireGuardKit. 
> 
> Tested on iPadOS 15.1 beta today and it seems to be stable.
> 
>> On 28 Sep 2021, at 13:03, Andrej Mihajlov <and at mullvad.net> wrote:
>> 
>> Hi,
>> 
>> I can confirm that it behaves correctly on iOS 15 (tested on iPhone 12) and iOS 15.1 beta (tested on iPhone 7). Tested by toggling cellular/wi-fi and airplane mode on both devices and network monitor seems to be functioning properly. 
>> 
>> I haven’t tested this patch on iOS 14.8, but I had previously tested it on iOS 14.5 (IIRC) and it didn’t work there, that's why this patch is scoped to iOS 15+.
>> 
>> I am running the "am/enable-include-all-networks" branch which has the following changeset:
>> https://git.zx2c4.com/wireguard-apple/commit/?id=07bc66e7b181fb2068d457b31c1fdd05bdd2214a&id2=58e94f077329f6c7b96ec069243495d4e649fe36
>> 
>> Cheers,
>> Andrej
>> 
>>> On 22 Sep 2021, at 15:26, Juraj Hilje <juraj.hilje at gmail.com> wrote:
>>> 
>>> Hi Andrej,
>>> 
>>> I've tested on iOS/iPadOS 15.1 Beta, and it looks like the issue is fixed there.
>>> Let me know if you can confirm the same on your end.
>>> 
>>> Cheers,
>>> Juraj H.
>>> 
>>>> On 22.09.2021., at 10:59, Andrej Mihajlov <and at mullvad.net> wrote:
>>>> 
>>>> Hi Juraj,
>>>> 
>>>> Installing iOS 15 right now. I am gonna test it today too. 
>>>> 
>>>> What stands out to me that, while you have multiple interfaces available, the network monitor still says that the network is unsatisfied. Very odd.
>>>> 
>>>> Cheers,
>>>> Andrej
>>>> 
>>>>> On 22 Sep 2021, at 10:55, Juraj Hilje <juraj.hilje at gmail.com> wrote:
>>>>> 
>>>>> Hey Andrej, thanks for the response!
>>>>> 
>>>>> I've tested on iOS 14.8 and iOS 15.0 (public release), and even with the patch (b244febfdf3069dd4e8db2d31f0368d5474d7616) i still have the same issue on my end.
>>>>> 
>>>>> I will test the new iOS 15.1 Beta later today and let you know how it goes.
>>>>> 
>>>>> Juraj H.
>>>>> 
>>>>>> On 22.09.2021., at 10:08, Andrej Mihajlov <and at mullvad.net> wrote:
>>>>>> 
>>>>>> Have you tried on the most recent beta? I think it works over there, but requires some tweaks to the network monitor code in WireGuard. I had a patch somewhere here but haven’t spent much time testing it:
>>>>>> 
>>>>>> https://git.zx2c4.com/wireguard-apple/commit/?h=am/enable-include-all-networks&id=b244febfdf3069dd4e8db2d31f0368d5474d7616
>>>>>> 
>>>>>> Waiting for the final release of iOS 15.
>>>>>> 
>>>>>>> On 21 Sep 2021, at 12:55, Juraj Hilje <juraj.hilje at gmail.com> wrote:
>>>>>>> 
>>>>>>> If NETunnelProviderProtocol is configured with includeAllNetworks=true (Kill Switch), when network change is detected the device connectivity goes offline instead of routing VPN tunnel traffic through a new network.
>>>>>>> 
>>>>>>> Here are some logs from the moment of this event:
>>>>>>> 2021-09-20 12:07:26.735453: [NET] Network change detected with unsatisfied route and interface order [en0, utun4, pdp_ip0]
>>>>>>> 2021-09-20 12:07:26.736186: [NET] Connectivity offline, pausing backend.
>>>>>>> 2021-09-20 12:07:26.736732: [NET] Device closing
>>>>>>> 2021-09-20 12:07:26.737503: [NET] Routine: TUN reader - stopped
>>>>>>> 2021-09-20 12:07:26.738970: [NET] Routine: event worker - stopped
>>>>>>> 2021-09-20 12:07:26.739613: [NET] Routine: receive incoming v4 - stopped
>>>>>>> 2021-09-20 12:07:26.742070: [NET] Routine: receive incoming v6 - stopped
>>>>>>> 2021-09-20 12:07:26.746712: [NET] peer(eN1f…Oymc) - Stopping
>>>>>>> 2021-09-20 12:07:26.751550: [NET] peer(eN1f…Oymc) - Routine: sequential receiver - stopped
>>>>>>> 2021-09-20 12:07:26.751597: [NET] peer(eN1f…Oymc) - Routine: sequential sender - stopped
>>>>>>> 2021-09-20 12:07:26.753433: [NET] Device closed
>>>>>>> 2021-09-20 12:07:26.754097: [NET] Routine: decryption worker 5 - stopped
>>>>>>> 
>>>>>>> Tested on devices: iOS 14.8, iPadOS 15
>>>>>>> WireGuardKit: 79aeb0be0d0aa3f6c8bd24309aaa8dcf03216fb4
>>>>>>> 
>>>>>>> More info on includeAllNetworks option:
>>>>>>> https://developer.apple.com/documentation/networkextension/nevpnprotocol/3131931-includeallnetworks
>>>>>>> 
>>>>>>> Can someone confirm this issue or point to a possible workaround?
>>>>>>> Thanks!
>>>>>>> 
>>>>>>> Juraj H.
>>>>>> 
>>>>> 
>>>> 
>>> 
>> 
> 



More information about the WireGuard mailing list