Project

General

Profile

Tâche #9804

Scénario #8803: evolution amon 2.4 bypassproxy reseau

Etude de faisabilité

Added by Emmanuel GARETTE over 6 years ago. Updated over 6 years ago.

Status:
Fermé
Priority:
Normal
Assigned To:
Start date:
11/24/2014
Due date:
% Done:

100%

Estimated time:
6.00 h
Spent time:
Remaining (hours):
0.0

History

#1 Updated by Gwenael Remond over 6 years ago

  • Assigned To set to Gwenael Remond
  • Remaining (hours) changed from 6.0 to 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 Updated by Gwenael Remond over 6 years ago

  • % Done changed from 0 to 100

#3 Updated by Gwenael Remond over 6 years ago

  • Status changed from Nouveau to En cours

#4 Updated by Gwenael Remond over 6 years ago

  • Status changed from En cours to Résolu

#5 Updated by Joël Cuissinat over 6 years ago

  • Status changed from Résolu to Fermé

Also available in: Atom PDF