Tutoriál k testování protokolů (L2 a L3)

⚡ Chytré shrnutí

Testování protokolů ověřuje, jak si síťová zařízení vyměňují data přes protokoly L2 a L3. Ověřuje strukturu paketů, shodu, výkon a interoperabilitu přepínačů, routerů, VoIP zařízení a bezdrátových zařízení používaných dodavateli, jako jsou... Cisco, Juniper a Alcatel.

  • 🌐 Rozsah: Testování protokolů zahrnuje přepínací, bezdrátové, VoIP a směrovací protokoly napříč OSI stackem se zaměřením na chování L2 a L3.
  • 🔌 L2 vs. L3: Vrstva 2 zpracovává MAC, Ethernet a Frame Relay; vrstva 3 vybírá optimální cesty prostřednictvím IP, OSPF, EIGRP a podobných směrovacích protokolů.
  • 🛠️ Řetězec nástrojů: Inženýři se spoléhají na Wireshark pro živé snímání, Scapy pro tvorbu paketů a TTCN-3 pro sady behaviorálních testů na testovaném zařízení.
  • (Tj. Typy šeků: Testy shody, interoperability, funkčnosti, zátěže, zatížení a výkonu potvrzují prahové hodnoty správnosti, latence a šířky pásma.
  • 🧪 Úhel umělé inteligence: Moderní laboratoře používají modely umělé inteligence k detekci anomálií v provozu, predikci selhání protokolů a automatickému generování negativních testovacích případů pro rychlejší regresní cykly.

Testování protokolu

Než se dozvíme o testování protokolů, pojďme si vysvětlit základy, na kterých staví.

Co je to protokol?

Když počítače vzájemně komunikují, existuje společný soubor pravidel a podmínek, které musí každý počítač dodržovat. Jinými slovy, protokoly určují, jak jsou data předávána. transmitmezi výpočetními zařízeními a přes sítě. Bez těchto sdílených pravidel by zařízení od různých dodavatelů nemohla spolehlivě vyměňovat provoz.

Co je testování protokolů?

Testování protokolu je metoda kontroly komunikačních protokolů v oblastech přepínání, bezdrátových sítí, VoIP, směrování a podobných síťových oblastí. Primárním cílem testování protokolů je kontrola struktury paketů odesílaných po síti pomocí specializovaných nástrojů pro testování protokolů. Routery a přepínače se během testu používají jako součásti testovaných zařízení a produktů.

Nyní, když jsme definovali praxi, pojďme se podívat, proč je tato disciplína důležitá v produkčních sítích.

Proč je testování protokolů důležité

Moderní sítě nesou kritické úlohy, jako jsou VoIP hovory, finanční transakce a streamované video. Jediná chyba v protokolu může narušit interoperabilitu mezi dodavateli, zahodit pakety nebo odhalit bezpečnostní mezery. Testování protokolů chrání kvalitu ověřováním, zda každá implementace protokolu odpovídá své specifikaci, škáluje se při zátěži a chová se předvídatelně během selhání.

S jasnou motivací je další otázkou, jak jsou protokoly kategorizovány v reálných sítích.

Směrovací a směrovací protokoly

Protokoly se dělí do dvou kategorií: směrované protokoly a směrovací protokoly.

  • Směrované protokoly: Směrované protokoly se používají k odesílání uživatelských dat z jedné sítě do druhé. Přenášejí uživatelský provoz, jako jsou e-maily, webový provoz a přenosy souborů. Příklady směrovaných protokolů jsou IP, IPX a AppleTalk.
  • Směrovací protokoly: Směrovací protokoly jsou síťové protokoly, které určují trasy pro routery. Používají se pouze mezi routery. Mezi příklady patří RIP, IGRP a EIGRP.

Zjednodušeně řečeno, Router je jako autobus používaný k dopravě, zatímco směrovací protokoly jsou signály na silnici.

V závislosti na typu komunikace se používají různé protokoly. Společnosti jako CiscoSpolečnosti , Juniper a Alcatel vyrábějí síťová zařízení, jako jsou routery, modemy a bezdrátové přístupové body, které pro komunikaci používají různé protokoly. Například Cisco používá EIGRP a OSPF. Testování protokolu v podstatě kontroluje, zda protokol EIGRP (Enhanced Interior Gateway Routing Protocol), OSPF (Open Shortest Path First) nebo jakýkoli jiný protokol funguje podle svého příslušného standardu.

Typy počítačových protokolů

Níže uvedená tabulka uvádí nejběžnější protokoly, se kterými se tester setká na drátě.

Typy protokolů Účel protokolů
TCP / IP Používá se k odesílání informací v malých balíčcích přes internet
UDP/ICMP Používá se k odesílání malého množství informací v datových paketech přes internet.
POP3 a SMTP Slouží k odesílání a přijímání pošty
Protokol přenosu hypertextů Používá se k přenosu HTML stránek v šifrované podobě pro zajištění bezpečnosti citlivých dat.
FTP Používá se pro přenos souborů po síti z jednoho uzlu do druhého

* TCP / IP - Transmission Řídicí protokol/Internetový protokol, UDP/ICMP – User Datagram Protocol/Internet Control Message Protocol, POP3 / SMTP – Poštovní protokol/jednoduchý Mail přenosový protokol, HTTP - Hyper Text Transfer Protocol, FTP – Protokol pro přenos souborů.

Různé typy síťových protokolů (L2 a L3)

Model OSI má celkem sedm vrstev síťové komunikace, z nichž vrstva 2 (L2) a vrstva 3 (L3) jsou pro testování protokolů velmi důležité.

  • Vrstva 2 (L2): Je to vrstva datového spojení. MAC adresa, Ethernet, Token Ring a Frame Relay jsou příklady vrstvy datového spojení.
  • Vrstva 3 (L3): Je to síťová vrstva, která určuje nejlepší dostupnou cestu v síti pro komunikaci. IP adresa je příkladem L3.

Jak provést testování protokolu

  • Pro testování protokolu potřebujete analyzátor protokolů a simulátor.
  • Analyzátor protokolů zajišťuje správné dekódování spolu s analýzou hovorů a relací. Simulátor simuluje různé entity síťového prvku.
  • Testování protokolu se obvykle provádí pomocí testovaného zařízení (DUT) připojeného k jiným zařízením, jako jsou přepínače a routery, na kterých je nakonfigurován cílový protokol.
  • Poté tester zkontroluje strukturu paketů odeslaných zařízeními.
  • Kontroluje škálovatelnost, výkon a chování protokolových algoritmů zařízení pomocí nástrojů jako IxNetwork, Scapy, a Wireshark.

Typy testování pro testování protokolů

Testování protokolů zahrnuje testování funkčnosti, výkonu, protokolového zásobníku, interoperability a dalších aspektů. Během testování protokolů se provádějí tři základní kontroly.

  • Správnost: Dostaneme paket X, když ho očekáváme?
  • Latency: Jak dlouho trvá, než paket projde systémem?
  • Šířka pásma: Kolik paketů můžeme odeslat za sekundu?

Testování protokolů lze rozdělit do dvou širokých kategorií: zátěžové testy a testy spolehlivosti a funkční testy. Zátěžové testy a testy spolehlivosti zahrnují Testování zatížení, Stresové testování, a Testování výkonu. Funkční testování zahrnuje negativní testování, testování shody a testování interoperability.

  • Testování shody: Protokoly implementované v produktech jsou testovány z hlediska souladu se standardy, jako jsou IEEE a RFC.
  • Testování interoperability: Je testována interoperabilita pro různé dodavatele. Toto testování se provádí po dokončení testování shody na příslušné platformě.
  • Testování síťových funkcí: Funkce síťových produktů jsou testovány z hlediska funkčnosti s odkazem na návrhovou dokumentaci. Mezi funkce může patřit například zabezpečení portů na přepínači nebo ACL na routeru.

Vzorové testovací případy pro testování protokolů síťových zařízení

Zde je ukázková sada testovacích případů pro routery a přepínače.

Název testu testovacích případů
Jedna VLAN na jednom přepínači Vytvořte dvě různé sítě VLAN. Zkontrolujte viditelnost mezi hostiteli na různých sítích VLAN.
Tři symetrické VLAN na jednom přepínači Vytvořte tři různé asymetrické VLAN. Zkontrolujte viditelnost mezi hostiteli.
Spanning Tree: Variace nákladů kořenové cesty Otestujte, jak se mění náklady na kořenovou cestu po změně topologie.
Spanning Tree: Blokování přístavů Zkontrolujte, jak protokol Spanning Tree zabraňuje tvorbě cyklů v síti, blokujících redundantní spojení, v přítomnosti... VLAN taky.
Odlišný kořenový most pro různé MSTI Ukažte, že každý MSTI může mít jiný kořenový most.
Viditelnost mezi různými oblastmi STP U stejných VLAN zkontrolujte viditelnost mezi různými oblastmi STP.
Výkon telefonního ústředny Vygenerujte 1000 telefonních hovorů a zkontrolujte, zda telefonní ústředna stále funguje, nebo zda se její výkon zhoršuje.
Negativní test na zařízení Zadejte nesprávný klíč a zkontrolujte ověření. Uživatel by neměl mít povolený přístup.
Rychlost linky Zkontrolujte, zda zařízení pracuje rychlostí 10 Gb/s a využívá veškerou dostupnou šířku pásma ke zpracování příchozího provozu.
Rychlost konverzace protokolu Tracprovede TCP konverzaci mezi dvěma zařízeními a ověří, zda se každé zařízení chová správně.
Doba odezvy pro zahájení relace Změřte dobu odezvy zařízení na žádost o pozvánku k zahájení relace.

Nástroje pro testování protokolů

Pojďme si probrat nejdůležitější testovací nástroje používané k ověřování protokolů.

1) Scapy pro výrobu paketů

