Veiledning for protokolltesting (nivå 2 og nivå 3)

⚡ Smart oppsummering

Protokolltesting validerer hvordan nettverksenheter utveksler data på tvers av L2- og L3-protokoller. Den verifiserer pakkestruktur, samsvar, ytelse og interoperabilitet for svitsjer, rutere, VoIP-utstyr og trådløst utstyr som brukes av leverandører som Cisco, Juniper og Alcatel.

  • 🌐 Omfang: Protokolltesting dekker svitsje-, trådløs-, VoIP- og rutingprotokoller på tvers av OSI-stakken med fokus på L2- og L3-oppførsel.
  • 🔌 L2 mot L3: Lag 2 håndterer MAC, Ethernet og Frame Relay; Lag 3 velger optimale stier gjennom IP, OSPF, EIGRP og lignende rutingsprotokoller.
  • 🛠️ Verktøykjede: Ingeniører stoler på Wireshark for liveopptak, Scapy for pakkeutforming, og TTCN-3 for atferdsmessige testsuiter mot en enhet under test.
  • Sjekktyper: Samsvars-, interoperabilitets-, funksjonstester, stress-, belastnings- og ytelsestester bekrefter korrekthet, latens og båndbreddeterskler.
  • 🧪 AI-vinkel: Moderne laboratorier bruker AI-modeller for å oppdage trafikkavvik, forutsi protokollfeil og automatisk generere negative testtilfeller for raskere regresjonssykluser.

Protokolltesting

Før vi lærer om protokolltesting, la oss forstå grunnlaget den bygger på.

Hva er en protokoll?

Når datamaskiner kommuniserer med hverandre, finnes det et felles sett med regler og betingelser som hver datamaskin må følge. Med andre ord bestemmer protokoller hvordan data blir behandlet. transmitmellom dataenheter og over nettverk. Uten disse delte reglene kunne ikke enheter fra forskjellige leverandører utveksle trafikk pålitelig.

Hva er protokolltesting?

Protokolltesting er en metode for å sjekke kommunikasjonsprotokoller innen domenene svitsjing, trådløs teknologi, VoIP, ruting og lignende nettverksområder. Hovedmålet med protokolltesting er å sjekke strukturen til pakker som sendes over et nettverk ved hjelp av dedikerte protokolltestingsverktøy. Rutere og svitsjer brukes under testen for å danne deler av enheter og produkter som testes.

Nå som vi har definert praksisen, la oss undersøke hvorfor denne disiplinen er viktig i produksjonsnettverk.

Hvorfor protokolltesting er viktig

Moderne nettverk bærer forretningskritiske arbeidsbelastninger som VoIP-samtaler, finansielle transaksjoner og strømming av video. En enkelt protokollfeil kan forstyrre interoperabiliteten mellom leverandører, miste pakker eller avdekke sikkerhetshull. Protokolltesting sikrer kvalitet ved å validere at hver protokollimplementering samsvarer med spesifikasjonen, skalerer under belastning og oppfører seg forutsigbart under feil.

Med motivasjonen klar, er det neste spørsmålet hvordan protokoller kategoriseres i virkelige nettverk.

Rutede og rutingprotokoller

Protokoller er klassifisert i to kategorier: rutede protokoller og ruting protokoller.

  • Rutede protokoller: Rutede protokoller brukes til å sende brukerdata fra ett nettverk til et annet. De bærer brukertrafikk som e-post, nettrafikk og filoverføringer. Eksempler på rutede protokoller er IP, IPX og AppleTalk.
  • Rutingprotokoller: Rutingsprotokoller er nettverksprotokoller som bestemmer ruter for rutere. De brukes kun mellom rutere. Eksempler inkluderer RIP, IGRP og EIGRP.

For å si det enkelt, En ruter er som en buss som brukes til transport, mens rutingsprotokoller er signaler på veien.

