Privátní název se překládá z instance EC2, ale ne z notebooku připojeného přes VPN, a zóna vypadá v konzoli správně. Instinkt je upravit záznam, což téměř nikdy není problém. Záznam někomu odpovídá; jen neodpovídá vašemu notebooku. Co se mezi oběma volajícími liší, je to, který resolver se ptají, a zda ten resolver má podporovanou cestu do pohledu DNS ve VPC.

Začínám tím, že doložím existenci záznamu, a zbytek času věnuji cestě dotazu. Jsou to oddělené systémy a selhávají různými způsoby.

Přečtěte si podobu selhání, než cokoli změníte

Tři výsledky znamenají tři různé věci a jeden dotaz je rozliší: spusťte dig pro název proti resolveru, který klient skutečně používá.

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

Časový limit je tvrzení o síti. NXDOMAIN je tvrzení o pohledu DNS. Veřejná odpověď je tvrzení o politice. Úprava záznamu zóny, když běží časový limit, zahazuje jediný užitečný důkaz v případu.

Proč adresa plus dva ve VPC není vzdálený resolver

Adresa CIDR plus dva je lokální služba pro prostředky uvnitř VPC. AWS dokumentuje, že přeposílání dotazů z lokálních sítí nebo z DNS serverů jiného VPC přímo na tuto adresu není podporováno a může dávat nestabilní výsledky.

To neznamená, že experiment nikdy nevypadá, že funguje. Znamená to, že chování není smlouva, kterou lze vložit do skriptu podpory. Podporovaný směr je příchozí koncový bod Resolver: pár adres uvnitř vašeho VPC, dosažitelný ze sítě, kterou ovládáte, který přijímá dotazy přicházející zvenčí AWS.

Postavte cestu v pořadí, ve kterém selhává čistě

Musí existovat tři skoky a každý má svůj vlastní způsob selhání.

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

Přeposílač potřebuje trasu k adresám koncového bodu přes VPN a zpětná cesta také musí fungovat. Pro klasický DNS na portu 53 koncový bod odpovídá přes UDP a TCP, takže oba protokoly musí být povoleny a oba musí přežít jakoukoli stavovou inspekci cestou.

Potom zkontrolujte pohled DNS zvlášť. Privátní hostovaná zóna je viditelná jen pro VPC, se kterými je propojená, nebo prostřednictvím záměrné dohody o sdílení. Dosažitelný koncový bod sám o sobě nečiní každou privátní zónu přeložitelnou v jejím kontextu překladu.

Odchozí koncový bod slouží opačnému směru a neodpoví na dotaz přicházející z vašeho notebooku.

Ověřte z obou stran

Dotazujte se z klienta na přeposílač a potom z přeposílače na koncový bod. Pokud klient selže a přeposílač uspěje, mezera je mezi těmi dvěma.

Pokud selžou oba, podívejte se na bezpečnostní politiku koncového bodu a na zdrojovou adresu, kterou skutečně vidí. Přeposílač za NAT představuje adresu NAT místo adresy VPN notebooku a samotný tento rozdíl stačí k tomu, aby dotaz propadl. Pokud oba uspějí, ale aplikace stále selhává, může aplikace používat jiný resolver, než který jste testovali.

Držte veřejné a privátní jmenné prostory záměrně oddělené. Split DNS je politika, kterou konfigurujete, ne vedlejší efekt toho, že jeden dotaz náhodou vrátí data.

Co bych nedělal

Nepřidal bych pravidlo NAT, které rozjelo jediný dotaz, a nenazval bych to návrhem.

Nesměroval bych všechny vzdálené klienty na adresu plus dva jen proto, že jeden test jednou vrátil záznam. A nerozšířil bych bezpečnostní politiku koncového bodu na celý fond VPN, když přístup potřebuje jediný přeposílač. Pokud organizace už provozuje schválený přeposílač uvnitř VPC, přečtěte si nejdřív ten návrh, protože druhý koncový bod, který přidáte, je ten, který nikdo nedokumentuje.

Související články