Аварийно спиране или достъп до LAN? Два отговора за WireGuard
Клиентът за Windows блокира трафика извън тунела, когато профилът задава 0.0.0.0/0. Решете кое свойство ви е нужно и изразете подразбирането съответно.
Ръкостискането завършва, браузърът работи, а принтерът, NAS и локалните SSH хостове изчезват. В клиента за Windows това обикновено изобщо не е отказ на маршрутизацията: партньор, чиито разрешени префикси включват буквалното подразбиране, активира „Блокиране на трафик извън тунела“, а тази опция е реализирана като правила на защитната стена, които изхвърлят пакети, излизащи през всеки друг интерфейс. Таблицата за маршрутизация продължава да показва локалната подмрежа като директна връзка, затова симптомът изглежда като лъжа. Три условия решават какво да се прави, и само едно от тях е за маршрутизацията.
Две повреди носят един и същ симптом
Първата повреда е режимът fail-closed на клиента и признакът ѝ е, че всичко извън тунела спира, докато самият тунел работи безупречно. Втората е истински проблем с достъпността: липсващ маршрут, липсващ запис на сървъра за подмрежа зад клиента или две мрежи с еднакъв адресен диапазон. И двете дават машина, която може да разглежда и не може да печата, а поправките им са противоположни, затова диагнозата трябва да дойде преди конфигурацията.
Отличителното наблюдение е дали локалната подмрежа все още присъства в таблицата за маршрутизация, докато трафикът към нея се изхвърля.
Три условия решават отговора
Първо, има ли тази машина нужда от fail-closed? Ако отговорът е да, паднал тунел трябва да спре трафика, вместо да го остави да се върне към физическия интерфейс, и това изискване е по-важно от локалното удобство. Второ, трябва ли локалните устройства да останат достъпни, докато тунелът е активен? Печатането, мрежовото хранилище и локалните конзоли за управление са обичайните причини и те са законни изисквания, а не изключения, за които да се извиняваме. Трето, изразява ли профилът подразбирането като буквално 0.0.0.0/0? Точно тази подробност задейства правилата на клиента и тя е редактируема.
Отговорете на тези три въпроса писмено, преди да пипате профил, защото всеки отговор сочи към различна конфигурация.
Изберете fail-closed и се откажете от LAN
Ако изтичането е по-важно от локалната достъпност, запазете буквалното подразбиране и оставете „Блокиране на трафик извън тунела“ включено. Това е последователна позиция: машината се третира като устройство, което е или в тунела, или офлайн, а локалните услуги се достигат от друго устройство или през тунела, ако сървърът ги маршрутизира. Цената е реална и трябва да се посочи в бележките за внедряване, вместо да я открие човекът, на когото трябва да печата.
Това е правилният избор за машини, които вършат работа, която не бива да се появява в мрежа на кафене, когато тунелът падне. Това е лошо подразбиране за домашен лаптоп, на който също му трябва скенерът.
Изберете достъп до LAN и изразете подразбирането другояче
Ако локалните устройства трябва да останат достъпни, изразете същото покритие без буквалния префикс за подразбиране. Два половин префикса покриват всеки IPv4 адрес, еквивалентната двойка покрива IPv6, и клиентът вече не вмъква блокиращите правила, защото низът, който търси, липсва.
[Peer]
AllowedIPs = 0.0.0.0/1
AllowedIPs = 128.0.0.0/1
AllowedIPs = ::/1
AllowedIPs = 8000::/1
Endpoint = vpn.example.net:51820
Премахването на тази отметка кара клиента да запише същите две двойки в профила, така че сравняването на генерирания файл с блока по-горе е бърз начин да потвърдите механизма, вместо да го предполагате. Следват две последствия. Покритието е идентично, така че нищо друго в тунела не се променя. Защитата не е идентична: след като правилата изчезнат, паднал тунел оставя машината да използва физическия си интерфейс, а точно това предотвратяваше fail-closed.
Проверете другите два заподозрени във всеки случай
След като въпросът със защитната стена е решен, потвърдете, че локалната подмрежа наистина се маршрутизира и че далечният край знае за всичко зад този клиент. Сървър, който трябва да достигне LAN зад клиент, се нуждае от този префикс в разрешения списък на клиента на хъба; пропуснете ли го, хъбът не може да избере партньор за тези адреси и никаква конфигурация на клиента не създава такъв.
Get-NetConnectionProfile | Select-Object Name, InterfaceAlias, NetworkCategory
Get-NetFirewallProfile | Select-Object Name, Enabled, DefaultOutboundAction
route print 0.0.0.0
Категорията на мрежата е по-важна, отколкото хората очакват: новосъздаден адаптер за тунел, класифициран като публичен, променя правилата, които се прилагат към него, и резултатът може да изглежда като блокиране от защитна стена от далечната страна. Печатът на маршрутите показва дали изобщо има подразбиране, което отделя проблем с политиката от липсващ маршрут.
След това тествайте три неща в едно заседание: интернет, един локален хост по адрес и един хост през тунела. Ръкостискането доказва само, че ключовете съвпадат, затова трите теста са това, което демонстрира политиката. Ако локалният хост все още отказва след изчистването на опцията, останалите заподозрени са маршрутът, разрешеният списък на далечната страна и дублиращата се подмрежа, в този ред.