Anomalie #2661
wpad ne fonctionne pas sur client avec adresse IPv6
Description
Le proxy peut avoir plusieurs adresses IP (pour eth1, eth2, ...). Le fichier wpad permet de configurer la bonne IP suivant le réseau du client.
Pour cela, myIpAddress() est utilisé dans le wpad. Le problème c'est que la fonctionne retourne l'adresse IPv6 plutôt que IPv4 (sans parlé des clients à plusieurs adresses IP ...).
La solution serait d'utiliser la fonction myIpAddressEx ... mais elle n'est pas encore implémenté sous firefox :
Related issues
Associated revisions
Support de wpad pour firefox avec support d'IPv6 fixes #2727 et fixes #2661
- Makefile : ajout du répertoire /var/lib/eole
- reverseproxy/eole/pretemplate/00-reverseproxy : suppression de l'ancien wpad.dat
- reverseproxy/dicos/25_nginx.xml : ajout des templates, suppression de wpad.dat
- reverseproxy/tmpl/nginx.default : diffuse un wpad différent suivant l'IP de provenance
- reverseproxy/tmpl/wpad.eth* : ajout du template de l'interface (qui utilise wpad.tmpl)
- reverseproxy/eolevar/wpad.tmpl : template commun à toutes les interfaces
History
#1 Updated by Guillaume PITARD over 11 years ago
- Status changed from Nouveau to En attente d'informations
Même problème rencontré à Nantes.
Pour ne pas être gêné, je n'utilise pas myipadresse dans le java-script, je renvoie une "vip" proxy sans identifier l'ip source de la machine, puis j'ai créé 2 redirections sur les interfaces eth1 et eth2, chacune revoie les flux à destination de la VIP vers l'ip réelle de l'amon . (flux arrivant sur eth1 vers ip eth1 de l'amon, flux arrivant sur eth2 vers ip eth2 de l'amon). Ça simplifie le script et ne fait recréer que deux règles de redirection.
Qu'en pensez-vous ?
Cordialement,
#2 Updated by Emmanuel GARETTE over 11 years ago
L'idée est plutôt bonne. Mais j'ai un doute avec le mode conteneur ainsi que pour les règles de firewall généré à partir de l'EAD (les postes interdits, ...)
#3 Updated by Guillaume PITARD over 11 years ago
Voici les deux règles iptables que j'ajoute en mode "inclusion statique" dans ERA. Ce sont 2 DNAT dans la table nat.
Par rapport aux postes inderdits, je ne match pas la source, je pense donc que ça ne doit pas gêner.
Pour le mode conteneur, je ne sais pas, je suis toujours en 2.2.
/sbin/iptables -t nat -I PREROUTING -i eth1 -d %%adr_VIP_Proxy -p tcp --dport 3128 -j DNAT --to %%adresse_ip_eth1
/sbin/iptables -t nat -I PREROUTING -i eth2 -d %%adr_VIP_Proxy -p tcp --dport 3128 -j DNAT --to %%adresse_ip_eth2
Voici le wpad.dat
function FindProxyForURL(url, host)
{
// GLOBAL
if (
if %%adresse_ip_eth0[0:4] == "10.1"
isInNet(host, "%adresse_ip_pub", "255.255.255.255") ||
else
isInNet(host, "%adresse_network_eth0", "%%adresse_netmask_eth0") ||
end if
%for %%ip_httpsbypass in %%fw_httpsbypass_ip
isInNet(host, "%ip_httpsbypass", "255.255.255.255") ||
%end for
isInNet(host, "161.48.0.0", "255.255.224.0") ||
isInNet(host, "192.168.0.0", "255.255.0.0") ||
isInNet(host, "172.16.0.0", "255.240.0.0") ||
isInNet(host, "10.0.0.0", "255.0.0.0") ||
isInNet(host, "127.0.0.0", "255.0.0.0")
) {
return "DIRECT";
} else {
return "PROXY %%adr_VIP_Proxy:3128";
}
}
Les variables suivantes sont spécifiques à nos dicos:
%adr_VIP_Proxy : La VIP académique proxy.
%fw_httpsbypass_ip : Une liste de serveurs https qui nécessite un accès direct.
%%adresse_ip_pub : L'IP publique de l'étab (nos amon peuvent derrières des box qui NAT)
#4 Updated by Emmanuel GARETTE over 11 years ago
- Status changed from En attente d'informations to Nouveau
- Target version set to Mises à jour 2.3.4 RC
#5 Updated by Emmanuel GARETTE over 11 years ago
- Status changed from Nouveau to Résolu
- % Done changed from 0 to 100
Appliqué par commit a217a838af4e7c86a4d3564472b109c5758b3356.
#6 Updated by Fabrice Barconnière over 11 years ago
- Status changed from Résolu to Fermé