Tutoriel sur les tests de protocole (niveaux 2 et 3)

⚡ Résumé intelligent

Les tests de protocole valident la manière dont les périphériques réseau échangent des données via les protocoles de couche 2 et de couche 3. Ils vérifient la structure des paquets, leur conformité, leurs performances et leur interopérabilité pour les commutateurs, les routeurs, les équipements VoIP et les équipements sans fil utilisés par des fournisseurs tels que… Cisco, Juniper et Alcatel.

  • 🌐 Portée: Les tests de protocole couvrent les protocoles de commutation, sans fil, VoIP et de routage sur l'ensemble de la pile OSI, avec un accent particulier sur le comportement des couches L2 et L3.
  • ???? L2 contre L3 : La couche 2 gère les protocoles MAC, Ethernet et Frame Relay ; la couche 3 sélectionne les chemins optimaux via IP, OSPF, EIGRP et des protocoles de routage similaires.
  • ️ Chaîne d'outils : Les ingénieurs s'appuient sur Wireshark pour la capture en direct, Scapy pour la création de paquets et TTCN-3 pour les suites de tests comportementaux sur un appareil testé.
  • ✅ Types de chèques : Les tests de conformité, d'interopérabilité, fonctionnels, de résistance, de charge et de performance confirment l'exactitude, la latence et les seuils de bande passante.
  • 🧪 Angle d'approche IA : Les laboratoires modernes utilisent des modèles d'IA pour détecter les anomalies de trafic, prédire les défaillances de protocole et générer automatiquement des cas de test négatifs pour des cycles de régression plus rapides.

Tests de protocole

Avant d'aborder les tests de protocole, comprenons les fondements sur lesquels ils reposent.

Qu'est-ce qu'un protocole ?

Lorsque des ordinateurs communiquent entre eux, il existe un ensemble commun de règles et de conditions que chaque ordinateur doit respecter. En d'autres termes, les protocoles déterminent comment les données sont transmises. transmitCes règles communes permettent la communication entre les appareils informatiques et sur les réseaux. Sans elles, les appareils de différents fournisseurs ne pourraient pas échanger de données de manière fiable.

Qu'est-ce qu'un test de protocole ?

Tests de protocole Le test de protocole est une méthode de vérification des protocoles de communication dans les domaines de la commutation, du sans-fil, de la VoIP, du routage et autres réseaux similaires. Son objectif principal est de contrôler la structure des paquets transmis sur un réseau à l'aide d'outils dédiés. Des routeurs et des commutateurs sont utilisés lors du test, car ils font partie intégrante des dispositifs et produits testés.

Maintenant que nous avons défini cette pratique, examinons pourquoi cette discipline est importante dans les réseaux de production.

Pourquoi les tests de protocole sont importants

Les réseaux modernes supportent des charges de travail critiques telles que les appels VoIP, les transactions financières et la vidéo en continu. Un simple bug de protocole peut compromettre l'interopérabilité entre les fournisseurs, entraîner la perte de paquets ou exposer des failles de sécurité. Les tests de protocole garantissent la qualité en vérifiant que chaque implémentation est conforme à ses spécifications, qu'elle supporte la charge et qu'elle se comporte de manière prévisible en cas de panne.

La motivation étant claire, la question suivante est de savoir comment les protocoles sont catégorisés dans les réseaux réels.

Protocoles de routage et de routage

Les protocoles sont classés en deux catégories : protocoles routés et protocoles de routage.

  • Protocoles routés : Les protocoles routés servent à acheminer les données utilisateur d'un réseau à un autre. Ils transportent le trafic utilisateur, comme les courriels, le trafic web et les transferts de fichiers. IP, IPX et AppleTalk sont des exemples de protocoles routés.
  • Protocoles de routage : Les protocoles de routage sont des protocoles réseau qui déterminent les routes pour les routeurs. Ils sont utilisés uniquement entre routeurs. RIP, IGRP et EIGRP en sont des exemples.

En termes simples, Un routeur est comme un bus utilisé pour le transport, tandis que les protocoles de routage sont des signaux sur la route.

