Пратите везу од тренутка када се подигне: клијент се аутентификује, pppd преговара, а затим нешто уписује DNS подешавања у оперативни систем. Ако знате само да је VPN променио ваш резолвер, још не знате која је од тих фаза то учинила. Две од њих могу, а на клијенту са документованом pppd интеграцијом раде довољно близу једна другој да изгледају као један учесник. Именовање писца је први корак; избор његове замене је други, и то је одвојена одлука са сопственим режимима отказа.

Редослед испод прати клијента ка споља: шта је веза променила, који прекидач утишава ког писца, ко треба да преузме и како да потврдите да резултат преживљава поновно повезивање. Свака фаза оставља другачији траг, и управо траг вам каже да ли се предаја заиста догодила.

Почните од онога што је веза заиста променила

Повежите се једном својом уобичајеном командом и упоредите разрешавање пре и после. На Linux домаћину са systemd-resolved, resolvectl status исписује DNS сервере и домене претраге за сваку везу, а нова веза tun или ppp са сопственим серверима је отисак прста ажурирања са стране клијента. На macOS, scutil --dns приказује конфигурацију резолвера по редоследу којим је апликације консултују.

Упоредите то са датотеком за коју сте очекивали да ће се променити. Унос везан за везу у приказу по везама и преписани /etc/resolv.conf су два различита исхода, а други може бити симболичка веза којом у потпуности управља нешто друго. Запишите адресу резолвера, домене претраге и име интерфејса у истом тренутку; промена у било ком од њих указује на другог писца. Без те основне линије, свака каснија исправка је нагађање о томе која се од три компоненте померила.

Два прекидача и писац који сваки од њих утишава

openfortivpn документује фрагмент опција који искључује оба писца којима може да управља, и сваки прекидач има до краја исписан еквивалент који приручник третира као исто подешавање.

openfortivpn gw.example.com:443 --no-dns --pppd-no-peerdns
# written out in long form
openfortivpn gw.example.com:443 --set-dns=0 --pppd-use-peerdns=0

--no-dns спречава клијента да примени DNS сервере које је научио од мрежног пролаза, док --pppd-no-peerdns спречава pppd да угура DNS партнера у систем. Приручник upstream-а упозорава да ажурирања DNS преко PPP могу да се тркају са сопственим ажурирањима DNS клијента, због чега оба прекидача припадају фрагменту, уместо да се било који од њих сматра довољним.

Ниједан прекидач не именује заменски резолвер, и ниједан не спречава менаџера мреже, DHCP клијента или одвојену VPN интеграцију да касније уписује разрешавање. Утишавање два писца оставља поље отворено, а не поседовано. Ако трећа компонента већ управља DNS-ом, фрагмент не мења ништа што можете да приметите; ако њиме ништа не управља, управо сте уклонили једини извор разрешавања приватних имена. То је важећи распоред само када је заменски власник прво изабран и засебно тестиран.

Изаберите власника пре него што било шта искључите

Прво одлучите ко одговара на упите за радна имена, јер тај избор ограничава све што следи. Задржавање постојећег резолвера значи да приватна зона већ мора бити доступна одатле где клијент седи, а приватни резолвер у канцеларији захтева руту која преживљава подизање тунела. Слање сваког упита једној интерној услузи је трећа политика са оштријим режимом отказа: када та услуга није доступна, јавна имена падају заједно са приватним.

Власништво над рутама намерно остаје одвојено. Опције рута нису обавезне зато што сте променили DNS, а искључивање инсталације рута без инсталирања замене може да учини резолвер који сте управо изабрали недоступним. Проверите табелу рутирања конкретно за адресу резолвера, не само за подмрежу апликације коју сте случајно тестирали.

Проверавајте разрешавање по везама, не по датотекама

Један /etc/resolv.conf није списак онога што апликације заиста користе на домаћину са ограниченим или доменским разрешавањем, зато читајте стање резолвера онако како га платформа открива.

resolvectl status
resolvectl query vpn.internal.example.com
resolvectl query example.com
ip route get 10.20.0.53

Питајте за једно приватно име и једно јавно име након што је веза подигнута, и забележите која је веза одговорила на свако. Тамо где веза VPN-а носи листу претраге по доменима, приватно име може исправно да се разреши док јавно име још иде ка локалном резолверу, и та подела је дизајн који ради, а не дефект. Ако приватни упит не успе, прегледајте руту до резолвера пре него што поново дотакнете DNS; ако успе, а апликација и даље не успева, апликација можда чита сопствени кеширани или засебно конфигурисани резолвер.

Поново се повежите и потврдите искључено стање

Спустите везу и поновите оба упита. Оно што је изабрани власник инсталирао треба тај власник да уклони или врати, а не да то остави клијент који сте утишали. Застарео унос по везама који надживљава тунел наставља да шаље приватне упите на адресу која више није доступна.

Затим се поново повежите и прочитајте исте три вредности: адресу резолвера, домене претраге, интерфејс.

Ако се поклапају са политиком коју сте записали, предаја је завршена и VPN клијент више није један од писаца. Ако се вредност врати назад неколико секунди након подизања везе, нешто друго још примењује конфигурацију, и следећи корак је да идентификујете ту компоненту уместо да додате још једну заставицу. Крајње стање које желите је без догађаја: један власник, једна документована политика и искључен домаћин који разрешава тачно као пре него што је тунел постојао.

Повезани чланци