Cerchi la zona aziendale nella configurazione dnsmasq del client, non la trovi e concludi che la VPN non ha inviato il suo dominio. Ciò che è stato inviato è un suggerimento di routing, non una zona. Il client registra il dominio e il resolver che deve rispondere per esso, e il backend gestito lo trasforma in inoltro condizionale. Cercare nel posto sbagliato produce una diagnosi sicura e del tutto falsa.

Ciò che il client ha accettato non è ciò che il gateway ha offerto

Un gateway può offrire un resolver, un dominio e la rotta necessaria per raggiungere quel resolver, e il client può accettare tutti e tre o nessuno. Un profilo importato, uno script ausiliario o una policy che ignora le opzioni inviate possono lasciare vuoto l'insieme accettato mentre il lato server sembra corretto. Parti dallo stato registrato del client e non dalla configurazione del server, perché quello stato è ciò che il resolver riceve davvero. Se manca il dominio accettato, nulla più a valle avrà importanza. Controlla le proprietà DNS della connessione prima di ispezionare qualsiasi cache.

Questa distinzione spiega la maggior parte delle segnalazioni di un dominio che non è mai arrivato. È stato offerto, e non è stato applicato.

Due tipi di voce di dominio

Una connessione può portare domini di ricerca ordinari e domini solo di routing, e il secondo tipo inizia con una tilde. Un dominio di ricerca instrada le query e consente di espandere i nomi brevi, il che è comodo su una workstation e sorprendente su un server. Un dominio solo di routing indica che le query per quel suffisso devono andare a server specifici senza cambiare il modo in cui si risolvono i nomi brevi. Scrivere lo stesso dominio in entrambi i modi non è ridondanza, perché le due voci svolgono compiti diversi.

Per uno spazio dei nomi privato di solito vuoi la forma solo di routing. Mantiene il suffisso aziendale puntato al resolver aziendale e lascia in pace tutto il resto.

localhost in resolv.conf non è un bug

Quando si usa un resolver locale di cache, il file di sistema punta all'indirizzo di loopback e a nient'altro. Quella voce identifica l'ascoltatore locale, non i server upstream che il gestore gli ha consegnato. L'indirizzo aziendale sarà legittimamente assente dal file.

Sostituire quella voce con un resolver pubblico è la correzione errata classica. Ripristina la risoluzione pubblica dei nomi e scarta la policy condizionale nella stessa modifica.

Non confondere i backend

Un'istanza dnsmasq gestita e un resolver di sistema sono programmi diversi con configurazione diversa e viste di stato diverse. Un comando di stato per uno non dice nulla di utile sull'altro.

Determina quale backend il gestore è configurato a usare, poi leggi la configurazione generata di quel backend invece di un file esteso all'intera distribuzione che esiste per caso. Il gestore scrive la propria configurazione d'istanza e supporta opzioni personalizzate per quell'istanza, quindi modificare un file globale non correlato non cambia nulla e sembra una modifica senza effetto. Avviare un secondo demone sulla porta 53 è peggio che inutile, perché ora due programmi non concordano su chi possiede la porta. Stabilisci prima il proprietario, poi modifica dove quel proprietario legge.

Verifica lo spazio dei nomi, non solo la risposta

Interroga un nome privato consentito e un nome di controllo pubblico attraverso il percorso normale dell'applicazione. Una query diretta al server aziendale dimostra che il record esiste; non dimostra che il client abbia scelto quel server. La seconda query è quella che verifica la policy.

Poi ripeti dopo una riconnessione e dopo una disconnessione. L'associazione dovrebbe seguire il ciclo di vita della connessione, e i nomi privati dovrebbero smettere di risolversi quando il tunnel non c'è, invece di ricadere su un resolver pubblico che risponde allo stesso suffisso. Se ci ricadono, hai trovato una fuga, che è un difetto diverso da una ricerca rotta. Annota quale backend era in esecuzione, quali domini sono stati applicati e cosa ha restituito ogni query.

Articoli correlati