Selon le type de communication, différents protocoles sont utilisés. Des entreprises comme CiscoJuniper et Alcatel produisent des équipements réseau tels que des routeurs, des modems et des points d'accès sans fil qui utilisent différents protocoles de communication. Par exemple, Cisco Utilise EIGRP et OSPF. Les tests de protocole consistent essentiellement à vérifier si EIGRP (Enhanced Interior Gateway Routing Protocol), OSPF (Open Shortest Path First) ou tout autre protocole fonctionne conformément à sa norme respective.

Types de protocoles informatiques

Le tableau ci-dessous répertorie les protocoles les plus courants qu'un testeur rencontrera sur le réseau.

Types de protocoles Objectif des protocoles
TCP / IP Il est utilisé pour envoyer des informations sous forme de petits paquets sur Internet
UDP/ICMP Il est utilisé pour envoyer une petite quantité d'informations dans des paquets de données via Internet.
POP3 et SMTP Il est utilisé pour envoyer et recevoir du courrier
Hypertext Transfer Protocol Il est utilisé pour transférer des pages HTML sous forme chiffrée afin de garantir la sécurité des données sensibles.
Ftp Il est utilisé pour transporter des fichiers sur un réseau d'un nœud à un autre.

* TCP / IP - Transmission Protocole de contrôle/Protocole Internet, UDP/ICMP – Protocole de datagramme utilisateur/Protocole de message de contrôle Internet, POP3 / SMTP – Protocole postal/Simple Mail Protocole de transfert, HTTP - Protocole de transfert hypertexte, Ftp – Protocole de transfert de fichiers.

Différents types de protocoles réseau (L2 et L3)

Le modèle OSI comporte un total de sept couches de communication réseau, dont les couches 2 (L2) et 3 (L3) sont cruciales pour les tests de protocole.

  • Couche 2 (L2) : Il s'agit de la couche liaison de données. Les adresses MAC, Ethernet, Token Ring et Frame Relay sont tous des exemples de la couche liaison de données.
  • Couche 3 (L3) : C'est la couche réseau qui détermine le meilleur chemin disponible pour la communication. Une adresse IP est un exemple de couche 3.

Comment faire des tests de protocole

  • Pour les tests de protocole, vous avez besoin d'un analyseur de protocole et simulateur.
  • L'analyseur de protocole assure un décodage correct ainsi que l'analyse des appels et des sessions. Le simulateur simule différentes entités de l'élément réseau.
  • En général, les tests de protocole sont effectués par un DUT (Device Under Test) connecté à d'autres appareils tels que des commutateurs et des routeurs, sur lesquels le protocole cible est configuré.
  • Ensuite, le testeur vérifie la structure des paquets envoyés par les appareils.
  • Il vérifie l'évolutivité, les performances et le comportement de l'algorithme de protocole du périphérique à l'aide d'outils tels que IxNetwork, Scapy et Wireshark.

Types de tests pour les tests de protocole

Les tests de protocole comprennent des tests de fonctionnalité, de performance, de pile de protocoles, d'interopérabilité, etc. Lors de ces tests, trois vérifications de base sont effectuées.

  • Exactitude : Recevons-nous le paquet X lorsque nous l'attendons ?
  • Latence: Combien de temps faut-il à un paquet pour traverser le système ?
  • Bande passante : Combien de paquets pouvons-nous envoyer par seconde ?

Les tests de protocole peuvent être divisés en deux grandes catégories : les tests de contrainte et de fiabilité, et les tests fonctionnels. Les tests de contrainte et de fiabilité couvrent test de charge, Test de stress et Test de performance. Essais fonctionnels comprend les tests négatifs, les tests de conformité et les tests d'interopérabilité.

  • Tests de conformité : Les protocoles mis en œuvre sur les produits sont testés afin de vérifier leur conformité aux normes telles que IEEE et RFC.
  • Tests d'interopérabilité : L'interopérabilité entre différents fournisseurs est testée. Ce test est effectué après la réalisation des tests de conformité sur la plateforme appropriée.
  • Tests des fonctionnalités réseau : Les fonctionnalités des produits réseau sont testées par rapport au document de conception. Il peut s'agir, par exemple, de la sécurité des ports sur un commutateur ou des listes de contrôle d'accès (ACL) sur un routeur.

Exemples de cas de test pour les tests de protocole des périphériques réseau

Voici un exemple de cas de test pour les routeurs et les commutateurs.

