Tutorial de testare a protocoalelor (L2 și L3)

⚡ Rezumat inteligent

Testarea protocoalelor validează modul în care dispozitivele de rețea schimbă date prin protocoalele L2 și L3. Verifică structura pachetelor, conformitatea, performanța și interoperabilitatea pentru switch-uri, routere, echipamente VoIP și echipamente wireless utilizate de furnizori precum Cisco, Juniper și Alcatel.

  • 🌐 Domeniu de aplicare: Testarea protocoalelor acoperă protocoalele de comutare, wireless, VoIP și rutare în stiva OSI, cu accent pe comportamentul L2 și L3.
  • 🔌 L2 vs. L3: Nivelul 2 gestionează MAC, Ethernet și Frame Relay; Nivelul 3 selectează căile optime prin IP, OSPF, EIGRP și protocoale de rutare similare.
  • 🛠️ Lanț de instrumente: Pe care se bazează inginerii Wireshark pentru captură live, Scapy pentru crearea de pachete și TTCN-3 pentru suite de teste comportamentale împotriva unui dispozitiv testat.
  • Tipuri de cecuri: Testele de conformitate, interoperabilitate, funcționale, de stres, de sarcină și de performanță confirmă pragurile de corectitudine, latență și lățime de bandă.
  • 🧪 Unghiul AI: Laboratoarele moderne aplică modele de inteligență artificială pentru a detecta anomalii de trafic, a prezice erori de protocol și a genera automat cazuri de testare negative pentru cicluri de regresie mai rapide.

Testarea protocolului

Înainte de a afla despre testarea protocoalelor, să înțelegem fundamentul pe care se bazează.

Ce este un protocol?

Când computerele comunică între ele, există un set comun de reguli și condiții pe care fiecare computer trebuie să le respecte. Cu alte cuvinte, protocoalele determină modul în care datele sunt transmitîntre dispozitivele de calcul și prin rețele. Fără aceste reguli partajate, dispozitivele de la diferiți furnizori nu ar putea face schimb de trafic în mod fiabil.

Ce este testarea protocolului?

Testarea protocolului este o metodă de verificare a protocoalelor de comunicație în domeniile comutației, wireless, VoIP, rutare și alte domenii de rețea similare. Scopul principal al testării protocoalelor este de a verifica structura pachetelor trimise printr-o rețea folosind instrumente dedicate de testare a protocoalelor. Routerele și switch-urile sunt utilizate în timpul testării pentru a forma părți ale dispozitivelor și produselor testate.

Acum, că am definit practica, să examinăm de ce este importantă această disciplină în rețelele de producție.

De ce este importantă testarea protocoalelor

Rețelele moderne gestionează sarcini de lucru critice, cum ar fi apeluri VoIP, tranzacții financiare și streaming video. O singură eroare de protocol poate întrerupe interoperabilitatea dintre furnizori, poate pierde pachete sau poate expune lacune de securitate. Testarea protocoalelor protejează calitatea prin validarea faptului că fiecare implementare a protocolului corespunde specificațiilor sale, se scalează sub sarcină și se comportă previzibil în timpul defecțiunilor.

Având motivația clară, următoarea întrebare este cum sunt clasificate protocoalele în rețelele reale.

Protocoale de rutare și de rutare

Protocoalele sunt clasificate în două categorii: protocoale rutate și protocoale de rutare.

  • Protocoale rutate: Protocoalele rutate sunt utilizate pentru a trimite date ale utilizatorilor dintr-o rețea în alta. Acestea transportă traficul utilizatorilor, cum ar fi e-mailuri, trafic web și transferuri de fișiere. Exemple de protocoale rutate sunt IP, IPX și AppleTalk.
  • Protocoale de rutare: Protocoalele de rutare sunt protocoale de rețea care determină rutele pentru routere. Acestea sunt utilizate numai între routere. Exemplele includ RIP, IGRP și EIGRP.

In termeni simpli, Un router este ca un autobuz folosit pentru transport, în timp ce protocoalele de rutare sunt semnale pe drum.

