Я установил WireGuard VPN с несколькими партнерами, включая ноутбуки и мобильные телефоны. VPN также обеспечивает прямой доступ к нескольким подсетям:
Маршрут по умолчанию не изменяется. Я успешно продвигаю маршруты всем узлам.
Проблема возникает, когда одно из роуминговых устройств фактически подключено к одной из локальных сетей. По крайней мере, в Linux wg0
кажется, что у маршрута есть приоритет, за исключением шлюза:
$ ip route show | grep ^10.23.1
10.23.1.0/24 dev wg0 scope link
10.23.1.0/24 dev enp0s31f6 proto kernel scope link src 10.23.1.55 metric 100
10.23.1.0/24 dev wlp0s20f3 proto kernel scope link src 10.23.1.58 metric 600
10.23.1.1 dev enp0s31f6 proto static scope link metric 100
$ ip route get 10.23.1.2
10.23.1.2 dev wg0 src 10.24.4.11 uid 1000
cache
$ ip route get 10.23.1.1
10.23.1.1 dev enp0s31f6 src 10.23.1.55 uid 1000
cache
я мог вручную удалите маршрут после подключения или вручную измените конфигурацию по мере необходимости, но на самом деле это не масштабируется.
Как я могу гарантировать, что локальные маршруты имеют приоритет над маршрутами, заданными в Wireguard?