Частно име се разрешава от EC2 инстанция, но не от лаптоп, свързан през VPN, а зоната изглежда правилна в конзолата. Инстинктът е да редактирате записа, което почти никога не е проблемът. Записът отговаря на някого; просто не отговаря на вашия лаптоп. Разликата между двата викащи е кой resolver питат и дали този resolver има поддържан път към DNS изгледа във VPC.

Започвам с доказването, че записът съществува, и прекарвам останалото време по пътя на заявката. Това са отделни системи и се провалят по различен начин.

Прочетете формата на отказа, преди да промените каквото и да е

Три изхода означават три различни неща, а една заявка ги различава: изпълнете dig за името срещу resolver-а, който клиентът наистина използва.

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 документира, че препращането на заявки от локални мрежи или от DNS сървърите на друг VPC директно към този адрес не се поддържа и може да дава нестабилни резултати.

Това не означава, че експеримент никога не изглежда да работи. Означава, че поведението не е договор, който може да се сложи в скрипт за поддръжка. Поддържаната посока е входящ Resolver endpoint: двойка адреси във вашия VPC, достъпна от мрежата, която контролирате, която приема заявки, идващи отвън AWS.

Изградете пътя в реда, в който се проваля чисто

Трябва да съществуват три скока и всеки има свой начин да се провали.

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

Препращачът се нуждае от маршрут към адресите на endpoint-а през VPN, а обратният път също трябва да работи. За класически DNS на порт 53 endpoint-ът отговаря през UDP и TCP, затова и двата протокола трябва да са разрешени и двата трябва да оцелеят при всяка проверка на състоянието по пътя.

След това проверете DNS изгледа отделно. Частна хоствана зона се вижда само от VPC-тата, с които е свързана, или чрез умишлено споразумение за споделяне. Достъпният endpoint сам по себе си не прави всяка частна зона разрешима в нейния контекст на разрешаване.

Изходящ endpoint обслужва противоположната посока и няма да отговори на заявка, идваща от вашия лаптоп.

Проверете от двата края

Питайте от клиента към препращача, после от препращача към endpoint-а. Ако клиентът се провали, докато препращачът успява, разликата е между тези два.

Ако и двата се провалят, погледнете политиката за сигурност на endpoint-а и изходния адрес, който той наистина вижда. Препращач зад NAT представя NAT адреса вместо VPN адреса на лаптопа и само тази разлика е достатъчна, за да отхвърли заявката. Ако и двата успеят, но приложението продължава да се проваля, възможно е приложението да използва друг resolver от този, който сте тествали.

Дръжте публичните и частните пространства от имена умишлено разделени. Split DNS е политика, която конфигурирате, а не страничен ефект от това, че едно търсене случайно връща данни.

Какво не бих направил

Не бих добавил NAT правило, което направи едно търсене да работи, и не бих го нарекъл дизайн.

Не бих насочил всеки отдалечен клиент към адреса плюс две само защото един тест веднъж върна запис. И не бих разширил политиката за сигурност на endpoint-а към целия VPN пул, когато достъп е нужен само на един препращач. Ако организацията вече поддържа одобрен препращач във VPC, прочетете първо този дизайн, защото вторият endpoint, който добавите, е този, който никой не документира.

Подобни статии