În funcție de tipul de comunicare, se utilizează protocoale diferite. Companii precum Cisco, Juniper și Alcatel produc dispozitive de rețea precum routere, modemuri și puncte de acces wireless care utilizează protocoale diferite pentru comunicare. De exemplu, Cisco utilizează EIGRP și OSPF. Testarea protocolului constă, în esență, în verificarea dacă EIGRP (Enhanced Interior Gateway Routing Protocol), OSPF (Open Shortest Path First) sau orice alt protocol funcționează conform standardului său respectiv.

Tipuri de protocoale computerizate

Tabelul de mai jos enumeră cele mai comune protocoale pe care un tester le va întâlni pe fir.

Tipuri de protocoale Scopul protocoalelor
TCP / IP Este folosit pentru a trimite informații în pachete mici prin Internet
UDP/ICMP Este folosit pentru a trimite o cantitate mică de informații în pachete de date prin internet
POP3 și SMTP Este folosit pentru trimiterea și primirea corespondenței
Protocol de transfer hipertext Este utilizat pentru transferul paginilor HTML în formă criptată pentru a oferi securitate datelor sensibile.
FTP Este folosit pentru a transporta fișiere printr-o rețea de la un nod la altul

* TCP / IP - Transmission Protocol de control/Protocol Internet, UDP/ICMP – Protocol Datagramă utilizator/Protocol pentru mesaje de control Internet, POP3/SMTP – Protocolul Poștei/Simplu Mail protocol de transfer, HTTP - Protocolul de transfer hipertext, FTP – Protocolul de transfer de fișiere.

Diferite tipuri de protocoale de rețea (L2 și L3)

Modelul OSI are un total de șapte niveluri de comunicații în rețea, dintre care Nivelul 2 (L2) și Nivelul 3 (L3) sunt cruciale pentru testarea protocoalelor.

  • Stratul 2 (L2): Este nivelul de legătură de date. Adresa MAC, Ethernet, Token Ring și Frame Relay sunt toate exemple de nivel de legătură de date.
  • Stratul 3 (L3): Stratul de rețea este cel care determină cea mai bună cale disponibilă în rețea pentru comunicare. O adresă IP este un exemplu de L3.

Cum se face testarea protocolului

  • Pentru testarea protocolului, aveți nevoie de un analizor de protocol și un simulator.
  • Analizatorul de protocol asigură decodarea corectă, împreună cu analiza apelurilor și sesiunilor. Simulatorul simulează diverse entități ale elementului de rețea.
  • De obicei, testarea protocoalelor este efectuată de un DUT (Device Under Test - dispozitiv testat) conectat la alte dispozitive, cum ar fi switch-uri și routere, cu protocolul țintă configurat pe acesta.
  • Ulterior, testerul verifică structura pachetelor trimise de dispozitive.
  • Verifică scalabilitatea, performanța și comportamentul algoritmului de protocol al dispozitivului folosind instrumente precum IxNetwork, Scapy și Wireshark.

Tipuri de testare pentru testarea protocolului

Testarea protocoalelor include testarea funcționalității, performanței, stivei de protocoale, interoperabilității și multe altele. În timpul testării protocoalelor, se efectuează trei verificări de bază.

  • Corectitudine: Primim pachetul X când ne așteptăm?
  • Latența: Cât durează tranzitarea unui pachet prin sistem?
  • Lățime de bandă: Câte pachete putem trimite pe secundă?

Testarea protocoalelor poate fi împărțită în două mari categorii: teste de stres și fiabilitate și teste funcționale. Testele de stres și fiabilitate acoperă Încărcarea testelor, Testare stresanta și Test de performanta. Functional Testing include testarea negativă, testarea conformității și testarea interoperabilității.

  • Testare de conformitate: Protocoalele implementate pe produse sunt testate pentru respectarea standardelor precum IEEE și RFC.
  • Testare de interoperabilitate: Interoperabilitatea pentru diferiți furnizori este testată. Această testare se face după finalizarea testelor de conformitate pe platforma corespunzătoare.
  • Testarea caracteristicilor rețelei: Caracteristicile produselor de rețea sunt testate pentru funcționalitate cu referire la documentul de proiectare. De exemplu, caracteristicile pot fi securitatea porturilor pe un switch sau ACL-ul pe un router.

Exemple de cazuri de testare pentru testarea protocolului dispozitivelor de rețea

Iată un set de exemple de cazuri de testare pentru routere și switch-uri.

