Numele intern se rezolvă, iar același server răspunde unui nume extern cu un refuz privind recursiunea. Această combinație nu este o contradicție. Publicarea propriilor zone și rezolvarea întregului internet sunt două servicii separate pe care un server le poate oferi, iar el îl poate face pe primul fără al doilea. Tratează refuzul ca pe o declarație de politică, apoi verifică dacă politica se potrivește cu proiectarea.

Un refuz și un timeout sunt răspunsuri diferite

Notează numele, tipul interogării, serverul care răspunde, starea și înregistrările returnate. Un avertisment de recursiune nu invalidează automat un răspuns autoritativ care a venit cu el. Scrie starea înainte de a o interpreta. O stare reconstruită din memorie o oră mai târziu este un alt fapt.

Antetul DNS poartă o cerere de recursiune și o indicație dacă serverul o oferă, iar specificația protocolului ține acele steaguri separat de datele răspunsului. De aceea un răspuns poate fi util și totuși poate purta o reclamație. Un timeout, un răspuns negativ și un refuz sunt trei rezultate diferite. Fiecare indică un alt strat, și doar refuzul este serverul care îți vorbește despre politică.

Citește mai întâi codul de stare, apoi decide dacă avertismentul contează pentru această interogare. Un răspuns autoritativ care numește zona este utilizabil chiar și când bitul recursiv este refuzat. Un refuz fără răspuns este un rezultat de politică, nu o cale de pachete ruptă.

Ce a înregistrat resolver-ul ca sursă a ta

Clientul poate veni dintr-un pool de adrese din afara intervalelor recursive permise ale serverului, sau o traducere îl poate face să pară un gateway. Adresa adaptorului clientului nu este o dovadă despre ce a primit resolver-ul. Întreabă administratorul serverului despre sursa observată în loc să o deduci din partea ta a căii. Cele două adrese pot diferi la fiecare hop care traduce.

Interoghează același nume de la client și de la un host în care serverul are deja încredere. Diferența dintre cele două răspunsuri este condiția de sursă și este mai utilă decât oricare răspuns separat.

dig +short host.corp.example
dig +short example.com

Dacă implementarea vrea recursiune pentru clienții VPN, administratorul autorizează intervalul de surse potrivit prin controalele proprii ale serverului. Deschiderea recursiunii către fiecare rețea ca să treacă un test este o schimbare mult mai mare decât cea testată. Scrie intervalul autorizat lângă regulă, pentru că următorul recenzent va întreba căror surse trebuia să servească politica. Un interval de surse fără proprietar este felul în care un test temporar devine permanent.

DNS-ul divizat este o proiectare, nu o defecțiune

Unele implementări trimit doar domeniile de lucru la resolver-ul privat și tot restul la un alt resolver aprobat. Aceasta este o proiectare de rutare a interogărilor și nu este dovada că serverul privat are nevoie de o politică mai lejeră. În acea proiectare, un nume extern care eșuează prin resolver-ul privat este rezultatul dorit, nu o defecțiune. Refuzul este proiectarea care funcționează, nu un simptom de înăbușit.

Un resolver public poate restabili navigarea în timp ce rupe numele interne sau trimite interogări private unde nu ar trebui să ajungă. Scrie comportamentul dorit înainte de a schimba orice adresă de resolver.

Verifică politica cu două interogări

După corectarea dorită, interoghează un nume privat permis și un nume extern de la clientul real. Ce revine ar trebui să fie ce promite politica, nu doar o diagnosticare mai silențioasă. Notează serverul care răspunde la fiecare răspuns, apoi compară perechea cu politica. Comparația este testul, iar o singură căutare reușită nu este.

resolvectl query host.corp.example
resolvectl query example.com

Dacă numele privat funcționează și numele public este refuzat, politica face ce spune. Dacă și numele privat eșuează, problema este zona, ruta sau autorizarea sursei, iar recursiunea este o distragere. Ambele rezultate sunt utile, și fiecare elimină jumătate din ipotezele rămase.

Citește refuzul ca dovadă

Un refuz este un răspuns. Înseamnă că serverul a primit interogarea și a refuzat să facă munca cerută, ceea ce diferă de un pachet care nu a ajuns niciodată. Această distincție este întregul diagnostic. Înregistreaz-o ca răspuns, nu ca eșec de conectivitate.

Această distincție îți spune unde să te uiți: în jurnalele serverului, în politica lui de acces și în sursa pe care a înregistrat-o. O schimbare de firewall nu poate repara un refuz de politică, iar o schimbare de politică nu poate repara o rută lipsă. Ține cele două ipoteze separate până când una dintre ele are dovezi.

Scrie rezultatul și proprietarul politicii în tichet, ca următoarea persoană să înceapă de la decizie și nu de la avertisment. Numește intervalul de surse autorizat și cele două nume pe care le-ai testat. Un tichet cu aceste trei fapte poate fi rulat din nou; unul care spune "recursiunea este ruptă" nu poate.

Articole similare