Basert på kommunikasjonstypen brukes forskjellige protokoller. Selskaper som CiscoJuniper og Alcatel produserer nettverksenheter som rutere, modemer og trådløse tilgangspunkter som bruker forskjellige protokoller for kommunikasjon. For eksempel, Cisco bruker EIGRP og OSPF. Protokolltesting handler i hovedsak om å sjekke om EIGRP (Enhanced Interior Gateway Routing Protocol), OSPF (Open Shortest Path First) eller en annen protokoll fungerer i henhold til sin respektive standard.

Typer dataprotokoller

Tabellen nedenfor viser de vanligste protokollene en tester vil støte på på ledningen.

Typer protokoller Formål med protokoller
TCP / IP Den brukes til å sende informasjon i små pakker over Internett
UDP/ICMP Den brukes til å sende en liten mengde informasjon i datapakker over Internett
POP3 og SMTP Den brukes til å sende og motta post
Hypertext Transfer Protocol Den brukes til å overføre HTML-sider i kryptert form for å gi sikkerhet til sensitive data
FTP Den brukes til å transportere filer over et nettverk fra en node til en annen

* TCP / IP - Transmission Kontrollprotokoll/Internettprotokoll, UDP/ICMP – User Datagram Protocol/Internet Control Message Protocol, POP3 / SMTP – Postkontorprotokoll/Enkel Mail Overføringsprotokoll, HTTP – Hyper Text Transfer Protocol, FTP – Filoverføringsprotokoll.

Ulike typer nettverksprotokoller (L2 og L3)

OSI-modellen har totalt syv lag med nettverkskommunikasjon, hvorav lag 2 (L2) og lag 3 (L3) er svært viktige for protokolltesting.

  • Lag 2 (L2): Det er datalinklaget. MAC-adresse, Ethernet, Token Ring og Frame Relay er alle eksempler på datalinklaget.
  • Lag 3 (L3): Det er nettverkslaget som bestemmer den beste tilgjengelige banen i nettverket for kommunikasjon. En IP-adresse er et eksempel på nivå 3.

Hvordan utføre protokolltesting

  • For protokolltesting trenger du en protokollanalysator og en simulator.
  • Protokollanalysatoren sikrer riktig dekoding sammen med samtale- og øktanalyse. Simulatoren simulerer ulike enheter i nettverkselementet.
  • Vanligvis utføres protokolltesting av en DUT (Device Under Test) som er koblet til andre enheter som svitsjer og rutere, med målprotokollen konfigurert på den.
  • Deretter sjekker testeren pakkestrukturen til pakkene som sendes av enhetene.
  • Den sjekker skalerbarhet, ytelse og protokollalgoritmeoppførsel til enheten ved hjelp av verktøy som IxNetwork, Scapyog Wireshark.

Testtyper for protokolltesting

Protokolltesting inkluderer testing av funksjonalitet, ytelse, protokollstabel, interoperabilitet og mer. Under protokolltesting utføres tre grunnleggende kontroller.

  • Riktighet: Mottar vi pakke X når vi forventer den?
  • Ventetid: Hvor lang tid tar det for en pakke å passere gjennom systemet?
  • båndbredde: Hvor mange pakker kan vi sende per sekund?

Protokolltesting kan deles inn i to hovedkategorier: stress- og pålitelighetstester og funksjonstester. Stress- og pålitelighetstester dekker Load Testing, Stresstestingog Ytelsestesting. Funksjonell testing inkluderer negativ testing, samsvarstesting og interoperabilitetstesting.

  • Samsvarstesting: Protokollene som er implementert på produkter testes for overholdelse av standarder som IEEE og RFC.
  • Interoperabilitetstesting: Interoperabiliteten for ulike leverandører testes. Denne testingen utføres etter at samsvarstesting er fullført på den aktuelle plattformen.
  • Testing av nettverksfunksjoner: Funksjonene til nettverksprodukter testes for funksjonalitet med henvisning til designdokumentet. For eksempel kan funksjoner være portsikkerhet på en svitsj eller tilgangskontrolliste (ACL) på en ruter.

Eksempel på testtilfeller for protokolltesting av nettverksenheter

Her er et eksempel på testtilfeller for rutere og svitsjer.