Numele testului Cazuri de testare
Un VLAN pe un comutator Construiți două VLAN-uri diferite. Verificați vizibilitatea dintre gazdele de pe VLAN-uri diferite.
Trei VLAN-uri simetrice pe un singur switch Creați trei VLAN-uri asimetrice diferite. Verificați vizibilitatea dintre gazde.
Spanning Tree: variația costului căii rădăcină Testați cum se modifică costul căii rădăcină după o variație a topologiei.
Spanning Tree: blocarea porturilor Verificați cum protocolul spanning tree evită formarea ciclurilor în rețea, blocând legăturile redundante, în prezența VLAN-uri prea.
Diferite punte de rădăcină pentru diferite MSTI Demonstrați că fiecare MSTI poate avea o punte rădăcină diferită.
Vizibilitate între diferite regiuni STP Cu aceleași VLAN-uri, verificați vizibilitatea între diferite regiuni STP.
Performanța comutatorului telefonic Generează 1000 de apeluri telefonice și verifică dacă centrala telefonică încă funcționează sau dacă performanța acesteia se degradează.
Test negativ pentru dispozitiv Introduceți cheia greșită și verificați autentificarea. Utilizatorului nu ar trebui să i se permită accesul.
Viteza liniei Verificați dacă dispozitivul funcționează la o viteză de 10 Gbps, utilizând toată lățimea de bandă disponibilă pentru a gestiona traficul de intrare.
Rata de conversație a protocolului Traco conversație TCP între două dispozitive și verificarea faptului că fiecare dispozitiv se comportă corect.
Timp de răspuns pentru inițierea sesiunii Măsurați timpul de răspuns al unui dispozitiv la o solicitare de invitație pentru inițierea sesiunii.

Instrumente pentru testarea protocolului

Să discutăm despre cele mai importante instrumente de testare utilizate pentru verificarea protocoalelor.

1) Scapy pentru meșteșuguri de pachete

Scapy este un program puternic de manipulare interactivă a pachetelor. Acesta vă permite să:

  • Creați pachete
  • Decodați pachetele în rețea
  • Capturați pachete și analizați-le
  • Injectați pachete în rețea

Deci, practic, Scapy face în principal două lucruri: primirea răspunsurilor și trimiterea de pacheteTu definești pachetele, acesta le trimite, primește răspunsuri, potrivește cererile cu răspunsurile și returnează o listă de cupluri de pachete și o listă de pachete nepotrivite.

De asemenea, poate gestiona și alte sarcini, cum ar fi trace-routing, teste unitare, atacuri, descoperire de rețea, dezvoltareping noi protocoale și sondare.

Scapy vă permite să scrieți o Python script care vă permite să efectuați sarcini precum trimiterea, primirea sau detectarea pachetelor. De exemplu, Scapy poate detecta pachetele de date folosind un scurt Python script. Comanda pentru deschiderea editorului este prezentată mai jos.

#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

Va detecta 10 pachete și, imediat ce le-a detectat, va afișa rezumatul. Scapy are, de asemenea, o serie de comenzi pentru trimiterea și primirea simultană de pachete.

Descarcă Scapy

2) Wireshark pentru analiză

Wireshark este instrumentul principal utilizat pentru analiza testelor de protocoale. Acesta vă permite să capturați pachete în timp real și să le afișați într-o formă lizibilă de către om. Puteți să explorați în profunzime traficul de rețea și să inspectați pachete individuale folosind coduri de culoare și filtre.

Wireshark capturează pachete care ajută la determinarea momentului în care se stabilește sesiunea, momentului exact în care a fost inițiat transferul de date și cantității de date trimise de fiecare dată.

Wireshark are un set bogat de funcții care include:

  • O inspecție amănunțită a sutelor de protocoale, cu adăugarea continuă a altora.
  • Captură live și analiză offline
  • Analiză VoIP bogată
  • Browser standard de pachete cu trei panouri
  • Rulează pe mai multe platforme, cum ar fi Windows, Linux și macOS
  • Datele de rețea capturate pot fi răsfoite printr-o interfață grafică
  • Suport pentru decriptare pentru multe protocoale precum IPsec, ISAKMP și SSL/TLS
  • Datele în timp real pot fi citite de pe Ethernet, ATM, Bluetooth, USB și Token Ring
  • Rezultatul poate fi exportat în format CSV, XML și text simplu

