Dar un enderezo de resolutor a un cliente fixa onde se envían as consultas, non que fonte verá o resolutor. O encamiñamento, o reenvío e a tradución teñen cada un a súa quenda entre os dous extremos. Un manual de procedemento para cuestións de fonte segue a consulta salto a salto e anota que viu realmente cada observador. A orde importa, porque unha afirmación feita antes da observación só é unha suposición con mellor formato.

Anota a disposición antes de recoller probas

Catro lugares poden dicirche algo sobre unha fonte DNS, e non todos din o mesmo. O núcleo do cliente sabe que fonte usaría, un reenviador sabe que enviou cara arriba, un dispositivo que traduce sabe que reescribiu, e o resolutor que recibe sabe que chegou. Anota cales deses podes acadar realmente antes de recoller nada.

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 tamén a túa expectativa, incluído o resolutor que cres que está en uso. Unha ruta dividida pode enviar unha consulta a un lugar completamente distinto, e unha caché pode responder sen ningún intercambio cara arriba, así que unha suposición que só se garda na memoria non sobrevivirá á primeira sorpresa. Mantén o deseño declarado e o camiño observado en columnas separadas da mesma nota; cando os dous discrepen, atopaches a pregunta que paga a pena perseguir.

Comproba que proceso enviou realmente a consulta

Comeza polo cliente: anota o enderezo do resolutor, o nome consultado e a hora, e despois confirma que proceso a enviou. A primeira liña de abaixo nomea o proceso que ten o socket UDP, e esa é a comprobación que promete este epígrafe. Se ese proceso é un asistente do navegador ou un contorno de execución de contedores en lugar do resolutor do sistema, o resto do rastro describe un camiño que ninguén pediu.

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

Nun equipo con varias interfaces, averigua que enderezo de orixe escolle o núcleo para ese destino antes de mirar noutro sitio. É o último punto onde o camiño está completamente baixo o teu control, e é o valor que compararás co que informa o resolutor. Unha discrepancia é o sinal de que algo entremedias reescribiu o paquete, ou de que se enviaron dúas consultas diferentes.

Mantén os nomes de proba internos, porque un nome interno enviado a un resolutor público non demostra nada sobre o camiño interno e publica un nome que non necesitabas publicar. Un navegador con DNS seguro activado non aparecerá nada nesa lista de sockets, e esa ausencia é ela mesma a resposta.

O reenviador fai unha segunda consulta, separada

Un reenviador converte un intercambio en dous. A petición descendente chega, e entón o reenviador envía a súa propia consulta cara arriba desde un enderezo que escolle. A súa configuración, non o cliente, decide que ve o resolutor cara arriba.

O manual de dnsmasq paga a pena lelo por ese motivo: documenta como un reenviador escolle servidores cara arriba e liga o seu lado de escoita, e nada nesa disposición leva a fonte do cliente cara arriba. Un rexistro de resolutor que mostra un enderezo de pasarela é, xa que logo, normal e non unha proba de erro. A ausencia é igual de doada de malinterpretar, porque un acerto de caché non produce ningunha consulta cara arriba e parece idéntico a unha consulta que nunca chegou. Le a configuración do reenviador e o estado da súa caché antes de sacar calquera das dúas conclusións. Dúas preguntas, dous lugares onde mirar.

Le a fonte no resolutor que recibe

A única observación que resolve isto tómase no lado do servidor. Todo o que se infire da lista de interfaces do cliente segue sendo unha hipótese ata que o resolutor informe do que chegou realmente.

tcpdump -ni any port 53 and host 10.20.30.53

Captura no equipo do resolutor, mantén a captura curta e limitada, e garda a onde a política o permita. Se a fonte observada é un enderezo traducido, a pregunta seguinte é que dispositivo fixo a tradución e se a súa política é a prevista. Unha captura responde que chegou; non explica por que a política o permitiu. Nomea o observador e o salto na nota, porque unha afirmación de privacidade sobre unha pasarela é unha afirmación sobre ese salto e non sobre todo o camiño.

Escribe o achado como un camiño, non como un enderezo

Anota o cliente, o resolutor, calquera reenviador, a fonte observada en cada salto e a política que o rexe. Ese rexistro responde a maioría das preguntas futuras sen outra captura. Dibúxao como unha cadea, porque unha lista de enderezos agocha que salto produciu cal.

Engade a data, a versión do cliente e a revisión da configuración ao debuxo, para que un lector posterior poida dicir se aínda se aplica. Separa a fonte de transporte de todo o demais que procesa o servizo, porque ver un enderezo de pasarela non di nada sobre que máis se conserva. A ubicación dun resolutor tampouco di nada sobre que cliente preguntou. Manter esas afirmacións separadas é o que fai a conclusión defendible nunha revisión.

Artigos relacionados