Бір пайдаланушы интранет хост атауы VPN арқылы шешілмейтінін хабарлайды. Сол ноутбуктен келген екінші хабарлама ағып кету тесті әлі де жергілікті шешуші жауап берген сұрауларды көрсететінін айтады. Олар бір мәселе сияқты естіледі, бірақ екеу, дәлелдері әртүрлі, және біріншісіне әдеттегі жөндеу екіншісін нашарлатады. Параметрге тимес бұрын оларды ажыратыңыз.

Бір ақау емес екі симптом

Ішкі атауды шеше алмау сұрақ оған жауабы жоқ жерге кеткенін білдіреді. Туннельден шығып кететін сұраулар жауап қолжетімді болса да сұрақ дұрыс емес жерге кеткенін білдіреді. Бұлар қарама-қарсы ақаулар: бірі жетіспейтін жауап, екіншісі артық межелі орын.

Тұзақ мынада: кеңсе шешушісін барлық жерге қосу біріншісін түзейді және екіншісін кепілді түрде тудырады. Жария шешушіні барлық жерге қосу керісінше әсер етеді.

Екі байқауды да уақыт белгісімен жазып алыңыз, содан кейін төмендегі төрт тексеруді ретімен орындаңыз.

Қай адаптердің шешушісі сұрақты алады

Windows-та DNS клиенті серверлерді адаптерлердің байланысу ретіне қарай таңдайды, ал туннель адаптері автоматты түрде бірінші бола бермейді. Адаптердің қосымша параметрлерін ашып, қашықтан қатынау қосылымын физикалық адаптердің үстіне жылжытыңыз, содан кейін өзгеріс жаңа сеансқа қолданылуы үшін қайта қосылыңыз.

Байланысу реті — тек бірінші жартысы. Клиент қай атаулардың сол адаптерге жататынын да білуі керек, ал бұл реттілік емес, суффикс мәселесі.

Жұмыс істеп тұрған машинаның ipconfig /all ноутбуктегімен қатар қойыңыз, екеуі де туннель көтерілген кезде алынған. Жұмыс істеп тұрған машина кеңсе адаптерінде қосылымға тән DNS суффиксін көрсетеді, ал ноутбук туннельде ештеңе көрсетпеуі мүмкін. Бұл айырмашылық «сервер дәл осында, ал атау әлі де шешілмейді» деген хабарламалардың тұтас класын түсіндіреді, өйткені суффиксіз қысқа атау кеңсе шешушісі қызмет ететін аймаққа дейін ешқашан толықтырылмайды.

Қысқа атауға маршруттан бұрын суффикс қажет

Нақтыланбаған хост атауын теру шешушіден доменді болжауды сұрайды. Болжам қосылымға тіркелген суффикстер тізімінен келеді, ал егер бұл тізім бос болса, сұрау бір таңбаша ретінде шығып кетеді және оған ешбір жеке аймақ сәйкес келмейді.

Жұмыс істеп тұрған машинаның суффиксін DNS қойындысындағы VPN адаптерінің IPv4 қасиеттеріне көшіріп, содан кейін қайта қосылыңыз. Linux-те баламасы — туннель буынындағы іздеу домені, оны systemd-resolved ғаламдық емес, буын бойынша ұсынады.

Екі параметрді жазбаларыңызда бөлек ұстаңыз. Суффикс нені сұрайтынын өзгертеді; шешуші мекенжайы кімнен сұрайтынын өзгертеді. Біреуін түзеп, екіншісі қате болса, нәтиже кездейсоқ болып көрінеді.

Шешушіден тікелей сұраңыз, содан кейін атаудан

Кеңсе шешушісіне тікелей сұрау атау мәселесін жол мәселесінен ажыратады, өйткені ол клиенттің шешуші таңдауын толығымен айналып өтеді.

nslookup intranet.corp.example 10.20.0.53
nslookup intranet
resolvectl status

Бірінші команда нақты серверден толық квалификацияланған атауды сұрайды. Егер жауап берсе, шешуші мен оған барар жол дұрыс, ал ақау таңдауда немесе суффиксте. Егер уақыт бітсе, мекенжай қате немесе қолжетімсіз, сонда мәселе DNS-те емес, маршруттауда. Екінші команда қысқа атаумен не болатынын көрсетеді, ал үшіншісі systemd хостында буын бойынша шешуші конфигурациясын шығарады.

Жабайы карта жауаптарына назар аударыңыз, кейбір желілер оларды белгісіз атауларға қайтарады. Сенімді көрінетін жауап көзделген сервердің жауап бергенін дәлелдемейді, сондықтан қайтарылған мекенжайды ішкі қызмет шын мәнінде қолданатын мекенжаймен салыстырыңыз. Егер мекенжай тұрақты бетке немесе проксиге тиесілі болса, шешуші жауап берді, бірақ жауап ешқашан сіздікі болмаған. Бұл айырмашылық бүкіл уақыт бойы жұмыс істеп тұрған туннельді қуудың бір сағатын үнемдейді.

Linux-те /etc/resolv.conf қайта жазатын VPN клиенті жергілікті шешушілерді толығымен алмастырады. vpnc мұны тоқтату үшін DNSUpdate no ұсынады, ал systemd-resolved тек тізімделген домендерді туннель буынына бағыттай алады. Екі тәсіл де жария атауларды жергілікті шешушіде қалдырып, ішкі атауларды кеңсеге жібереді.

Ағу — құсбелгі емес, ереже

Атау шешу — 53 портына UDP алмасуы, сондықтан веб-трафикті тасымалдап, UDP-ны тасымалдамайтын туннель сұрауды физикалық жолда қалдырады. Жария атау шешіліп жатқанда физикалық NIC-те түсіріп дәлелдеңіз. Сол интерфейсте оқылатын түрде көрінген сұрау туннель оны тасымалдамайтынын білдіреді.

sudo tcpdump -ni eth0 -c 20 'udp port 53'
resolvectl query example.com

Егер сұрау сол интерфейсте оқылатын түрде пайда болса, туннель оны тасымалдамайды. Жөндеу — 53 портына тек VPN берген шешушіге рұқсат беріп, басқа межелі орындарды тастайтын ереже, қоса берілген опцияны үнсіз тастамайтын клиент конфигурациясы.

Бұл соңғы бөлік көрінгеннен де маңыздырақ. OpenVPN-ді route-nopull қосып іске қоссаңыз, тарту сүзгісін кеңейтіп ұстамасаңыз, берілген DNS опциясы маршруттармен бірге жоғалады. Ал dhcp-option DNS елемейтін клиент бұрынғысын пайдалана береді. Сервер жағындағы кез келген өзгеріс жаңа сеансты қажет етеді, өйткені шешушілер тізімі туннель көтерілгенде жеткізіледі және ескірген сеанс ескі күйді көрсете береді.

Билетті жаппас бұрын қай ақауды шынымен байқағаныңызды жазыңыз. Жетіспейтін ішкі жауап пен туннельден қашып шыққан сұрау әртүрлі жөндеуді талап етеді, ал біріншісін түзетін суффикс өзгерісі екіншісін үнсіз нашарлатуы мүмкін. Билетті келесі алатын адам белгіге сенеді, сондықтан белгіні дәл жасаңыз.

Қатысты мақалалар