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.
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.
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.
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.
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.


