Samouczek testowania protokołów (poziom 2 i poziom 3)

⚡ Inteligentne podsumowanie

Testowanie protokołów weryfikuje sposób, w jaki urządzenia sieciowe wymieniają dane w protokołach warstwy 2 i 3. Weryfikuje strukturę pakietów, zgodność, wydajność i interoperacyjność przełączników, routerów, urządzeń VoIP i urządzeń bezprzewodowych używanych przez takich dostawców jak: Cisco, Juniper i Alcatel.

  • 🌐 Zakres: Testowanie protokołów obejmuje protokoły przełączania, łączności bezprzewodowej, VoIP i routingu w całym stosie OSI, ze szczególnym uwzględnieniem zachowań warstw L2 i L3.
  • 🔌 L2 kontra L3: Warstwa 2 obsługuje MAC, Ethernet i Frame Relay; warstwa 3 wybiera optymalne ścieżki przez IP, OSPF, EIGRP i podobne protokoły routingu.
  • 🛠️. Łańcuch narzędzi: Inżynierowie polegają na Wireshark do nagrywania na żywo, Scapy do tworzenia pakietów i TTCN-3 do zestawów testów behawioralnych na testowanym urządzeniu.
  • Typy czeków: Testy zgodności, interoperacyjności, funkcjonalności, obciążenia, wydajności i odporności potwierdzają prawidłowość, opóźnienia i progi przepustowości.
  • 🧪 Kąt AI: Nowoczesne laboratoria stosują modele sztucznej inteligencji do wykrywania anomalii w ruchu, przewidywania błędów protokołów i automatycznego generowania negatywnych przypadków testowych w celu skrócenia cykli regresji.

Testowanie protokołu

Zanim przyjrzymy się testowaniu protokołów, przyjrzyjmy się podstawom, na których się ono opiera.

Czym jest protokół?

Kiedy komputery komunikują się ze sobą, istnieje wspólny zestaw reguł i warunków, których każdy komputer musi przestrzegać. Innymi słowy, protokoły określają sposób przesyłania danych. transmitmiędzy urządzeniami komputerowymi i w sieciach. Bez tych wspólnych reguł urządzenia różnych dostawców nie mogłyby niezawodnie wymieniać danych.

Czym jest testowanie protokołów?

Testowanie protokołu Testowanie protokołów to metoda sprawdzania protokołów komunikacyjnych w domenach przełączania, łączności bezprzewodowej, VoIP, routingu i podobnych obszarach sieciowych. Głównym celem testowania protokołów jest sprawdzenie struktury pakietów przesyłanych przez sieć za pomocą dedykowanych narzędzi do testowania protokołów. Routery i przełączniki są wykorzystywane podczas testów jako elementy testowanych urządzeń i produktów.

Teraz, gdy zdefiniowaliśmy tę praktykę, przyjrzyjmy się bliżej, dlaczego ta dyscyplina jest ważna w sieciach produkcyjnych.

Dlaczego testowanie protokołów ma znaczenie

Nowoczesne sieci obsługują obciążenia o znaczeniu krytycznym, takie jak połączenia VoIP, transakcje finansowe i strumieniowe przesyłanie wideo. Pojedynczy błąd protokołu może zakłócić interoperacyjność między dostawcami, spowodować utratę pakietów lub ujawnić luki w zabezpieczeniach. Testowanie protokołów zapewnia jakość poprzez weryfikację, czy każda implementacja protokołu jest zgodna ze specyfikacją, skalowalna pod obciążeniem i zachowuje się przewidywalnie w przypadku awarii.

Mając jasną motywację, kolejnym pytaniem jest, w jaki sposób protokoły są klasyfikowane w rzeczywistych sieciach.

Protokoły routingowe i routingowe

Protokoły dzielą się na dwie kategorie: protokoły routowane oraz protokoły routingu.

  • Protokoły trasowane: Protokoły routowane służą do przesyłania danych użytkownika z jednej sieci do drugiej. Obsługują ruch użytkownika, taki jak wiadomości e-mail, ruch internetowy i transfery plików. Przykładami protokołów routowanych są IP, IPX i AppleTalk.
  • Protokoły routingu: Protokoły routingu to protokoły sieciowe, które określają trasy dla routerów. Są używane tylko między routerami. Przykładami są RIP, IGRP i EIGRP.

W prostych słowach, Router jest jak autobus używany do transportu, natomiast protokoły routingu są sygnałami na drodze.

