Підручник з тестування протоколу: L2 і L3
Перш ніж ми дізнаємося про тестування протоколу, давайте розберемося:
Що таке протокол?
Коли комп’ютери спілкуються один з одним, існує загальний набір правил і умов, яких повинен дотримуватися кожен комп’ютер. Іншими словами, протоколи визначають, як дані передаються між обчислювальними пристроями та через мережі.
Тестування протоколу
Тестування протоколу це метод перевірки протоколів зв’язку в областях комутації, бездротового зв’язку, VoIP, маршрутизації тощо. Основною метою тестування протоколу є перевірка структури пакетів, які надсилаються через мережу, за допомогою інструментів тестування протоколу. Маршрутизатори та комутатори використовуються під час випробування для формування частин пристроїв і продуктів, що тестуються.
Маршрутизація та протоколи маршрутизації
Протоколи поділяються на дві категорії маршрутизовані протоколи та протоколи маршрутизації
- Маршрутизовані протоколи: Протоколи маршрутизації можна використовувати для надсилання даних користувача з однієї мережі в іншу. Він передає користувацький трафік, як-от електронні листи, веб-трафік, передача файлів тощо. Маршрутизовані протоколи — 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 є дуже важливими.
- Layer 2: це канальний рівень. Mac-адреса, Ethernet, Token Ring і Frame Relay — це приклади канального рівня.
- Layer 3: це мережевий рівень, який визначає найкращий доступний шлях у мережі для зв’язку. IP-адреса є прикладом рівня 3.
Як провести тестування протоколу
- Для тестування протоколу вам потрібно аналізатор і симулятор протоколів
- Аналізатор протоколів забезпечує належне декодування, а також аналіз викликів і сеансів. У той час як симулятор імітує різні сутності елемента мережі
- Зазвичай тестування протоколу виконується DUT (пристроєм, що тестується) на інших пристроях, таких як комутатори та маршрутизатори, і налаштовує протокол у ньому
- Після цього перевіряється структура пакетів, надісланих пристроями
- Він перевіряє масштабованість, продуктивність, алгоритм протоколу тощо пристрою за допомогою таких інструментів, як lxNetworks, Scapy та Wireshark
Типи тестування для тестування протоколу
Тестування протоколу включає тестування функціональності, продуктивності, стека протоколу, сумісності тощо. Під час тестування протоколу в основному виконуються три перевірки.
- Правильність: чи отримуємо ми пакет X, коли очікували
- Затримка: скільки часу потрібно пакету для проходження через систему
- ширина смуги: Скільки пакетів ми можемо надіслати за секунду
Тестування протоколу можна розділити на дві категорії. Тести на стрес і надійність, а також функціональні тести. Стрес-тести та тести на надійність Тестування навантаження, Стрес-тестування, Тестування продуктивностіі т. д. Поки Функціональне тестування включає негативне тестування, тестування на відповідність, тестування сумісності тощо.
- Тестування відповідності: Протоколи, реалізовані на продуктах, перевіряються на відповідність, наприклад IEEE, RFC і т.п.
- Тестування сумісності: Перевірено сумісність для різних постачальників. Це тестування виконується після перевірки відповідності на відповідній платформі
- Тестування мережевих функцій: Характеристики мережевих продуктів перевіряються на функціональність з посиланням на проектний документ. Наприклад, функціями можуть бути захист портів на комутаторі, ACL на маршрутизаторі тощо.
Зразки тестових випадків для тестування протоколів мережевих пристроїв
Ось приклад тестування маршрутизаторів
Назва тесту | Тестові випадки |
---|---|
Одна VLAN на одному комутаторі | Створіть дві різні VLAN. Перевірте видимість між хостами в різних VLAN |
Три симетричні VLAN на одному комутаторі | Створіть три різні асиметричні VLAN. Перевірте видимість між хостами |
Spanning Tree: зміна вартості кореневого шляху | Перевірте, як змінюється вартість кореневого шляху після зміни топології |
Spanning Tree: Блокування портів | Перевірте, як протокол spanning tree запобігає утворенню циклів у мережі, блокуючи надлишкові зв’язки, за наявності VLAN занадто |
Різний кореневий міст для різних MSTI | Покажіть, що кожен MSTI може мати різний кореневий міст |
Видимість між різними регіонами STP | З однаковими VLAN перевірте видимість між різними регіонами STP |
Продуктивність телефонного комутатора | Згенеруйте 1000 телефонних дзвінків і перевірте, чи телефонний комутатор все ще працює або його продуктивність погіршується |
Тест пристрою негативний | Введіть неправильний ключ і перевірте автентифікацію користувача. Він не повинен дозволяти користувачеві отримати доступ |
Лінійна швидкість | Перевірте, чи пристрій працює на швидкості 10 Гбіт/с, використовуючи всю доступну пропускну здатність для обробки вхідного трафіку |
Швидкість розмови протоколу | Відстежуйте 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 тощо
- Захоплені мережеві дані можна переглядати за допомогою графічного інтерфейсу користувача
- Дешифрування підтримує багато протоколів, таких як 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 існує в текстовому форматі окремо від інших форматів, таких як табличний, графічний і презентаційний.