Squid Split DNS: instradare i domini privati tramite il resolver giusto
Instradate deliberatamente gli spazi dei nomi DNS privati e pubblici invece di dare a Squid un elenco ambiguo di resolver.
Mettere un resolver interno per primo e un resolver pubblico per secondo non dice a Squid quali nomi appartengono a quale spazio dei nomi.
In Squid 6 e 7, dns_nameservers sostituisce il consueto elenco di resolver con indirizzi di server. La sua sintassi non prevede mappature per dominio. Anche una risposta negativa valida è diversa da un resolver irraggiungibile, quindi le alternative non sono un modo affidabile per cercare in spazi dei nomi incompatibili.
Instradare le query per dominio
Un forwarder DNS locale può esprimere la politica mancante. In una configurazione dnsmasq esistente, un suffisso privato può essere instradato così:
server=/internal.example/192.0.2.53
Sostituite il dominio e l'indirizzo. Configurate un upstream predefinito approvato per gli altri nomi, un listener adatto e restrizioni di accesso. Poi puntate Squid a quel resolver con la configurazione supportata dalla versione installata.
In alternativa, usate un servizio DNS aziendale che risolva correttamente entrambi gli spazi dei nomi. Evitate un fallback pubblico che esponga nomi privati senza poter rispondere.
Se un proxy padre esegue la ricerca della destinazione, quel salto ha bisogno dello spazio dei nomi privato. Un resolver sull'host Squid locale non correggerà la ricerca del proxy padre.
Verificate anche il caso negativo
Scegliete un nome privato valido, un nome pubblico valido e un nome privato inesistente. Per ciascuno, individuate l'upstream previsto e se la risposta attesa è un indirizzo o una risposta negativa. L'ultimo caso rivela un fallback pubblico accidentale dopo una risposta negativa interna.
Includete le famiglie di indirizzi richieste dal client. Una ricerca A funzionante non dimostra che AAAA segua la politica o restituisca una destinazione raggiungibile. Considerate anche lo stato della cache: una risposta memorizzata può nascondere quale upstream sceglierebbe una query nuova.