W zależności od rodzaju komunikacji stosuje się różne protokoły. Firmy takie jak Cisco, Juniper i Alcatel produkują urządzenia sieciowe, takie jak routery, modemy i bezprzewodowe punkty dostępowe, które wykorzystują różne protokoły komunikacyjne. Na przykład, Cisco Wykorzystuje EIGRP i OSPF. Testowanie protokołów polega zasadniczo na sprawdzeniu, czy EIGRP (Enhanced Interior Gateway Routing Protocol), OSPF (Open Shortest Path First) lub jakikolwiek inny protokół działa zgodnie ze swoim standardem.

Rodzaje protokołów komputerowych

Poniższa tabela przedstawia protokoły najczęściej spotykane podczas testów.

Rodzaje protokołów Cel protokołów
TCP / IP Służy do przesyłania informacji w małych pakietach przez Internet
UDP/ICMP Służy do przesyłania niewielkiej ilości informacji w pakietach danych przez Internet
POP3 i SMTP Służy do wysyłania i odbierania poczty
Protokół przesyłania hipertekstu Służy do przesyłania stron HTML w formie zaszyfrowanej w celu zapewnienia bezpieczeństwa poufnych danych
FTP Służy do transportu plików przez sieć z jednego węzła do drugiego

* TCP / IP - Transmission Protokół sterowania/Protokół internetowy, UDP/ICMP – Protokół datagramów użytkownika/protokół komunikatów kontroli Internetu, POP3 / SMTP – Protokół pocztowy/Prosty Mail Protokół transferu, HTTP – Protokół przesyłania hipertekstu, FTP – Protokół transferu plików.

Różne typy protokołów sieciowych (L2 i L3)

Model OSI składa się z siedmiu warstw komunikacji sieciowej, z których warstwa 2 (L2) i warstwa 3 (L3) są kluczowe dla testowania protokołów.

  • Warstwa 2 (L2): Jest to warstwa łącza danych. Adres MAC, Ethernet, Token Ring i Frame Relay to przykłady warstwy łącza danych.
  • Warstwa 3 (L3): To warstwa sieciowa określa najlepszą dostępną ścieżkę komunikacji w sieci. Adres IP jest przykładem warstwy L3.

Jak przeprowadzić testowanie protokołu

  • Do testowania protokołu potrzebny jest analizator protokołów i symulator.
  • Analizator protokołów zapewnia prawidłowe dekodowanie wraz z analizą połączeń i sesji. Symulator symuluje różne elementy elementu sieciowego.
  • Zazwyczaj testowanie protokołów przeprowadza się za pomocą testowanego urządzenia (DUT) podłączonego do innych urządzeń, takich jak przełączniki i routery, na którym skonfigurowano protokół docelowy.
  • Następnie tester sprawdza strukturę pakietów wysyłanych przez urządzenia.
  • Sprawdza skalowalność, wydajność i zachowanie algorytmu protokołu urządzenia za pomocą narzędzi takich jak IxNetwork, Scapy, Wireshark.

Typy testowania w testowaniu protokołów

Testowanie protokołów obejmuje testowanie funkcjonalności, wydajności, stosu protokołów, interoperacyjności i innych aspektów. Podczas testowania protokołów przeprowadzane są trzy podstawowe kontrole.

  • Poprawność: Czy otrzymamy pakiet X, kiedy się go spodziewamy?
  • Opóźnienie: Ile czasu zajmuje pakietowi przesłanie go przez system?
  • Przepustowość: Ile pakietów możemy wysłać na sekundę?

Testowanie protokołów można podzielić na dwie szerokie kategorie: testy obciążeniowe i niezawodności oraz testy funkcjonalne. Testy obciążeniowe i niezawodności obejmują Testowanie obciążenia, Testy warunków skrajnych, Test wydajności. Testy funkcjonalne obejmuje testy negatywne, testy zgodności i testy interoperacyjności.

  • Testowanie zgodności: Protokoły wdrożone w produktach są testowane pod kątem zgodności z normami takimi jak IEEE i RFC.
  • Testowanie interoperacyjności: Testowana jest interoperacyjność dla różnych dostawców. Testowanie to odbywa się po zakończeniu testów zgodności na odpowiedniej platformie.
  • Testowanie funkcji sieciowych: Funkcje produktów sieciowych są testowane pod kątem funkcjonalności w odniesieniu do dokumentacji projektowej. Na przykład, funkcje te mogą obejmować bezpieczeństwo portów na przełączniku lub listę kontroli dostępu (ACL) na routerze.

Przykładowe przypadki testowe do testowania protokołów urządzeń sieciowych

Poniżej znajduje się przykładowy zestaw przypadków testowych dla routerów i przełączników.