Scapy je výkonný interaktivní program pro manipulaci s pakety. Umožňuje vám:

  • Vytvářejte pakety
  • Dekódujte pakety v síti
  • Zachyťte pakety a analyzujte je
  • Injektujte pakety do sítě

Takže v podstatě, Scapy dělá hlavně dvě věci: přijímání odpovědí a odesílání paketůDefinujete pakety, systém je odešle, přijme odpovědi, porovná požadavky s odpověďmi a vrátí seznam párů paketů a seznam nesourodých paketů.

Zvládne i další úkoly, jako např. tracelektronické směrování, jednotkové testy, útoky, vyhledávání v síti, vývojping nové protokoly a sondování.

Scapy umožňuje vám napsat Python skript, který umožňuje provádět úkoly, jako je odesílání, přijímání nebo sniffing paketů. Například Scapy dokáže prohledávat datové pakety pomocí krátkého Python skript. Příkaz pro otevření editoru je uveden níže.

#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

Pročte 10 paketů a jakmile jich pročte, vypíše souhrn. Scapy má také řadu příkazů pro současné odesílání a přijímání paketů.

Ke stažení Scapy

2) Wireshark pro analýzu

Wireshark je přední nástroj používaný pro analýzu testování protokolů. Umožňuje zachycovat pakety v reálném čase a zobrazovat je v čitelné podobě. Můžete se hlouběji ponořit do síťového provozu a kontrolovat jednotlivé pakety pomocí barevného kódování a filtrů.

