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

Бірінші тексеру: қосылым қалай басталады

Қосылымның иесі резолвер параметрлерін кім қолдана алатынын анықтайды. Қабықтан берілген тікелей openvpn командасы өз процесінен басқа ештеңеге ие емес, ал systemd бірлігі, NetworkManager немесе жеткізуші клиентінің әрқайсысының DNS жариялаудың өз жолы бар. Олардың кез келгенін болжамас бұрын процестер тізімі мен бірлік атауын оқыңыз.

Пәрмен жолы процесі автоматты түрде NetworkManager қосылымы емес, ал NetworkManager қосылымы автоматты түрде resolv.conf жазған нәрсе емес. Осы екі болжам бұл тергеуде жоғалған сағаттардың көбін түсіндіреді. Сіз шын мәнінде көріп отырған интерфейс үшін DNS-ті қай компонент жариялайтынын сұраңыз.

Жалғастырмас бұрын иені жазып қойыңыз. Кейінгі әрбір тексеру соған тәуелді.

Екінші тексеру: резолвер байланысы шын мәнінде нені ұстайды

systemd-resolved хостында resolvectl status әр байланысты оның DNS серверлері мен домендерімен бірге тізімдейді. Туннель байланысын тауып, оның жазбаларын оқыңыз, және интерфейс атауы tun0 деп болжамаңыз, өйткені нөмірлеу құрылу ретіне бағынады. Егер жіберілген мекенжай байланыста болмаса, сұрау емес, беріліс сәтсіз аяқталды.

Егер мекенжай бар болса, келесі сұрақ — бұл байланыс қандай домендерді талап етеді. Домен тізімі жоқ байланыс тек тікелей сұралған атауларға жауап береді, ал split-DNS орналастыруы мұны сирек қалайды. Тек мекенжай қажет, бірақ жеткіліксіз.

Қандай да бір қорытынды жасамас бұрын резолвер шығысындағы байланыс атауын VPN журналындағы интерфейс атауымен салыстырыңыз. Ондағы сәйкессіздік әдетте журнал жолының басқа процестен келгенін білдіреді.

Үшінші тексеру: атау кеңістігі сол байланысты таңдай ма

Резолвер дұрыс серверді ұстап тұрып, сұралмауы мүмкін. Әр байланысқа арналған домен қай сұраудың қай байланысқа баратынын шешеді, ал маршруттау домені болмаса жеке атау кеңістігі әдепкі байланыстың айтқанына қайтады. Сондықтан ішкі атау үшін resolvectl query сәтті болуы мүмкін, бірақ қолданба әлі де сәтсіз аяқталады. Қолданба мүлдем басқа резолвер жолын пайдаланып жатқан болуы мүмкін.

Домен тағайындауын тексеріңіз, тек сервер мекенжайын емес. ~corp.example түрінде жазылған домен — маршруттау домені, ал тильда атаудың қалай сәйкестендірілетінін өзгертеді.

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

Төртінші тексеру: бір ие, екеу емес

Егер NetworkManager VPN мен резолвер күйін әлдеқашан басқарса, қатысы жоқ hook скриптін қосу бәсекелес жазушылар жасайды. Пакет systemd-resolved үшін ұсынатын hook — қолдау көрсетілетін интеграция және белгілі бір өмірлік циклді күтеді: script-security 2, up жолы, up-restart, down жолы және down-pre. Бұл опциялар тіркеу мен жоюдың тек бірінші қосылымда емес, дұрыс сәттерде орындалуын қамтамасыз етеді.

Пакеттен орнатылған жолды пайдаланыңыз, нұсқаулықтан көшірілген үлгі жолды емес. Рұқсаттар да маңызды, өйткені hook артықшылықтар төмендегеннен кейін жұмыс істейді.

Тарату резолверінің скриптін оның шығыс мақсатын өзгерту үшін өңдеу — бір хосттың айналып өтуін жазу. Бұл жалпы жөндеу емес.

Бесінші тексеру: қайта қосылғаннан кейін бірдей нәтиже

Қайта қосылып, байланысты қайта оқыңыз. Бір рет пайда болып, келесі ауысуда жоғалатын тіркеу — осы бүкіл тексеру тізімі ұстау үшін бар ақаулық. Ұйқыдан кейін, мәжбүрлі қайта қосылудан кейін және резолвер қызметін қайта іске қосқаннан кейін тексеріңіз. Әр ауысу реттілік туралы басқа болжамды сынайды.

Қайта қосылу кезінде бес тексерудің барлығы өткенде ғана жіберілген параметрлердің қолданылып жатқанын айта аласыз. Одан бұрынғының бәрі — сәтті сәттің суреті.

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