À quoi ressemble un réseau avec redondance PRP dans WireShark

Kat

Vous pouvez trouver dans notre blog des informations détaillées sur l'algorithme du protocole PRP. Maintenant, nous proposons de «disséquer» le trafic du réseau avec PRP. Jetez un œil à la bande-annonce RCT, à Supervision Frame et à la façon dont la gestion de la redondance est organisée à travers tout cela. Toute personne intéressée par cat.

PRP Principes

généraux Tous les principes généraux ont été décrits dans cet article . Le poste actuel est sa continuation. Nous vous recommandons de lire d'abord le premier article. Les questions suivantes sont examinées dans sa composition:

  • Structure du réseau PRP
  • Éléments de réseau PRP et leur objectif
  • Structure DAN
  • Interopérabilité entre SAN et DAN
  • Modes DAN
  • Accepter en double
  • Rejet en double
  • Implémentation au niveau du canal
  • Algorithme de travail

En bref, la redondance basée sur PRP se fait en dupliquant les trames. Chaque trame est dupliquée par l'expéditeur et les trames sont transmises via deux réseaux isolés l'un de l'autre. Le nœud récepteur traite la trame arrivée en premier et rejette la seconde. Si une trame arrive «cassée» ou si l'un des réseaux a été perdu, il y a toujours une deuxième trame. De ce fait, une redondance "transparente" est obtenue - c'est-à-dire redondance avec un temps de convergence de près de 0 ms.

La structure générale du réseau est la suivante:



Pour plus de détails sur ce que sont ces abréviations, les détails de l'algorithme de protocole, etc., vous êtes les bienvenus dans l'article mentionné ci-dessus. Dans cet article, nous porterons plus d'attention au cadre et à la remorque RCT.

RCT signifie Redundancy Control Trailer, une remorque de contrôle de sauvegarde.

Cette remorque est ajoutée au cadre. Il est utilisé pour gérer la redondance.



L'ECR comprend:

  • Numéro de séquence de 16 bits;
  • Identifiant de réseau 4 bits, 1010 (0xA) pour LAN A et 1011 (0xB) pour LAN B;
  • Taille d'image 12 bits.

Par conséquent, qu'est-ce que la gestion?

  1. Détection d'une connexion incorrecte des interfaces. DAN détermine qu'une trame avec LAN ID B arrive sur LAN A et vice versa. Dans ce cas, le DAN augmente le compteur d'erreurs des trames mixtes (IreCntErrWrongLan). L'appareil accepte les paquets, mais considère qu'il s'agit d'une erreur et tient compte du nombre de paquets non valides.
  2. Duplicate Discard. , , , PRP . (Duplicate Discard) .
  3. PRP-. NodeTable, DAN SAN .

Attrapons le trafic sur le réseau avec PRP et voyons comment PRP fonctionne.

Passer à la pratique

Pour «disséquer» un cadre avec PRP, vous devez d'abord effectuer deux tâches: générer des cadres et attraper des cadres.

Générer

Commençons par la tâche Générer .

Mettons ensemble un réseau simple où vous pouvez trouver des paquets PRP.



Poursuivant l'objectif d'attraper toutes les trames sur le réseau avec PRP, nous prenons quelques ordinateurs portables, deux RedBox et deux commutateurs gérés.

En tant que RedBoxes, nous avons pris FL RED 2003E PRP - 2701863 .

Comme interrupteurs, nous avons pris deux FL SWITCH 2206-2FX - 2702330. Les commutateurs ne sont pas alimentés et le support PRP n'y est pas indiqué. Dans le même temps, nous vérifierons comment les commutateurs gèrent les trames contenant RCT.

Nous avons construit le réseau le plus simple, généré des trames PRP. Passons maintenant à la deuxième tâche - «attraper».

«Capture»

Pour capturer le trafic avec une remorque RCT, nous allons connecter un ordinateur portable avec Wireshark à bord à l'un des commutateurs gérés. Sur le commutateur, configurez la mise en miroir de ports pour refléter le trafic du réseau vers l'ordinateur portable pour analyse.



Exécutez la commande ping d'un hôte (192.168.0.200) au second (192.168.0.60) et interceptez les paquets ICMP dans Wireshark.



Qu'y a-t-il dans le cadre?

Prenez le paquet ICMP de 192.168.0.200 à 192.168.0.60.



De la capture d'écran dans Wireshark, on peut voir que RCT contient deux champs de plus que ce qui était décrit au début. Il existe également une version de protocole et un suffixe PRP. Plus tôt, j'ai omis ces données, car ils ne portent pas de charge utile.

En conséquence, dans le cadre, nous voyons:

  • Informations sur la version PRP.
  • Numéro de séquence - le nœud PRP maintient pour chaque DAN son compteur de paquets envoyés et envoyés. Cela est nécessaire pour identifier de manière unique les paquets en double et exécuter l'algorithme PRP.
  • L'ID LAN détermine si la trame appartient au LAN A ou LAN B. Cela dépend de l'interface à partir de laquelle elle a été envoyée.
  • La taille est déterminée par la taille des champs LSDU et RCT. Ne prend pas en compte la taille totale du cadre, car la taille des autres champs peut changer pendant la transmission. Par exemple, lors de l'ajout d'un ID VLAN à une trame pendant la transmission, sa taille change.
  • Suffixe PRP. Ce suffixe est le même pour toutes les trames avec une remorque PRP et a une valeur de 0x88fb. Indépendant du réseau (LAN A ou LAN B).

