Команда VPN атау кеңістігінің ішінде 10.8.0.5 мекенжайына ешқандай шағымсыз жетеді, ал сол команда хост атын қолданған сәтте сәтсіз аяқталады. Атау кеңістігінің өз интерфейстері, маршруттары және сокеттері бар; оның өз шешуші файлы жоқ. Егер бірдеңе сол жерге біреуін қоймаса, ішіндегі процесс хосттың /etc/resolv.conf файлын оқиды және сол желілік стектен қолжетімсіз болуы мүмкін серверден сұрайды.

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

Процестің шын мәнінде алатын шешуші көрінісін тексеріңіз

Пайдаланған қабықшаңызды жөндеп жатқан процеспен бірдей деп есептемеңіз. Графикалық қолданба, systemd бірлігі және контейнер әрқайсысы басқа тіркеу немесе желілік контекстке кіре алады. Іздеуді сол іске қосу жолымен орындап, шешуші файлын ішінен басып шығарыңыз.

ip netns add арқылы жасалған атау кеңістігі үшін тек оқуға арналған тексеру қысқа:

ip netns exec vpn cat /etc/resolv.conf

Нәтиженің қолжетімді мекенжайды, loopback тірегін немесе қолжетімділігі басқа орынға сілтейтін символдық сілтемені атайтынын байқаңыз.

exec көмекшісі шын мәнінде нені тіркейді

ip-netns құралы әр атау кеңістігінің конфигурациясын /etc/netns/NAME/ астында құжаттайды. Процесті іске қосқанда, көмекші тіркеу атау кеңістігін жасайды және сол файлдарды әдеттегі жолдарының үстіне тіркейді, сондықтан процесс атау кеңістігіне тән көшірмені көреді. Бұл дәл осы іске қосқыштың ыңғайлылығы. Желілік атау кеңістігіне басқа жолмен, мысалы unshare немесе контейнер runtime арқылы кіру мұны автоматты түрде қайталамайды.

Мұндағы тұзақ — loopback шешушісі: 127.0.0.53 атау кеңістігінің өз loopbackін білдіреді, хосттың тірегін емес. Тек хост атау кеңістігінде тыңдайтын тірек жаңасында қызметке айналмайды.

Атау кеңістігі жете алатын шешушіні таңдаңыз

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

Өз шешушісі бар қолданбалар, мысалы DNS over HTTPS қолданатын қолданба, файлды мүлдем елемеуі мүмкін. Егер құралдың өз DNS параметрі болса, resolv.conf өзгерту оған әсер етпейді, ал атау кеңістігі ешқашан мәселе болмаған.

Файлды дұрыс жерге жазыңыз

/etc/netns/NAME/resolv.conf астында атау кеңістігіне тән файл жасаңыз және іске қосқыш оны ұсынсын. Оны ең аз деңгейде ұстаңыз: бір немесе екі қолжетімді сервер және тапсырмаға қажет іздеу домендері. Бір топ процеске арналған көріністі түзету үшін хосттың жасалған шешуші файлын өңдемеңіз, өйткені бұл машинадағы әрбір қолданбаны өзгертеді. Егер хост шешуші менеджерін пайдаланса, атау кеңістігінің жолын онымен күресу орнына сол менеджер арқылы конфигурациялаңыз.

Файл мазмұнын runbook ішінде жазып қойыңыз. Әйтпесе келесі адам хосттың шешушісін тексереді, жұмыс істейтін жауапты көреді және атау кеңістігі дұрыс деп қорытынды жасайды.

Бүкіл жолды қайта тексеріңіз

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

Файлды қабықша емес, процесс алатынын растаңыз. Интерактивті қабықшадан жұмыс істеп, қызметтен сәтсіз болатын іздеу — тіркеу контексті туралы табылым, және оны келесі оқиғаға дейін нөлден қайта ашудың орнына жазып қойған жөн.

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