MacOS client v1.0.13 multiple tunnel issue

Dan West dwest at galois.com
Tue Jul 6 16:57:42 UTC 2021


I upgraded my wireguard client from v1.0.12 to v1.0.13 on my MacBook and when I connect using multiple tunnels to different sites, it no longer works correctly.  I am not entirely sure if this is a problem with routing on the client side or if there is a bug preventing additional tunnels from connecting to other sites.  It seems that the first tunnel I connect to will work, but any subsequent tunnels will not.  So for example, if I connect to SiteA and then SiteB, SiteA will work and SiteB will not.  If I connect to SiteB and then SiteA, SiteB will work but SiteA will not.  This is tested by pinging the VPN's gateway address after establishing each connection.  Here is a redacted copy of my tunnel configs:

### Site A Config ###

[Interface]
PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
Address = 10.1.1.100/24
DNS = 10.1.1.1, example.com

[Peer]
PublicKey = yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy=
AllowedIPs = 10.1.1.0/16, aa.aaa.aaa.aa/25 #Public IP space for Site-A DMZ
Endpoint = site-a.example.com:32123

### Site B Config ###

[Interface]
PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
Address = 10.2.1.100/24
DNS = 10.2.1.1, example.com

[Peer]
PublicKey = yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy=
AllowedIPs = 10.2.1.0/16, bb.bbb.bbb.bb/25 #Public IP space for Site-B DMZ
Endpoint = site-b.example.com:32123

It is worth noting that this has been tested using both the “On-Demand” function as well as the MacOS built-in Network management tool.  The version history says “Jun 17, 2021 - 1.0.13 - This version includes internal fixes and API changes for newer iOS versions”, so the actual changes are a little opaque. 

I ran a TCPdump on Site-B (or the second site) to see if traffic is even getting to the VPN endpoint and it is not seeing anything.  I also ran a packet capture on the border firewalls and did not see any traffic attempting to hit that location.  The client does not show any handshake activity, so I believe the issue is specifically in the client or maybe how it is trying route the second connection?

A temporary fix is to downgrade back to v1.0.12, but due to limitations of the Apple Appstore, it is only feasible if you happen to have a backup copy of the client.  I just happened to have a backup copy, so I was able to test with both clients.  

Has anyone else ran into this issue or has any suggestions?  I can provide more information on the topology if you think it would be helpful.

Thanks,

Dan

Dan West
Systems Administrator
Galois Inc.
http://corp.galois.com






More information about the WireGuard mailing list