Handleiding voor het testen van protocollen: L2 en L3
Voordat we meer leren over protocoltesten, moeten we het volgende begrijpen:
Wat is protocol?
Wanneer een computer met elkaar communiceert, is er een gemeenschappelijke reeks regels en voorwaarden waaraan elke computer moet voldoen. Met andere woorden: protocollen bepalen hoe gegevens tussen computerapparatuur en via netwerken worden verzonden.
Protocol testen
Protocol testen is een methode voor het controleren van communicatieprotocollen op het gebied van schakelen, draadloos, VoIP, routering, enz. Het primaire doel van protocoltesten is het controleren van de structuur van pakketten die via een netwerk worden verzonden met behulp van protocoltesttools. Routers en switches worden tijdens de test gebruikt om onderdelen te vormen van apparaten en producten die worden getest.
Gerouteerde en routeringsprotocollen
Protocollen worden in twee categorieën ingedeeld gerouteerde protocollen en routeringsprotocollen
- Gerouteerde protocollen: Gerouteerde protocollen kunnen worden gebruikt om gebruikersgegevens van het ene netwerk naar het andere netwerk te sturen. Het vervoert gebruikersverkeer zoals e-mails, webverkeer, bestandsoverdrachten, enz. Gerouteerde protocollen zijn IP, IPX en AppleTalk.
- Routeringsprotocollen: Routeringsprotocollen zijn netwerkprotocollen die routes voor routers bepalen. Het wordt alleen gebruikt tussen routers. Bijvoorbeeld RIP, IGRP, EIGRP, enz.
In simpele termen, een router is als een bus die wordt gebruikt voor transport, terwijl routeringsprotocollen signalen op de weg zijn.
Afhankelijk van het type communicatie worden verschillende protocollen gebruikt. Bedrijven als CISCO, JUNIPER, ALCATEL produceren netwerkapparaten zoals routers, modems, draadloze toegangspunten, etc. die verschillende protocollen gebruiken voor communicatie, bijvoorbeeld Cisco maakt gebruik van EIGRP, OSPF, enz. Protocoltesten zijn niets anders dan controleren of EIGRP (Enhanced Interior Gateway Routing Protocol) of OSPF (Open Shortest Path First) of een ander protocol werkt volgens de respectieve standaard.
Soorten computerprotocollen
Soorten protocollen | Doel van protocollen |
---|---|
TCP / IP | Het wordt gebruikt om informatie in kleine pakketjes via internet te verzenden |
UDP/ICMP | Het wordt gebruikt om een kleine hoeveelheid informatie in datapakketten over het internet te verzenden |
POP3 en SMTP | Het wordt gebruikt voor het verzenden en ontvangen van post |
Hypertext Transfer Protocol | Het wordt gebruikt om HTML-pagina's in gecodeerde vorm over te dragen om beveiliging van gevoelige gegevens te bieden |
FTP | Het wordt gebruikt voor het transporteren van bestanden via een netwerk van het ene knooppunt naar het andere |
* TCP / IP- Transmission Controleprotocol/internetprotocol, UDP/ICMP– Gebruikersdatagramprotocol/internetcontroleberichtprotocol, POP3/SMTP– Postkantoorprotocol / Eenvoudig Mail Overdrachtsprotocol, HTTP– Hypertekstoverdrachtprotocol, FTP– Protocol voor bestandsoverdracht
Verschillende soorten netwerkprotocollen (L2 en L3)
Het OSI-model kent in totaal 7 lagen van netwerkcommunicatie, waarbij laag 2 en laag 3 zeer cruciaal zijn.
- Laag 2: Het is een datalinklaag. Mac-adres, Ethernet, Token Ring en Frame Relay zijn allemaal voorbeelden van een datalinklaag.
- Laag 3: Het is een netwerklaag die het best beschikbare pad in het netwerk voor communicatie bepaalt. Een IP-adres is een voorbeeld van laag3.
Protocoltesten uitvoeren
- Voor protocoltesten hebt u nodig protocolanalysator en simulator
- Protocolanalysator zorgt voor een goede decodering, samen met oproep- en sessieanalyse. Terwijl de simulator verschillende entiteiten van netwerkelementen simuleert
- Meestal wordt een protocoltest uitgevoerd door DUT (apparaat dat wordt getest) op andere apparaten zoals switches en routers en wordt het protocol daarin geconfigureerd
- Controleer daarna de pakketstructuur van de pakketten die door de apparaten worden verzonden
- Het controleert de schaalbaarheid, prestaties, protocolalgoritme enz. van het apparaat met behulp van tools zoals lxNetworks, Scapy en Wireshark
Testtypen voor protocoltesten
Protocoltesten omvatten het testen van functionaliteit, prestaties, protocolstack, interoperabiliteit, etc. Tijdens protocoltesten worden in principe drie controles uitgevoerd.
- Juistheid: Ontvangen we pakket X wanneer we hadden verwacht?
- Wachttijd: Hoe lang duurt het voordat een pakket door het systeem gaat
- bandbreedte: Hoeveel pakketten we per seconde kunnen verzenden
Protocoltesten kunnen in twee categorieën worden onderverdeeld. Stress- en betrouwbaarheidstesten en functionele tests. Stress- en betrouwbaarheidstests omvatten load Testen, Stress testen, Performance Testing, enz. Terwijl Functioneel testen omvat negatieve tests, conformiteitstesten, interoperabiliteitstesten, enz.
- Conformiteitstesten: De op producten geïmplementeerde protocollen worden getest op naleving zoals IEEE, RFC enz.
- Interoperabiliteitstesten: De interoperabiliteit voor verschillende leveranciers wordt getest. Deze test wordt uitgevoerd nadat conformiteitstesten zijn uitgevoerd op het juiste platform
- Netwerkfunctie testen: De kenmerken van netwerkproducten worden getest op functionaliteit met verwijzing naar het ontwerpdocument. Functies kunnen bijvoorbeeld poortbeveiliging op een switch, ACL op een router enz. zijn.
Voorbeeldtestgevallen voor protocoltesten van netwerkapparaten
Hier is de voorbeeldtestcase voor routers
Test naam | Test Cases |
---|---|
Eén VLAN op één switch | Bouw twee verschillende VLAN's. Controleer de zichtbaarheid tussen hosts op verschillende VLAN's |
Drie symmetrische VLAN's op één switch | Creëer drie verschillende asymmetrische VLAN's. Controleer de zichtbaarheid tussen hosts |
Spanningsboom: variatie in kosten van rootpad | Test hoe de Root Path Cost verandert na een topologievariatie |
Spanning Tree: poortblokkering | Controleer hoe het Spanning Tree-protocol de vorming van cycli in het netwerk vermijdt en redundante verbindingen blokkeert in aanwezigheid van VLAN's ook |
Verschillende rootbridges voor verschillende MSTI's | Laat zien dat elke MSTI verschillende Root Bridges kan hebben |
Zichtbaarheid tussen verschillende STP-regio's | Controleer met dezelfde VLAN's de zichtbaarheid tussen verschillende STP-regio's |
Telefoonschakelaar Prestaties | Genereer 1000 telefoongesprekken en controleer of de telefooncentrale nog werkt of dat de prestaties ervan achteruitgaan |
Negatieve test voor apparaat | Voer de onjuiste sleutel in en controleer de gebruiker op authenticatie. Het mag een gebruiker geen toegang verlenen |
Lijnsnelheid | Controleer of het apparaat werkt met een snelheid van 10 Gbps en gebruikmaakt van alle beschikbare bandbreedte om het binnenkomende verkeer te verwerken |
Protocol gesprekssnelheid | Volg een TCP-gesprek tussen twee apparaten en controleer of elk apparaat correct gedrag vertoonde |
Reactietijd voor sessie-initiatie | Meet de responstijd van een apparaat op een uitnodigingsverzoek voor sessie-initiatie |
Hulpmiddelen voor protocoltesten
Laten we de belangrijkste testtools bespreken die worden gebruikt om protocollen te verifiëren
1) Scapy Voor het maken van pakketten
Scapy is een krachtig interactief programma voor pakketmanipulatie. Het stelt u in staat om
- Pakketten maken
- Decodeer pakketten op het netwerk
- Leg pakketten vast en analyseer ze
- Pakketten in het netwerk injecteren
Scapy doet dus eigenlijk twee dingen: antwoorden ontvangen en pakketten verzenden. U definieert de pakketten, het verzendt ze, ontvangt antwoorden, vergelijkt verzoeken met antwoorden en retourneert een lijst met pakketparen en een lijst met niet-overeenkomende pakketten.
Het kan ook andere zaken aan, zoals trace-routing, unit-tests, aanvallen of netwerkdetectie, het ontwikkelen van nieuwe protocollen, sonderen, enz.
Scapy stelt ons in staat om a te schrijven Python script waarmee we een taak kunnen uitvoeren zoals het verzenden en ontvangen van pakketten of het snuiven van pakketten. Scapy kan bijvoorbeeld het datapakket snuiven door een Python script. Het commando om de getdit te openen, ingevoerd in de editor
#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
Het apparaat zal 10 pakketten opsnuiven en zodra het 10 pakketten heeft gesnoven, zal het de samenvatting afdrukken. Scapy ook als een reeks opdrachten voor het tegelijkertijd verzenden en ontvangen van pakketten
2) Wireshark Hulpmiddelen voor analyse
Hulpmiddelen die worden gebruikt voor het testen van protocollen- Wireshark. Het maakt het mogelijk om pakketten in realtime vast te leggen en ze in een voor mensen leesbare vorm weer te geven. Het stelt u in staat om diep in het netwerkverkeer te duiken en individuele pakketten te inspecteren door middel van kleurcodering en filters.
Wireshark legt pakketten vast die helpen bepalen wanneer de sessie tot stand wordt gebracht, wanneer de exacte gegevensoverdracht is gestart en hoeveel gegevens elke keer worden verzonden, enz.
Wireshark heeft een reeks rijke functies, waaronder
- Een grondige inspectie van honderden protocollen, en er komen er steeds meer bij
- Live vastleggen en offline analyse
- Uitgebreide VoIP-analyse
- Standaard browser met drie vensters
- Draait op meerdere platforms zoals Windows, Linux, OSX enzovoort
- Vastgelegde netwerkgegevens kunnen worden doorzocht via een GUI
- Decodering ondersteunt vele protocollen zoals IPsec, ISAKMP, SSL/TLS
- Live gegevens kunnen worden gelezen van Ethernet, ATM, Bluetooth, USB, token etc.
- Uitvoer kan worden geëxporteerd naar CSV, XML, platte tekst, enz.
TCN
TCCN is een standaard testtaal voor het definiëren Testscenario en hun implementatie voor protocoltesten. Een TCCN-testsuite bevat veel testcases die zijn geschreven in de TTCN-programmeertaal en waarvoor deze wordt gebruikt het testen van reactieve systemen of gedragstesten.
Bijvoorbeeld een koffieautomaat die u koffie geeft bij het inwerpen van een dollarmuntje, maar niet reageert als er iets minder dan een dollar in wordt gestoken. Om dergelijke machines te programmeren wordt de TCCN3-taal gebruikt. Om ervoor te zorgen dat de koffiemachine reageert bij het inwerpen van een muntje, moeten we een TCCN-3-component schrijven die zich gedraagt als een koffiemachine. Hiermee kunnen we onze test uitvoeren voordat een daadwerkelijke koffiemachine als product verkrijgbaar is. Zodra dit klaar is, verbinden we de TCCN3-testsuite met het externe apparaat.
Het testsysteem zendt stimuli uit (dollarmunt) en ontvangt reacties (koffie). De stimuli-adapter verkrijgt stimuli van het testsysteem en geeft deze door aan het te testen systeem. De responsadapter wacht op reacties van het te testen systeem en geeft deze door aan het testsysteem.
TCCN3 kan op verschillende gebieden worden gebruikt, zoals
- Mobiele communicatie (LTE, WiMAX, 3G enz.)
- Breedbandtechnologieën (ATM, DSL)
- Middleware-platforms (webservices, CORBA enz.)
- Internetprotocol (SIP, IMS, IPv6)
- Smart Cards
- Automobiel (AutoSAR, MOST, CAN)
In TCCN kunnen we definiëren
- Testsuites
- Test Cases
- Teststappen
- Variabelen declareren
- Timers declareren
- Maak PDU's etc.
TCCN kan worden geïntegreerd met soorten systemen van andere talen, zoals ASN.1, XML, C/C++. De kerntaal van TCCN3 bestaat in tekstformaat, afgezien van andere formaten zoals tabellarisch, grafisch en presentatieformaat.