Урок за тестване на протоколи: 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 също като масив от команди за изпращане и получаване на пакети едновременно

Изтегли Scapy

2) Wireshark Инструменти за анализ

Инструменти, използвани за тестване на протоколи- Wireshark. Позволява да се улавят пакети в реално време и да се показват в четима от човека форма. Позволява ви да копаете дълбоко в мрежовия трафик и да проверявате отделни пакети, като използвате цветно кодиране и филтри.

Wireshark улавя пакети, които помагат да се определи кога сесията се установява, кога е започнало точното пътуване на данни и колко данни се изпращат всеки път и т.н.

Wireshark има набор от богати функции, който включва

  • Цялостна проверка на стотици протоколи, като през цялото време се добавят повече
  • Заснемане на живо и офлайн анализ
  • Богат VoIP анализ
  • Стандартен браузър с три панела
  • Работи на мултиплатформи като Windows, Linux, OSX и т.н
  • Заснетите мрежови данни могат да се разглеждат чрез GUI
  • Дешифрирането поддържа много протоколи като IPsec, ISAKMP, SSL/TLS
  • Данните на живо могат да се четат от Ethernet, ATM, Bluetooth, USB, токен и др.
  • Изходът може да бъде експортиран в CSV, XML, обикновен текст и др.

Изтегли Wireshark

TTCN

TCCN е стандартен тестов език за дефиниране Сценарий на теста и тяхното внедряване за тестване на протокола. Тестовият пакет TCCN съдържа много тестови случаи, написани на езика за програмиране TTCN и се използва за тестване реактивни системи или поведенчески тестове.

Например автомат за кафе, който ви дава кафе при поставяне на монета от долар, но не реагира, ако в него се постави нещо по-малко от долар. За програмиране на такива машини се използва езикът TCCN3. За да накараме кафе машината да реагира при поставяне на монета, трябва да напишем TCCN-3 компонент, който се държи като кафе машина. Позволява ни да проведем нашия тест, преди истинска кафемашина да бъде налична като продукт. След като приключи, ще свържем тестовия пакет TCCN3 с външното устройство.

TTCN

Тестовата система излъчва стимули (монета в долар) и получава отговори (кафе). Адаптерът за стимули получава стимули от тестовата система и ги предава на тестваната система. Адаптерът за отговор изчаква отговорите на тестваната система и ги предава на тестовата система.

TCCN3 може да се използва в различни области като

  • Мобилни комуникации (LTE, WiMAX, 3G и др.)
  • Широколентови технологии (ATM, DSL)
  • Мидълуер платформи (уеб услуги, CORBA и т.н.)
  • Интернет протокол (SIP, IMS, IPv6)
  • Смарт карти
  • Автомобили (AutoSAR, MOST, CAN)

В TCCN можем да дефинираме

  • Тестови пакети
  • Тестови Случаи
  • Тестови стъпки
  • Деклариране на променливи
  • Декларирайте таймери
  • Създайте PDU и т.н.

TCCN може да се интегрира с типове системи на други езици като ASN.1, XML, C/C++. Основният език TCCN3 съществува в текстов формат, отделно от други формати като табличен, графичен и презентационен.