Корпоративни VPN унутар WireGuard-а: који слој иде први?
Два клијента на једном рачунару раде само када спољни тунел носи сопствену везу унутрашњег клијента, а метрике бирају исправан интерфејс за сваки префикс.
Постоје два оправдана разлога за угњежђивање тунела на развојном преноснику. Или корпоративни клијент мора изгледати као да долази из одређене земље, или две приватне мреже морају бити доступне истовремено. У оба случаја спољни тунел мора носити сопствену везу унутрашњег клијента.
Покретање двају клијената у било ком редоследу то не постиже. То постиже усмеравање.
Упоредите два могућа редоследа
Изаберите спољни слој као тунел до чије је крајње тачке јавни интернет може доћи. Унутрашњи слој је тунел чији сервер одговара само кроз тај излаз. На Windows-у је практична подела WireGuard споља и корпоративни клијент унутра. Одлучујући је чинилац контрола.
Службени WireGuard клијент примењује целовиту конфигурациону датотеку, укључујући руте и DNS. Комерцијални корпоративни клијенти обично крију обоје. Постављање скривеног клијента споља оставља вас да нагађате о путу испод њега.
Обрнути редослед није немогућ. Само је теже о њему размишљати, јер спољни клијент преписује руте по распореду који никада не видите.
Нека AllowedIPs именује само корпоративни распон
AllowedIPs наводи одредишта која WireGuard усмерава у тунел. За угњежђивање су му потребни само адреса унутрашњег сервера и корпоративни префикси. Све остало остаје на локалној мрежи, укључујући штампаче и хипервизор. То је подељени тунел по дизајну и потпуно избегава проблем искључења.
Спољном слоју с пуним тунелом потребан је 0.0.0.0/0 минус локални распони. Формат не може изразити искључење, па се комплемент мора израчунати и залепити.
[Interface]
PrivateKey = ...
Address = 10.99.4.2/32
[Peer]
PublicKey = ...
Endpoint = 198.51.100.44:51820
AllowedIPs = 198.51.100.44/32, 10.20.0.0/16, 10.21.0.0/16
Када унутрашњи клијент не инсталира сопствене руте, сами наведите корпоративне префиксе. Префикс изостављен с тог реда је одредиште које спољни тунел никада не носи. Застарела копија списка гора је од никакве, јер још увек изгледа исправно.
Редослед, метрике и други адаптер
Прво повежите спољни тунел, затим покрените корпоративни клијент. Његова веза с крајњом тачком тада излази кроз WireGuard уместо кроз локални приступник. Дајте корпоративном интерфејсу нижу метрику како би његови префикси победили за адресе које поседује.
# which interface currently claims the corporate prefix?
Find-NetRoute -RemoteIPAddress 10.20.10.5 | Select-Object -First 1
# prefer the corporate interface for its own prefixes
Set-NetIPInterface -InterfaceAlias 'Corp VPN' -InterfaceMetric 3
Set-NetIPInterface -InterfaceAlias 'wg-personal' -InterfaceMetric 40
wg show interfaces
Метрике су корак који људи прескачу. Без поретка, за преклапајући префикс побеђује рута инсталирана последња. То се мења између подизања система, зато проблем изгледа испрекидано.
Клијенти засновани на OpenVPN 2.6 додају сопствену замку. Када је адаптер за растерећење податковног канала већ заузет, друга инстанца једноставно одбија да се покрене. Додавање disable-dco у профил враћа на старију TAP путању и тада оба раде један уз други.
Где се угњежђена путања ломи
Прекидање спољног тунела убија унутрашњи. Поновно повезивање само унутрашњег клијента често га шаље равно на интернет и тихо уклања угњежђивање. Тестирајте след од нуле сваки пут, почевши с оба тунела заустављена.
Очекујте мањи искористиви MTU. Сваки слој додаје трошкове, па је почетни пар око 1420 и 1400 место од којег се може почети. Пренос који се заглављује на великим пакетима док мали захтеви успевају уобичајен је знак. Корпоративна политика је друга граница, јер клијент који тражи управљани уређај може угњежђену путању сматрати кршењем.
Када су оба краја фиксне мреже, тунел од локације до локације између приступника уклања проблем редоследа уместо да њиме управља. На једном преноснику два тунела коегзистирају само кад сваки има сопствени интерфејс и правило које бира одредишта по префиксу.