<div dir="ltr">Hi<div><br></div><div>I have been using wireguard for a while now and discovered an issue with routes created by macOS and iOS GUI clients. The issue is that wireguard does not create a route to the endpoint via a default route. So when you specify AllowedIPs = <a href="http://0.0.0.0/0">0.0.0.0/0</a> (excluding private IPs does not change anything) on a client, everything just stops working because <a href="http://0.0.0.0/0">0.0.0.0/0</a> is now reachable only through wireguard tunnel, which is obviously not reachable as there is no route to it through normal internet connection.</div><div><br></div><div>Pretty much, the routes look like this:</div><div><b>default via 10.80.0.1 dev wg0</b> - default route through wg</div><div><b>default via 10.0.0.1 dev eth0</b> - old default route through ethernet</div><div><b><a href="http://10.0.0.0/24">10.0.0.0/24</a> dev eth0</b></div><div><br></div><div>When they have to look like this:</div><div><b>default via 10.80.0.1 dev wg0 </b>- default route through wg</div><div><b>default via 10.0.0.1 dev eth0</b> - old default route through ethernet</div><div><b><u><a href="http://1.2.3.4/32">1.2.3.4/32</a> via 10.0.0.1 dev eth0</u></b> - specific route to wireguard endpoint (1.2.3.4 here) through ethernet <b>which is missing</b></div><div><b><a href="http://10.0.0.0/24">10.0.0.0/24</a> dev eth0<br></b></div><div><b><br></b></div><div>Right now the only workaround is manually calculating AllowedIPs CIDRs excluding the endpoint address. I assume this is not by design and should be fixed by either creating a route to wg endpoint through default gateway or excluding endpoint IP from AllowedIPs without having to do it manually in the config.</div></div>