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.


