Tutorial zum Testen von Protokollen (L2 & L3)
⥠Intelligente Zusammenfassung
Protokolltests validieren, wie NetzwerkgerĂ€te Daten ĂŒber L2- und L3-Protokolle austauschen. Sie ĂŒberprĂŒfen Paketstruktur, KonformitĂ€t, Leistung und InteroperabilitĂ€t von Switches, Routern, VoIP-GerĂ€ten und drahtlosen GerĂ€ten, die von Herstellern wie beispielsweise [Herstellername] verwendet werden. Cisco, Juniper und Alcatel.

Bevor wir uns mit dem Thema Protokolltests befassen, wollen wir zunÀchst die Grundlagen verstehen, auf denen sie aufbauen.
Was ist ein Protokoll?
Wenn Computer miteinander kommunizieren, gibt es gemeinsame Regeln und Bedingungen, die jeder Computer befolgen muss. Mit anderen Worten: Protokolle legen fest, wie Daten verarbeitet werden. transmitDie Kommunikation zwischen Computern und ĂŒber Netzwerke ist unerlĂ€sslich. Ohne diese gemeinsamen Regeln könnten GerĂ€te verschiedener Hersteller keinen zuverlĂ€ssigen Datenaustausch durchfĂŒhren.
Was ist ProtokollprĂŒfung?
Protokolltests Protokolltests sind eine Methode zur ĂberprĂŒfung von Kommunikationsprotokollen in den Bereichen Vermittlung, Drahtloskommunikation, VoIP, Routing und Ă€hnlichen Netzwerkbereichen. Hauptziel der Protokolltests ist die ĂberprĂŒfung der Struktur von Datenpaketen, die ĂŒber ein Netzwerk gesendet werden, mithilfe spezieller Protokolltest-Tools. Router und Switches werden wĂ€hrend des Tests als Bestandteile der zu testenden GerĂ€te und Produkte eingesetzt.
Nachdem wir die Vorgehensweise definiert haben, wollen wir nun untersuchen, warum diese Disziplin in Produktionsnetzwerken von Bedeutung ist.
Warum Protokolltests wichtig sind
Moderne Netzwerke verarbeiten geschĂ€ftskritische Anwendungen wie VoIP-Anrufe, Finanztransaktionen und Videostreaming. Ein einziger Protokollfehler kann die InteroperabilitĂ€t zwischen verschiedenen Anbietern beeintrĂ€chtigen, Paketverluste verursachen oder SicherheitslĂŒcken aufdecken. Protokolltests sichern die QualitĂ€t, indem sie ĂŒberprĂŒfen, ob jede Protokollimplementierung ihrer Spezifikation entspricht, unter Last skaliert und sich im Fehlerfall vorhersehbar verhĂ€lt.
Nachdem die Motivation geklÀrt ist, stellt sich die nÀchste Frage: Wie werden Protokolle in realen Netzwerken kategorisiert?
Routed- und Routing-Protokolle
Protokolle werden in zwei Kategorien eingeteilt: geroutete Protokolle und Routing-Protokolle.
- Geroutete Protokolle: Geroutete Protokolle dienen der Ăbertragung von Benutzerdaten zwischen Netzwerken. Sie transportieren Benutzerdaten wie E-Mails, Web-Traffic und DateiĂŒbertragungen. Beispiele fĂŒr geroutete Protokolle sind IP, IPX und AppleTalk.
- Routing-Protokolle: Routingprotokolle sind Netzwerkprotokolle, die Routen fĂŒr Router festlegen. Sie werden ausschlieĂlich zwischen Routern verwendet. Beispiele hierfĂŒr sind RIP, IGRP und EIGRP.
In einfachen Worten, Ein Router ist wie ein Bus, der fĂŒr den Transport eingesetzt wird, wĂ€hrend Routing-Protokolle die Signale auf der StraĂe sind.
Je nach Art der Kommunikation werden unterschiedliche Protokolle verwendet. Unternehmen wie CiscoJuniper und Alcatel produzieren NetzwerkgerĂ€te wie Router, Modems und WLAN-Zugangspunkte, die unterschiedliche Kommunikationsprotokolle verwenden. Zum Beispiel Cisco verwendet EIGRP und OSPF. Protokolltests prĂŒfen im Wesentlichen, ob EIGRP (Enhanced Interior Gateway Routing Protocol), OSPF (Open Shortest Path First) oder ein anderes Protokoll gemÀà seinem jeweiligen Standard funktioniert.
Arten von Computerprotokollen
Die folgende Tabelle listet die gebrÀuchlichsten Protokolle auf, denen ein Tester in der Leitung begegnen wird.
| Arten von Protokollen | Zweck der Protokolle |
|---|---|
| TCP / IP | Es dient dazu, Informationen in kleinen Paketen ĂŒber das Internet zu versenden |
| UDP/ICMP | Es dient dazu, eine kleine Menge an Informationen in Datenpaketen ĂŒber das Internet zu senden. |
| POP3 und SMTP | Es wird zum Senden und Empfangen von E-Mails verwendet |
| Hypertext Transfer Protocol | Es dient dazu, HTML-Seiten in verschlĂŒsselter Form zu ĂŒbertragen, um die Sicherheit sensibler Daten zu gewĂ€hrleisten. |
| fTP | Es wird zum Transport von Dateien ĂŒber ein Netzwerk von einem Knoten zu einem anderen verwendet |
* TCP / IP - Transmission Kontrollprotokoll/Internetprotokoll, UDP/ICMP â User Datagram Protocol/Internet Control Message Protocol, POP3 / SMTP â Post Office Protocol/Simple Mail Ăbertragungsprotokoll, HTTP - Hypertext Transfer Protocol, fTP â DateiĂŒbertragungsprotokoll.
Verschiedene Arten von Netzwerkprotokollen (L2 und L3)
Das OSI-Modell verfĂŒgt ĂŒber insgesamt sieben Schichten der Netzwerkkommunikation, von denen Schicht 2 (L2) und Schicht 3 (L3) fĂŒr das Protokolltesting von entscheidender Bedeutung sind.
- Schicht 2 (L2): Es handelt sich um die Sicherungsschicht. MAC-Adresse, Ethernet, Token Ring und Frame Relay sind Beispiele fĂŒr die Sicherungsschicht.
- Schicht 3 (L3): Die Netzwerkschicht bestimmt den besten verfĂŒgbaren Pfad im Netzwerk fĂŒr die Kommunikation. Eine IP-Adresse ist ein Beispiel fĂŒr die Netzwerkschicht 3.
So fĂŒhren Sie Protokolltests durch
- FĂŒr Protokolltests benötigen Sie ein Protokollanalysator und Simulator.
- Der Protokollanalysator gewÀhrleistet die korrekte Dekodierung sowie die Anruf- und Sitzungsanalyse. Der Simulator simuliert verschiedene Komponenten des Netzwerkelements.
- Ăblicherweise wird das Protokolltesting mit einem DUT (Device Under Test) durchgefĂŒhrt, das mit anderen GerĂ€ten wie Switches und Routern verbunden ist, auf denen das Zielprotokoll konfiguriert ist.
- AnschlieĂend ĂŒberprĂŒft der Tester die Paketstruktur der von den GerĂ€ten gesendeten Pakete.
- Es ĂŒberprĂŒft Skalierbarkeit, Leistung und das Verhalten von Protokollalgorithmen des GerĂ€ts mithilfe von Tools wie IxNetwork. Scapy und Wireshark.
Testtypen fĂŒr Protokolltests
Protokolltests umfassen die PrĂŒfung von FunktionalitĂ€t, Leistung, Protokollstapel, InteroperabilitĂ€t und mehr. Im Rahmen der Protokolltests werden drei grundlegende PrĂŒfungen durchgefĂŒhrt.
- Richtigkeit: Erhalten wir Paket X zum erwarteten Zeitpunkt?
- Latenz: Wie lange benötigt ein Datenpaket fĂŒr die Durchquerung des Systems?
- Bandbreite: Wie viele Pakete können wir pro Sekunde senden?
Protokolltests lassen sich in zwei Hauptkategorien unterteilen: Belastungs- und ZuverlĂ€ssigkeitstests sowie Funktionstests. Belastungs- und ZuverlĂ€ssigkeitstests umfassen Load Testing, Belastbarkeitstest und Performance Testing. FunktionsprĂŒfung umfasst Negativtests, KonformitĂ€tstests und InteroperabilitĂ€tstests.
- KonformitĂ€tsprĂŒfung: Die auf den Produkten implementierten Protokolle werden auf Einhaltung von Standards wie IEEE und geprĂŒft. RFC.
- InteroperabilitĂ€tstests: Die InteroperabilitĂ€t verschiedener Anbieter wird getestet. Dieser Test erfolgt nach Abschluss der KonformitĂ€tsprĂŒfung auf der jeweiligen Plattform.
- Netzwerkfunktionstests: Die Funktionen von Netzwerkprodukten werden anhand der Konstruktionsdokumentation auf ihre FunktionalitĂ€t geprĂŒft. Beispiele fĂŒr Funktionen sind die Port-Sicherheit eines Switches oder die Zugriffskontrollliste (ACL) eines Routers.
BeispieltestfĂ€lle fĂŒr Protokolltests von NetzwerkgerĂ€ten
Hier ist eine Beispielsammlung von TestfĂ€llen fĂŒr Router und Switches.
| Testname | TestfÀlle |
|---|---|
| Ein VLAN auf einem Switch | Erstellen Sie zwei verschiedene VLANs. ĂberprĂŒfen Sie die Sichtbarkeit zwischen Hosts in verschiedenen VLANs. |
| Drei symmetrische VLANs auf einem Switch | Erstellen Sie drei verschiedene asymmetrische VLANs. ĂberprĂŒfen Sie die Sichtbarkeit zwischen den Hosts. |
| Spanning Tree: Variation der Root-Pfadkosten | Testen Sie, wie sich die Wurzelpfadkosten nach einer TopologieÀnderung verÀndern. |
| Spanning Tree: Portblockierung | PrĂŒfen Sie, wie das Spanning Tree Protocol die Bildung von Zyklen im Netzwerk vermeidet und redundante Verbindungen blockiert, in Gegenwart von VLANs Auch. |
| Unterschiedliche Root-Bridge fĂŒr unterschiedliche MSTI | Zeigen Sie, dass jedes MSTI eine andere WurzelbrĂŒcke haben kann. |
| Sichtbarkeit zwischen verschiedenen STP-Regionen | PrĂŒfen Sie bei Verwendung derselben VLANs die Sichtbarkeit zwischen verschiedenen STP-Regionen. |
| LeistungsfĂ€higkeit von Telefonvermittlungsanlagen | Generieren Sie 1000 Telefonanrufe und prĂŒfen Sie, ob die Telefonanlage noch funktioniert oder ob sich ihre Leistung verschlechtert. |
| Negativer Test fĂŒr GerĂ€t | Bei Eingabe des falschen SchlĂŒssels wird die Authentifizierung ĂŒberprĂŒft. Dem Benutzer sollte der Zugriff verweigert werden. |
| Liniengeschwindigkeit | PrĂŒfen Sie, ob das GerĂ€t mit einer Geschwindigkeit von 10 Gbit/s arbeitet und die gesamte verfĂŒgbare Bandbreite zur Verarbeitung des eingehenden Datenverkehrs nutzt. |
| Protokollkonversionsrate | TracĂberprĂŒfen Sie die TCP-Kommunikation zwischen zwei GerĂ€ten und stellen Sie sicher, dass sich jedes GerĂ€t korrekt verhĂ€lt. |
| Reaktionszeit fĂŒr den Sitzungsstart | Messen Sie die Reaktionszeit eines GerĂ€ts auf eine Einladungsanfrage zur Sitzungsinitiierung. |
Tools zum Protokolltesten
Lassen Sie uns die wichtigsten Testwerkzeuge zur ĂberprĂŒfung von Protokollen besprechen.
1) Scapy fĂŒr die Paketgestaltung
Scapy ist ein leistungsstarkes, interaktives Programm zur Paketmanipulation. Es ermöglicht Ihnen Folgendes:
- Pakete erstellen
- Pakete im Netzwerk dekodieren
- Erfassen Sie Pakete und analysieren Sie sie
- Pakete in das Netzwerk einschleusen
Im Grunde genommen Scapy HauptsĂ€chlich tut es zwei Dinge: Antworten empfangen und Pakete sendenSie definieren die Pakete, es sendet sie, empfĂ€ngt Antworten, gleicht Anfragen mit Antworten ab und gibt eine Liste von Paketpaaren und eine Liste von nicht zugeordneten Paketen zurĂŒck.
Es kann auch andere Aufgaben ĂŒbernehmen, wie zum Beispiel tracE-Routing, Unit-Tests, Angriffe, Netzwerkerkennung, Entwicklungping neue Protokolle und Untersuchungen.
Scapy ermöglicht es Ihnen, einen Text zu schreiben. Python Ein Skript, mit dem Sie Aufgaben wie das Senden, Empfangen oder Abfangen von Datenpaketen durchfĂŒhren können. Zum Beispiel: Scapy kann Datenpakete mithilfe eines kurzen Python Das Skript. Der Befehl zum Ăffnen des Editors wird unten angezeigt.
#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
Es wird 10 Pakete abfangen, und sobald es 10 Pakete abgefangen hat, wird es die Zusammenfassung ausgeben. Scapy verfĂŒgt auĂerdem ĂŒber eine Reihe von Befehlen zum gleichzeitigen Senden und Empfangen von Paketen.
2) Wireshark zur Analyse
Wireshark ist das fĂŒhrende Tool fĂŒr die Protokollanalyse. Es ermöglicht die Echtzeit-Erfassung von Paketen und deren lesbare Darstellung. Sie können den Netzwerkverkehr detailliert analysieren und einzelne Pakete mithilfe von Farbkennzeichnungen und Filtern untersuchen.
Wireshark Erfasst Pakete, die dabei helfen festzustellen, wann die Sitzung aufgebaut wird, wann genau die DatenĂŒbertragung initiiert wurde und wie viele Daten jeweils gesendet werden.
Wireshark verfĂŒgt ĂŒber einen umfangreichen Funktionsumfang, der Folgendes umfasst:
- Eine grĂŒndliche ĂberprĂŒfung hunderter Protokolle, wobei stĂ€ndig neue hinzukommen.
- Live-Erfassung und Offline-Analyse
- Umfangreiche VoIP-Analyse
- Standard-Dreispalten-Paketbrowser
- LĂ€uft auf mehreren Plattformen wie z. B. Windows, Linux und macOS
- Erfasste Netzwerkdaten können ĂŒber eine GUI durchsucht werden
- UnterstĂŒtzung fĂŒr die EntschlĂŒsselung vieler Protokolle wie IPsec, ISAKMP und SSL/TLS
- Live-Daten können ĂŒber Ethernet, ATM, Bluetooth, USB und Token Ring ausgelesen werden.
- Die Ausgabe kann in die Formate CSV, XML und Klartext exportiert werden.
3) TTCN
TTCN ist eine Standardtestsprache zur Definition Testszenarien und deren Implementierung fĂŒr Protokolltests. Eine TTCN-Testsuite enthĂ€lt viele TestfĂ€lle, die in der TTCN-Programmiersprache geschrieben sind, und wird verwendet fĂŒr Testen reaktiver Systeme oder Verhaltenstests.
Nehmen wir beispielsweise einen Kaffeeautomaten, der Kaffee ausgibt, sobald eine Ein-Dollar-MĂŒnze eingeworfen wird, aber nicht reagiert, wenn weniger als ein Dollar eingeworfen wird. Zur Programmierung solcher Automaten wird TTCN-3 verwendet. Damit der Kaffeeautomat auf einen MĂŒnzeinwurf reagiert, schreibt man eine TTCN-3-Komponente, die sich wie ein Kaffeeautomat verhĂ€lt. So lassen sich Tests durchfĂŒhren, bevor ein tatsĂ€chlicher Kaffeeautomat als Produkt erhĂ€ltlich ist. AnschlieĂend kann die TTCN-3-Testsuite mit dem externen GerĂ€t verbunden werden.
Das Testsystem sendet Reize (eine Dollar-MĂŒnze) und empfĂ€ngt Reaktionen (Kaffee). Der Reizadapter empfĂ€ngt Reize vom Testsystem und leitet sie an das zu testende System weiter. Der Reaktionsadapter wartet auf Reaktionen des zu testenden Systems und leitet diese an das Testsystem weiter.
TTCN-3 kann in verschiedenen Bereichen eingesetzt werden, zum Beispiel:
- Mobilkommunikation (LTE, WiMAX, 3G)
- Breitbandtechnologien (ATM, DSL)
- Middleware-Plattformen (Webdienste, CORBA)
- Internetprotokolle (SIP, IMS, IPv6)
- Chipkarten
- Automobil (AutoSAR, MOST, CAN)
In TTCN können Sie Folgendes definieren:
- Testsuiten
- TestfÀlle
- Testschritte
- Deklarierte Variablen
- Deklarierte Timer
- PDUs und mehr
TTCN kann in Systeme integriert werden, die in anderen Sprachen wie ASN.1 geschrieben sind. XMLund C/C++Die TTCN-3-Kernsprache existiert im Textformat sowie in tabellarischen, grafischen und PrÀsentationsformaten.
Wie man Protokolltests in der Praxis anwendet
Um diese Techniken in einem realen Projekt anzuwenden, definieren Sie den Protokollumfang (L2, L3 oder höher), richten Sie ein PrĂŒfobjekt (DUT) mit angeschlossenem Simulator und Analysator ein, erstellen Sie KonformitĂ€ts- und Negativtests unter Bezugnahme auf RFC- oder IEEE-Spezifikationen und fĂŒhren Sie anschlieĂend Stresstests, InteroperabilitĂ€tstests und KI-gestĂŒtzte AnomalieprĂŒfungen durch. Erfassen Sie die Ergebnisse in Wireshark und wiederholen, bis das Paketverhalten dem Standard entspricht.