Testnavn test Cases
Ett VLAN på en svitsj Bygg to forskjellige VLAN-er. Sjekk synligheten mellom verter på forskjellige VLAN-er.
Tre symmetriske VLAN-er på én svitsj Opprett tre forskjellige asymmetriske VLAN-er. Sjekk synligheten mellom vertene.
Spanning Tree: Variasjon av rotbanekostnad Test hvordan rotbanekostnaden endres etter en topologivariasjon.
Spanning Tree: Port Blocking Sjekk hvordan spanning tree-protokollen unngår dannelsen av sykluser i nettverket, og blokkerer redundante lenker i nærvær av VLAN også.
Ulik rotbro for forskjellige MSTI Vis at hver MSTI kan ha en ulik rotbro.
Synlighet mellom ulike STP-regioner Med de samme VLAN-ene, sjekk synligheten mellom forskjellige STP-regioner.
Ytelse av telefonsentral Generer 1000 telefonsamtaler og sjekk om telefonsentralen fortsatt fungerer eller om ytelsen forringes.
Negativ test for enhet Skriv inn feil nøkkel og sjekk autentiseringen. Brukeren skal ikke ha tilgang.
Linjehastighet Sjekk at enheten opererer med en hastighet på 10 Gbps, og utnytter all tilgjengelig båndbredde til å håndtere innkommende trafikk.
Protokoll-samtalefrekvens Tracka TCP-samtale mellom to enheter og bekrefte at hver enhet oppfører seg riktig.
Svartid for øktstart Mål responstiden til en enhet på en invitasjonsforespørsel om øktstart.

Verktøy for protokolltesting

La oss diskutere de viktigste testverktøyene som brukes til å verifisere protokoller.

1) Scapy for pakkeproduksjon

Scapy er et kraftig interaktivt pakkemanipuleringsprogram. Det lar deg:

  • Lag pakker
  • Dekode pakker på nettverket
  • Ta opp pakker og analyser dem
  • Injiser pakker i nettverket

Så, i bunn og grunn, Scapy gjør hovedsakelig to ting: motta svar og sende pakkerDu definerer pakkene, den sender dem, mottar svar, matcher forespørsler med svar og returnerer en liste over pakkepar og en liste over ikke-matchede pakker.

Den kan også håndtere andre oppgaver som f.eks. trace-ruting, enhetstester, angrep, nettverksoppdagelse, utviklingping nye protokoller og sondering.

Scapy lar deg skrive en Python skript som lar deg utføre oppgaver som å sende, motta eller sniffe pakker. For eksempel, Scapy kan sniffe datapakker ved hjelp av en kort Python skript. Kommandoen for å åpne editoren vises 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 skrive ut sammendraget. Scapy har også en rekke kommandoer for å sende og motta pakker samtidig.

Last ned Scapy

2) Wireshark for analyse

Wireshark er det ledende verktøyet som brukes til analyse av protokolltesting. Det lar deg fange opp pakker i sanntid og vise dem i menneskelig lesbar form. Du kan grave dypt i nettverkstrafikken og inspisere individuelle pakker ved hjelp av fargekoding og filtre.

Wireshark fanger opp pakker som bidrar til å bestemme når økten etableres, når den nøyaktige dataoverføringen ble startet og hvor mye data som sendes hver gang.

Wireshark har et rikt funksjonssett som inkluderer:

  • En grundig inspeksjon av hundrevis av protokoller, med flere lagt til hele tiden
  • Live fangst og offline analyse
  • Rik VoIP-analyse
  • Standard pakkeleser med tre ruter
  • Kjører på flere plattformer, som f.eks. Windows, Linux og macOS
  • Innfangede nettverksdata kan bla gjennom en GUI
  • Dekrypteringsstøtte for mange protokoller som IPsec, ISAKMP og SSL/TLS
  • Livedata kan leses fra Ethernet, minibank, Bluetooth, USB og Token Ring
  • Utdataene kan eksporteres til CSV, XML og ren tekst

