Tâche #9804
Scénario #8803: evolution amon 2.4 bypassproxy reseau
Etude de faisabilité
Historique
#1 Mis à jour par Gwenael Remond il y a plus de 9 ans
- Assigné à mis à Gwenael Remond
- Restant à faire (heures) changé de 6.0 à 0.0
Réflexion dans le cadre de la résolution de #8803¶
deux solutions pour répondre à cette demande :
1. la solution du pauvre
Passer les variables era_proxy_bypass_ethX
dans Créole du type "ip" à "string".
Au niveau de Era, lorsqu'une exception à une directive est créée, toute forme (ip, réseau, netmask, nom de domaine, etc...) sera acceptée :
192.168.1.1 192.168.1.0/24 toto.com 192.168.1.4-192.168.1.8
Attention, cette solution, très facile, ne prend pas en compte l'intégration de wpad et peut complexifier certains traitements ultérieurs (il va falloir valider ailleurs les contenus des variables era_proxy_bypass_ethX
)
2. Merge des variables execption du proxy
Implicitement, dans la demande, il s'agit aussi de régler la question des exceptions à un seul endroit (et pas en trois endroits comme actuellement : wpad, Era, proxy).
C'est une demande qui est récurrente (cf #6950). Cela revient à dire que ça soit Era qui gère tout. Dans cette proposition là, nettement plus ambitieuse que la précédente, il s'agit de gérer les trois cas du template wpad :
extrait du template wpad.tmpl
:
isInNet(host, "%%getVar('adresse_network_eth' + %%nb_int)", "%%getVar('adresse_netmask_eth' + %%nb_int)") %for %%adresse_ip_exclude in %%adresse_ip_wpad_exclude %if %%adresse_ip_exclude.interface_wpad_exclude in ['Toutes', %%nb_int] || isInNet(host, "%%adresse_ip_exclude", "%%adresse_ip_exclude.adresse_netmask_wpad_exclude") %end if %end for %for %%adresse_exclude in %%nom_domaine_wpad_exclude %if %%adresse_exclude.nom_interface_wpad_exclude in ['Toutes', %%nb_int] || dnsDomainIs(host, "%%adresse_exclude") %end if %end for %for %%adresse_exclude in %%nom_host_wpad_exclude %if %%adresse_exclude.nom_host_interface_wpad_exclude in ['Toutes', %%nb_int] || localHostOrDomainIs(host, "%%adresse_exclude") %end if %end for
(ip, nom de domaine, host ou domaine).
Cela implique de rajouter des variables Créole 'era_proxy_bypass_netmask_ethX
pour savoir quel type ça sera, avec une valeur par défaut 255.255.255.255
la rétrocompatibilité est assurée .
<variable name='era_proxy_bypass_eth1' type='network' description='Destinations non redirigées sur le proxy pour eth1' multi='True' mode='expert'/> <variable name='era_proxy_bypass_netmask_eth1' type='netmask' description='Destinations non redirigées sur le proxy pour eth1' multi='True' mode='expert'> <value>255.255.255.255</value> </variable> <variable name='era_proxy_bypass_domain_eth1' type='domain_strict' description='Destinations non redirigées sur le proxy pour eth1' multi='True' mode='expert'/>
Attention, il faudra gérer une version dans le config.eol
pour pouvoir mettre à jour avec upgrade.py
, quelque chose comme :
{"___version": "2.4.1",
#2 Mis à jour par Gwenael Remond il y a plus de 9 ans
- % réalisé changé de 0 à 100
#3 Mis à jour par Gwenael Remond il y a plus de 9 ans
- Statut changé de Nouveau à En cours
#4 Mis à jour par Gwenael Remond il y a plus de 9 ans
- Statut changé de En cours à Résolu
#5 Mis à jour par Joël Cuissinat il y a plus de 9 ans
- Statut changé de Résolu à Fermé