Жеке атау EC2 данасынан шешіледі, бірақ VPN арқылы қосылған ноутбуктен шешілмейді, ал аймақ консольде дұрыс көрінеді. Бірінші түйсік — жазбаны өңдеу, бірақ бұл ешқашан дерлік мәселе емес. Жазба біреуге жауап береді; тек сіздің ноутбугіңізге жауап бермейді. Екі шақырушы арасындағы айырма — олар қай resolver сұрайтыны және сол resolver-дің VPC-нің DNS көрінісіне қолдау көрсетілген жолы бар-жоғы.

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

Бірдеңені өзгерту алдында ақау пішінін оқыңыз

Үш нәтиже үш түрлі нәрсені білдіреді, ал бір сұрау оларды ажыратады: клиент шын мәнінде пайдаланатын resolver-ге қарсы атау үшін dig іске қосыңыз.

What you seeWhat it usually meansFirst thing to check
SERVFAIL, or a timeout after several secondsNo path to the resolver, or the resolver cannot reach AWSRoute to the endpoint and the security policy on port 53
NXDOMAIN from a resolver that did answerThe resolver replied, but the zone is not in its viewZone association or the forwarding rule for that namespace
A public address for an internal nameSplit DNS is not in effect for this clientWhich resolver the client is configured to use

Тайм-аут — бұл желі туралы мәлімдеме. NXDOMAIN — DNS көрінісі туралы мәлімдеме. Жария жауап — саясат туралы мәлімдеме. Тайм-аут кезінде аймақ жазбасын өңдеу істегі жалғыз пайдалы дәлелді лақтырып тастайды.

Неге VPC-дегі плюс екі мекенжай қашықтағы resolver болып саналмайды

CIDR плюс екі мекенжайы VPC ішіндегі ресурстарға арналған жергілікті қызмет. AWS жергілікті желілерден немесе басқа VPC-нің DNS серверлерінен сұрауларды тікелей сол мекенжайға қайта жіберуге қолдау көрсетілмейтінін және бұл тұрақсыз нәтижелер беруі мүмкін екенін құжаттайды.

Бұл эксперимент ешқашан жұмыс істеп тұрғандай көрінбейді дегенді білдірмейді. Бұл мінез-құлықты қолдау скриптіне салуға болатын келісім емес дегенді білдіреді. Қолдау көрсетілетін бағыт — кіріс Resolver endpoint: VPC ішіндегі, сіз бақылайтын желіден қолжетімді, AWS сыртынан келетін сұрауларды қабылдайтын мекенжай жұбы.

Жолды таза істен шығатын ретпен құрыңыз

Үш секіріс болуы керек және әрқайсысының өз істен шығу тәсілі бар.

VPN client -> approved DNS forwarder
forwarder -> forwarding rule for internal.example
forwarding rule -> Resolver inbound endpoint addresses

Қайта жіберушіге VPN арқылы endpoint мекенжайларына маршрут қажет, қайтару жолы да жұмыс істеуі керек. 53 портындағы дәстүрлі DNS үшін endpoint UDP және TCP арқылы жауап береді, сондықтан екі протоколға да рұқсат берілуі керек және екеуі де жолдағы кез келген күй тексерісінен өтуі керек.

Содан кейін DNS көрінісін бөлек тексеріңіз. Жеке орналастырылған аймақ тек онымен байланысты VPC-лерге ғана көрінеді немесе әдейі бөлісу келісімі арқылы көрінеді. Қолжетімді endpoint өз бетінше әрбір жеке аймақты өзінің шешу контекстінде шешілетін етпейді.

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

Екі жақтан тексеріңіз

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

Екеуі де істен шықса, endpoint-тегі қауіпсіздік саясатына және ол шын мәнінде көретін бастапқы мекенжайға қараңыз. NAT артындағы қайта жіберуші ноутбуктің VPN мекенжайының орнына NAT мекенжайын ұсынады, ал осы айырмашылықтың өзі сұрауды тастауға жеткілікті. Екеуі де сәтті болса да қолданба әлі де істен шықса, қолданба сіз тестілегеннен басқа resolver-ді пайдаланып жатқан болуы мүмкін.

Жария және жеке атау кеңістіктерін әдейі бөлек ұстаңыз. Split DNS — бұл сіз конфигурациялайтын саясат, бір іздеудің кездейсоқ деректер қайтаруының жанама әсері емес.

Мен не істемес едім

Бір іздеуді жұмыс істеткен NAT ережесін қосып, оны дизайн деп атамас едім.

Бір тест бір рет жазба қайтарды деп, барлық қашықтағы клиентті плюс екі мекенжайға бағыттамас едім. Және бір ғана қайта жіберушіге қатынас қажет болғанда, endpoint-тің қауіпсіздік саясатын бүкіл VPN пулына кеңейтпес едім. Егер ұйым VPC ішінде бекітілген қайта жіберушіні әлдеқашан ұстап тұрса, алдымен сол дизайнды оқыңыз, өйткені сіз қосатын екінші endpoint — ешкім құжаттамайтын сол.

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