Descarcă Wireshark

3) TTCN

TTCN este un limbaj de testare standard pentru definirea Testează scenarii și implementarea lor pentru testarea protocoalelor. O suită de teste TTCN conține multe cazuri de testare scrise în limbajul de programare TTCN și este utilizată pentru testarea sistemelor reactive sau testarea comportamentală.

De exemplu, să luăm în considerare un automat de cafea care distribuie cafea atunci când este introdusă o monedă de un dolar, dar nu răspunde dacă este introdusă mai puțin de un dolar. Pentru a programa astfel de automate, se utilizează TTCN-3. Pentru ca automatul de cafea să răspundă atunci când este introdusă o monedă, scrieți o componentă TTCN-3 care se comportă ca un automat de cafea. Acest lucru vă permite să rulați teste înainte ca un automat de cafea real să fie disponibil ca produs. După ce acest lucru este finalizat, puteți conecta suita de teste TTCN-3 la dispozitivul extern.

TTCN

Sistemul de testare emite stimuli (o monedă de un dolar) și primește răspunsuri (cafea). Adaptorul de stimuli obține stimuli de la sistemul de testare și îi transmite sistemului testat. Adaptorul de răspunsuri așteaptă răspunsurile sistemului testat și le transmite sistemului de testare.

TTCN-3 poate fi utilizat în diverse domenii, cum ar fi:

  • Comunicații mobile (LTE, WiMAX, 3G)
  • Tehnologii de bandă largă (ATM, DSL)
  • Platforme middleware (servicii web, CORBA)
  • Protocoale de internet (SIP, IMS, IPv6)
  • Carduri inteligente
  • Auto (AutoSAR, MOST, CAN)

În TTCN puteți defini:

  • Suite de testare
  • Cazuri de testare
  • Pașii de testare
  • Variabile declarate
  • Temporizatoare declarate
  • PDU-uri și multe altele

TTCN poate fi integrat cu sisteme scrise în alte limbaje, cum ar fi ASN.1, XMLși C/C++Limbajul de bază TTCN-3 există în format text, alături de formate tabelare, grafice și de prezentare.

Cum se aplică testarea protocolului în practică

Pentru a aplica aceste tehnici într-un proiect real, definiți domeniul de aplicare al protocolului (L2, L3 sau superior), configurați un DUT cu simulator și analizor conectate, schițați cazurile de testare de conformitate și negative care fac referire la specificațiile RFC sau IEEE, apoi rulați verificări de stres, interoperabilitate și anomalii asistate de inteligență artificială. Capturați rezultatele în Wireshark și iterați până când comportamentul pachetului corespunde standardului.

Întrebări frecvente

Testarea protocoalelor verifică dacă protocoalele de comunicație de pe switch-uri, routere și dispozitive similare trimit pachete corect formate și se comportă conform standardelor în domeniile de switching, routing, VoIP și wireless.

Testarea L2 se concentrează pe stratul de legătură de date, cum ar fi MAC, Ethernet și Frame Relay, în timp ce testarea L3 validează protocoalele de rutare la nivelul de rețea, cum ar fi IP, OSPF și EIGRP, care aleg căi optime între rețele.

Wireshark pentru captura și decodare live, Scapy Pentru crearea de pachete, IxNetwork pentru generarea de trafic și TTCN-3 pentru suitele de teste comportamentale sunt instrumentele standard utilizate de inginerii de testare a rețelei.

Testarea conformității verifică dacă implementarea unui protocol respectă cu strictețe specificațiile sale, cum ar fi un standard IEEE sau un RFC IETF, astfel încât dispozitivele de la diferiți furnizori să interopereze previzibil în aceeași rețea.

Modelele de inteligență artificială învață tipare de pachete de bază și apoi generează cazuri de testare negative, prevăd riscul de regresie în modificările de rutare și prioritizează automat scenariile de eșec, astfel încât inginerii de testare să acopere mai multe căi de protocol într-un timp mai scurt.

Da. Clasificatorii de învățare automată ingerează Wireshark sau NetFlow capturează, semnalează latența neobișnuită, jitter-ul sau formele pachetelor în raport cu valorile de referință învățate și comportamentul incorect al protocoalelor de suprafață înainte ca acestea să declanșeze întreruperi în rețelele de producție.

Rezumați această postare cu: