Gérer un échec DNS dans une règle PAC
Donnez à une résolution DNS PAC en échec sa propre branche de politique au lieu de la traiter comme une adresse vérifiée hors du réseau local.
Une résolution en échec ne prouve pas que la destination se trouve hors de votre réseau privé. Elle prouve que cette évaluation PAC n'a pas obtenu l'adresse dont elle avait besoin.
Cette distinction compte quand dnsResolve() alimente une règle isInNet(). L'implémentation PAC de Chromium renvoie null lorsque la résolution échoue. Ne construisez pas la branche d'échec sur le souvenir que le résultat est toujours une chaîne vide.
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";
}
Cet exemple envoie les noms non résolus vers le proxy. C'est un choix de politique, pas un réglage sûr universel. Il peut être utile quand le proxy dispose d'un résolveur ou d'une vue réseau que le client n'a pas. Un réseau qui exige une résolution locale a besoin d'un autre résultat explicite.
Résolvez une seule fois et réutilisez le résultat. La décision reste ainsi liée à une seule valeur et vous évitez de répéter des appels auxiliaires potentiellement lents.
Vérifiez aussi le consommateur PAC réel. Les anciens auxiliaires IPv4 et les auxiliaires IPv6 étendus ont des contrats différents. Une règle testée avec l'implémentation d'un navigateur ne démontre pas la prise en charge dans toutes les applications qui utilisent la même URL PAC.
Si le besoin est simplement de router un suffixe d'entreprise connu, une règle de nom d'hôte peut éviter entièrement la résolution. Recourez à la classification par adresse lorsque l'adresse est une information dont la politique a vraiment besoin.