Last ned Wireshark

3) TTCN

TTCN er et standard testspråk for å definere Test scenarier og implementeringen av disse for protokolltesting. En TTCN-testpakke inneholder mange testtilfeller skrevet i programmeringsspråket TTCN, og den brukes til testing av reaktive systemer eller atferdstesting.

Tenk deg for eksempel en kaffeautomat som dispenserer kaffe når en dollarmynt settes inn, men som ikke reagerer hvis mindre enn én dollar settes inn. For å programmere slike maskiner brukes TTCN-3. For å få kaffemaskinen til å reagere når en mynt settes inn, skriver du en TTCN-3-komponent som oppfører seg som en kaffemaskin. Dette lar deg kjøre tester før en faktisk kaffemaskin er tilgjengelig som et produkt. Når det er gjort, kan du koble TTCN-3-testpakken til den eksterne enheten.

TTCN

Testsystemet sender ut stimuli (en dollarmynt) og mottar responser (kaffe). Stimuliadapteren henter stimuli fra testsystemet og sender dem videre til systemet som testes. Responsadapteren venter på responser fra systemet som testes og sender dem videre til testsystemet.

TTCN-3 kan brukes innen ulike felt, som for eksempel:

  • Mobilkommunikasjon (LTE, WiMAX, 3G)
  • Bredbåndsteknologier (ATM, DSL)
  • Mellomvareplattformer (webtjenester, CORBA)
  • Internettprotokoller (SIP, IMS, IPv6)
  • Smartkort
  • Bil (AutoSAR, MOST, CAN)

I TTCN kan du definere:

  • Test suiter
  • test Cases
  • Teststrinn
  • Deklarerte variabler
  • Deklarerte tidtakere
  • PDU-er og mer

TTCN kan integreres med systemer skrevet på andre språk, som for eksempel ASN.1, XML, og C/C++Kjernespråket TTCN-3 finnes i tekstformat, i tillegg til tabell-, grafisk- og presentasjonsformater.

Hvordan bruke protokolltesting i praksis

For å bruke disse teknikkene på et reelt prosjekt, definer protokollens omfang (L2, L3 eller høyere), sett opp en DUT med simulator og analysator koblet til, utarbeid samsvarstester og negative testtilfeller som refererer til RFC- eller IEEE-spesifikasjoner, og kjør deretter stress-, interoperabilitets- og AI-assisterte anomalikontroller. Registrer resultater i Wireshark og iterer til pakkeoppførselen samsvarer med standarden.

Spørsmål og svar

Protokolltesting kontrollerer at kommunikasjonsprotokoller på svitsjer, rutere og lignende enheter sender velformede pakker og oppfører seg i henhold til standarder på tvers av svitsjings-, ruting-, VoIP- og trådløse domener.

L2-testing fokuserer på datalinklaget som MAC, Ethernet og Frame Relay, mens L3-testing validerer nettverkslagets rutingsprotokoller som IP, OSPF og EIGRP som velger optimale stier mellom nettverk.

Wireshark for liveopptak og dekoding, Scapy For pakkeproduksjon er IxNetwork for trafikkgenerering og TTCN-3 for atferdsmessige testsuiter standardverktøyene som brukes av nettverkstestingeniører.

Samsvarstesting bekrefter at en protokollimplementering strengt følger spesifikasjonene, for eksempel en IEEE-standard eller en IETF RFC, slik at enheter fra forskjellige leverandører kan samhandle forutsigbart på samme nettverk.

AI-modeller lærer grunnleggende pakkemønstre og genererer deretter negative testtilfeller, forutsier regresjonsrisiko i ruteendringer og prioriterer automatisk feilscenarier slik at testingeniører dekker flere protokollbaner på kortere tid.

Ja. Maskinlæringsklassifiseringer inntar Wireshark eller NetFlow fanger opp, flagger uvanlig latens, jitter eller pakkeformer mot lærte grunnlinjer, og overfladisk protokollfeil før det utløser avbrudd i produksjonsnettverk.

Oppsummer dette innlegget med: