Vejledning i protokoltestning (L2 og L3)
⚡ Smart opsummering
Protokoltestning validerer, hvordan netværksenheder udveksler data på tværs af L2- og L3-protokoller. Det verificerer pakkestruktur, overholdelse, ydeevne og interoperabilitet for switche, routere, VoIP-udstyr og trådløst udstyr, der anvendes af leverandører som f.eks. Cisco, Juniper og Alcatel.
Før vi lærer om protokoltestning, lad os forstå det fundament, den bygger på.
Hvad er en protokol?
Når computere kommunikerer med hinanden, er der et fælles sæt regler og betingelser, som hver computer skal følge. Med andre ord bestemmer protokoller, hvordan data behandles. transmitmellem computerenheder og over netværk. Uden disse delte regler kunne enheder fra forskellige leverandører ikke udveksle trafik pålideligt.
Hvad er protokoltestning?
Protokoltestning er en metode til at kontrollere kommunikationsprotokoller inden for områderne switching, trådløs, VoIP, routing og lignende netværksområder. Det primære mål med protokoltestning er at kontrollere strukturen af pakker, der sendes over et netværk, ved hjælp af dedikerede protokoltestværktøjer. Routere og switche bruges under testen til at danne dele af enheder og produkter, der testes.
Nu hvor vi har defineret praksissen, lad os undersøge, hvorfor denne disciplin er vigtig i produktionsnetværk.
Hvorfor protokoltestning er vigtig
Moderne netværk håndterer missionskritiske arbejdsbyrder såsom VoIP-opkald, finansielle transaktioner og streaming af video. En enkelt protokolfejl kan forstyrre interoperabiliteten mellem leverandører, tabe pakker eller afsløre sikkerhedshuller. Protokoltestning sikrer kvalitet ved at validere, at hver protokolimplementering matcher dens specifikation, skalerer under belastning og opfører sig forudsigeligt under fejl.
Med motivationen klar, er det næste spørgsmål, hvordan protokoller kategoriseres i rigtige netværk.
Rutede og rutende protokoller
Protokoller er klassificeret i to kategorier: rutede protokoller og routing protokoller.
- Routede protokoller: Routede protokoller bruges til at sende brugerdata fra et netværk til et andet. De transporterer brugertrafik såsom e-mails, webtrafik og filoverførsler. Eksempler på routede protokoller er IP, IPX og AppleTalk.
- Routingprotokoller: Routingprotokoller er netværksprotokoller, der bestemmer ruter for routere. De bruges kun mellem routere. Eksempler inkluderer RIP, IGRP og EIGRP.
I enkle vendinger, En router er som en bus, der bruges til transport, mens routingprotokoller er signaler på vejen.
Afhængigt af kommunikationstypen anvendes forskellige protokoller. Virksomheder som f.eks. CiscoJuniper og Alcatel producerer netværksenheder såsom routere, modemer og trådløse adgangspunkter, der bruger forskellige protokoller til kommunikation. For eksempel Cisco bruger EIGRP og OSPF. Protokoltestning kontrollerer i bund og grund, om EIGRP (Enhanced Interior Gateway Routing Protocol), OSPF (Open Shortest Path First) eller en anden protokol fungerer i henhold til den respektive standard.
Typer af computerprotokoller
Tabellen nedenfor viser de mest almindelige protokoller, som en tester vil støde på på ledningen.
| Typer af protokoller | Formål med protokoller |
|---|---|
| TCP / IP | Det bruges til at sende information i små pakker over internettet |
| UDP/ICMP | Det bruges til at sende en lille mængde information i datapakker over internettet |
| POP3 og SMTP | Det bruges til at sende og modtage post |
| Hypertext Transfer Protocol | Det bruges til at overføre HTML-sider i krypteret form for at beskytte følsomme data |
| FTP | Det bruges til at transportere filer over et netværk fra en node til en anden |
* TCP / IP - Transmission Kontrolprotokol/Internetprotokol, UDP/ICMP – User Datagram Protocol/Internet Control Message Protocol, POP3/SMTP – Postkontorprotokol/Simpel Mail Overførselsprotokol, HTTP – Hyper Text Transfer Protocol, FTP – Filoverførselsprotokol.
Forskellige typer netværksprotokoller (L2 og L3)
OSI-modellen har i alt syv lag af netværkskommunikation, hvoraf lag 2 (L2) og lag 3 (L3) er meget afgørende for protokoltestning.
- Lag 2 (L2): Det er datalinklaget. MAC-adresse, Ethernet, Token Ring og Frame Relay er alle eksempler på datalinklaget.
- Lag 3 (L3): Det er netværkslaget, der bestemmer den bedste tilgængelige sti i netværket til kommunikation. En IP-adresse er et eksempel på L3.
Sådan laver du protokoltest
- Til protokoltestning skal du bruge en protokolanalysator og en simulator.
- Protokolanalysatoren sikrer korrekt afkodning sammen med opkalds- og sessionsanalyse. Simulatoren simulerer forskellige enheder i netværkselementet.
- Normalt udføres protokoltestning af en DUT (Device Under Test), der er forbundet til andre enheder såsom switche og routere, med målprotokollen konfigureret på den.
- Derefter kontrollerer testeren pakkestrukturen af de pakker, der sendes af enhederne.
- Den kontrollerer enhedens skalerbarhed, ydeevne og protokolalgoritmens adfærd ved hjælp af værktøjer som IxNetwork, Scapyog Wireshark.
Testtyper til protokoltestning
Protokoltestning omfatter testning af funktionalitet, ydeevne, protokolstak, interoperabilitet og mere. Under protokoltestning udføres tre grundlæggende kontroller.
- Rigtighed: Modtager vi pakke X, når vi forventer den?
- Reaktionstid: Hvor lang tid tager det for en pakke at passere gennem systemet?
- båndbredde: Hvor mange pakker kan vi sende i sekundet?
Protokoltestning kan opdeles i to brede kategorier: Stress- og pålidelighedstest og funktionelle test. Stress- og pålidelighedstest dækker Load Testing, Stresstestog Test af ydeevne. Funktionstest omfatter negativ testning, overensstemmelsestest og interoperabilitetstest.
- Overensstemmelsestest: De protokoller, der er implementeret på produkter, testes for overholdelse af standarder som IEEE og RFC.
- Interoperabilitetstest: Interoperabiliteten for forskellige leverandører testes. Denne testning udføres efter overensstemmelsestestning er gennemført på den relevante platform.
- Test af netværksfunktioner: Funktionerne i netværksprodukter testes for funktionalitet med henvisning til designdokumentet. For eksempel kan funktionerne være portsikkerhed på en switch eller ACL på en router.
Eksempel på testsager til protokoltest af netværksenheder
Her er et eksempel på et sæt testcases for routere og switche.
| Testnavn | Test Cases |
|---|---|
| Ét VLAN på én switch | Byg to forskellige VLAN'er. Kontroller synligheden mellem værter på forskellige VLAN'er. |
| Tre symmetriske VLAN'er på én switch | Opret tre forskellige asymmetriske VLAN'er. Kontroller synligheden mellem værter. |
| Spændende træ: Variation i omkostningerne ved rodstien | Test hvordan omkostningerne ved rodsti ændrer sig efter en topologivariation. |
| Spanning Tree: Portblokering | Undersøg hvordan spanning tree-protokollen undgår dannelsen af cyklusser i netværket, og blokerer redundante links i tilfælde af VLAN også. |
| Forskellig Root Bridge til forskellige MSTI | Vis at hver MSTI kan have en forskellig rodbro. |
| Synlighed mellem forskellige STP-regioner | Med de samme VLAN'er skal du kontrollere synligheden mellem forskellige STP-regioner. |
| Telefonskiftens ydeevne | Generer 1000 telefonopkald, og kontroller, om telefonomstillingen stadig fungerer, eller om dens ydeevne forringes. |
| Negativ test for enhed | Indtast den forkerte nøgle, og kontroller godkendelsen. Brugeren skal ikke have adgang. |
| Linjehastighed | Kontroller, at enheden kører med en hastighed på 10 Gbps, og at al tilgængelig båndbredde udnyttes til at håndtere indgående trafik. |
| Protokol-samtalehastighed | Tracen TCP-samtale mellem to enheder og verificer, at hver enhed opfører sig korrekt. |
| Svartid for sessionsstart | Mål en enheds svartid på en invitationsanmodning om sessionsstart. |
Værktøjer til protokoltestning
Lad os diskutere de vigtigste testværktøjer, der bruges til at verificere protokoller.
1) Scapy til pakkefremstilling
Scapy er et kraftfuldt interaktivt pakkehåndteringsprogram. Det gør det muligt for dig at:
- Opret pakker
- Afkode pakker på netværket
- Fang pakker og analyser dem
- Injicer pakker i netværket
Så, dybest set, Scapy gør primært to ting: at modtage svar og sende pakkerDu definerer pakkerne, den sender dem, modtager svar, matcher anmodninger med svar og returnerer en liste over pakkepar og en liste over ikke-matchede pakker.
Den kan også håndtere andre opgaver som f.eks. trace-routing, enhedstest, angreb, netværksopdagelse, udviklingping nye protokoller og sondering.
Scapy gør det muligt for dig at skrive en Python script, der giver dig mulighed for at udføre opgaver som at sende, modtage eller sniffe pakker. For eksempel, Scapy kan sniffe datapakker ved hjælp af en kort Python script. Kommandoen til at åbne editoren er vist nedenfor.
#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
Den vil sniffe 10 pakker, og så snart den har sniffet 10 pakker, vil den udskrive opsummeringen. Scapy har også en række kommandoer til at sende og modtage pakker på samme tid.
2) Wireshark til analyse
Wireshark er det førende værktøj, der bruges til analyse af protokoltestning. Det giver dig mulighed for at indsamle pakker i realtid og vise dem i en menneskelig læsbar form. Du kan dykke dybt ned i netværkstrafikken og inspicere individuelle pakker ved hjælp af farvekodning og filtre.
Wireshark indfanger pakker, der hjælper med at bestemme, hvornår sessionen etableres, hvornår den nøjagtige dataoverførsel blev påbegyndt, og hvor meget data der sendes hver gang.
Wireshark har et rigt sæt funktioner, der inkluderer:
- En grundig inspektion af hundredvis af protokoller, og flere tilføjes hele tiden
- Live capture og offline analyse
- Rig VoIP-analyse
- Standard pakkebrowser med tre ruder
- Kører på flere platforme som f.eks. Windows, Linux og macOS
- Opsamlede netværksdata kan gennemses via en GUI
- Dekrypteringsunderstøttelse af mange protokoller såsom IPsec, ISAKMP og SSL/TLS
- Livedata kan læses fra Ethernet, ATM, Bluetooth, USB og Token Ring
- Output kan eksporteres til CSV, XML og almindelig tekst
3) TTCN
TTCN er et standard testsprog til at definere Test scenarier og deres implementering til protokoltestning. En TTCN-testsuite indeholder mange testcases skrevet i TTCN-programmeringssproget, og den bruges til test af reaktive systemer eller adfærdstest.
For eksempel, forestil dig en kaffeautomat, der dispenserer kaffe, når en dollarmønt indsættes, men ikke reagerer, hvis der indsættes mindre end en dollar. For at programmere sådanne maskiner bruges TTCN-3. For at få kaffemaskinen til at reagere, når en mønt indsættes, skriver du en TTCN-3-komponent, der opfører sig som en kaffemaskine. Dette giver dig mulighed for at køre tests, før en egentlig kaffemaskine er tilgængelig som et produkt. Når det er gjort, kan du forbinde TTCN-3-testsuiten med den eksterne enhed.
Testsystemet udsender stimuli (en dollarmønt) og modtager responser (kaffe). Stimuliadapteren modtager stimuli fra testsystemet og sender dem videre til det system, der testes. Responsadapteren venter på responser fra det system, der testes, og sender dem videre til testsystemet.
TTCN-3 kan bruges inden for forskellige områder såsom:
- Mobilkommunikation (LTE, WiMAX, 3G)
- Bredbåndsteknologier (ATM, DSL)
- Middleware-platforme (webtjenester, CORBA)
- Internetprotokoller (SIP, IMS, IPv6)
- Smartkort
- Automotive (AutoSAR, MOST, CAN)
I TTCN kan du definere:
- Test suiter
- Test Cases
- Test trin
- Deklarerede variabler
- Deklarerede timere
- PDU'er og mere
TTCN kan integreres med systemer skrevet i andre sprog såsom ASN.1, XML, og C/C++TTCN-3-kernesproget findes i tekstformat sammen med tabel-, grafiske og præsentationsformater.
Sådan anvender du protokoltestning i praksis
For at anvende disse teknikker på et rigtigt projekt skal du definere protokollens omfang (L2, L3 eller højere), opsætte en DUT med tilsluttet simulator og analysator, udarbejde overensstemmelses- og negative testcases med reference til RFC- eller IEEE-specifikationer, og derefter køre stress-, interoperabilitets- og AI-assisterede anomalikontroller. Indsamle resultater i Wireshark og iterer indtil pakkeadfærden matcher standarden.