Nom du test Cas de test
Un VLAN sur un commutateur Créez deux VLAN distincts. Vérifiez la visibilité entre les hôtes situés sur ces différents VLAN.
Trois VLAN symétriques sur un seul commutateur Créez trois VLAN asymétriques différents. Vérifiez la visibilité entre les hôtes.
Spanning Tree : variation du coût du chemin racine Tester comment le coût du chemin racine évolue après une modification de la topologie.
Spanning Tree : blocage de ports Découvrez comment le protocole Spanning Tree évite la formation de cycles dans le réseau, en bloquant les liens redondants, en présence de VLAN également.
Différents ponts racines pour différents MSTI Démontrer que chaque MSTI peut avoir un pont racine différent.
Visibilité entre les différentes régions STP Avec les mêmes VLAN, vérifiez la visibilité entre différentes régions STP.
Performances du commutateur téléphonique Effectuez 1000 appels téléphoniques et vérifiez si le commutateur téléphonique fonctionne toujours ou si ses performances se dégradent.
Test négatif pour l'appareil Saisissez une clé incorrecte et vérifiez l'authentification. L'utilisateur ne devrait pas être autorisé à accéder au système.
Vitesse Vérifiez que l'appareil fonctionne à une vitesse de 10 Gbit/s, en utilisant toute la bande passante disponible pour gérer le trafic entrant.
Taux de conversation du protocole Tracka Conversation TCP entre deux appareils et vérification du bon fonctionnement de chaque appareil.
Temps de réponse pour l'initiation de session Mesurer le temps de réponse d'un appareil à une demande d'invitation pour l'initiation d'une session.

Outils pour les tests de protocole

Examinons les outils de test les plus importants utilisés pour vérifier les protocoles.

1) Scapy pour la création de paquets

Scapy est un puissant programme interactif de manipulation de paquets. Il vous permet de :

  • Créer des paquets
  • Décoder les paquets sur le réseau
  • Capturez les paquets et analysez-les
  • Injecter des paquets dans le réseau

Donc, en gros, Scapy Elle fait principalement deux choses : recevoir des réponses et envoyer des paquetsVous définissez les paquets, le programme les envoie, reçoit les réponses, fait correspondre les requêtes aux réponses et renvoie une liste de paires de paquets et une liste de paquets non appariés.

Il peut également gérer d'autres tâches telles que tracroutage électronique, tests unitaires, attaques, découverte de réseau, développementping nouveaux protocoles et sondage.

Scapy vous permet d'écrire un Python Script permettant d'effectuer des tâches telles que l'envoi, la réception ou l'analyse de paquets. Par exemple, Scapy peut renifler des paquets de données à l'aide d'un court Python script. La commande permettant d'ouvrir l'éditeur est indiquée ci-dessous.

#gedit scapysniff.py
#!/usr/bin/env python
from scapy.all import *

a = sniff(count=10)
a.nsummary()

save, and change the mode of the file into an executable form
#chmod +x scapysniff.py
# ./scapysniff.py

Il analysera 10 paquets, et dès qu'il aura analysé les 10 paquets, il affichera le résumé. Scapy Il dispose également d'une série de commandes permettant d'envoyer et de recevoir des paquets simultanément.

Télécharger Scapy

2) Wireshark pour l'analyse

Wireshark est l'outil de référence pour l'analyse des tests de protocoles. Il permet de capturer les paquets en temps réel et de les afficher dans un format lisible. Vous pouvez ainsi explorer en profondeur le trafic réseau et examiner chaque paquet individuellement grâce à un code couleur et des filtres.

Wireshark capture les paquets qui permettent de déterminer le moment où la session est établie, le moment précis où le transfert de données a été initié et la quantité de données envoyées à chaque fois.

Wireshark possède un ensemble de fonctionnalités riche qui comprend :

  • Un examen approfondi de centaines de protocoles, et d'autres sont ajoutés en permanence.
  • Capture en direct et analyse hors ligne
  • Analyse VoIP enrichie
  • Navigateur de paquets standard à trois volets
  • Fonctionne sur plusieurs plateformes telles que Windows, Linux et macOS
  • Les données réseau capturées peuvent être parcourues via une interface graphique
  • Prise en charge du déchiffrement pour de nombreux protocoles tels que IPsec, ISAKMP et SSL/TLS
  • Les données en temps réel peuvent être lues via Ethernet, ATM, Bluetooth, USB et Token Ring.
  • Les résultats peuvent être exportés aux formats CSV, XML et texte brut.

Télécharger Wireshark

3) TTCN

TTCN est un langage de test standard pour la définition Scénarios de test et leur mise en œuvre pour les tests de protocole. Une suite de tests TTCN contient de nombreux cas de test écrits dans le langage de programmation TTCN et est utilisée pour tests des systèmes réactifs ou tests comportementaux.

Prenons l'exemple d'un distributeur automatique de café qui distribue du café lorsqu'on y insère une pièce d'un dollar, mais qui ne réagit pas avec une valeur inférieure. La programmation de ce type de machine utilise le langage TTCN-3. Pour que le distributeur réagisse à l'insertion d'une pièce, il faut écrire un composant TTCN-3 simulant une machine à café. Cela permet d'effectuer des tests avant la commercialisation du produit. Une fois cette étape terminée, il est possible de connecter la suite de tests TTCN-3 au périphérique externe.

TTCN

Le système de test émet des stimuli (une pièce d'un dollar) et reçoit des réponses (du café). L'adaptateur de stimuli reçoit les stimuli du système de test et les transmet au système testé. L'adaptateur de réponse attend les réponses du système testé et les transmet au système de test.

Le TTCN-3 peut être utilisé dans divers domaines tels que :

  • Communications mobiles (LTE, WiMAX, 3G)
  • Technologies haut débit (ATM, DSL)
  • Plateformes intermédiaires (Services Web, CORBA)
  • Protocoles Internet (SIP, IMS, IPv6)
  • Carte à puce
  • Automobile (AutoSAR, MOST, CAN)

Dans TTCN, vous pouvez définir :

  • Suites de test
  • Cas de test
  • Étapes de test
  • Variables déclarées
  • Minuteurs déclarés
  • PDU, et plus encore

TTCN peut être intégré à des systèmes écrits dans d'autres langages tels que ASN.1, XML, et C/C++Le langage de base TTCN-3 existe au format texte, ainsi qu'aux formats tabulaire, graphique et de présentation.

Comment appliquer les tests de protocole en pratique

Pour appliquer ces techniques à un projet réel, définissez la portée du protocole (couche 2, couche 3 ou supérieure), configurez un dispositif sous test (DUT) avec simulateur et analyseur connectés, rédigez des cas de test de conformité et des cas de test négatifs en vous référant aux spécifications RFC ou IEEE, puis exécutez des tests de charge, d'interopérabilité et de détection d'anomalies assistés par l'IA. Consignez les résultats dans Wireshark et itérer jusqu'à ce que le comportement des paquets corresponde à la norme.

FAQ

Les tests de protocole vérifient que les protocoles de communication sur les commutateurs, les routeurs et les dispositifs similaires envoient des paquets bien formés et se comportent conformément aux normes dans les domaines de la commutation, du routage, de la VoIP et du sans fil.

Les tests L2 se concentrent sur la couche liaison de données telle que MAC, Ethernet et Frame Relay, tandis que les tests L3 valident les protocoles de routage de la couche réseau comme IP, OSPF et EIGRP qui choisissent les chemins optimaux entre les réseaux.

Wireshark pour la capture et le décodage en direct, Scapy Pour la création de paquets, IxNetwork pour la génération de trafic et TTCN-3 pour les suites de tests comportementaux sont les outils standard utilisés par les ingénieurs de test réseau.

Les tests de conformité vérifient qu'une implémentation de protocole respecte strictement sa spécification, telle qu'une norme IEEE ou une RFC IETF, afin que les appareils de différents fournisseurs interagissent de manière prévisible sur le même réseau.

Les modèles d'IA apprennent les schémas de paquets de base, puis génèrent des cas de test négatifs, prédisent le risque de régression dans les modifications de routage et priorisent automatiquement les scénarios défaillants afin que les ingénieurs de test couvrent davantage de chemins de protocole en moins de temps.

Oui. Les classificateurs d'apprentissage automatique ingèrent Wireshark ou les captures NetFlow, signalent les latences, les gigues ou les formes de paquets inhabituelles par rapport aux valeurs de référence apprises et mettent en évidence les dysfonctionnements du protocole avant qu'ils ne provoquent des pannes dans les réseaux de production.

Résumez cet article avec :