Samouczek dotyczący testowania protokołów: L2 & L3

Spisie treści:

Anonim

Zanim dowiemy się o testowaniu protokołów, zrozummy:

Co to jest protokół?

Kiedy komputer komunikuje 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 między urządzeniami komputerowymi i przez sieci.

Testowanie protokołów

Testowanie protokołów to metoda sprawdzania protokołów komunikacyjnych w domenach przełączania, łączności bezprzewodowej, VoIP, routingu itp. Podstawowym celem testowania protokołów jest sprawdzenie struktury pakietów, które są przesyłane w sieci za pomocą narzędzi do testowania protokołów. Routery i przełączniki są używane podczas testu do tworzenia części testowanych urządzeń i produktów.

Protokoły routingu i routingu

Protokoły są podzielone na dwie kategorie protokołów routowanych i protokołów routingu

  • Protokoły routowane : protokoły routowane mogą być używane do wysyłania danych użytkownika z jednej sieci do innej sieci. Przenosi ruch użytkowników, taki jak e-maile, ruch internetowy, przesyłanie plików itp. Protokoły routowane to IP, IPX i AppleTalk.
  • Protokoły routingu : protokoły routingu to protokoły sieciowe, które określają trasy dla routerów. Jest używany tylko między routerami. Na przykład RIP, IGRP, EIGRP itp.

Mówiąc prościej, router jest jak autobus używany do transportu, podczas gdy protokoły routingu są sygnałami na drodze.

W zależności od rodzaju komunikacji używane są różne protokoły. Firmy takie jak CISCO, JUNIPER, ALCATEL produkują urządzenia sieciowe, takie jak routery, modemy, bezprzewodowe punkty dostępowe itp., Które używają różnych protokołów do komunikacji, na przykład Cisco używa EIGRP, OSPF itp. Testowanie protokołów to nic innego jak sprawdzenie, czy EIGRP (Enhanced Interior Gateway Routing Protocol) lub OSPF (Open Shortest Path First) lub jakikolwiek inny protokół działa zgodnie z odpowiednim standardem.

Rodzaje protokołów komputerowych

Rodzaje protokołów Cel protokołów
TCP / IP Służy do wysyłania informacji w małych pakietach przez Internet
UDP / ICMP Służy do wysyłania niewielkiej ilości informacji w pakietach danych przez Internet
POP3 i SMTP Służy do wysyłania i odbierania poczty
Hypertext Transfer Protocol Służy do przesyłania strony HTML w postaci zaszyfrowanej w celu zapewnienia bezpieczeństwa wrażliwych danych
FTP Służy do przesyłania plików przez sieć z jednego węzła do drugiego

* TCP / IP - protokół kontroli transmisji / protokół internetowy, UDP / ICMP - protokół datagramów użytkownika / protokół komunikatów kontroli Internetu, POP3 / SMTP - protokół pocztowy / prosty protokół przesyłania poczty, HTTP - protokół przesyłania hipertekstu, FTP - protokół przesyłania plików

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

Model OSI ma łącznie 7 warstw komunikacji sieciowej, w których bardzo istotne są warstwy 2 i 3.

  • Warstwa 2 : jest to warstwa łącza danych. Adres Mac, Ethernet, Token Ring i Frame Relay to przykłady warstwy łącza danych.
  • Warstwa 3 : jest to warstwa sieciowa, która określa najlepszą dostępną ścieżkę komunikacji w sieci. Adres IP jest przykładem warstwy 3.

Jak przeprowadzić testowanie protokołów

  • Do testowania protokołów potrzebny jest analizator protokołów i symulator
  • Analizator protokołów zapewnia prawidłowe dekodowanie wraz z analizą połączeń i sesji. Podczas gdy symulator symuluje różne jednostki elementu sieciowego
  • Zwykle testowanie protokołu jest przeprowadzane przez DUT (testowane urządzenie) na innych urządzeniach, takich jak przełączniki i routery, i konfiguruje w nich protokół
  • Następnie sprawdzanie struktury pakietów wysyłanych przez urządzenia
  • Sprawdza skalowalność, wydajność, algorytm protokołu itp. Urządzenia za pomocą narzędzi takich jak lxNetworks, Scapy i Wireshark

Typy testów do testowania protokołów

Testowanie protokołów obejmuje testowanie funkcjonalności, wydajności, stosu protokołów, współdziałania itp. Podczas testowania protokołów przeprowadza się zasadniczo trzy testy.

  • Poprawność : czy otrzymujemy pakiet X, kiedy tego oczekiwaliśmy
  • Opóźnienie : jak długo pakiet jest przesyłany przez system
  • Przepustowość : ile pakietów możemy wysłać na sekundę

Testowanie protokołów można podzielić na dwie kategorie. Testy wytrzymałości i niezawodności oraz testy funkcjonalne. Testy warunków skrajnych i niezawodności obejmują testy obciążeniowe, testy obciążeniowe, testy wydajności itp. Podczas gdy testy funkcjonalne obejmują testy negatywne, testy zgodności, testy interoperacyjności itp.

  • Testowanie zgodności : protokoły zaimplementowane w produktach są testowane pod kątem zgodności, takie jak IEEE, RFC itp.
  • Testowanie interoperacyjności : testowane są współdziałanie dla różnych dostawców. Testowanie to jest wykonywane po przeprowadzeniu testów zgodności na odpowiedniej platformie
  • Testowanie funkcji sieci: Funkcje produktów sieciowych są testowane pod kątem funkcjonalności w odniesieniu do dokumentu projektowego. Na przykład funkcjami mogą być zabezpieczenia portów na przełączniku, listy ACL na routerze itp.

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

Oto przykładowy przypadek testowy dla routerów

Nazwa testu Przypadki testowe
  1. Jedna sieć VLAN na jednym przełączniku
  • Zbuduj dwie różne sieci VLAN. Sprawdź widoczność między hostami w różnych sieciach VLAN
  1. Trzy symetryczne sieci VLAN na jednym przełączniku
  • Utwórz trzy różne asymetryczne sieci VLAN. Sprawdź widoczność między hostami
  1. Spanning Tree: Zmiana kosztów ścieżki głównej
  • Sprawdź, jak zmienia się koszt ścieżki głównej po zmianie topologii
  1. Drzewo opinające: blokowanie portów
  • Sprawdź, jak protokół drzewa opinającego zapobiega tworzeniu się cykli w sieci, blokując nadmiarowe łącza, również w obecności sieci VLAN
  1. Inny most główny dla różnych MSTI
  • Pokaż, że każdy MSTI może mieć inny most główny
  1. Widoczność między różnymi regionami STP
  • Z tymi samymi sieciami VLAN sprawdź widoczność między różnymi regionami STP
  1. Przełącznik telefoniczny Wydajność
  • Wygeneruj 1000 połączeń telefonicznych i sprawdź, czy centrala telefoniczna nadal działa lub czy jej wydajność spada
  1. Negatywny wynik testu dla urządzenia
  • Wprowadź nieprawidłowy klucz i sprawdź uwierzytelnianie użytkownika. Nie powinno pozwalać użytkownikowi na dostęp
  1. Linia prędkości
  • Sprawdź, czy urządzenie działa z prędkością 10 Gb / s, wykorzystując całą dostępną przepustowość do obsługi ruchu przychodzącego
  1. Szybkość konwersacji protokołu
  • Śledź konwersację TCP między dwoma urządzeniami i sprawdź, czy każde urządzenie zachowuje się prawidłowo
  1. Czas odpowiedzi na rozpoczęcie sesji
  • Zmierz czas odpowiedzi urządzenia na żądanie zaproszenia do zainicjowania sesji

Narzędzia do testowania protokołów

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

Scapy do tworzenia pakietów

Scapy to potężny interaktywny program do manipulacji pakietami. To umożliwia

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

Zasadniczo scapy robi głównie dwie rzeczy: odbieranie odpowiedzi i wysyłanie pakietów . Definiujesz pakiety, wysyła je, odbiera odpowiedzi, dopasowuje żądania do odpowiedzi i zwraca listę par pakietów oraz listę niedopasowanych pakietów.

Może również obsługiwać inne rzeczy, takie jak śledzenie tras, testy jednostkowe, ataki lub wykrywanie sieci, opracowywanie nowych protokołów, sondowanie itp.

Scapy umożliwia nam napisanie skryptu w Pythonie, który pozwoli nam wykonać zadanie, takie jak wysyłanie i odbieranie pakietów lub węszenie pakietów. Na przykład scapy może wykryć pakiet danych przy użyciu skryptu w języku Python. Polecenie otwierające getdit wprowadzone w edytorze

#gedit scapysniff.py#! / usr / bin / env pythonfrom scapy.all import *a = sniff (liczba = 10)a.nsummary ()zapisz i zmień tryb pliku na postać wykonywalną# chmod + x scapysniff.py# ./scaotsbuff.py

Wychwyci 10 paczek i po wykryciu 10 paczek wydrukuje podsumowanie. Scapy również jako tablica poleceń do wysyłania i odbierania pakietów w tym samym czasie

Pobierz Scapy

Narzędzia Wireshark do analizy

Narzędzia do testowania protokołów - Wireshark. Umożliwia przechwytywanie pakietów w czasie rzeczywistym i wyświetlanie ich w postaci czytelnej dla człowieka. Pozwala wniknąć głęboko w ruch sieciowy i sprawdzać poszczególne pakiety za pomocą kodowania kolorami i filtrów.

Wireshark przechwytuje pakiety, które pomagają określić, kiedy sesja jest ustanawiana, kiedy została zainicjowana dokładna podróż danych i ile danych jest wysyłanych za każdym razem itp.

Wireshark ma zestaw bogatych funkcji, w tym

  • Dokładna inspekcja setek protokołów, z ciągłym dodawaniem kolejnych
  • Przechwytywanie na żywo i analiza offline
  • Bogata analiza VoIP
  • Standardowa przeglądarka z trzema panelami
  • Działa na wielu platformach, takich jak Windows, Linux, OSX i tak dalej
  • Przechwycone dane sieciowe można przeglądać za pomocą GUI
  • Odszyfrowywanie obsługuje wiele protokołów, takich jak IPsec, ISAKMP, SSL / TLS
  • Dane na żywo można odczytać z sieci Ethernet, bankomatu, Bluetooth, USB, tokena itp.
  • Dane wyjściowe można wyeksportować do CSV, XML, zwykłego tekstu itp.

Pobierz Wireshark

TTCN

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

Na przykład automat z kawą, który podaje kawę po włożeniu monety dolarowej, ale nie reaguje, jeśli włoży się do niego cokolwiek mniejszego niż dolar. Do programowania takich maszyn używany jest język TCCN3. Aby ekspres reagował na wrzucenie monety, musimy napisać komponent TCCN-3, który zachowuje się jak ekspres do kawy. Pozwala nam to przeprowadzić nasz test, zanim rzeczywisty ekspres do kawy będzie dostępny jako produkt. Po zakończeniu połączymy zestaw testowy TCCN3 z urządzeniem zewnętrznym.

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

TCCN3 może być używany w różnych dziedzinach, takich jak

  • Komunikacja mobilna (LTE, WiMAX, 3G itp.)
  • Technologie szerokopasmowe (ATM, DSL)
  • Platformy oprogramowania pośredniego (usługi sieciowe, CORBA itp.)
  • Protokół internetowy (SIP, IMS, IPv6)
  • Karty inteligentne
  • Motoryzacja (AutoSAR, MOST, CAN)

W TCCN możemy zdefiniować

  • Zestawy testowe
  • Przypadki testowe
  • Kroki testowe
  • Zadeklaruj zmienne
  • Zadeklaruj liczniki czasu
  • Twórz PDU itp.

TCCN można zintegrować z systemami innych języków, takimi jak ASN.1, XML, C / C ++. Podstawowy język TCCN3 istnieje w formacie tekstowym oprócz innych formatów, takich jak tabelaryczne, graficzne i prezentacyjne.