Project

General

Profile

Tâche #10017

Scénario #10184: Stabiliser le script d'agrégation sur amon 2.4

problème agregation amon 2.4

Added by arnaud bougeard over 6 years ago. Updated about 6 years ago.

Status:
Fermé
Priority:
Haut
Assigned To:
Start date:
01/05/2015
Due date:
01/22/2015
% Done:

100%

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

Description

Nous avons un soucis avec l’agrégation
Quelque soit le nombre de cartes activées, il n'y a du SNAT en sortie que sur la dernière interface réseau.
Nous remarquons que, contrairement à la version 2.2, nous n'avons qu'une ligne de prerouting, qui correspond à la dernière carte.

Donc si nous avons deux cartes, c'est ok pour l'admin, si nous avons trois cartes ça n'est ok que pour le péda, si nous avons quatre cartes, ça n'est ok que pour la DMZ.

Voila la ligne obtenue avec 4 cartes (commande iptables-save |grep RESTOREMARK):
-A PREROUTING -s 192.168.3.0/24 -i eth3 -m state --state INVALID,RELATED,ESTABLISHED,UNTRACKED -j RESTOREMARK
Il doit y avoir un soucis dans la boucle qui génère cette ligne.

Sur une amon2.2 avec 3 cartes voila ce que nous obtenons avec la commande iptables-save |grep RESTOREMARK
-A PREROUTING -s 10.91.19.0/24 -i eth1 -m state --state INVALID,RELATED,ESTABLISHED,UNTRACKED -j RESTOREMARK
-A PREROUTING -s 172.26.0.0/16 -i eth2 -m state --state INVALID,RELATED,ESTABLISHED,UNTRACKED -j RESTOREMARK

Une solution été proposée sur la liste de diffusion
le fonction iptablesmangleclear attend comme variable $1 le nom de l'interface
($interface) mais celle ci n'est pas valorisé lors l'appel de la fonction.
En remplaçant $interface par $ointerface dans les 2 fonctions
active_balancing_to() et active_link_to() cela fonctionne mieux.

Voici les fonctions une fois modifiées.

active_balancing_to() {

ointerface=$(CreoleGet nom_carte_eth${1})
network=$(CreoleGet adresse_network_eth${1})/$(CreoleGet
adresse_netmask_eth${1})
iptablesmangleclear $ointerface
_active_balancing_to $ointerface $network
if [ "$(CreoleGet vlan_eth${1})" = "oui" ]; then
VLAN_ID=($(CreoleGet vlan_id_eth${1}))
VLAN_Network=($(CreoleGet vlan_network_eth${1}))
VLAN_Netmask=($(CreoleGet vlan_netmask_eth${1}))
NB_VLAN=${#VLAN_ID[*]}
for ((id=0; id < $NB_VLAN; id+=1))
do
interface_vlan="$ointerface.${VLAN_ID[id]}"
iptablesmangleclear $interface_vlan
network_vlan="${VLAN_Network[id]}/${VLAN_Netmask[id]}"
_active_balancing_to $interface_vlan $network_vlan
done
fi
if [ "$(CreoleGet alias_eth${1})" = "oui" ]; then
ALIAS_IP=($(CreoleGet alias_ip_eth${1}))
ALIAS_Network=($(CreoleGet alias_network_eth${1}))
ALIAS_Netmask=($(CreoleGet alias_netmask_eth${1}))
NB_ALIAS=${#ALIAS_IP[*]}
for ((id=0; id < $NB_ALIAS; id+=1))
do
interface_alias="$ointerface"
network_alias="${ALIAS_Network[id]}/${ALIAS_Netmask[id]}"
_active_balancing_to $interface_alias $network_alias
done
fi
}

active_link_to() {
ointerface=$(CreoleGet nom_carte_eth${1})
network=$(CreoleGet adresse_network_eth${1})/$(CreoleGet
adresse_netmask_eth${1})
link=$2
iptablesmangleclear $ointerface

_active_link_to $ointerface $network $link
if [ "$(CreoleGet vlan_eth${1})" = "oui" ]; then
VLAN_ID=($(CreoleGet vlan_id_eth${1}))
VLAN_Network=($(CreoleGet vlan_network_eth${1}))
VLAN_Netmask=($(CreoleGet vlan_netmask_eth${1}))
NB_VLAN=${#VLAN_ID[*]}
for ((id=0; id < $NB_VLAN; id+=1))
do
interface_vlan="$ointerface.${VLAN_ID[id]}"
iptablesmangleclear $interface_vlan
network_vlan="${VLAN_Network[id]}/${VLAN_Netmask[id]}"
_active_link_to $interface_vlan $network_vlan $link
done
fi
if [ "$(CreoleGet alias_eth${1})" = "oui" ]; then
ALIAS_IP=($(CreoleGet alias_ip_eth${1}))
ALIAS_Network=($(CreoleGet alias_network_eth${1}))
ALIAS_Netmask=($(CreoleGet alias_netmask_eth${1}))
NB_ALIAS=${#ALIAS_IP[*]}
for ((id=0; id < $NB_ALIAS; id+=1))
do
interface_alias="$ointerface"
network_alias="${ALIAS_Network[id]}/${ALIAS_Netmask[id]}"
_active_link_to $interface_alias $network_alias
done
fi

}

Associated revisions

Revision 0970b90a (diff)
Added by Emmanuel GARETTE over 6 years ago

tester les passerelles en cas d'agrégation (ref #10017 @1h)

Revision a1d955f7 (diff)
Added by Emmanuel GARETTE over 6 years ago

support des l'interfaces dans TestARP (ref #10017)

Revision 6465e93f (diff)
Added by Emmanuel GARETTE over 6 years ago

interface => ointerface (ref #10017 1h)

Revision 8580496c (diff)
Added by Fabrice Barconnière over 6 years ago

Suppression d'une ligne par mégarde (ref #10017)

History

#1 Updated by Luc Bourdot over 6 years ago

  • Tracker changed from Anomalie to Scénario
  • Start date deleted (12/09/2014)

#2 Updated by Luc Bourdot over 6 years ago

  • Due date set to 01/22/2015
  • Target version set to sprint 2015 2-4
  • Start date set to 01/05/2015

#3 Updated by Klaas TJEBBES over 6 years ago

  • Story points set to 6.0

#4 Updated by Fabrice Barconnière over 6 years ago

  • Tracker changed from Scénario to Tâche
  • Estimated time set to 24.00 h
  • Remaining (hours) set to 24.0

#5 Updated by Fabrice Barconnière over 6 years ago

  • Target version deleted (sprint 2015 2-4)
  • Parent task set to #10184

#6 Updated by Emmanuel GARETTE over 6 years ago

  • Status changed from Nouveau to En cours

#7 Updated by Emmanuel GARETTE over 6 years ago

  • Assigned To set to Emmanuel GARETTE

#8 Updated by Emmanuel GARETTE over 6 years ago

  • % Done changed from 0 to 50

Est-ce que cette correction suffit ou y a t'il d'autre dysfonctionnement constaté ?

#9 Updated by Emmanuel GARETTE over 6 years ago

  • Status changed from En cours to Résolu
  • % Done changed from 50 to 100

Pour moi c'est fonctionnelle sur les IP (pas tester les alias ni les IPs sur toutes les zones de l'Amon.

#10 Updated by Emmanuel GARETTE over 6 years ago

  • Remaining (hours) changed from 24.0 to 0.0

#11 Updated by Joël Cuissinat about 6 years ago

  • Status changed from Résolu to Fermé

Validé par l'utilisateur.

Also available in: Atom PDF