Privátní DNS funguje ve VPC, ale ne přes VPN
Privátní název, který se překládá v EC2, ale ne přes VPN, je problém cesty resolveru. Přečtěte si podobu selhání, než upravíte záznam zóny.
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 see | What it usually means | First thing to check |
|---|---|---|
| SERVFAIL, or a timeout after several seconds | No path to the resolver, or the resolver cannot reach AWS | Route to the endpoint and the security policy on port 53 |
| NXDOMAIN from a resolver that did answer | The resolver replied, but the zone is not in its view | Zone association or the forwarding rule for that namespace |
| A public address for an internal name | Split DNS is not in effect for this client | Which 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 addressesPř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.