Projet

Général

Profil

Tâche #9804

Scénario #8803: evolution amon 2.4 bypassproxy reseau

Etude de faisabilité

Ajouté par Emmanuel GARETTE il y a plus de 9 ans. Mis à jour il y a plus de 9 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Gwenael Remond
Début:
24/11/2014
Echéance:
% réalisé:

100%

Temps estimé:
6.00 h
Temps passé:
Restant à faire (heures):
0.0

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é

Formats disponibles : Atom PDF