Nazwa testu Przypadki testowe
Jedna sieć VLAN na jednym przełączniku Zbuduj dwie różne sieci VLAN. Sprawdź widoczność między hostami w różnych sieciach VLAN.
Trzy symetryczne sieci VLAN na jednym przełączniku Utwórz trzy różne asymetryczne sieci VLAN. Sprawdź widoczność między hostami.
Drzewo opinające: zmienność kosztów ścieżki głównej Sprawdź, jak zmienia się koszt ścieżki głównej po zmianie topologii.
Drzewo opinające: blokowanie portów Sprawdź, w jaki sposób protokół drzewa rozpinającego zapobiega powstawaniu cykli w sieci, blokując redundantne łącza w przypadku obecności VLAN też.
Inny most główny dla różnych MSTI Pokaż, że każdy MSTI może mieć inny most główny.
Widoczność między różnymi regionami STP Sprawdź widoczność między różnymi regionami STP przy użyciu tych samych sieci VLAN.
Wydajność przełącznika telefonicznego Wygeneruj 1000 połączeń telefonicznych i sprawdź, czy centrala telefoniczna nadal działa, czy też jej wydajność się pogarsza.
Negatywny wynik testu na urządzenie Wprowadź nieprawidłowy klucz i sprawdź uwierzytelnienie. Użytkownik nie powinien otrzymać dostępu.
Linia prędkości Sprawdź, czy urządzenie działa z prędkością 10 Gbps, wykorzystując całą dostępną przepustowość do obsługi ruchu przychodzącego.
Szybkość konwersji protokołu Trackonwersację TCP między dwoma urządzeniami i weryfikuje, czy każde z urządzeń zachowuje się poprawnie.
Czas reakcji na inicjację sesji Zmierz czas reakcji urządzenia na prośbę o nawiązanie sesji.

Narzędzia do testowania protokołów

Omówmy najważniejsze narzędzia testowe służące do weryfikacji protokołów.

1) Scapy do tworzenia pakietów

Scapy to potężny, interaktywny program do manipulacji pakietami. Umożliwia on:

  • Twórz pakiety
  • Dekoduj pakiety w sieci
  • Przechwytuj pakiety i analizuj je
  • Wprowadzaj pakiety do sieci

Tak więc zasadniczo, Scapy robi głównie dwie rzeczy: odbieranie odpowiedzi i wysyłanie pakietówDefiniujesz pakiety, system je wysyła, odbiera odpowiedzi, dopasowuje żądania do odpowiedzi i zwraca listę par pakietów oraz listę niedopasowanych pakietów.

Może również wykonywać inne zadania, takie jak: trace-routing, testy jednostkowe, ataki, wykrywanie sieci, rozwójping nowe protokoły i sondowanie.

Scapy umożliwia napisanie Python Skrypt umożliwiający wykonywanie zadań takich jak wysyłanie, odbieranie lub podsłuchiwanie pakietów. Na przykład, Scapy może wykrywać pakiety danych za pomocą krótkiego Python Skrypt. Polecenie otwierające edytor pokazano poniżej.

#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

Przeanalizuje 10 pakietów i po prześledzeniu 10 pakietów wyświetli podsumowanie. Scapy Posiada również tablicę poleceń umożliwiających jednoczesne wysyłanie i odbieranie pakietów.

Pobierz Scapy

2) Wireshark do analizy

Wireshark to wiodące narzędzie do analizy testowania protokołów. Umożliwia przechwytywanie pakietów w czasie rzeczywistym i wyświetlanie ich w formie czytelnej dla człowieka. Możesz analizować ruch sieciowy i analizować poszczególne pakiety za pomocą kodowania kolorami i filtrów.

Wireshark przechwytuje pakiety, które pomagają określić, kiedy sesja jest nawiązywana, kiedy dokładnie rozpoczęto transfer danych i ile danych jest wysyłanych za każdym razem.

Wireshark posiada bogaty zestaw funkcji obejmujący:

  • Dokładna kontrola setek protokołów, przy czym ciągle dodawane są nowe
  • Przechwytywanie na żywo i analiza offline
  • Bogata analiza VoIP
  • Standardowa przeglądarka pakietów z trzema panelami
  • Działa na wielu platformach, takich jak: Windows, Linux i macOS
  • Przechwycone dane sieciowe można przeglądać za pomocą graficznego interfejsu użytkownika
  • Obsługa odszyfrowywania dla wielu protokołów, takich jak IPsec, ISAKMP i SSL/TLS
  • Możliwość odczytu danych na żywo z sieci Ethernet, ATM, Bluetooth, USB i Token Ring
  • Dane wyjściowe można eksportować do plików CSV, XML i zwykłego tekstu

Pobierz Wireshark

3) TTCN

TTCN to standardowy język testowy służący do definiowania Scenariusze testowe i ich implementacji do testowania protokołów. Zestaw testów TTCN zawiera wiele przypadków testowych napisanych w języku programowania TTCN i jest używany do testowanie systemów reaktywnych lub testowanie behawioralne.

