Gestionarea unei erori DNS într-o regulă PAC
Oferiți unei interogări DNS PAC eșuate propria ramură de politică în loc să o tratați ca pe o adresă verificată în afara rețelei locale.
O interogare eșuată nu demonstrează că destinația este în afara rețelei dumneavoastră private. Demonstrează doar că această evaluare PAC nu a obținut adresa de care avea nevoie.
Această distincție contează când dnsResolve() alimentează o regulă isInNet(). Implementarea PAC din Chromium returnează null când rezolvarea eșuează. Nu construiți ramura de eroare pe amintirea că rezultatul este întotdeauna un șir gol.
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";
}
Acest exemplu trimite numele nerezolvate către proxy. Este o alegere de politică, nu o valoare implicită sigură universală. Poate fi utilă când proxy-ul are un resolver sau o vedere a rețelei pe care clientul nu o are. O rețea care cere rezolvare locală are nevoie de un rezultat explicit diferit.
Rezolvați o singură dată și reutilizați rezultatul. Astfel decizia rămâne legată de o singură valoare și se evită repetarea unor apeluri auxiliare care pot fi lente.
Verificați și consumatorul PAC real. Funcțiile auxiliare IPv4 vechi și funcțiile auxiliare IPv6 extinse au contracte diferite. O regulă testată cu implementarea unui singur browser nu dovedește suportul în fiecare aplicație care folosește același URL PAC.
Dacă cerința este doar rutarea unui sufix de firmă cunoscut, o regulă pe nume de gazdă poate evita complet interogarea. Apelați la clasificarea pe bază de adresă atunci când adresa este informația de care politica are cu adevărat nevoie.