Урок за тестване на протоколи: L2 & L3
Преди да научим за тестване на протоколи, нека разберем:
Какво е протокол?
Когато компютърът комуникира един с друг, има общ набор от правила и условия, които всеки компютър трябва да следва. С други думи, протоколите определят как данните се предават между изчислителни устройства и по мрежи.
Тестване на протокола
Тестване на протокола е метод за проверка на комуникационните протоколи в областите Switching, Wireless, VoIP, Routing и т.н. Основната цел на тестването на протоколи е да се провери структурата на пакетите, които се изпращат по мрежа, като се използват инструменти за тестване на протоколи. Рутери и комутатори се използват по време на теста, за да образуват части от устройства и продукти, които се тестват.
Маршрутизирани и протоколи за маршрутизиране
Протоколите се класифицират в две категории маршрутизирани протоколи намлява протоколи за маршрутизиране
- Маршрутизирани протоколи: Маршрутизираните протоколи могат да се използват за изпращане на потребителски данни от една мрежа в друга мрежа. Той пренася потребителски трафик като имейли, уеб трафик, прехвърляне на файлове и др. Маршрутизираните протоколи са IP, IPX и AppleTalk.
- Протоколи за маршрутизиране: Протоколите за маршрутизиране са мрежови протоколи, които определят маршрути за рутери. Използва се само между рутери. Например RIP, IGRP, EIGRP и др.
С прости думи, рутерът е като автобус, използван за транспортиране, докато протоколите за маршрутизиране са сигнали по пътя.
В зависимост от вида на комуникацията се използват различни протоколи. Компании като CISCO, JUNIPER, ALCATEL произвеждат мрежови устройства като рутери, модеми, безжични точки за достъп и др., които използват различни протоколи за комуникация, напр. Cisco използва EIGRP, OSPF и т.н. Тестването на протокола не е нищо друго освен проверка дали EIGRP (Enhanced Interior Gateway Routing Protocol) или OSPF (Open Shortest Path First) или всеки друг протокол работи според съответния стандарт.
Видове компютърни протоколи
Видове протоколи | Цел на протоколите |
---|---|
TCP / IP | Използва се за изпращане на информация в малки пакети по интернет |
UDP/ICMP | Използва се за изпращане на малко количество информация в пакети с данни по интернет |
POP3 и SMTP | Използва се за изпращане и получаване на поща |
Протокол за трансфер на хипертекст | Използва се за прехвърляне на HTML страница в криптирана форма, за да се осигури сигурност на чувствителни данни |
FTP | Използва се за транспортиране на файлове през мрежа от един възел до друг |
* TCP / IP- Transmission Контролен протокол/ Интернет протокол, UDP / ICMP– Протокол за потребителски дейтаграми/Протокол за интернет контролни съобщения, POP3 / SMTP– Пощенски протокол / прост Mail предавателен протокол, HTTP– протокол за трансфер на хипертекст, FTP– Протокол за прехвърляне на файлове
Различни типове мрежови протоколи (L2 и L3)
OSI моделът има общо 7 слоя на мрежова комуникация, в които слой 2 и слой 3 са много важни.
- Слой 2: Това е слой за връзка с данни. Mac адрес, Ethernet, Token Ring и Frame Relay са примери за слой за връзка с данни.
- Слой 3: Това е мрежов слой, който определя най-добрия наличен път в мрежата за комуникация. IP адресът е пример за слой 3.
Как да направите протоколно тестване
- За тестване на протокола ви трябва анализатор на протоколи и симулатор
- Анализаторът на протоколи осигурява правилно декодиране заедно с анализа на повикванията и сесиите. Докато симулаторът симулира различни обекти на мрежовия елемент
- Обикновено тестването на протокола се извършва от DUT (тествано устройство) към други устройства като комутатори и рутери и конфигуриране на протокол в него
- След това проверява пакетната структура на пакетите, изпратени от устройствата
- Той проверява скалируемостта, производителността, алгоритъма на протокола и т.н. на устройството с помощта на инструменти като lxNetworks, Scapy намлява Wireshark
Типове тестове за тестване на протоколи
Тестването на протокола включва тестване на функционалност, производителност, протоколен стек, оперативна съвместимост и т.н. По време на тестването на протокола се правят основно три проверки.
- правилност: Получаваме ли пакет X, когато очаквахме
- латентност: Колко време отнема един пакет да премине през системата
- Bandwidth: Колко пакета можем да изпратим в секунда
Тестването на протокола може да бъде разделено на две категории. Тестове за стрес и надеждност и функционални тестове. Тестовете за стрес и надеждност покриват Тестване на товара, Стресиране, Тестване на производителността, и т.н. Докато Функционално тестване включва отрицателни тестове, тестове за съответствие, тестове за оперативна съвместимост и др.
- Тестване за съответствие: Протоколите, внедрени в продуктите, са тествани за придържане като IEEE, RFC и т.н.
- Тестване на оперативна съвместимост: Тествана е оперативната съвместимост за различни доставчици. Това тестване се извършва след извършване на тестване за съответствие на съответната платформа
- Тестване на мрежови функции: Характеристиките на мрежовите продукти се тестват за функционалност по отношение на проектния документ. Например функциите могат да бъдат защита на портове на комутатор, ACL на рутер и т.н.
Примерни тестови случаи за тестване на протоколи на мрежови устройства
Ето примерния тестов случай за рутери
Име на теста | Тестови Случаи |
---|---|
Една VLAN на един комутатор | Изградете две различни VLAN мрежи. Проверете видимостта между хостове в различни VLAN |
Три симетрични VLAN на един комутатор | Създайте три различни асиметрични VLAN. Проверете видимостта между хостовете |
Spanning Tree: Вариация на разходите за коренния път | Тествайте как цената на основния път се променя след промяна на топологията |
Spanning Tree: Блокиране на портове | Проверете как протоколът за обхващащо дърво избягва образуването на цикли в мрежата, блокирайки излишни връзки, при наличие на VLAN твърде |
Различен коренен мост за различен MSTI | Покажете, че всеки MSTI може да има различен коренен мост |
Видимост между различни STP региони | С еднакви VLAN проверявайте видимостта между различни STP региони |
Производителност на телефонния превключвател | Генерирайте 1000 телефонни обаждания и проверете дали телефонният превключвател все още работи или работата му се влошава |
Отрицателен тест за устройството | Въведете неправилния ключ и проверете потребителя за удостоверяване. Не трябва да позволява достъп на потребител |
Линейна скорост | Проверете устройството, работещо със скорост 10 Gbps, като използва цялата налична честотна лента за обработка на входящия трафик |
Скорост на разговор по протокол | Проследете TCP разговор между две устройства и проверете дали всяко устройство се е държало правилно |
Време за реакция за започване на сесия | Измерете времето за реакция на устройство на заявка за покана за иницииране на сесия |
Инструменти за тестване на протоколи
Нека обсъдим най-важните инструменти за тестване, използвани за проверка на протоколи
1) Scapy За изработка на пакети
Scapy е мощна интерактивна програма за манипулиране на пакети. Позволява ви да
- Създайте пакети
- Декодиране на пакети в мрежата
- Уловете пакети и ги анализирайте
- Инжектирайте пакети в мрежата
Така че основно scapy прави две неща: получаване на отговори и изпращане на пакети. Вие дефинирате пакетите, той ги изпраща, получава отговори, съпоставя заявки с отговори и връща списък с двойки пакети и списък с несъпоставени пакети.
Той може да се справи и с други неща, като трасиране, тестове на единици, атаки или откриване на мрежа, разработване на нови протоколи, сондиране и т.н.
Scapy ни позволява да напишем a Python скрипт, който ни позволява да изпълняваме задача като изпращане и получаване на пакети или надушване на пакети. Например, scapy може да подуши пакета данни, като използва a Python сценарий. Командата за отваряне на getdit, въведена в редактора
#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 # ./scaotsbuff.py
Той ще подуши 10 пакета и веднага след като подуши 10 пакета, ще отпечата резюмето. Scapy също като масив от команди за изпращане и получаване на пакети едновременно
2) Wireshark Инструменти за анализ
Инструменти, използвани за тестване на протоколи- Wireshark. Позволява да се улавят пакети в реално време и да се показват в четима от човека форма. Позволява ви да копаете дълбоко в мрежовия трафик и да проверявате отделни пакети, като използвате цветно кодиране и филтри.
Wireshark улавя пакети, които помагат да се определи кога сесията се установява, кога е започнало точното пътуване на данни и колко данни се изпращат всеки път и т.н.
Wireshark има набор от богати функции, който включва
- Цялостна проверка на стотици протоколи, като през цялото време се добавят повече
- Заснемане на живо и офлайн анализ
- Богат VoIP анализ
- Стандартен браузър с три панела
- Работи на мултиплатформи като Windows, Linux, OSX и т.н
- Заснетите мрежови данни могат да се разглеждат чрез GUI
- Дешифрирането поддържа много протоколи като IPsec, ISAKMP, SSL/TLS
- Данните на живо могат да се четат от Ethernet, ATM, Bluetooth, USB, токен и др.
- Изходът може да бъде експортиран в CSV, XML, обикновен текст и др.
TTCN
TCCN е стандартен тестов език за дефиниране Сценарий на теста и тяхното внедряване за тестване на протокола. Тестовият пакет TCCN съдържа много тестови случаи, написани на езика за програмиране TTCN и се използва за тестване реактивни системи или поведенчески тестове.
Например автомат за кафе, който ви дава кафе при поставяне на монета от долар, но не реагира, ако в него се постави нещо по-малко от долар. За програмиране на такива машини се използва езикът TCCN3. За да накараме кафе машината да реагира при поставяне на монета, трябва да напишем TCCN-3 компонент, който се държи като кафе машина. Позволява ни да проведем нашия тест, преди истинска кафемашина да бъде налична като продукт. След като приключи, ще свържем тестовия пакет TCCN3 с външното устройство.
Тестовата система излъчва стимули (монета в долар) и получава отговори (кафе). Адаптерът за стимули получава стимули от тестовата система и ги предава на тестваната система. Адаптерът за отговор изчаква отговорите на тестваната система и ги предава на тестовата система.
TCCN3 може да се използва в различни области като
- Мобилни комуникации (LTE, WiMAX, 3G и др.)
- Широколентови технологии (ATM, DSL)
- Мидълуер платформи (уеб услуги, CORBA и т.н.)
- Интернет протокол (SIP, IMS, IPv6)
- Смарт карти
- Автомобили (AutoSAR, MOST, CAN)
В TCCN можем да дефинираме
- Тестови пакети
- Тестови Случаи
- Тестови стъпки
- Деклариране на променливи
- Декларирайте таймери
- Създайте PDU и т.н.
TCCN може да се интегрира с типове системи на други езици като ASN.1, XML, C/C++. Основният език TCCN3 съществува в текстов формат, отделно от други формати като табличен, графичен и презентационен.