Avamar : Pertes de paquets dues à un battement de MAC sur le commutateur réseau
Résumé: Cet article décrit un problème de perte de paquets observé lorsque les nœuds Avamar Data Store configurés avec la liaison réseau de sauvegarde active Linux sont connectés à des commutateurs Cisco Catalyst. Ce comportement peut également se produire avec d’autres modèles de commutateurs. Le problème est dû au comportement d’apprentissage de l’adresse MAC du commutateur, probablement lié à la fonctionnalité d’apprentissage des paquets de contrôle qui ne gère pas correctement l’attribution d’adresse MAC utilisée par la liaison Linux, entraînant une perte de trafic intermittente. ...
Symptômes
Les nœuds Avamar Data Store configurés avec des liaisons de sauvegarde active Linux (mode=1) subissent une perte de paquets intermittente lorsqu’ils sont connectés à des commutateurs Cisco Catalyst en raison de leur comportement d’apprentissage MAC. Le problème se manifeste de la manière suivante :
- Pertes de paquets en rafale (25 à 60 %) pendant les tests ping
- Perte de paquets lors d’événements de liaison ou de basculement réseau (par exemple : Lorsque l’élément de liaison secondaire est testé en tant qu’élément principal)
- Les interfaces individuelles affichent une perte de paquets de 0 % lorsqu’elles sont testées en dehors de la liaison
- Les tableaux d’adresses MAC du commutateur affichent les deux adresses MAC du membre de liaison apparaissant sur le même port
Cause
Les commutateurs Cisco Catalyst incluent une fonction de sécurité appelée « apprentissage des paquets de contrôle » qui affecte la façon dont le commutateur apprend et gère les adresses MAC. Lorsque les liaisons de sauvegarde active Linux utilisent une adresse MAC fixe (généralement l’adresse MAC eth principale), le commutateur Catalyst peut :
- Voir le trafic à partir du port physique actif, mais avec une adresse MAC différente
- Apprendre les deux adresses MAC membres de liaison sur différents ports
- Constatez des saccades MAC lorsque la liaison bascule ou lorsque le commutateur met à jour sa table MAC
- Abandonner les paquets pendant les transitions d’apprentissage MAC
Ce comportement est spécifique aux commutateurs Cisco Catalyst par rapport aux commutateurs Cisco Nexus. Ils gèrent les affectations MAC de liaison Linux différemment et ne présentent pas ce problème.
Le comportement par défaut de la liaison Linux est d’utiliser une adresse MAC fixe (l’adresse MAC de l’eth primaire) quel que soit l’eth qui transmet. Cela entre en conflit avec les attentes d’apprentissage MAC du commutateur Catalyst.
Résolution
Définition de l’option de liaison fail_over_mac=active Résout ce problème. La liaison utilise alors l’adresse MAC de l’eth actif plutôt qu’une adresse MAC fixe, ce qui résout le problème d’identification MAC du commutateur.
- Connectez-vous au nœud concerné et assurez-vous qu’il est consigné en tant qu’utilisateur root
- Sauvegarder la configuration de liaison existante
cp -p /etc/sysconfig/network/ifcfg-bond0 /etc/sysconfig/network/x-ifcfg-bond.`date -I`
- Modifiez le fichier et ajoutez le
fail_over_mac=activeOption de configuration de liaison :
vi /etc/sysconfig/network/ifcfg-bond0Changer de :
BONDING_MODULE_OPTS="primary=eth1 mode=1 miimon=100"Jusqu’à :
BONDING_MODULE_OPTS="primary=eth1 mode=1 miimon=100 fail_over_mac=active"
- Répétez l’opération pour tous les fichiers de liaison nécessaires (bond0, bond3, etc.).
vi /etc/sysconfig/network/ifcfg-bond3 BONDING_MODULE_OPTS="primary=eth4 mode=1 miimon=100 fail_over_mac=active"
- Créez le script suivant pour redémarrer le réseau :
cd /tmp vi restart_script.sh
- Copiez et collez le script suivant et enregistrez le fichier :
#!/bin/sh service network stop modprobe -r bonding service network start
- Exécuter le script
chmod +x restart_script.sh nohup ./restart_script.sh
- Vérifiez le statut de la liaison :
cat /proc/net/bonding/bond0
- Confirmez que « Currently Active Slave » est correct
- Confirmez le message « MII Status : up ».
- Exécutez la commande ping :
ping -c 100 <target_node_ip>
- Il doit afficher 0 % de perte de paquets
- Vérifiez le tableau MAC du commutateur (nécessite un administrateur réseau) :
show mac address-table interface <port>
- Il ne doit afficher qu’UNE MAC par port
- Répétez les étapes 1 à 9 sur les nœuds concernés.
- Assurez-vous de ramener le réseau à un état de production normal (reprise de la sauvegarde/maintenance, etc.)