Wireshark zachycuje pakety, které pomáhají určit, kdy je relace navazována, kdy byl přesný přenos dat zahájen a kolik dat je pokaždé odesláno.

Wireshark má bohatou sadu funkcí, která zahrnuje:

  • Důkladná kontrola stovek protokolů, přičemž další jsou neustále přidávány
  • Živé zachycení a offline analýza
  • Bohatá analýza VoIP
  • Standardní třípanelové prohlížeče paketů
  • Běží na více platformách, jako např. Windows, Linux a macOS
  • Zachycená síťová data lze procházet pomocí GUI
  • Podpora dešifrování pro mnoho protokolů, jako jsou IPsec, ISAKMP a SSL/TLS
  • Živá data lze číst z Ethernetu, ATM, Bluetooth, USB a Token Ring
  • Výstup lze exportovat do formátu CSV, XML a prostého textu

Ke stažení Wireshark

3) TTCN

TTCN je standardní testovací jazyk pro definování Testovací scénáře a jejich implementace pro testování protokolů. Testovací sada TTCN obsahuje mnoho testovacích případů napsaných v programovacím jazyce TTCN a používá se pro testování reaktivních systémů nebo behaviorální testování.

Uvažujme například automat na kávu, který vydává kávu po vhození mince v hodnotě jednoho dolaru, ale nereaguje, pokud je vhozena menší mince. K programování takových automatů se používá kód TTCN-3. Aby kávovar reagoval na vhození mince, napíšete komponentu TTCN-3, která se chová jako kávovar. To vám umožní spustit testy dříve, než bude kávovar skutečný a dostupný jako produkt. Jakmile je to hotové, můžete připojit testovací sadu TTCN-3 k externímu zařízení.