Que signifie la version du protocole?

PRP peut être de deux versions:

  • PRP-0 (PRP 2010, CEI 62439-3 (2010));
  • PRP-1 (PRP 2012, CEI 62439-3 (2012)).

Le point le plus important - PRP-0 et PRP-1 sont incompatibles.

Le PRP-1 a introduit plusieurs changements fondamentalement importants:
  • ECR étendu;
  • le principe de l'algorithme Duplicate Discard a été modifié;
  • la compatibilité entre DANH (HSR) et DANP (PRP) a été introduite.

Le RCT dans PRP-1 est devenu plus proche de HSR.

PRP-0 est rare dans les applications du monde réel.

Qu'y a-t-il d'autre dans le réseau PRP?

Chaque nœud PRP envoie également une trame de supervision.

La trame de supervision est utilisée pour surveiller l'état de chaque nœud du réseau. Tout DAN par défaut envoie une trame de supervision toutes les 2 secondes. L'intervalle d'envoi peut être modifié.

Le cadre de supervision a les options suivantes:

  • envoyé au groupe de multidiffusion 01-15-4E-00-01-XX;
  • a Ethertype 0x88FB;
  • les champs sont écrits au format TLV (Tag-length-value).

Le cadre contient les informations suivantes:

  • version du protocole;
  • type d'appareil;
  • Adresse MAC hôte
  • numéro de séquence croissant progressivement.

La RedBox envoie la trame de supervision «au nom» des nœuds qui sont connectés via elle au réseau PRP. Dans ce cas, le MAC dans la trame de supervision est le MAC du VDAN et le MAC de la RedBox lui-même. L'adresse de RedBox est indiquée comme SrcMAC. RedBox envoie une trame de supervision distincte au nom de chaque nœud derrière lui.



Dans cette capture d'écran, le cadre de RedBox est juste ouvert. Dans les champs PRP, l'adresse MAC source est le nœud situé «derrière la RedBox» et il y a ici un champ d'adresse MAC RedBox distinct. Mais dans le champ Ethernet II, l'adresse MAC de la RedBox est indiquée comme MAC source.



Les trames de supervision ont également RCT, comme d'autres paquets dans un réseau PRP.

Comment la gestion des sauvegardes est-elle implémentée?

Détection d'une interface mal connectée

DAN ou RedBox vérifie l'ID LAN de la trame reçue. Si les ID LAN de la trame et de l'interface ne correspondent pas, le périphérique incrémente le compteur d'erreurs ID LAN d'une unité.

Échangeons LAN A et LAN B dans l'un des réseaux assemblés de la RedBox. Essayons d'obtenir la valeur du compteur d'erreurs sur ces interfaces via SNMP.



Sur les deux interfaces, nous voyons un nombre d'erreurs presque égal. Les valeurs sont différentes car les interfaces n'étaient pas connectées en même temps, mais avec une légère différence de temps.

La suppression d'une trame

RCT en double contient le champ de séquence, qui contient le numéro de séquence de la trame. Sur la base de ce nombre, un algorithme de suppression de trame, Duplicate Discard, est implémenté.

L'algorithme Duplicate Discard a été discuté en détail dans le premier article sur PRP.

Création de NodeTables

Sur la base des trames de supervision, le nœud PRP crée une table de nœuds - NodeTable.

Le NodeTable pour chaque nœud (par enregistrement) contient les informations suivantes:

  • Noeud MAC.
  • Le temps de réception de la dernière trame du nœud à l'interface A et l'interface B.
  • Drapeaux SAN sur l'interface A ou B, c'est-à-dire informations indiquant si ce nœud est un nœud attaché unique ou non.
  • Le compteur de trames de ce nœud à l'interface A et B.
  • Compteur d'erreurs pour les interfaces A et B.

NodeTable est facultatif. Il peut être stocké sur l'un des nœuds PRP et cela suffira.


Conclusion

PRP utilise une remorque RCT et une trame de supervision pour les diagnostics du réseau. Cela vous permet d'implémenter un algorithme pour supprimer une trame en double, déterminer les erreurs de connexion et garder une trace de tous les nœuds PRP. Par conséquent, si le commutateur lit le RCT de manière incorrecte et pense qu'il s'agit d'un vol 802.1q, il peut alors perdre le paquet (ce qui est très mauvais) ou supprimer ce champ sur le port (d'accès) non balisé (qui est tout simplement mauvais).

Dans le deuxième cas, nous n'obtenons pas Duplicate Discard, mais Duplicate Accept. Pour chaque DAN, deux paquets sans RCT viendront. Par conséquent, le LRE enverra les deux paquets à la couche supérieure, en espérant que TCP s'en chargera. En conséquence, il n'est pas question de diagnostic dans ce cas.

All Articles