Неге жеке Route 53 аймағы жалпыға ортақ атаулар үшін NXDOMAIN қайтарады
Ата-аналық атаумен сәйкес келетін жеке Route 53 аймағы жалпыға ортақ жазбаларға NXDOMAIN деп жауап береді: қай аймақ жауап бергенін қарап, содан кейін бөлінген көріністі немесе ішкі доменді таңдаңыз.
Жеке Route 53 аймақтары жалпыға ортақ жазбамен бірігудің орнына атаудың жауабын алмастырады, және бұл адамдарды ең нашар сәтте таңқалдырады. Мына атауға бір ішкі жазба қосыңыз: api.example.net үшін мына жеке аймақта: example.net, оны VPC-мен байланыстырыңыз, және сол ата-ана астындағы барлық басқа атаулар енді тек жеке аймақтан жауап алады. Кеше www.example.net мекенжайына жете алған клиент бүгін теріс жауап алады. Төмендегі шолу сол сәтсіз сұраудан басталып, оған жауап берген аймаққа қарай сыртқа қозғалады.
Консольден емес, сұраудан бастаңыз
Ақауды оны хабарлаған клиентте қайталаңыз және нақты атау мен жазба түрін жазып алыңыз. A түрі үшін сәтсіз атау AAAA түрі үшін әлі шешілуі мүмкін, ал кэштегі атауды қайталап көретін браузер қайсысы бұзылғанын жасырады. Сұрауды екі рет орындаңыз: бір рет клиент шынымен қолданатын resolver арқылы, бір рет оны айналып өтетін трейсингпен.
dig +short api.example.net
dig www.example.net +noall +comments +authority
resolvectl query www.example.net
Екінші команда маңызды. Оның күй жолы мен authority бөлімі жауапты жасаған аймақты атайды, сондықтан жеке аймақтан келген теріс жауапты тайм-ауттан, бұғатталған порттан немесе сұрауды ешқашан алмаған resolver-ден ажырата аласыз. resolvectl қай жоғарғы серверден сұралғанын көрсетеді, және бұл көбіне VPN жіберді деп ойлаған resolver емес.
Егер трейсингті сұрау жалпыға ортақ мекенжайды қайтарса, ал қарапайым сұрау қайтармаса, жалпыға ортақ жазба бүтін және жеке көрініс жауап береді. Осы бір салыстыру осы беттің қалған бөлігінің қай жартысы сізге қатысты екенін анықтайды.
Қай аймақ жауап бергенін оқыңыз
Мынаны қамтитын жауап: NXDOMAIN және authority бөлімінде жеке аймақтың SOA-сы болса, бұл сол аймақтың түпкілікті жауабы, іздеу сәтсіздігі емес. Route 53 Resolver жеке хостингтік аймақты атау сәйкес келгендіктен таңдады, содан кейін сұралған түрдегі жазбаны таппады, ал құжатталған мінез-құлық сұрақты жалпыға ортақ DNS-ке берудің орнына теріс жауапты қайтару.
Таңдау нақтылыққа сүйенеді. Бірнеше жеке атау кеңістігі қабаттасқанда ең нақты сәйкес келетін аймақ жеңеді, ал кеңірек жеке ата-ана таңдалған еншілес аймақта жоқ атау үшін екінші мүмкіндік алмайды. Бейнелеу ережелері тағы бір қабат қосады, өйткені доменге тән Resolver ережесі жеке хостингтік аймақтың байланысынан басым болуы мүмкін. Аймақ бос деп қорытынды жасамас бұрын байланыстар мен ережелерді тізімдеңіз.
aws route53 list-hosted-zones-by-name --dns-name example.net.
aws route53 list-resource-record-sets --hosted-zone-id Z0EXAMPLEID --query "ResourceRecordSets[?Type=='A'].[Name,ResourceRecords[0].Value]"
Екі командаға да аймаққа иелік ететін аккаунттың тіркелгі деректері қажет, ал екіншісіне біріншіден алынған аймақ ID қажет. Оны өз ID-ңызбен ауыстырыңыз; жоғарыдағы орынтолтырғыш әдейі нақты емес.
Неге жеке аймақ жеңеді
Аймақты VPC үшін көрінетін ететін байланыс, және сол VPC ішіндегі resolver оны қолданады. Клиенттің трафигі келетін VPC-мен байланыспаған жеке аймақтың мүлде әсері жоқ, ал дұрыс емес VPC-мен байланыс дұрыс емес популяцияға жеке жауап береді. Жазбаларды өңдеу алдында байланыстар тізімін тексеріңіз, өйткені аймақ дұрыс болып, бәрібір көрінбейтін болуы мүмкін.
Қабаттасатын атау кеңістіктері шатасудың екінші көзі. example.net үшін жеке аймақ және api.example.net үшін жеке аймақ екеуі де API сұрауына сәйкес келеді, және нақтырақ жауап береді. Бұл тар ішкі атау кеңістігін қалағанда пайдалы, ал тар аймақта кеңірек аймақта бар жазба жетіспегенде қауіпті. Жеке хостингтік аймақтар туралы ойлар Route 53 құжаттамасында төмен түсу мінез-құлқын да, ережелердің басымдығын да сипаттайды, және екінші қабаттас аймақты қоспас бұрын оларды оқыған жөн.
Осының ешқайсысы жалпыға ортақ аймақты өзгертпейді. Жалпыға ортақ resolver-лер жалпыға ортақ жазбаларға әлі де дұрыс жауап береді, сондықтан VPC сыртындағылардың бәріне бұл ақау клиент мәселесі болып көрінеді.
Жазбаларды қоспас бұрын атау кеңістігін таңдаңыз
Егер жеке атаулар тек ішкі қызметтердің жаңа тобына қажет болса, оған арнайы жеке ішкі домен беріңіз және жалпыға ортақ ата-ананы тыныш қалдырыңыз. Мынадай атау: internal.example.net мынаны көлеңкелей алмайды: www.example.net, ал жоқ жазбаның әсер ету радиусы осы мақсат үшін ойлап тапқан атаулармен шектеледі. Құны — бұрыннан бар URL-дер мен сертификаттар жаңа атауға сәйкес келмеуі мүмкін.
Жалпыға ортақ және жеке пайдаланушылар бірдей хост атауын сақтауы керек болса, бөлінген көріністі DNS — қолдау көрсетілетін жоба, және ол әр көріністегі жазбаларды анық түрде ұстауды талап етеді. Бір жазбасы бар кең жеке аймақ сол аймақ астындағы жалпыға ортақ тәуелділіктерді сақтамайды; ол оларды бір жазбасы бар аймақпен алмастырады.
Клиент популяциясын жеке көрініске бағыттамас бұрын қолданба шынымен шақыратын атауларды түгендеңіз. Кіру хосттары, статикалық ресурстар хосттары, қайта бағыттау мақсаттары және API шеткі нүктелері бірінші бұзылады, және олар әдетте бірнеше топтың жазбаларына шашыраған.
Resolver жолын, содан кейін маршрутты қадағалаңыз
Ноутбук жеке көріністі тек оның сұраулары байланысы бар resolver-ге жеткенде ғана көреді. VPN серверіндегі hosts файлын өңдеу қосылған клиенттерге ештеңе жарияламайды, ал жалпыға ортақ resolver-мен конфигурацияланған клиент туннель тұрғанша жалпыға ортақ жауаптарды ала береді. Клиент алған resolver мекенжайын растаңыз, содан кейін сұрауды серверден емес, клиенттен қайталаңыз.
Атау шешілгеннен кейін қайтарылған мекенжайға дейінгі жолды бөлек қадам ретінде тексеріңіз, мысалы ip route get арқылы сұрау қайтарған мекенжайға қарсы. Мекенжайға маршрутсыз дұрыс жеке жауап — маршруттау мәселесі, ал жазба жоқ деген жауап — DNS көрінісінің мәселесі; оларды бір мәселе деп қарау тұрақсыз түзетулерге әкеледі. Қызметтің TLS хост атауы мен сертификат тексерулерін өзгеріссіз қалдырыңыз, өйткені жеке мекенжай байланыстың қайда баратынын өзгертеді, ал қай сертификаттың жарамды екеніне ештеңе өзгертпейді.
Өзгеріс жазбасында аймақты, байланысты, resolver-ді және тексерген атауларыңызды жазып, аяқтаңыз. Сонда келесі жазба қосатын адам сол клиент популяциясы үшін қай атау кеңістігінің өкілетті екенін біледі.