Назад | Перейти на главную страницу

Конфликт маршрута Wireguard с устройствами в роуминге

Я установил 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?