Rozważmy na przykład automat do kawy, który wydaje kawę po wrzuceniu monety o wartości jednego dolara, ale nie reaguje, gdy wrzucona zostanie moneta o wartości mniejszej niż jeden dolar. Do programowania takich automatów używany jest kod TTCN-3. Aby ekspres do kawy reagował na wrzucenie monety, należy napisać komponent TTCN-3, który zachowuje się jak ekspres do kawy. Pozwala to na przeprowadzenie testów, zanim ekspres do kawy stanie się dostępny jako produkt. Po wykonaniu tych czynności można połączyć zestaw testowy TTCN-3 z urządzeniem zewnętrznym.

TTCN

System testowy emituje bodźce (moneta o nominale jednego dolara) i odbiera odpowiedzi (kawa). Adapter bodźców pobiera bodźce z systemu testowego i przekazuje je do systemu testowanego. Adapter odpowiedzi czeka na odpowiedzi systemu testowanego i przekazuje je do systemu testowego.

TTCN-3 może być stosowany w różnych dziedzinach, takich jak:

  • Komunikacja mobilna (LTE, WiMAX, 3G)
  • Technologie szerokopasmowe (ATM, DSL)
  • Platformy pośredniczące (usługi sieciowe, CORBA)
  • Protokoły internetowe (SIP, IMS, IPv6)
  • Karty inteligentne
  • Motoryzacja (AutoSAR, MOST, CAN)

W TTCN możesz zdefiniować:

  • Zestawy testowe
  • Przypadki testowe
  • Kroki testowe
  • Zadeklarowane zmienne
  • Zadeklarowane timery
  • PDU i więcej

TTCN można zintegrować z systemami napisanymi w innych językach, np. ASN.1, XMLi C/C++Podstawowy język TTCN-3 występuje w formacie tekstowym, a także w formatach tabelarycznym, graficznym i prezentacyjnym.

Jak stosować testowanie protokołów w praktyce

Aby zastosować te techniki w rzeczywistym projekcie, zdefiniuj zakres protokołu (poziom 2, 3 lub wyższy), skonfiguruj urządzenie testowane (DUT) z podłączonym symulatorem i analizatorem, stwórz projekt zgodności i negatywnych przypadków testowych odwołujących się do specyfikacji RFC lub IEEE, a następnie przeprowadź testy obciążeniowe, interoperacyjności i anomalii wspomagane przez sztuczną inteligencję. Wireshark i powtarzaj, aż zachowanie pakietu będzie zgodne ze standardem.

FAQ

Testowanie protokołów ma na celu sprawdzenie, czy protokoły komunikacyjne na przełącznikach, routerach i podobnych urządzeniach wysyłają poprawnie sformatowane pakiety i zachowują się zgodnie ze standardami w domenach przełączania, routingu, VoIP i łączności bezprzewodowej.

Testowanie warstwy 2 koncentruje się na warstwie łącza danych, takiej jak MAC, Ethernet i Frame Relay, podczas gdy testowanie warstwy 3 weryfikuje protokoły routingu warstwy sieciowej, takie jak IP, OSPF i EIGRP, które wybierają optymalne ścieżki między sieciami.

Wireshark do przechwytywania na żywo i dekodowania, Scapy Do standardowych narzędzi wykorzystywanych przez inżynierów zajmujących się testowaniem sieci należą: IxNetwork do tworzenia pakietów, IxNetwork do generowania ruchu i TTCN-3 do przeprowadzania testów behawioralnych.

Testowanie zgodności ma na celu sprawdzenie, czy implementacja protokołu ściśle odpowiada specyfikacji, np. standardowi IEEE lub dokumentowi IETF RFC, dzięki czemu urządzenia pochodzące od różnych dostawców mogą przewidywalnie współpracować w tej samej sieci.

Modele sztucznej inteligencji uczą się podstawowych wzorców pakietów, a następnie generują negatywne przypadki testowe, przewidują ryzyko regresji przy zmianach trasowania i automatycznie ustalają priorytety scenariuszy awarii, dzięki czemu inżynierowie testujący mogą objąć więcej ścieżek protokołów w krótszym czasie.

Tak. Klasyfikatory uczenia maszynowego pobierają Wireshark lub NetFlow przechwytuje, sygnalizuje nietypowe opóźnienia, drgania lub kształty pakietów w zestawieniu z poznanymi liniami bazowymi i ujawnia nieprawidłowe zachowanie protokołu zanim doprowadzi to do przerw w działaniu sieci produkcyjnych.

Podsumuj ten post następująco: