Tutorial zum Protokolltest: L2 und L3
Bevor wir uns mit Protokolltests befassen, sollten wir Folgendes verstehen:
Was ist ein Protokoll?
Wenn ein Computer miteinander kommuniziert, gibt es gemeinsame Regeln und Bedingungen, die jeder Computer befolgen muss. Mit anderen Worten: Protokolle bestimmen, wie Daten zwischen Computergeräten und über Netzwerke übertragen werden.
Protokolltests
Protokolltests ist eine Methode zur Überprüfung von Kommunikationsprotokollen in den Bereichen Switching, Wireless, VoIP, Routing usw. Das Hauptziel des Protokolltests besteht darin, die Struktur von Paketen zu überprüfen, die über ein Netzwerk mithilfe von Protokolltesttools gesendet werden. Router und Switches werden während des Tests verwendet, um Teile der zu testenden Geräte und Produkte zu bilden.
Routed- und Routing-Protokolle
Protokolle werden in zwei Kategorien eingeteilt geroutete Protokolle und Routing-Protokolle
- Geroutete Protokolle: Geroutete Protokolle können verwendet werden, um Benutzerdaten von einem Netzwerk an ein anderes zu senden. Sie transportieren Benutzerverkehr wie E-Mails, Web-Verkehr, Dateiübertragungen usw. Geroutete Protokolle sind IP, IPX und AppleTalk.
- Routing-Protokolle: Routing-Protokolle sind Netzwerkprotokolle, die Routen für Router bestimmen. Es wird nur zwischen Routern verwendet. Zum Beispiel RIP, IGRP, EIGRP usw.
In einfachen Worten, Ein Router ist wie ein Bus, der für den Transport verwendet wird, während Routing-Protokolle Signale auf der Straße sind.
Je nach Art der Kommunikation werden unterschiedliche Protokolle verwendet. Unternehmen wie CISCO, JUNIPER und ALCATEL stellen Netzwerkgeräte wie Router, Modems, drahtlose Zugriffspunkte usw. her, die unterschiedliche Protokolle für die Kommunikation verwenden, zum Beispiel: Cisco verwendet EIGRP, OSPF usw. Beim Protokolltesten wird lediglich überprüft, ob EIGRP (Enhanced Interior Gateway Routing Protocol) oder OSPF (Open Shortest Path First) oder ein anderes Protokoll gemäß dem jeweiligen Standard funktioniert.
Arten von Computerprotokollen
Arten von Protokollen | Zweck der Protokolle |
---|---|
TCP / IP | Es dient dazu, Informationen in kleinen Paketen über das Internet zu versenden |
UDP/ICMP | Es wird verwendet, um 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 wird verwendet, um 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 Steuerprotokoll/Internetprotokoll, UDP / ICMP– User Datagram Protocol/Internet Control Message Protocol, POP3 / SMTP– Post-Office-Protokoll / Einfach Mail Übertragungsprotokoll, HTTP- Hypertext Transfer Protocol, fTP– Dateiübertragungsprotokoll
Verschiedene Arten von Netzwerkprotokollen (L2 und L3)
Das OSI-Modell verfügt über insgesamt 7 Schichten der Netzwerkkommunikation, wobei Schicht 2 und Schicht 3 sehr wichtig sind.
- Ebene 2: Es handelt sich um eine Datenverbindungsschicht. Mac-Adresse, Ethernet, Token Ring und Frame Relay sind Beispiele für die Datenverbindungsschicht.
- Ebene 3: Es handelt sich um eine Netzwerkschicht, die den besten verfügbaren Pfad im Netzwerk für die Kommunikation bestimmt. Eine IP-Adresse ist ein Beispiel für Layer3.
So führen Sie Protokolltests durch
- Für Protokolltests benötigen Sie Protokollanalysator und Simulator
- Der Protokollanalysator gewährleistet die ordnungsgemäße Dekodierung sowie die Anruf- und Sitzungsanalyse. Während der Simulator verschiedene Einheiten von Netzwerkelementen simuliert
- Normalerweise wird ein Protokolltest durch das DUT (zu testendes Gerät) an anderen Geräten wie Switches und Routern durchgeführt und darin das Protokoll konfiguriert
- Anschließend Überprüfung der Paketstruktur der von den Geräten gesendeten Pakete
- Es überprüft Skalierbarkeit, Leistung, Protokollalgorithmus usw. des Geräts mithilfe von Tools wie lxNetworks, Scapy und Wireshark
Testtypen für Protokolltests
Zum Testen von Protokollen gehört das Testen von Funktionalität, Leistung, Protokollstapel, Interoperabilität usw. Beim Testen von Protokollen werden grundsätzlich drei Prüfungen durchgeführt.
- Richtigkeit: Erhalten wir Paket X wie erwartet?
- Latency: Wie lange dauert die Übertragung eines Pakets durch das System?
- Bandbreite: Wie viele Pakete können wir pro Sekunde senden?
Protokolltests können in zwei Kategorien unterteilt werden. Belastungs- und Zuverlässigkeitstests und Funktionstests. Stress- und Zuverlässigkeitstests umfassen Load Testing, Belastbarkeitstest, Performance Testingusw. Während Funktionsprüfung umfasst Negativtests, Konformitätstests, Interoperabilitätstests usw.
- Konformitätstests: Die auf Produkten implementierten Protokolle werden auf Einhaltung getestet, z. B. IEEE, RFC usw.
- Interoperabilitätstests: Die Interoperabilität für verschiedene Anbieter wird getestet. Dieser Test wird durchgeführt, nachdem die Konformitätstests auf der entsprechenden Plattform durchgeführt wurden.
- Testen der Netzwerkfunktionen: Die Merkmale von Netzwerkprodukten werden anhand des Designdokuments auf Funktionalität getestet. Funktionen können beispielsweise Portsicherheit auf einem Switch, ACL auf einem Router usw. sein.
Beispieltestfälle für Protokolltests von Netzwerkgeräten
Hier ist der Beispieltestfall für Router
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 Hosts |
Spanning Tree: Variation der Root-Pfadkosten | Testen Sie, wie sich die Root-Pfadkosten nach einer Topologievariation ändern |
Spanning Tree: Portblockierung | Überprüfen Sie, wie das Spanning Tree-Protokoll die Bildung von Zyklen im Netzwerk vermeidet und redundante Verbindungen blockiert, wenn vorhanden VLANs auch |
Unterschiedliche Root-Bridge für unterschiedliche MSTI | Zeigen Sie, dass jeder MSTI eine andere Root Bridge haben kann |
Sichtbarkeit zwischen verschiedenen STP-Regionen | Überprüfen Sie bei gleichen VLANs die Sichtbarkeit zwischen verschiedenen STP-Regionen |
Leistung der Telefonvermittlung | Generieren Sie 1000 Telefonanrufe und prüfen Sie, ob der Telefonschalter noch funktioniert oder seine Leistung nachlässt |
Negativer Test für Gerät | Geben Sie den falschen Schlüssel ein und überprüfen Sie den Benutzer auf Authentifizierung. Es sollte einem Benutzer keinen Zugriff ermöglichen |
Liniengeschwindigkeit | Überprüfen Sie, ob das Gerät mit einer Geschwindigkeit von 10 Gbit/s arbeitet und die gesamte verfügbare Bandbreite zur Bewältigung des eingehenden Datenverkehrs nutzt. |
Protokollkonversationsrate | Verfolgen Sie eine TCP-Konversation zwischen zwei Geräten und überprüfen Sie, ob sich jedes Gerät korrekt verhält |
Reaktionszeit für die Sitzungsinitiierung | Messen Sie die Reaktionszeit eines Geräts auf eine Einladungsanfrage zur Sitzungsinitiierung |
Tools zum Protokolltesten
Lassen Sie uns die wichtigsten Testtools besprechen, die zur Überprüfung von Protokollen verwendet werden
1) Scapy Für die Paketherstellung
Scapy ist ein leistungsstarkes interaktives Paketmanipulationsprogramm. Es ermöglicht Ihnen
- Pakete erstellen
- Pakete im Netzwerk dekodieren
- Erfassen Sie Pakete und analysieren Sie sie
- Pakete in das Netzwerk einschleusen
Im Wesentlichen macht scapy hauptsächlich zwei Dinge: Antworten empfangen und Pakete senden. Sie definieren die Pakete, es sendet sie, empfängt Antworten, gleicht Anfragen mit Antworten ab und gibt eine Liste von Paketpaaren und eine Liste nicht übereinstimmender Pakete zurück.
Es kann auch andere Dinge wie Trace-Routing, Unit-Tests, Angriffe oder Netzwerkerkennung, die Entwicklung neuer Protokolle, Sondierungen usw. bewältigen.
Scapy ermöglicht es uns, eine zu schreiben Python Skript, mit dem wir Aufgaben wie das Senden und Empfangen von Paketen oder das Aufspüren von Paketen ausführen können. Beispielsweise kann scapy das Datenpaket aufspüren, indem es ein Python Skript. Der Befehl zum Öffnen des im Editor eingegebenen getdit
#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 # ./scaotsbuff.py
Es erschnüffelt 10 Pakete und sobald es 10 Pakete erschnüffelt hat, druckt es die Zusammenfassung aus. Scapy auch als Befehlsarray zum gleichzeitigen Senden und Empfangen von Paketen
2) Wireshark Werkzeuge zur Analyse
Tools zum Testen von Protokollen – Wireshark. Es ermöglicht die Erfassung von Paketen in Echtzeit und deren Anzeige in menschenlesbarer Form. Es ermöglicht Ihnen, tief in den Netzwerkverkehr einzudringen und einzelne Pakete mithilfe von Farbcodierung und Filtern zu untersuchen.
Wireshark Erfasst Pakete, anhand derer ermittelt werden kann, wann die Sitzung aufgebaut wird, wann die genaue Datenübertragung initiiert wurde und wie viele Daten jedes Mal gesendet werden usw.
Wireshark verfügt über eine Reihe umfangreicher Funktionen, darunter
- Eine gründliche Prüfung von Hunderten von Protokollen, es kommen ständig weitere hinzu
- Live-Erfassung und Offline-Analyse
- Umfangreiche VoIP-Analyse
- Standardbrowser mit drei Fenstern
- Läuft auf mehreren Plattformen wie Windows, Linux, OSX und so weiter
- Erfasste Netzwerkdaten können über eine GUI durchsucht werden
- Die Entschlüsselung unterstützt viele Protokolle wie IPsec, ISAKMP, SSL/TLS
- Live-Daten können von Ethernet, ATM, Bluetooth, USB, Token usw. gelesen werden.
- Die Ausgabe kann in CSV, XML, Nur-Text usw. exportiert werden.
TTCN
TCCN ist eine Standardtestsprache zum Definieren Testszenario und deren Implementierung für Protokolltests. Eine TCCN-Testsuite enthält viele Testfälle, die in der Programmiersprache TTCN geschrieben sind, und wird für verwendet testing reaktive Systeme oder Verhaltenstests.
Zum Beispiel ein Kaffeeautomat, der beim Einwerfen einer Dollarmünze Kaffee ausgibt, aber nicht reagiert, wenn weniger als ein Dollar hineingeworfen wird. Zur Programmierung solcher Maschinen wird die Sprache TCCN3 verwendet. Damit die Kaffeemaschine beim Einwerfen einer Münze reagiert, müssen wir eine TCCN-3-Komponente schreiben, die sich wie eine Kaffeemaschine verhält. Dadurch können wir unseren Test durchführen, bevor eine echte Kaffeemaschine als Produkt verfügbar ist. Sobald dies erledigt ist, verbinden wir die TCCN3-Testsuite mit dem externen Gerät.
Das Testsystem sendet Reize (Dollarmünze) aus und empfängt Antworten (Kaffee). Der Reizadapter erhält Reize vom Testsystem und leitet sie an das zu testende System weiter. Der Antwortadapter wartet auf Antworten des zu testenden Systems und leitet diese an das Testsystem weiter.
TCCN3 kann in verschiedenen Bereichen eingesetzt werden, z
- Mobilfunk (LTE, WiMAX, 3G etc.)
- Breitbandtechnologien (ATM, DSL)
- Middleware-Plattformen (Webservices, CORBA usw.)
- Internetprotokoll (SIP, IMS, IPv6)
- Smart Cards
- Automobil (AutoSAR, MOST, CAN)
In TCCN können wir definieren
- Testsuiten
- Testfälle
- Testschritte
- Variablen deklarieren
- Timer deklarieren
- Erstellen Sie PDUs usw.
TCCN kann in Systemtypen anderer Sprachen wie ASN.1 integriert werden. XML, C/C++. Die Kernsprache von TCCN3 liegt im Textformat vor, neben anderen Formaten wie Tabellen-, Grafik- und Präsentationsformaten.