Protokolltesztelési oktatóanyag (L2 és L3)
⚡ Okos összefoglaló
A protokolltesztelés ellenőrzi, hogy a hálózati eszközök hogyan cserélnek adatokat az L2 és L3 protokollokon keresztül. Ellenőrzi a csomagok szerkezetét, megfelelőségét, teljesítményét és interoperabilitását a kapcsolók, útválasztók, VoIP-berendezések és vezeték nélküli eszközök esetében, amelyeket olyan gyártók használnak, mint például Cisco, a Juniper és az Alcatel.

Mielőtt belemerülnénk a protokoll tesztelésébe, nézzük meg, mire épül.
Mi az a protokoll?
Amikor a számítógépek kommunikálnak egymással, közös szabályok és feltételek vannak, amelyeket minden számítógépnek be kell tartania. Más szóval, a protokollok határozzák meg, hogyan továbbítják az adatokat. transmitszámítógépes eszközök között és hálózatokon keresztül. Ezen megosztott szabályok nélkül a különböző gyártók eszközei nem tudnának megbízhatóan forgalmat cserélni.
Mi a protokoll tesztelés?
Protokoll tesztelése egy módszer a kommunikációs protokollok ellenőrzésére a kapcsolástechnika, a vezeték nélküli hálózatok, a VoIP, az útválasztás és hasonló hálózati területeken. A protokoll tesztelésének elsődleges célja a hálózaton keresztül küldött csomagok szerkezetének ellenőrzése dedikált protokoll tesztelő eszközök segítségével. A teszt során útválasztókat és kapcsolókat használnak a tesztelt eszközök és termékek alkotóelemeinek kialakítására.
Most, hogy definiáltuk a gyakorlatot, vizsgáljuk meg, miért fontos ez a fegyelem a termelési hálózatokban.
Miért fontos a protokoll tesztelése?
A modern hálózatok kritikus fontosságú munkaterheléseket, például VoIP-hívásokat, pénzügyi tranzakciókat és videó streamelést is képesek kezelni. Egyetlen protokollhiba is meghiúsíthatja a szállítók közötti interoperabilitást, csomagokat veszíthet el, vagy biztonsági réseket fedhet fel. A protokolltesztelés a minőséget azáltal biztosítja, hogy ellenőrzi, hogy minden egyes protokoll-implementáció megfelel-e a specifikációnak, terhelés alatt is skálázódik-e, és hibák esetén kiszámíthatóan viselkedik-e.
Miután a motiváció világos, a következő kérdés az, hogy hogyan kategorizálják a protokollokat a valós hálózatokban.
Routed és Routing Protocols
A protokollokat két kategóriába sorolják: irányított protokollok és a útválasztási protokollok.
- Útvonaltervezett protokollok: Az útválasztási protokollokat felhasználói adatok egyik hálózatról a másikra küldésére használják. Olyan felhasználói forgalmat továbbítanak, mint az e-mailek, a webforgalom és a fájlátvitel. Az útválasztási protokollokra példák az IP, az IPX és az AppleTalk.
- Útválasztási protokollok: Az útválasztási protokollok olyan hálózati protokollok, amelyek meghatározzák az útválasztók útvonalait. Csak útválasztók között használatosak. Ilyenek például a RIP, az IGRP és az EIGRP.
Egyszerűen, Egy router olyan, mint egy közlekedési eszközként használt busz, míg az útválasztási protokollok jelek az úton.
A kommunikáció típusától függően különböző protokollokat használnak. Az olyan cégek, mint a CiscoA Juniper és az Alcatel olyan hálózati eszközöket gyárt, mint például útválasztók, modemek és vezeték nélküli hozzáférési pontok, amelyek különböző protokollokat használnak a kommunikációhoz. Például Cisco Az EIGRP és az OSPF protokollt használja. A protokoll tesztelése lényegében azt ellenőrzi, hogy az EIGRP (Enhanced Interior Gateway Routing Protocol), az OSPF (Open Shortest Path First) vagy bármely más protokoll a megfelelő szabványnak megfelelően működik-e.
A számítógépes protokollok típusai
Az alábbi táblázat felsorolja a leggyakoribb protokollokat, amelyekkel a tesztelő a vezetéken találkozhat.
| A protokollok típusai | A jegyzőkönyvek célja |
|---|---|
| TCP / IP | Arra használják, hogy információkat küldjenek kis csomagokban az interneten keresztül |
| UDP/ICMP | Kis mennyiségű információ interneten keresztüli küldésére szolgál adatcsomagokban. |
| POP3 és SMTP | Levelek küldésére és fogadására szolgál |
| Hypertext Transfer Protocol | HTML oldalak titkosított formában történő átvitelére szolgál, hogy biztonságot nyújtson az érzékeny adatoknak. |
| FTP | Fájlok hálózaton keresztüli szállítására szolgál egyik csomópontból a másikba |
* TCP / IP - Transmission Vezérlőprotokoll/Internetprotokoll, UDP/ICMP – User Datagram Protocol/Internet Control Message Protocol, POP3 / SMTP – Postahivatali protokoll/Egyszerű Mail Átviteli protokoll, HTTP - Hyper Text Transfer Protocol, FTP – Fájlátviteli protokoll.
Különböző típusú hálózati protokollok (L2 és L3)
Az OSI modell összesen hét hálózati kommunikációs réteggel rendelkezik, amelyek közül a 2. réteg (L2) és a 3. réteg (L3) nagyon fontos a protokoll tesztelése szempontjából.
- 2. réteg (L2): Ez az adatkapcsolati réteg. A MAC-cím, az Ethernet, a Token Ring és a Frame Relay mind az adatkapcsolati rétegre példák.
- 3. réteg (L3): A hálózati réteg határozza meg a hálózatban a kommunikációhoz elérhető legjobb útvonalat. Az IP-cím az L3 egyik példája.
A protokolltesztelés módja
- A protokoll teszteléshez szükséged van egy protokoll analizátor és szimulátor.
- A protokoll analizátor biztosítja a megfelelő dekódolást, valamint a hívás- és munkamenet-elemzést. A szimulátor a hálózati elem különböző entitásait szimulálja.
- A protokoll tesztelést általában egy DUT (Device Under Test) végzi, amely más eszközökhöz, például kapcsolókhoz és routerekhez csatlakozik, és amelyen konfigurálva van a célprotokoll.
- Ezt követően a tesztelő ellenőrzi az eszközök által küldött csomagok csomagstruktúráját.
- Az eszköz skálázhatóságát, teljesítményét és protokoll algoritmus viselkedését olyan eszközök segítségével ellenőrzi, mint az IxNetwork, Scapyés Wireshark.
Tesztelési típusok a protokoll teszteléséhez
A protokoll tesztelése magában foglalja a funkcionalitás, a teljesítmény, a protokollverem, az interoperabilitás és egyebek tesztelését. A protokoll tesztelése során három alapvető ellenőrzést végeznek.
- Helyesség: Megkapjuk-e az X csomagot, amikor vártuk?
- Késleltetés: Mennyi idő alatt halad át egy csomag a rendszeren?
- Sávszélesség: Hány csomagot küldhetünk másodpercenként?
A protokoll tesztelés két nagy kategóriába sorolható: stressz- és megbízhatósági tesztek, valamint funkcionális tesztek. A stressz- és megbízhatósági tesztek a következőket fedik le: Terhelésvizsgálat, Stressz tesztelésés Teljesítményfelmérés. Funkcionális tesztelés magában foglalja a negatív tesztelést, a megfelelőségi tesztelést és az interoperabilitási tesztelést.
- Megfelelőségi vizsgálat: A termékeken megvalósított protokollokat olyan szabványoknak való megfelelés szempontjából tesztelik, mint az IEEE és a ... RFC.
- Együttműködési tesztelés: A különböző gyártók közötti interoperabilitást tesztelik. Ez a tesztelés a megfelelő platformon elvégzett megfelelőségi tesztelés után történik.
- Hálózati funkciók tesztelése: A hálózati termékek funkcióit a tervdokumentáció alapján tesztelik működés szempontjából. Ilyen funkciók lehetnek például a portbiztonság egy switchen vagy az ACL egy routeren.
Tesztesetek minta hálózati eszközök protokolltesztéhez
Íme egy minta teszteset-készlet routerek és switchek számára.
| Teszt neve | Tesztsorozat |
|---|---|
| Egy VLAN egy kapcsolón | Építs két különböző VLAN-t. Ellenőrizd a láthatóságot a különböző VLAN-okon lévő hosztok között. |
| Három szimmetrikus VLAN egy switch-en | Hozz létre három különböző aszimmetrikus VLAN-t. Ellenőrizd a láthatóságot a hosztok között. |
| Átfogó fa: A gyökérút költségváltoztatása | Teszteld, hogyan változik a gyökérút költsége egy topológiaváltozás után. |
| Átfogó fa: Portblokkolás | Vizsgáljuk meg, hogyan kerüli el a feszítőfa protokoll a ciklusok kialakulását a hálózatban, blokkolva a redundáns kapcsolatokat, ha van ilyen: VLAN túl. |
| Különböző gyökérhíd különböző MSTI-hez | Mutasd meg, hogy minden MSTI-nek lehet eltérő gyökérhídja. |
| Láthatóság a különböző STP régiók között | Ugyanazon VLAN-ok esetén ellenőrizze a láthatóságot a különböző STP régiók között. |
| Telefonkapcsoló teljesítménye | Generáljon 1000 telefonhívást, és ellenőrizze, hogy a telefonközpont működik-e még, vagy romlik-e a teljesítménye. |
| Negatív eszközteszt | Adja meg a helytelen kulcsot, és ellenőrizze a hitelesítést. A felhasználónak nem szabad hozzáférést biztosítani. |
| Vonalsebesség | Ellenőrizze, hogy az eszköz 10 Gbps sebességgel működik-e, és a bejövő forgalom kezelésére a teljes rendelkezésre álló sávszélességet kihasználja. |
| Protokollbeszélgetési arány | Tracka TCP párbeszéd két eszköz között, és annak ellenőrzése, hogy mindegyik eszköz megfelelően működik-e. |
| Válaszidő a munkamenet megkezdéséhez | Mérje meg egy eszköz válaszidejét egy munkamenet-indítási meghívásra. |
Protokolltesztelési eszközök
Beszéljük meg a protokollok ellenőrzéséhez használt legfontosabb tesztelőeszközöket.
1) Scapy Csomagkészítéshez
Scapy egy hatékony interaktív csomagmanipulációs program. Lehetővé teszi a következőket:
- Csomagok létrehozása
- Csomagok dekódolása a hálózaton
- Csomagok rögzítése és elemzése
- Csomagok beszúrása a hálózatba
Szóval, alapvetően, Scapy alapvetően két dolgot csinál: válaszok fogadása és csomagok küldéseTe definiálod a csomagokat, az elküldi őket, fogadja a válaszokat, összepárosítja a kéréseket a válaszokkal, és visszaadja a csomagpárok listáját, valamint a nem egyező csomagok listáját.
Más feladatokat is képes ellátni, mint például trace-útválasztás, egységtesztek, támadások, hálózatfelderítés, fejlesztésping új protokollok és vizsgálatok.
Scapy lehetővé teszi, hogy írj egy Python szkript, amely lehetővé teszi olyan feladatok végrehajtását, mint a csomagok küldése, fogadása vagy szimatolása. Például, Scapy rövid idő alatt képes szimatolni az adatcsomagokat Python szkript. A szerkesztő megnyitásához szükséges parancs alább látható.
#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
10 csomagot fog szimatolni, és amint megszagolt 10 csomagot, kinyomtatja az összegzést. Scapy parancsok tömbjével is rendelkezik csomagok egyidejű küldésére és fogadására.
2) Wireshark elemzéshez
Wireshark a protokoll tesztelési elemzéshez használt vezető eszköz. Lehetővé teszi a csomagok valós idejű rögzítését és ember által olvasható formában történő megjelenítését. Mélyrehatóan beleáshatja magát a hálózati forgalomba, és színkódolás és szűrők segítségével megvizsgálhatja az egyes csomagokat.
Wireshark olyan csomagokat rögzít, amelyek segítenek meghatározni, hogy mikor jön létre a munkamenet, mikor indult el pontosan az adatátvitel, és mennyi adatot küldenek el minden alkalommal.
Wireshark gazdag funkciókészlettel rendelkezik, amely a következőket tartalmazza:
- Több száz protokoll alapos vizsgálata, folyamatosan újabbakkal bővítve
- Élő rögzítés és offline elemzés
- Gazdag VoIP elemzés
- Standard háromrészes csomagböngésző
- Több platformon is fut, mint például Windows, Linux és macOS
- A rögzített hálózati adatok grafikus felhasználói felületen keresztül böngészhetők
- Dekódolási támogatás számos protokollhoz, például IPsec, ISAKMP és SSL/TLS
- Élő adatok Ethernetről, ATM-ről, Bluetooth-ról, USB-ről és Token Ringről olvashatók ki
- A kimenet CSV, XML és sima szöveg formátumba exportálható
3) TTCN
A TTCN egy szabványos tesztelési nyelv a következők definiálására: Teszt forgatókönyvek és azok megvalósítása protokoll teszteléshez. Egy TTCN tesztkészlet számos, TTCN programozási nyelven írt tesztesetet tartalmaz, és a következőkre használják: reaktív rendszerek vagy viselkedéstesztelés tesztelése.
Vegyünk például egy kávéautomatát, amely kávét adagol, amikor egy dollárt dobnak be, de nem reagál, ha kevesebbet tesznek be, mint egy dollárt. Az ilyen gépek programozásához a TTCN-3-at használják. Ahhoz, hogy a kávéautomata reagáljon egy érme bedobására, meg kell írni egy TTCN-3 komponenst, amely kávéautomataként viselkedik. Ez lehetővé teszi tesztek futtatását, mielőtt egy tényleges kávéautomata termékként elérhetővé válna. Ha ez megtörtént, csatlakoztathatja a TTCN-3 tesztcsomagot a külső eszközhöz.
A tesztrendszer ingereket bocsát ki (egy dollárérmét) és válaszokat fogad (kávét). Az ingeradapter ingereket fogad a tesztrendszertől, és továbbítja azokat a tesztelt rendszernek. A válaszadapter megvárja a tesztelt rendszer válaszait, és továbbítja azokat a tesztrendszernek.
A TTCN-3 számos területen használható, például:
- Mobilkommunikáció (LTE, WiMAX, 3G)
- Szélessávú technológiák (ATM, DSL)
- Köztes rétegű platformok (webszolgáltatások, CORBA)
- Internetprotokollok (SIP, IMS, IPv6)
- Intelligens kártyák
- Autóipar (AutoSAR, MOST, CAN)
A TTCN-ben a következőket definiálhatja:
- Teszt lakosztályok
- Tesztsorozat
- Tesztlépések
- Deklarált változók
- Deklarált időzítők
- PDU-k és egyebek
A TTCN integrálható más nyelveken írt rendszerekkel, például az ASN.1-gyel. XML, és C/C++A TTCN-3 alapnyelv szöveges formátumban, táblázatos, grafikus és prezentációs formátumok mellett létezik.
Hogyan alkalmazzuk a protokoll tesztelést a gyakorlatban?
Ahhoz, hogy ezeket a technikákat egy valós projekten alkalmazhassuk, meg kell határozni a protokoll hatókörét (L2, L3 vagy magasabb), be kell állítani egy DUT-ot a szimulátorral és az analizátorral, ki kell dolgozni a megfelelőségi és negatív teszteseteket RFC vagy IEEE specifikációkra hivatkozva, majd le kell futtatni a stressz-, interoperabilitási és mesterséges intelligencia által támogatott anomália-ellenőrzéseket. Az eredményeket rögzíteni kell. Wireshark és addig iteráljuk, amíg a csomagok viselkedése meg nem felel a szabványnak.

