Perché un’etichetta di paese DNS non dimostra una fuga VPN
Un test associa un indirizzo a un paese; dice poco sulla rotta. Leggi il resolver, la catena di inoltro e la politica prima di cambiare qualcosa.
Gli indirizzi dei resolver dall’aria straniera compaiono continuamente nei risultati dei test DNS, e la conclusione a cui si arriva è sempre la stessa: le query devono essere uscite dal tunnel. A volte è successo davvero. Più spesso il rapporto descrive quale servizio ricorsivo ha risposto e dove un database ritiene che si trovi quell’indirizzo, e questa è un’affermazione sull’infrastruttura, non sui tuoi pacchetti. Separare l’osservazione dall’inferenza richiede tre fatti: chi ha risposto, come ha viaggiato il nome e quale politica hai configurato davvero.
Leggi che cosa ha osservato davvero il test
La maggior parte delle pagine di test funziona allo stesso modo: chiede al client di risolvere un nome host univoco e poi guarda quale resolver lo ha recuperato, oppure restituisce semplicemente l’indirizzo del resolver che il client riporta. Questo identifica un servizio ricorsivo e, se la query portava informazioni sulla sottorete del client, una posizione di rete approssimativa. Non dimostra che la query abbia lasciato il dispositivo fuori dal tunnel, e di certo non dimostra che lo stesso percorso sia stato usato per ogni nome. Una singola osservazione di una ricerca viene generalizzata in un’affermazione su tutto il traffico.
Un test che mostra l’indirizzo del resolver è più utile di un badge di paese, perché l’indirizzo può essere confrontato con l’elenco dei resolver che il client ha effettivamente ricevuto.
Anycast e inoltro spiegano la maggior parte delle sorprese
I grandi resolver pubblici annunciano lo stesso indirizzo da molte località, e la rete instrada ogni query verso il sito più vicino in termini di routing. Un database di geolocalizzazione associa poi quell’indirizzo a un’unica località, che può essere un indirizzo di registrazione aziendale in un altro continente o un data center che non è quello che risponde. RFC 4786 tratta la pratica operativa dei servizi anycast e la difficoltà di associare un tale indirizzo a un unico luogo fisico. La mappa è una semplificazione di una decisione di routing, e semplifica nella direzione che produce risultati allarmanti.
L’inoltro aggiunge un secondo strato. Un resolver stub locale, un router o il resolver di un fornitore possono passare le query a un servizio a monte, e il nome che appare nel test riflette l’ultimo operatore di quella catena, non il primo. Le estensioni di sottorete del client possono rendere una risposta a monte adatta alla tua rete facendo al tempo stesso sembrare la posizione riportata un posto in cui non sei mai stato.
Un resolver configurato può quindi essere corretto e produrre comunque un risultato dall’aria straniera, e un resolver nel tuo stesso paese può essere quello sbagliato perché appartiene a una parte che non hai scelto.
Chi ha ricevuto il nome, e per quale rotta
Due domande rispondono alla parte pratica: quale server usa il client e se a quel server si arriva attraverso il tunnel. Confronta l’elenco dei resolver con l’indirizzo nel risultato del test prima di trarre conclusioni sul routing, poi verifica che la query verso quell’indirizzo esca dall’interfaccia del tunnel. Se i due indirizzi differiscono, la scoperta interessante è che qualcosa ha riscritto o aggirato il resolver previsto, e questo merita uno sguardo più attento del nome del paese.
resolvectl query example.com
resolvectl status | grep -A3 'DNS Servers'
dig +short TXT whoami.akamai.net
Il primo comando mostra quale server ha risposto per un nome, il secondo mostra l’elenco configurato e la sua portata, e il terzo riporta l’indirizzo del resolver come lo vede un servizio pubblico. Quando tutti e tre concordano, la politica fa ciò per cui è stata configurata, qualunque cosa dica l’etichetta di paese.
Confronta con la politica che hai scelto
Una VPN che impone un resolver, un browser configurato per usare il proprio DNS cifrato e un sistema operativo che preferisce le impostazioni di una sola interfaccia possono essere corretti singolarmente mentre si contraddicono nel complesso. I browser moderni possono inviare query tramite un trasporto cifrato a un fornitore scelto nel browser, il che aggira deliberatamente l’elenco dei resolver di sistema. Non è una fuga nel senso di un tunnel rotto; è una politica scelta altrove, e trovare dove è stata scelta è il vero compito.
I dispositivi di lavoro aggiungono regole per dominio: i nomi interni devono andare al resolver dell’organizzazione mentre tutto il resto segue il valore predefinito. Sostituire questa disposizione perché una pagina di test ha mostrato un paese inatteso è il modo in cui i nomi interni smettono di risolversi per un intero team.
Mantieni i test stretti e sicuri
Interrogare un servizio di test pubblico su un nome host interno rivela il nome a una parte che non ha alcun interesse a vederlo, e la risposta non ti dice nulla che la lettura locale dell’elenco dei resolver non direbbe.
Usa invece nomi che rivelano l’infrastruttura, registra l’indirizzo del resolver, la portata e l’interfaccia usata, e confronta quel registro con l’intento documentato. L’etichetta sulla mappa è un contesto per una conversazione, non un risultato di superato o fallito, e trattarla come un verdetto produce cambiamenti di configurazione al posto della diagnosi.