„DNS je rozbité“ je závěr a není to závěr, se kterým by pomocník mohl něco dělat. Užitečná část zprávy je podoba selhání: které jméno, přes který resolver, s jakou odpovědí. Tři podrobnosti promění stížnost v něco reprodukovatelného a všechny tři lze bezpečně sdílet, jakmile se soukromé části přejmenují. Následuje minimum, které zpráva o DNS přes VPN potřebuje, než může někdo pomoci.

Kategorie jména, ne rozsudek

Začněte samotným jménem a zařaďte ho: veřejné, interní, krátké, plně kvalifikované nebo obsluhované jedním konkrétním sufixem. Interní jméno, které selhává, zatímco veřejná jména se překládají, ukazuje na volbu resolveru, nikoli na dostupnost. Když selhávají všechna jména, ukazuje to na cestu k resolveru, což je jiné vyšetřování s jinými důkazy. Kategorie nese diagnózu a přesný řetězec lze skrýt.

Řekněte, zda selhání vyžaduje zvednutý tunel, nebo nastává po jeho odpojení. Jméno, které se láme jen při aktivní VPN, ukazuje na konfiguraci pro jednotlivé spoje, zatímco to, které se láme po odpojení, ukazuje na zbytkový stav. Zprávy to obvykle vynechávají a pak se diví, proč první návrh nepomáhá.

Zaznamenejte cestu k resolveru

Dotaz odeslaný na výslovně zvolený server a běžné vyhledání aplikace jsou různé experimenty. Uveďte, který z nich selhání způsobil, protože ruční dotaz na funkční server dokazuje jen to, že server funguje. Níže uvedené příkazy oddělují systémovou cestu od přímého dotazu.

resolvectl status --no-pager
getent hosts host.internal
dig +short host.internal @10.20.30.53

Výstup stavu uvádí servery pro jednotlivá spojení a směrovací domény, což je kde se rozhoduje o split DNS. Volání getent jde stejnou cestou jako aplikace, včetně pořadí nsswitch. Přímý dotaz obojí obchází a testuje jeden server izolovaně. Uveďte, který ze tří selhal a který uspěl, a čtenář už nemusí cestu hádat.

Uveďte kontrolované srovnání

Změňte jednu proměnnou a řekněte, co se změnilo. Veřejná jména se překládají, zatímco interní selhávají — to je problém volby; každé jméno vyprší — to je problém cesty; a soukromé jméno, které se přeloží na veřejnou adresu, je únik do špatného resolveru. Dvě z těch tří nemají nic společného s tím, zda je tunel zvednutý. Zpráva, která tvrdí, že všechny dotazy jsou rozbité, obvykle obsahuje srovnání, které se nikdy neprovedlo.

Oddělte překlad od doručení. Když se jméno přeloží a stránka přesto selhává, fáze DNS uspěla a zpráva by to měla uvést, protože dalším krokem je trasa nebo listener, nikoli resolver. Toto jediné rozlišení ušetří celé kolo otázek častěji než jakýkoli výňatek z logu.

Skryjte jmenný prostor, zachovejte vztahy

Interní jména lze nahradit, pokud náhrady zachovají strukturu. Přiřaďte každému odlišnému serveru a sufixu stabilní označení a tuto mapu držte mimo sdílenou kopii. Nahrazení každého interního hostitele stejným zástupným znakem ničí právě ten důkaz, který zpráva potřebuje, protože čtenář už nevidí, že jeden sufix se přeložil a jiný ne. Stejné pravidlo platí pro adresy: zachovejte vztahy prefixů a změňte bity hostitele, pokud to politika vyžaduje.

Pošlete záznam ověřeným kanálem a vynechejte to, co diagnóza nikdy nepotřebuje. Hesla, soukromé klíče a nesouvisející názvy firem nejsou součástí dotazu na DNS. Čtenář potřebuje kategorii selhání, cestu k resolveru, přesnou chybu a to jedno srovnání, které jste provedli.

Související články