Запуск двух VPN-кліентаў адначасова — гэта спрэчка пра маршрутызацыю, а не налада прыватнасці. Які б тунель ні валодаў больш канкрэтным маршрутам, ён атрымлівае трафік, а другі застаецца падключаным, але бяздзейным. Карпаратыўны шлюз тады бачыць злучэнне, якое прыходзіць з асабістага выхаду, у той час як карпаратыўны кліент на вашай машыне па-ранейшаму бачыць кожны адаптар. Вырашыць, які з гэтых двух фактаў мае значэнне, — і ёсць усё практыкаванне.

Табліца маршрутаў выбірае аднаго пераможцу

Здыміце табліцу да і пасля запуску карпаратыўнага кліента і чытайце слупок інтэрфейсу, а не толькі прызначэнне. Звычайны маршрут па змаўчанні з знешняга тунеля лёгка выцесніць, бо пара /1 больш канкрэтная за /0. Літаральная пара 0.0.0.0/1 і 128.0.0.0/1 ахоплівае ўсю прастору IPv4 дзвюма паловамі і перамагае любы адзіночны маршрут па змаўчанні. Пасля ўсталявання знешні тунель усё яшчэ паказвае падключэнне і нічога не нясе.

ip route show default
ip route show | grep -E '^(0.0.0.0/1|128.0.0.0/1)'

Палітычная маршрутызацыя можа цалкам перакрыць галоўную табліцу, таму чытайце і правілы, і маршруты. Правіла, якое накіроўвае пазначаны трафік у іншую табліцу, перамагае да звароту да галоўнай табліцы. Менавіта так адно прыкладанне можа заставацца на фізічным канале, пакуль усё астатняе выкарыстоўвае тунель.

ip rule show

Windows вырашае гэта метрыкамі

У Windows пераможца — гэта маршрут з найменшай метрыкай для прызначэння, і два кліенты могуць абодва ўсталяваць маршрут па змаўчанні з рознымі метрыкамі. Чытайце табліцу і канфігурацыю інтэрфейсу разам, бо адаптар з меншай метрыкай не заўсёды той, якога вы чакаеце. Кліент, які таксама задае метрыку інтэрфейсу, можа зрушыць маршрут па змаўчанні, не дадаючы ніводнага маршруту. Адаптар, які прайграў, застаецца ўключаным і проста нічога не атрымлівае.

route print -4
Get-NetIPConfiguration | Select-Object InterfaceAlias, IPv4DefaultGateway

Параўнайце два выхады і назавіце інтэрфейс, якому належыць 0.0.0.0/0. Калі абодва кліенты прэтэндуюць на яго, вырашае метрыка, і менавіта таму тэст парадку падключэння можа выглядаць супярэчлівым на розных машынах. Калі ж ніводзін выхад не паказвае шлюз па змаўчанні, кліент працуе не ў поўным тунелі, і аргумент пра ланцужок губляе сэнс.

Два назіральнікі, два розныя погляды

Аддалены шлюз бачыць адно злучэнне, якое прыходзіць з знешняга выхаду, плюс усё, што кліент перадае ў свой тунель. Лакальны кліент бачыць адаптары, маршруты і наяўнасць іншага тунеля, бо працуе з правамі на іх стварэнне. Падзяліць гэтыя погляды — і ёсць мэта; сцвярджэнне, што кліент не можа заўважыць, — не.

Меркаваць, што кліент можа пералічыць усё, што заўгодна, і планаваць замест гэтага погляд шлюза. Дызайн, які залежыць ад таго, што кліент застанецца сляпым, — за адно абнаўленне ад паломкі.

DNS і IPv6 — вось дзе ланцужок працякае

DNS ідзе за той наладай рэзалвера, якая перамагла, і гэта не абавязкова шлях, якім ідуць пакеты. Карпаратыўны рэзалвер, дасягнуты праз карпаратыўны тунель, адпавядае дызайну; лакальны рэзалвер, дасягнуты па-за ім, — не, і ён раскрывае імёны, якія тунель павінен быў хаваць. IPv6 — другая працёка: хост з падвойным стэкам працягвае выкарыстоўваць IPv6 да прызначэнняў, якія тунель нясе толькі праз IPv4. Правярайце сямействы асобна, бо тунель толькі для IPv4 нічога не кажа пра маршруты ці рэзалверы IPv6.

ip -6 route show default
resolvectl status | grep -A2 'DNS Servers'

Выпраўце рэзалвер і маршрут IPv6 свядома, замест таго каб ставіць другі тунель зверху. Падвойная інкапсуляцыя таксама каштуе MTU, таму меншы ўнутраны MTU — першае, што варта паспрабаваць, калі старонкі завісаюць пасля ўздыму ланцужка. Рэзалвер, які хутка адказвае, не з'яўляецца доказам таго, што ён правільны.

Падобныя артыкулы