[Firefox] Résolution DNS et proxy HTTP

Bonjour à tous les utilisateurs de Firefox,

ma question se porte sur le comportement de Firefox dans les réseaux locaux lorsque celui-ci passe par un proxy HTTP.
Dans Internet Explorer et Opera, configurés pour passer à travers un proxy (sans liste d’exclusions), le navigateur effectue d’abord une recherche DNS en local (sans doute parce que les serveurs DNS du système sont ceux de l’entreprise, et pas des serveurs DNS publics) avant de requêter le proxy.

Ceci permet de ne pas passer par proxy lorsque le site à appeler est un serveur intranet, par exemple.

Dans IE et Opera cela fonctionne comme ça, mais dans Firefox… non.
Il veut toujours passer par proxy quelque soient les DNS, et je suis obligé de configurer une liste d’exclusion énorme de tous mes machines locales à appeler (et il y en a beaucoup…).

Connaissez vous alors un moyen pour que Firefox ait ce comportement ?
Je le répète: je NE touche PAS à la liste d’exclusions, sinon je suis parti pour ajouter des centaines de noms…

Merci d’avance !

Euh, je viens de tester et je n’ai le comportement que tu décris ni avec IE, ni avec Opera. Si je configure IE pour utiliser un proxy externe et que je tape http://site.local.domain (par exemple, adresse résolvable par les DNS de l’entreprise) dans la barre d’adresse, je me prend une erreur Squid dans la gueule qui me dit, texto “Name Error: The domain name does not exist.”.

Pour Opera j’ai donc dû configurer une liste d’exclusion :

*local.domain 192.168.* 172.16.10.*

J’ai oublié de préciser que dans IE et Opera, ce comportement est activé par une case à cocher.

La voici pour IE :

Et la voici pour Opera :

Pour Firefox j’ai cherché dans about:config, mais je ne trouve pas.

Pour info, les comptes Bugmenot, Yopmail et autres systèmes d’inscription anonyme ne sont pas tolérés ici. Merci d’avoir la politesse de vous créer un vrai compte.

Je dis ça rapport au message que je viens de virer ici même.

Heu…

Alors, ça fonctionne pas du tout comme tu dis :

le client renvoie toujours au proxy sauf :

Si l’extension du nom de domaine est la même que celle de la machine (genre ta machine s’appelle zboub.roxor.com et tu comptes aller sur www.roxor.com), une machine sans extentions (www) ou dans la liste d’exceptions.

la partie en italique correspond à la case cochée dans IE (elle est représentée par dans les exceptions)

Le mieux est d’utiliser un fichier proxy.pac qui permet de faire vraiment ce que tu veux.
Exemple :

[code] function FindProxyForURL(url, host) {
// our local URLs from the domains below foo.com don’t need a proxy:
if (shExpMatch(url,".foo.com/")) {return “DIRECT”;}
if (shExpMatch(url, “.foo.com:/*”)) {return “DIRECT”;}

 // URLs within this network are accessed through 
 // port 8080 on fastproxy.foo.com:
 if (isInNet(host, "10.0.0.0",  "255.255.248.0"))	{
	return "PROXY fastproxy.foo.com:8080";
 }
 
 // All other requests go through port 8080 of proxy.foo.com.
 // should that fail to respond, go directly to the WWW:
 return "PROXY proxy.foo.com:8080; DIRECT";

}[/code]

Celui ci concocté par mes soins, devrait faire ce que tu as envie : il singe le comportement IE

[code]function FindProxyForURL(url, host)
{
if (isPlainHostName(host) ||
shExpMatch(host, “127.0.0.1”) ||
shExpMatch(host, “172.16.") ||
shExpMatch(host, "10.
”) ||
dnsDomainIs(host, “.corp”) ||
dnsDomainIs(host, “.priv”) ||
)
return “DIRECT”;

	if (url.substring(0, 5) == "http:" ||
		url.substring(0, 6) == "https:" ||
		url.substring(0, 4) == "ftp:" ||
		url.substring(0, 7) == "gopher:"
	   )
			return "PROXY 10.0.0.1:3128";
	return "DIRECT";
}[/code]

Attention isResolvable() et isInNet() interrogent le DNS et peuvent rendre la navigation MEGA-lente