Donar una adreça de resolutor a un client fixa on s'envien les consultes, no quina font veurà el resolutor. L'encaminament, el reenviament i la traducció tenen cadascun el seu torn entre els dos extrems. Un manual de procediment per a qüestions de font segueix la consulta salt a salt i anota què va veure realment cada observador. L'ordre importa, perquè una afirmació feta abans de l'observació només és una suposició amb millor format.

Anota la disposició abans de recollir proves

Quatre llocs poden dir-te alguna cosa sobre una font DNS, i no tots diuen el mateix. El nucli del client sap quina font faria servir, un reenviador sap què ha enviat cap amunt, un dispositiu que tradueix sap què ha reescrit, i el resolutor que rep sap què ha arribat. Anota quins d'aquests pots assolir realment abans de recollir res.

Observation pointWhat it can proveWhat it cannot proveHow to read it
client kernelwhich source address it would use for that resolveranything a device in between rewroteip route get against the resolver address
forwarderthat it sent an upstream query, and from which sourcewhat the client originally asked forits own log and its cache state
translating devicethat a source was rewritten, and to whatwhether the query was legitimateNAT policy and its counters
receiving resolverthe address that actually arrivedwhich client behind that address askeda scoped capture on port 53

Anota també la teva expectativa, incloent-hi el resolutor que creus que està en ús. Una ruta dividida pot enviar una consulta a un lloc completament diferent, i una memòria cau pot respondre sense cap intercanvi aigües amunt, així que una suposició que només es guarda al cap no sobreviurà a la primera sorpresa. Mantingues el disseny declarat i el camí observat en columnes separades d'una mateixa nota; quan els dos discrepin, has trobat la pregunta que val la pena perseguir.

Comprova quin procés va enviar realment la consulta

Comença pel client: anota l'adreça del resolutor, el nom consultat i l'hora, i després confirma quin procés l'ha enviada. La primera línia de sota anomena el procés que té el sòcol UDP, i aquesta és la comprovació que promet aquest encapçalament. Si aquest procés és un assistent del navegador o un entorn d'execució de contenidors en lloc del resolutor del sistema, la resta del rastre descriu un camí que ningú no ha demanat.

ss -tunp 'dport = :53'
dig @10.20.30.53 host.corp.example +noall +answer
ip route get 10.20.30.53

En un equip amb diverses interfícies, esbrina quina adreça d'origen tria el nucli per a aquesta destinació abans de mirar enlloc més. És l'últim punt on el camí és completament sota el teu control, i és el valor que compararàs amb el que informa el resolutor. Una discrepància és el senyal que alguna cosa entremig ha reescrit el paquet, o que s'han enviat dues consultes diferents.

Mantingues els noms de prova interns, perquè un nom intern enviat a un resolutor públic no demostra res sobre el camí intern i publica un nom que no calia publicar. Un navegador amb DNS segur activat no apareixerà gens en aquesta llista de sòcols, i aquesta absència és ella mateixa la resposta.

El reenviador fa una segona consulta, separada

Un reenviador converteix un intercanvi en dos. La petició descendent arriba, i llavors el reenviador envia la seva pròpia consulta aigües amunt des d'una adreça que tria. La seva configuració, no el client, decideix què veu el resolutor aigües amunt.

El manual de dnsmasq val la pena llegir-lo per aquest motiu: documenta com un reenviador tria servidors aigües amunt i lliga el seu costat d'escolta, i res en aquesta disposició no porta la font del client aigües amunt. Un registre de resolutor que mostra una adreça de passarel·la és, per tant, normal i no una prova d'error. L'absència és igual de fàcil de malinterpretar, perquè un encert de memòria cau no produeix cap consulta aigües amunt i sembla idèntic a una consulta que mai no va arribar. Llegeix la configuració del reenviador i l'estat de la seva memòria cau abans de treure qualsevol de les dues conclusions. Dues preguntes, dos llocs on mirar.

Llegeix la font al resolutor que rep

L'única observació que ho resol es pren al costat del servidor. Tot el que s'infereix de la llista d'interfícies del client continua sent una hipòtesi fins que el resolutor informa de què ha arribat realment.

tcpdump -ni any port 53 and host 10.20.30.53

Captura a l'equip del resolutor, mantingues la captura curta i limitada, i desa-la on la política ho permeti. Si la font observada és una adreça traduïda, la pregunta següent és quin dispositiu ha fet la traducció i si la seva política és la prevista. Una captura respon què ha arribat; no explica per què la política ho ha permès. Anomena l'observador i el salt a la nota, perquè una afirmació de privadesa sobre una passarel·la és una afirmació sobre aquest salt i no sobre tot el camí.

Escriu la troballa com un camí, no com una adreça

Anota el client, el resolutor, qualsevol reenviador, la font observada a cada salt i la política que el regeix. Aquest registre respon la majoria de preguntes futures sense una altra captura. Dibuixa'l com una cadena, perquè una llista d'adreces amaga quin salt va produir quina.

Adjunta la data, la versió del client i la revisió de la configuració al dibuix, perquè un lector posterior pugui dir si encara s'aplica. Separa la font de transport de tota la resta que processa el servei, perquè veure una adreça de passarel·la no diu res sobre què altre es conserva. La ubicació d'un resolutor tampoc no diu res sobre quin client ha preguntat. Mantenir aquestes afirmacions separades és el que fa la conclusió defensable en una revisió.

Articles relacionats