Подељени DNS преко OpenVPN-а: шта рутирајућа домена мора да уради на сваком систему
Суфикс за претрагу, рутирајућа домена и IP рута су три различите ствари. Подесите политику по платформи, а затим докажите који је сервер одговорио на упит.
Сваки захтев за подељени DNS почиње истом реченицом: имена компаније иду на DNS компаније, а све остало наставља да ради. Претварање те реченице у конфигурацију значи дати три одговора по оперативном систему, а одговори се на сваком од њих ослањају на другачије механизме. Профили који раде на Linux преносном рачунару често не раде на Windows-у из разлога који немају никакве везе са тунелом. Разлика је обично подешавање резолвера замењено за руту.
Прво именујте политику, а затим изаберите примитив платформе који је изражава.
Три подешавања која је лако помешати
Суфикс за претрагу проширује кратко име: када откуцате files постаје files.corp.example док резолвер редом покушава суфиксе. Рутирајућа домена одређује који резолвер одговара на упите унутар простора имена. IP рута само чини да изабрани резолвер буде доступан. Та три нивоа живе у различитим слојевима, а замена једног другим даје конфигурацију која изгледа исправно и не резолује ништа.
Забуна има цену: додавање суфикса за претрагу шаље свако кратко име на резолвер са посла, укључујући имена која припадају негде другде. Избор рутирајуће домене задржава неповезане упите на локалном резолверу и даље шаље *.corp.example кроз тунел.
Linux: домена само за рутирање, а не суфикс за претрагу
На systemd-resolved домена са тилдом на почетку је домена само за рутирање, што значи да упити за тај простор имена иду повезаном резолверу, а да притом не постају и суфикс за претрагу. resolvectl domain tun0 '~corp.example' то поставља, а resolvectl dns tun0 10.8.0.1 именује сервер. Обе поставке припадају интерфејсу, па нестају са њим. Тилда је део који људи изостављају, и без ње кратка имена почињу да се резолују преко резолвера са посла.
Немојте исти домен инсталирати и као глобални суфикс за претрагу. Та два подешавања нису сувишна; једно рутира, а друго преписује оно што сте откуцали.
Windows-у је потребна политика простора имена, а не суфикс
Windows чува политику подељеног DNS-а у табели политике резолуције имена, а не у DNS суфиксу адаптера. Правило пресликава простор имена на одређене сервере: Add-DnsClientNrptRule -Namespace .corp.example -NameServers 10.8.0.1. Само подешавање суфикса мења како кратка имена изгледају; оно не усмерава упит на други сервер.
Проверите ефективну политику помоћу Get-DnsClientNrptPolicy након повезивања, јер правило из раније везе може да надживи тунел. Уклоните правила по имену када тунел падне и држите приказно име стабилним да би чишћење погодило прави унос.
Држите једног власника резолвера по платформи
Менаџер радне површине, OpenVPN up скрипта и локални демон резолвера могу сви да покушају да упишу исту конфигурацију. Када се не слажу, последњи писац побеђује и резултат зависи од реда разградње. Изаберите једну компоненту која ће поседовати стање резолвера, пустите остале да извештавају уместо да пишу, и тестирајте поновно повезивање: политика треба да га преживи без дуплирања правила. Тестирајте и прекид везе, јер преостало стање је оно због чега се следећа веза понаша другачије.
Апликације које испоручују сопствени шифровани резолвер потпуно игноришу политику оперативног система. То је својство апликације, а не недостатак тунела.
Проверите резултат, а не текст профила
Резолујте једно име које треба да иде кроз тунел и једно које не треба, на свакој платформи, и потврдите који је сервер одговорио. resolvectl query host.corp.example и Resolve-DnsName host.corp.example оба пријављују сервер који је одговорио. Поновите након поновног повезивања. Затим потврдите да је резолвер тунела доступан на адреси коју профил шаље, јер исправна политика која показује на недоступан сервер не успева исто као да политике нема.
Забележите намењено понашање у напоменама профила: који суфикс рутира, који сервер на њега одговара и шта се дешава са свим осталим. Следећа платформа коју будете подржали требаће та реченица више него сама конфигурациона датотека.