Anomalie #15268
Agregation 2.4.2 : mauvais résultat dans la table mangle lorsque qu'un lien tombe
Description
Sur un 2.4.2, l'on constate un soucis en table "mangle" lors qu'un lien tombe. Actuellement l'étab en question n'a plus du tout son lien secondaire.
On constate :
iptables -t mangle -L -nv
Chain PREROUTING (policy ACCEPT 357K packets, 316M bytes)
pkts bytes target prot opt in out source destination
0 0 RESTOREMARK all -- eth1 * 192.168.18.0/24 0.0.0.0/0 state INVALID,RELATED,ESTABLISHED,UNTRACKED
0 0 RETURN all -- eth1 * 192.168.18.0/24 0.0.0.0/0 state INVALID,RELATED,ESTABLISHED,UNTRACKED
0 0 T1 all -- eth1 * 192.168.18.0/24 195.83.89.136 state NEW
0 0 RETURN all -- eth1 * 192.168.18.0/24 195.83.89.136 state NEW
0 0 T1 all -- eth1 * 192.168.18.0/24 195.83.89.137 state NEW
0 0 RETURN all -- eth1 * 192.168.18.0/24 195.83.89.137 state NEW
0 0 T1 all -- eth1 * 192.168.18.0/24 195.83.89.162 state NEW
0 0 RETURN all -- eth1 * 192.168.18.0/24 195.83.89.162 state NEW
0 0 T1 all -- eth1 * 192.168.18.0/24 0.0.0.0/0 state NEW recent: UPDATE seconds: 3600 name: T1 side: dest
0 0 RETURN all -- eth1 * 192.168.18.0/24 0.0.0.0/0 state NEW recent: UPDATE seconds: 3600 name: T1 side: dest
0 0 T2 all -- eth1 * 192.168.18.0/24 0.0.0.0/0 state NEW recent: UPDATE seconds: 3600 name: T2 side: dest
0 0 RETURN all -- eth1 * 192.168.18.0/24 0.0.0.0/0 state NEW recent: UPDATE seconds: 3600 name: T2 side: dest
0 0 T2 all -- eth1 * 192.168.18.0/24 0.0.0.0/0 state NEW
0 0 RETURN all -- eth1 * 192.168.18.0/24 0.0.0.0/0 state NEW statistic mode random probability 0.50000000000 recent: SET name: T2 side: dest
0 0 T1 all -- eth1 * 192.168.18.0/24 0.0.0.0/0 state NEW recent: SET name: T1 side: dest
60881 3370K RESTOREMARK all -- eth2 * 172.20.0.0/16 0.0.0.0/0 state INVALID,RELATED,ESTABLISHED,UNTRACKED
60881 3370K RETURN all -- eth2 * 172.20.0.0/16 0.0.0.0/0 state INVALID,RELATED,ESTABLISHED,UNTRACKED
0 0 T1 all -- eth2 * 172.20.0.0/16 195.83.89.136 state NEW
0 0 RETURN all -- eth2 * 172.20.0.0/16 195.83.89.136 state NEW
0 0 T1 all -- eth2 * 172.20.0.0/16 195.83.89.137 state NEW
0 0 RETURN all -- eth2 * 172.20.0.0/16 195.83.89.137 state NEW
0 0 T1 all -- eth2 * 172.20.0.0/16 195.83.89.162 state NEW
0 0 RETURN all -- eth2 * 172.20.0.0/16 195.83.89.162 state NEW
1632 93689 T1 all -- eth2 * 172.20.0.0/16 0.0.0.0/0 state NEW recent: UPDATE seconds: 3600 name: T1 side: dest
1632 93689 RETURN all -- eth2 * 172.20.0.0/16 0.0.0.0/0 state NEW recent: UPDATE seconds: 3600 name: T1 side: dest
1205 65945 T2 all -- eth2 * 172.20.0.0/16 0.0.0.0/0 state NEW recent: UPDATE seconds: 3600 name: T2 side: dest
1205 65945 RETURN all -- eth2 * 172.20.0.0/16 0.0.0.0/0 state NEW recent: UPDATE seconds: 3600 name: T2 side: dest
47 2991 T2 all -- eth2 * 172.20.0.0/16 0.0.0.0/0 state NEW
25 1351 RETURN all -- eth2 * 172.20.0.0/16 0.0.0.0/0 state NEW statistic mode random probability 0.50000000000 recent: SET name: T2 side: dest
22 1640 T1 all -- eth2 * 172.20.0.0/16 0.0.0.0/0 state NEW recent: SET name: T1 side: dest
Chain INPUT (policy ACCEPT 356K packets, 316M bytes)
pkts bytes target prot opt in out source destination
458K 405M marquage all -- * * 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT 130 packets, 9090 bytes)
pkts bytes target prot opt in out source destination
556 347K marquage all -- * * 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT 356K packets, 316M bytes)
pkts bytes target prot opt in out source destination
459K 405M marquage all -- * * 0.0.0.0/0 0.0.0.0/0
Chain POSTROUTING (policy ACCEPT 357K packets, 316M bytes)
pkts bytes target prot opt in out source destination
Chain RESTOREMARK (2 references)
pkts bytes target prot opt in out source destination
Chain T1 (10 references)
pkts bytes target prot opt in out source destination
Chain T2 (4 references)
pkts bytes target prot opt in out source destination
Chain marquage (3 references)
pkts bytes target prot opt in out source destination
Dans les logs :
2016-03-02_15:58:39 L'etat du lien 2 est bien change (essai 3/4) 2016-03-02_15:58:40 Le lien 2 n'est plus actif 2016-03-02_15:58:40 Seul le lien 1 est actif, redirection des flux sur ce lien 2016-03-02_15:59:01 Le lien 2 est tombe
Le résultat dans la table mangle pose soucis, car des paquets sont encore marqué en T2 alors que le lien est down, il y a encore 4 reference à cette chaine.
Sur un AMON 2.3 dans la même situation, on voit que mangle est bien géré :
iptables -t mangle -L -nv
Chain PREROUTING (policy ACCEPT 75M packets, 58G bytes)
pkts bytes target prot opt in out source destination
1589K 537M RESTOREMARK all -- eth1 * 10.18.43.0/24 0.0.0.0/0 state INVALID,RELATED,ESTABLISHED,UNTRACKED
1589K 537M RETURN all -- eth1 * 10.18.43.0/24 0.0.0.0/0 state INVALID,RELATED,ESTABLISHED,UNTRACKED
97209 6240K T1 all -- eth1 * 10.18.43.0/24 0.0.0.0/0 state NEW
6401K 793M RESTOREMARK all -- eth2 * 172.20.112.0/22 0.0.0.0/0 state INVALID,RELATED,ESTABLISHED,UNTRACKED
6401K 793M RETURN all -- eth2 * 172.20.112.0/22 0.0.0.0/0 state INVALID,RELATED,ESTABLISHED,UNTRACKED
266K 20M T1 all -- eth2 * 172.20.112.0/22 0.0.0.0/0 state NEW
1031K 1057M RESTOREMARK all -- eth3 * 10.118.43.160/28 0.0.0.0/0 state INVALID,RELATED,ESTABLISHED,UNTRACKED
1031K 1057M RETURN all -- eth3 * 10.118.43.160/28 0.0.0.0/0 state INVALID,RELATED,ESTABLISHED,UNTRACKED
6183 425K T1 all -- eth3 * 10.118.43.160/28 0.0.0.0/0 state NEW
Chain INPUT (policy ACCEPT 70M packets, 55G bytes)
pkts bytes target prot opt in out source destination
46M 36G marquage all -- * * 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT 5232K packets, 2594M bytes)
pkts bytes target prot opt in out source destination
3628K 1822M marquage all -- * * 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT 70M packets, 61G bytes)
pkts bytes target prot opt in out source destination
45M 39G marquage all -- * * 0.0.0.0/0 0.0.0.0/0
Chain POSTROUTING (policy ACCEPT 74M packets, 63G bytes)
pkts bytes target prot opt in out source destination
0 0 all -- * * 0.0.0.0/0 0.0.0.0/0 LAYER7 l7proto bittorrent
8219 606K all -- * * 0.0.0.0/0 0.0.0.0/0 LAYER7 l7proto edonkey
Chain RESTOREMARK (3 references)
pkts bytes target prot opt in out source destination
1638K 987M RETURN all -- * * 0.0.0.0/0 10.0.0.0/8
6156K 1189M RETURN all -- * * 0.0.0.0/0 172.16.0.0/12
19653 1436K RETURN all -- * * 0.0.0.0/0 192.168.0.0/16
0 0 RETURN all -- * * 0.0.0.0/0 161.48.0.0/19
1208K 210M CONNMARK all -- * * 0.0.0.0/0 0.0.0.0/0 CONNMARK restore
Chain T1 (3 references)
pkts bytes target prot opt in out source destination
75624 5231K RETURN all -- * * 0.0.0.0/0 10.0.0.0/8
252K 17M RETURN all -- * * 0.0.0.0/0 172.16.0.0/12
8823 2189K RETURN all -- * * 0.0.0.0/0 192.168.0.0/16
0 0 RETURN all -- * * 0.0.0.0/0 161.48.0.0/19
33450 2160K MARK all -- * * 0.0.0.0/0 0.0.0.0/0 MARK xset 0x1/0xffffffff
33450 2160K CONNMARK all -- * * 0.0.0.0/0 0.0.0.0/0 CONNMARK save
Chain T2 (0 references)
pkts bytes target prot opt in out source destination
0 0 RETURN all -- * * 0.0.0.0/0 10.0.0.0/8
0 0 RETURN all -- * * 0.0.0.0/0 172.16.0.0/12
0 0 RETURN all -- * * 0.0.0.0/0 192.168.0.0/16
0 0 RETURN all -- * * 0.0.0.0/0 161.48.0.0/19
0 0 MARK all -- * * 0.0.0.0/0 0.0.0.0/0 MARK xset 0x2/0xffffffff
0 0 CONNMARK all -- * * 0.0.0.0/0 0.0.0.0/0 CONNMARK save
Aucune référence pour T2, ce qui est logique.
Je n'ai pas trouvé exactement le soucis dans le script de la version 2.4, mais en AMON 2.3, on a les fonctions wan1 () et wan2 () qui clear la table mangle et ajoutent seulement leur propre marquage. Ces fonctions sont utilisés lors de la détections de liens down/up.
Je ne retrouve pas ce type d'appel dans la version 2.4 du script.
Merci d'avance,
Nicolas
Demandes liées
Révisions associées
Historique
#1 Mis à jour par Gérald Schwartzmann il y a environ 10 ans
- Sujet changé de agregation 2.4.2 à Agregation 2.4.2 : mauvais résultat dans la table mangle lors qu'un lien tombe
#2 Mis à jour par Scrum Master il y a environ 10 ans
- Assigné à mis à Emmanuel GARETTE
Demander l'avis au contributeur.
#3 Mis à jour par Karim Ayari il y a environ 10 ans
je vais tester cela dès que possible.
#4 Mis à jour par Gérald Schwartzmann il y a environ 10 ans
- Sujet changé de Agregation 2.4.2 : mauvais résultat dans la table mangle lors qu'un lien tombe à Agregation 2.4.2 : mauvais résultat dans la table mangle lorsque qu'un lien tombe
#5 Mis à jour par Joël Cuissinat il y a presque 10 ans
- Projet changé de Amon à conf-amon
#6 Mis à jour par Emmanuel GARETTE il y a presque 10 ans
- Statut changé de Nouveau à En attente d'informations
Des nouvelles ?
#7 Mis à jour par Karim Ayari il y a presque 10 ans
je vais avoir un peu de temps pour regarder.
#8 Mis à jour par équipe eole Academie d'Orléans-Tours il y a plus de 9 ans
Un rapport avec https://dev-eole.ac-dijon.fr/issues/10017 ? Comme tu l'as conseillé Karim l'on va repousser le script V2.3 sur les 2.4 et 2.5 via notre variante en attendant.
#9 Mis à jour par Karim Ayari il y a plus de 9 ans
je travaille dessus
#10 Mis à jour par Karim Ayari il y a environ 9 ans
effectivement il ne semble jamais supprimer les règles :
par exemple :
+ iptablesmangleclear eth1 + i=1 ++ /sbin/iptables -t mangle -S PREROUTING ++ wc -l + '[' 1 -le 1 ']' ++ /sbin/iptables -t mangle -S PREROUTING 1 ++ grep ' -i eth1 ' + '[' -n '' ']' + let i++ + iptablesmangleclear eth1.10 + i=1 ++ /sbin/iptables -t mangle -S PREROUTING ++ wc -l + '[' 1 -le 14 ']' ++ /sbin/iptables -t mangle -S PREROUTING 1 ++ grep ' -i eth1.10 ' + '[' -n '' ']' + let i++ ++ /sbin/iptables -t mangle -S PREROUTING ++ wc -l + '[' 2 -le 14 ']' ++ /sbin/iptables -t mangle -S PREROUTING 2 ++ grep ' -i eth1.10 ' + '[' -n '' ']' + let i++ ++ /sbin/iptables -t mangle -S PREROUTING ++ wc -l + '[' 3 -le 14 ']' ++ grep ' -i eth1.10 ' ++ /sbin/iptables -t mangle -S PREROUTING 3 + '[' -n '' ']' + let i++ ++ /sbin/iptables -t mangle -S PREROUTING ++ wc -l + '[' 4 -le 14 ']' ++ /sbin/iptables -t mangle -S PREROUTING 4 ++ grep ' -i eth1.10 ' + '[' -n '' ']' + let i++ ++ /sbin/iptables -t mangle -S PREROUTING ++ wc -l + '[' 5 -le 14 ']' ++ /sbin/iptables -t mangle -S PREROUTING 5 ++ grep ' -i eth1.10 ' + '[' -n '' ']' + let i++ ++ /sbin/iptables -t mangle -S PREROUTING ++ wc -l + '[' 6 -le 14 ']' ++ /sbin/iptables -t mangle -S PREROUTING 6 ++ grep ' -i eth1.10 ' + '[' -n '' ']' + let i++ ++ /sbin/iptables -t mangle -S PREROUTING ++ wc -l + '[' 7 -le 14 ']' ++ /sbin/iptables -t mangle -S PREROUTING 7 ++ grep ' -i eth1.10 ' + '[' -n '' ']' + let i++ ++ /sbin/iptables -t mangle -S PREROUTING ++ wc -l + '[' 8 -le 14 ']' ++ /sbin/iptables -t mangle -S PREROUTING 8 ++ grep ' -i eth1.10 ' + '[' -n '' ']' + let i++ ++ /sbin/iptables -t mangle -S PREROUTING ++ wc -l + '[' 9 -le 14 ']' ++ /sbin/iptables -t mangle -S PREROUTING 9 ++ grep ' -i eth1.10 ' + '[' -n '' ']' + let i++ ++ /sbin/iptables -t mangle -S PREROUTING ++ wc -l + '[' 10 -le 14 ']' ++ /sbin/iptables -t mangle -S PREROUTING 10 ++ grep ' -i eth1.10 ' + '[' -n '' ']' + let i++ ++ /sbin/iptables -t mangle -S PREROUTING ++ wc -l + '[' 11 -le 14 ']' ++ /sbin/iptables -t mangle -S PREROUTING 11 ++ grep ' -i eth1.10 ' + '[' -n '' ']' + let i++ ++ wc -l ++ /sbin/iptables -t mangle -S PREROUTING + '[' 12 -le 14 ']' ++ /sbin/iptables -t mangle -S PREROUTING 12 ++ grep ' -i eth1.10 ' + '[' -n '' ']' + let i++ ++ /sbin/iptables -t mangle -S PREROUTING ++ wc -l + '[' 13 -le 14 ']' ++ grep ' -i eth1.10 ' ++ /sbin/iptables -t mangle -S PREROUTING 13 + '[' -n '' ']' + let i++ ++ /sbin/iptables -t mangle -S PREROUTING ++ wc -l + '[' 14 -le 14 ']' ++ /sbin/iptables -t mangle -S PREROUTING 14 ++ grep ' -i eth1.10 ' + '[' -n '' ']' + let i++ ++ /sbin/iptables -t mangle -S PREROUTING ++ wc -l + '[' 15 -le 14 ']'
je vais revoir la fonction iptablesmangleclear
#11 Mis à jour par Karim Ayari il y a environ 9 ans
- Tracker changé de Demande à Anomalie
- Statut changé de En attente d'informations à Résolu
- % réalisé changé de 0 à 100
- Temps estimé mis à 1.00 h
- Distribution mis à EOLE 2.5
la fonction active_link_to qui va flusher les règles de PREROUTING n'était jamais appelée lors de la bascule de lien
c'est corrigé
#12 Mis à jour par Karim Ayari il y a environ 9 ans
- Statut changé de Résolu à Fermé
#13 Mis à jour par Joël Cuissinat il y a presque 9 ans
- Lié à Tâche #20057: Proposer un paquet 2.5 contenant les modifications réalisées sur les scripts d'agrégation ajouté