TTCN

Testovací systém vysílá stimuly (dolarovou minci) a přijímá odpovědi (kávu). Adaptér stimulů přijímá stimuly z testovacího systému a předává je testovanému systému. Adaptér odpovědí čeká na odpovědi testovaného systému a předává je testovacímu systému.

TTCN-3 lze použít v různých oblastech, jako například:

  • Mobilní komunikace (LTE, WiMAX, 3G)
  • Širokopásmové technologie (ATM, DSL)
  • Middleware platformy (webové služby, CORBA)
  • Internetové protokoly (SIP, IMS, IPv6)
  • Chytré karty
  • Automobilový průmysl (AutoSAR, MOST, CAN)

V TTCN můžete definovat:

  • Testovací sady
  • testovacích případů
  • Testovací kroky
  • Deklarované proměnné
  • Deklarované časovače
  • PDU a další

TTCN lze integrovat se systémy napsanými v jiných jazycích, jako je ASN.1, XMLa C/C++Základní jazyk TTCN-3 existuje v textovém formátu, vedle tabulkového, grafického a prezentačního formátu.

Jak aplikovat testování protokolů v praxi

Chcete-li tyto techniky aplikovat na reálný projekt, definujte rozsah protokolu (L2, L3 nebo vyšší), nastavte testované zařízení (DUT) s připojeným simulátorem a analyzátorem, vypracujte návrhy testovacích případů shody a negativních testů s odkazem na specifikace RFC nebo IEEE a poté spusťte kontroly zátěže, interoperability a anomálií s pomocí umělé inteligence. Zaznamenejte výsledky do Wireshark a iterovat, dokud chování paketů neodpovídá standardu.

Nejčastější dotazy

Testování protokolů kontroluje, zda komunikační protokoly na přepínačích, routerech a podobných zařízeních odesílají správně formátované pakety a chovají se podle standardů v doménách přepínání, směrování, VoIP a bezdrátových sítí.

Testování L2 se zaměřuje na vrstvu datového spojení, jako jsou MAC, Ethernet a Frame Relay, zatímco testování L3 ověřuje směrovací protokoly síťové vrstvy, jako jsou IP, OSPF a EIGRP, které vybírají optimální cesty mezi sítěmi.

Wireshark pro živý záznam a dekódování, Scapy Pro tvorbu paketů, IxNetwork pro generování provozu a TTCN-3 pro sady behaviorálních testů jsou standardní nástroje používané síťovými testovacími inženýry.

Testování shody ověřuje, zda implementace protokolu striktně dodržuje svou specifikaci, jako je standard IEEE nebo IETF RFC, takže zařízení od různých dodavatelů předvídatelně spolupracují ve stejné síti.

Modely umělé inteligence se učí základní vzorce paketů a poté generují negativní testovací případy, předpovídají riziko regrese při změnách směrování a automaticky upřednostňují scénáře selhání, takže testovací inženýři pokryjí více cest protokolu za kratší dobu.

Ano. Klasifikátory strojového učení ingestují Wireshark nebo NetFlow zachycuje, označuje neobvyklou latenci, jitter nebo tvary paketů oproti naučeným základním hodnotám a identifikuje chybné chování protokolu dříve, než spustí výpadky v produkčních sítích.

Shrňte tento příspěvek takto: