Tutorial voor protocoltesten: L2 & L3

Inhoudsopgave:

Anonim

Voordat we leren over protocoltesten, laten we het volgende begrijpen:

Wat is protocol?

Wanneer een computer met elkaar communiceert, is er een reeks gemeenschappelijke regels en voorwaarden waaraan elke computer moet voldoen. Met andere woorden, protocollen bepalen hoe gegevens worden verzonden tussen computerapparatuur en via netwerken.

Protocol testen

Protocoltesten is een methode om communicatieprotocollen te controleren in de domeinen Switching, Wireless, VoIP, Routing, enz. Het primaire doel van protocoltesten is om de structuur te controleren van pakketten die via een netwerk worden verzonden met behulp van protocoltesttools. Routers en schakelaars worden tijdens de test gebruikt om onderdelen van te testen apparaten en producten te vormen.

Gerouteerde en routeringsprotocollen

Protocollen worden ingedeeld in twee categorieën gerouteerde protocollen en routeringsprotocollen

  • Gerouteerde protocollen : gerouteerde protocollen kunnen worden gebruikt om de gebruikersgegevens van het ene netwerk naar het andere netwerk te verzenden. 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 tussen routers gebruikt. Bijvoorbeeld RIP, IGRP, EIGRP, etc.

In eenvoudige bewoordingen is een router als een bus die wordt gebruikt voor transport, terwijl routeringsprotocollen signalen op de weg zijn.

Op basis van het type communicatie worden verschillende protocollen gebruikt. Bedrijven zoals CISCO, JUNIPER, ALCATEL produceren netwerkapparatuur zoals routers, modems, draadloze toegangspunten, enz. Die verschillende protocollen gebruiken voor communicatie, Cisco gebruikt bijvoorbeeld EIGRP, OSPF, enz. Protocoltesten is niets anders dan controleren of EIGRP (Enhanced Interior Gateway Routing Protocol) of OSPF (Open Shortest Path First) of een ander protocol werkt volgens de respectievelijke 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 internet te verzenden
POP3 en SMTP Het wordt gebruikt voor het verzenden en ontvangen van e-mail
Hypertext Transfer Protocol Het wordt gebruikt om HTML-pagina in gecodeerde vorm over te dragen om beveiliging van gevoelige gegevens te bieden
FTP Het wordt gebruikt voor het transporteren van bestanden over een netwerk van het ene knooppunt naar het andere

Verschillende soorten netwerkprotocollen (L2 en L3)

Het OSI-model heeft in totaal 7 lagen netwerkcommunicatie, waarbij laag 2 en laag 3 erg cruciaal zijn.

  • Laag 2 : Het is een datalinklaag. Mac-adres, Ethernet, Token Ring en Frame Relay zijn allemaal voorbeelden van 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 layer3.

Protocoltesten uitvoeren

  • Voor protocoltesten heeft u een protocolanalysator en simulator nodig
  • Protocolanalysator zorgt voor een juiste decodering, samen met oproep- en sessieanalyse. Terwijl de simulator verschillende entiteiten van een netwerkelement simuleert
  • Gewoonlijk wordt een protocoltest uitgevoerd door de DUT (apparaat onder test) naar andere apparaten zoals schakelaars en routers en het configureren van het protocol daarin
  • Daarna de pakketstructuur controleren van de pakketten die door de apparaten zijn verzonden
  • Het controleert de schaalbaarheid, prestaties, protocolalgoritme enz. Van het apparaat met behulp van tools zoals lxNetworks, Scapy en Wireshark

Typen testen voor het testen van protocollen

Protocoltesten omvatten het testen van functionaliteit, prestatie, protocolstapel, interoperabiliteit, enz. Tijdens protocoltesten worden in principe drie controles uitgevoerd.

  • Juistheid : ontvangen we pakket X wanneer we het verwachtten?
  • Latency : hoe lang duurt het voordat een pakket door het systeem wordt verzonden
  • Bandbreedte : hoeveel pakketten we per seconde kunnen verzenden

Protocoltesten kunnen worden onderverdeeld in twee categorieën. Stress- en betrouwbaarheidstests en functionele tests. Stress- en betrouwbaarheidstests omvatten belastingtests, stresstests, prestatietests, enz. Terwijl functionele tests negatieve tests, conformiteitstests, interoperabiliteitstests, enz. Omvatten.

  • Conformiteitstesten : de protocollen die op producten zijn geïmplementeerd, worden getest op naleving, zoals IEEE, RFC enz.
  • Interoperabiliteitstesten : de interoperabiliteit voor verschillende leveranciers wordt getest. Deze tests worden uitgevoerd nadat de conformiteitstests op het juiste platform zijn uitgevoerd
  • Netwerkeigenschappen testen: De eigenschappen van netwerkproducten worden getest op functionaliteit met verwijzing naar het ontwerpdocument. Functies kunnen bijvoorbeeld poortbeveiliging op een switch, ACL op een router enz. Zijn.

Voorbeeldtestcases voor het testen van protocollen van netwerkapparaten

Hier is de voorbeeldtestcase voor routers

Test naam Testgevallen
  1. Eén VLAN op één switch
  • Bouw twee verschillende VLAN's. Controleer de zichtbaarheid tussen hosts op verschillende VLAN's
  1. Drie symmetrische VLAN's op één switch
  • Maak drie verschillende asymmetrische VLAN's. Controleer de zichtbaarheid tussen hosts
  1. Spanning Tree: variaties in kosten van rootpad
  • Test hoe de kosten van het rootpad veranderen na een variatie in topologie
  1. Spanning Tree: poortblokkering
  • Controleer hoe het spanning tree-protocol de vorming van cycli in het netwerk vermijdt en redundante verbindingen blokkeert, ook in aanwezigheid van VLAN's
  1. Verschillende Root Bridge voor verschillende MSTI
  • Laat zien dat elke MSTI een verschillende Root Bridge kan hebben
  1. Zichtbaarheid tussen verschillende STP-regio's
  • Controleer met dezelfde VLAN's de zichtbaarheid tussen verschillende STP-regio's
  1. Prestaties van telefoonschakelaars
  • Genereer 1000 telefoontjes en controleer of de telefoonschakelaar nog werkt of dat de prestaties achteruitgaan
  1. Negatieve test voor apparaat
  • Voer de verkeerde sleutel in en controleer de gebruiker op authenticatie. Het mag een gebruiker geen toegang geven
  1. Lijnsnelheid
  • Controleer of het apparaat met een snelheid van 10 Gbps werkt en alle beschikbare bandbreedte gebruikt om inkomend verkeer af te handelen
  1. Protocol conversatiesnelheid
  • Volg een TCP-gesprek tussen twee apparaten en controleer of elk apparaat zich correct gedroeg
  1. Reactietijd voor het starten van een sessie
  • Meet de reactietijd van een apparaat op een uitnodigingsverzoek voor het starten van een sessie

Hulpmiddelen voor het testen van protocollen

Laten we de belangrijkste testtools bespreken die worden gebruikt om protocollen te verifiëren

Scapy voor het maken van pakketten

Scapy is een krachtig interactief pakketmanipulatieprogramma. Het stelt je in staat

  • Maak pakketten
  • Decodeer pakketten op het netwerk
  • Leg pakketten vast en analyseer ze
  • Injecteer pakketten in het netwerk

Dus eigenlijk doet scapy voornamelijk twee dingen: antwoorden ontvangen en pakketjes verzenden . U definieert de pakketten, het verzendt ze, ontvangt antwoorden, koppelt verzoeken aan antwoorden en retourneert een lijst met pakketkoppels en een lijst met niet-overeenkomende pakketten.

Het kan ook andere dingen aan, zoals trace-routing, unit-tests, aanvallen of netwerkdetectie, het ontwikkelen van nieuwe protocollen, onderzoeken, enz.

Scapy stelt ons in staat om een ​​Python-script te schrijven waarmee we een taak kunnen uitvoeren zoals het verzenden en ontvangen van pakketten of het snuiven van pakketten. Scapy kan bijvoorbeeld het datapakket opsnuiven met behulp van een Python-script. De opdracht om de getdit te openen die is ingevoerd in de editor

#gedit scapysniff.py#! / usr / bin / env pythonvan scapy.all import *a = snuiven (aantal = 10)a.nsummary ()opslaan en de modus van het bestand wijzigen in een uitvoerbare vorm# chmod + x scapysniff.py# ./scaotsbuff.py

Het zal 10 pakketten ruiken 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

Scapy downloaden

Wireshark Tools voor analyse

Hulpmiddelen die worden gebruikt voor het testen van protocollen - Wireshark. Hiermee kunnen pakketten in realtime worden vastgelegd en in voor mensen leesbare vorm worden weergegeven. Hiermee kunt u diep in het netwerkverkeer graven en individuele pakketten inspecteren met behulp van kleurcodering en filters.

Wireshark legt pakketten vast die helpen bepalen wanneer de sessie tot stand wordt gebracht, wanneer de exacte gegevensreis is gestart en hoeveel gegevens er 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 opname en offline analyse
  • Uitgebreide VoIP-analyse
  • Standaard browser met drie panelen
  • Draait op meerdere platforms zoals Windows, Linux, OSX enzovoort
  • Opgenomen netwerkgegevens kunnen worden doorzocht via een GUI
  • Decodering ondersteunt veel 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.

Download Wireshark

TTCN

TCCN is een standaardtesttaal voor het definiëren van testscenario's en hun implementatie voor protocoltesten. Een TCCN-testsuite bevat veel testcases die zijn geschreven in de TTCN-programmeertaal en wordt gebruikt voor het testen van reactieve systemen of gedragstesten .

Bijvoorbeeld een koffieautomaat die je koffie geeft bij het inleggen van een dollarmunt, 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 munt, moeten we de component TCCN-3 schrijven die zich gedraagt ​​als een koffiemachine. Het stelt ons in staat om onze test uit te voeren voordat een echte koffiemachine als product beschikbaar is. Zodra dit is gebeurd, zullen we de TCCN3-testsuite verbinden met het externe apparaat.

Het testsysteem zendt prikkels uit (dollarmunt) en ontvangt reacties (koffie). De stimuli-adapter ontvangt 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)
  • Smartcards
  • Automotive (AutoSAR, MEEST, CAN)

In TCCN kunnen we definiëren

  • Test suites
  • Testgevallen
  • Teststappen
  • Declareer variabelen
  • Timers aangeven
  • Maak PDU's enz.

TCCN kan worden geïntegreerd met typen systemen van andere talen, zoals ASN.1, XML, C / C ++. De kerntaal van TCCN3 bestaat in tekstformaat, afgezien van andere formaten zoals tabel, grafisch en presentatie.