Поделен 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 во Name Resolution Policy Table, а не во 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 и двата го известуваат серверот што одговорил. Повторете по повторно поврзување. Потоа потврдете дека резолверот на тунелот е достапен на адресата што ја турка профилот, зашто правилна политика што покажува на недостапен сервер не успева исто како и никаква политика.
Забележете го предвиденото однесување во белешките на профилот: која наставка рутира, кој сервер одговара на неа и што се случува со сето друго. Следната платформа што ќе ја поддржите повеќе ќе ѝ треба таа реченица отколку конфигурациската датотека.