Tratar uma falha de DNS dentro de uma regra PAC
Dê a uma consulta DNS PAC que falhou o seu próprio ramo de política em vez de tratá-la como um endereço verificado fora da rede local.
Uma consulta que falhou não prova que o destino está fora da sua rede privada. Prova que esta avaliação PAC não obteve o endereço de que precisava.
Essa distinção importa quando dnsResolve() alimenta uma regra isInNet(). A implementação de PAC do Chromium devolve null quando a resolução falha. Não construa o ramo de falha sobre a memória de que o resultado é sempre uma string vazia.
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";
}
Este exemplo envia os nomes não resolvidos para o proxy. É uma escolha de política, não um padrão seguro universal. Pode ser útil quando o proxy tem um resolvedor ou uma visão de rede que o cliente não tem. Uma rede que exige resolução local precisa de um resultado explícito diferente.
Resolva uma vez e reutilize o resultado. Assim a decisão fica ligada a um único valor e evita-se repetir chamadas auxiliares que podem ser lentas.
Verifique também o consumidor real de PAC. Os auxiliares IPv4 herdados e os auxiliares IPv6 estendidos têm contratos diferentes. Uma regra testada com a implementação de um navegador não comprova suporte em todas as aplicações que usam o mesmo URL de PAC.
Se o requisito for apenas encaminhar um sufixo empresarial conhecido, uma regra de nome de host pode evitar totalmente a consulta. Recorra à classificação por endereço quando o endereço for informação de que a política realmente precisa.