Gestire un errore DNS dentro una regola PAC
Assegna a una risoluzione DNS PAC fallita un ramo di policy proprio invece di trattarla come un indirizzo verificato fuori dalla rete locale.
Una risoluzione fallita non dimostra che la destinazione sia fuori dalla tua rete privata. Dimostra che questa valutazione PAC non ha ottenuto l'indirizzo che le serviva.
Questa distinzione conta quando dnsResolve() alimenta una regola isInNet(). L'implementazione PAC di Chromium restituisce null quando la risoluzione fallisce. Non costruire il ramo di errore sul ricordo che il risultato sia sempre una stringa vuota.
function FindProxyForURL(url, host) {
var address = dnsResolve(host);
if (!address) {
return "PROXY proxy.example:8080";
}
if (isInNet(address, "10.40.0.0", "255.255.0.0")) {
return "DIRECT";
}
return "PROXY proxy.example:8080";
}
Questo esempio invia i nomi non risolti al proxy. È una scelta di policy, non un valore predefinito sicuro universale. Può essere utile quando il proxy dispone di un resolver o di una vista di rete che il client non ha. Una rete che richiede risoluzione locale ha bisogno di un esito esplicito diverso.
Risolvi una volta e riusa il risultato. Così la decisione resta legata a un solo valore e si evitano chiamate ausiliarie potenzialmente lente ripetute.
Controlla anche il consumatore PAC effettivo. Gli helper IPv4 legacy e gli helper IPv6 estesi hanno contratti diversi. Una regola testata con l'implementazione di un browser non dimostra il supporto in ogni applicazione che usa lo stesso URL PAC.
Se l'esigenza è solo instradare un suffisso aziendale noto, una regola sul nome host può evitare del tutto la risoluzione. Ricorri alla classificazione per indirizzo quando l'indirizzo è un'informazione di cui la policy ha davvero bisogno.