Учебное пособие по тестированию протоколов: L2 и L3

Прежде чем мы узнаем о тестировании протоколов, давайте поймем:

Что такое протокол?

Когда компьютеры взаимодействуют друг с другом, существует общий набор правил и условий, которым должен следовать каждый компьютер. Другими словами, протоколы определяют, как данные передаются между вычислительными устройствами и по сетям.

Тестирование протокола

Тестирование протокола — это метод проверки протоколов связи в областях коммутации, беспроводной связи, VoIP, маршрутизации и т. д. Основная цель тестирования протоколов — проверка структуры пакетов, отправляемых по сети, с использованием инструментов тестирования протоколов. Маршрутизаторы и коммутаторы используются во время тестирования для формирования частей тестируемых устройств и продуктов.

Маршрутизация и протоколы маршрутизации

Протоколы делятся на две категории маршрутизируемые протоколы и протоколы маршрутизации

  • Маршрутизируемые протоколы: Маршрутизируемые протоколы могут использоваться для отправки пользовательских данных из одной сети в другую. Он передает пользовательский трафик, как электронныйmails, веб-трафик, передача файлов и т. д. Маршрутизируемые протоколы — IP, IPX и AppleTalk.
  • Протоколы маршрутизации: Протоколы маршрутизации — это сетевые протоколы, которые определяют маршруты для маршрутизаторов. Он используется только между маршрутизаторами. Например RIP, IGRP, EIGRP и т. д.

Проще говоря, Маршрутизатор подобен автобусу, используемому для перевозки, а протоколы маршрутизации — это сигналы на дороге.

В зависимости от типа связи используются разные протоколы. Такие компании, как CISCO, JUNIPER, ALCATEL производят сетевые устройства, такие как маршрутизаторы, модемы, точки беспроводного доступа и т. д., которые используют разные протоколы связи, например, Cisco использует EIGRP, OSPF и т. д. Тестирование протокола — это не что иное, как проверка того, работает ли EIGRP (улучшенный протокол маршрутизации внутреннего шлюза), OSPF (сначала открыть кратчайший путь) или любой другой протокол в соответствии с соответствующим стандартом.

Типы компьютерных протоколов

Типы протоколов Цель протоколов
TCP / IP Он используется для отправки информации небольшими пакетами через Интернет.
UDP/ICMP Он используется для отправки небольшого количества информации в пакетах данных через Интернет.
POP3 и SMTP Он используется для отправки и получения mail
Протокол передачи гипертекста Он используется для передачи 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-адрес является примером Layer3.

Как провести тестирование протокола

  • Для тестирования протокола вам необходимо анализатор протоколов и симулятор
  • Анализатор протоколов обеспечивает правильное декодирование, а также анализ вызовов и сеансов. В то время как симулятор имитирует различные объекты сетевого элемента
  • Обычно тестирование протокола выполняется DUT (тестируемым устройством) для других устройств, таких как коммутаторы и маршрутизаторы, и настройки протокола в нем.
  • После этого проверка структуры пакетов, отправленных устройствами.
  • Он проверяет масштабируемость, производительность, алгоритм протокола и т. д. устройства с помощью таких инструментов, как lxNetworks, Scapy и Wireshark.

Типы тестирования для тестирования протоколов

Тестирование протокола включает в себя тестирование функциональности, производительности, стека протоколов, совместимости и т. д. Во время тестирования протокола в основном выполняются три проверки.

  • правильность: Получим ли мы пакет X, когда ожидали?
  • Задержка: сколько времени требуется пакету для прохождения через систему
  • Пропускная способность: Сколько пакетов мы можем отправить в секунду

Тестирование протокола можно разделить на две категории. Стресс-тесты и испытания надежности, а также функциональные тесты. Стресс-тесты и тесты надежности охватывают испытание нагрузкой, Стресс-тестирование, Тестирование производительностии т.д. Пока Функциональное тестирование включает отрицательное тестирование, тестирование на соответствие, тестирование на совместимость и т. д.

  • Тестирование на соответствие: Протоколы, реализованные в продуктах, проверяются на соответствие, например, IEEE, RFC и так далее
  • Тестирование на совместимость: Проверена совместимость различных производителей. Это тестирование проводится после завершения тестирования на соответствие на соответствующей платформе.
  • Тестирование сетевых функций: Функциональность сетевых продуктов проверяется на предмет соответствия проектному документу. Например, функциями могут быть безопасность портов на коммутаторе, ACL на маршрутизаторе и т. д.

Примеры тестовых примеров для тестирования протоколов сетевых устройств

Вот пример тестового примера для маршрутизаторов

Название теста Тестовые кейсы
  1. Одна VLAN на одном коммутаторе
  • Создайте две разные VLAN. Проверьте видимость между хостами в разных VLAN.
  1. Три симметричные VLAN на одном коммутаторе
  • Создайте три разные асимметричные сети VLAN. Проверьте видимость между хостами
  1. Связующее дерево: изменение стоимости корневого пути
  • Проверьте, как изменяется стоимость корневого пути после изменения топологии.
  1. Связующее дерево: блокировка портов
  • Проверьте, как протокол связующего дерева позволяет избежать образования циклов в сети, блокируя избыточные каналы, при наличии Сети VLAN слишком
  1. Разный корневой мост для разных MSTI
  • Покажите, что каждый MSTI может иметь разные корневые мосты.
  1. Видимость между различными регионами STP
  • Используя одни и те же VLAN, проверьте видимость между разными регионами STP.
  1. Телефонный коммутатор Производительность
  • Совершите 1000 телефонных звонков и проверьте, работает ли телефонный коммутатор или его производительность ухудшается.
  1. Отрицательный тест на устройство
  • Введите неверный ключ и проверьте аутентификацию пользователя. Он не должен позволять пользователю получать доступ
  1. Линейная скорость
  • Проверьте, что устройство работает на скорости 10 Гбит/с, используя всю доступную полосу пропускания для обработки входящего трафика.
  1. Скорость разговора по протоколу
  • Отслеживайте TCP-разговор между двумя устройствами и убедитесь, что каждое устройство ведет себя правильно.
  1. Время отклика на начало сеанса
  • Измерьте время ответа устройства на запрос приглашения для начала сеанса.

Инструменты для тестирования протоколов

Давайте обсудим наиболее важные инструменты тестирования, используемые для проверки протоколов.

Scapy для создания пакетов

Scapy — мощная интерактивная программа для манипулирования пакетами. Это позволяет вам

  • Создание пакетов
  • Декодировать пакеты в сети
  • Захватывайте пакеты и анализируйте их
  • Внедрение пакетов в сеть

Итак, по сути, scapy в основном делает две вещи: получение ответов и отправка пакетов. Вы определяете пакеты, он отправляет их, получает ответы, сопоставляет запросы с ответами и возвращает список пар пакетов и список несовпадающих пакетов.

Он также может выполнять другие задачи, такие как трассировка, модульные тесты, атаки или обнаружение сети, разработка новых протоколов, зондирование и т. д.

Scapy позволяет нам писать Питон скрипт, который позволяет нам выполнять такие задачи, как отправка и получение пакетов или перехват пакетов. Например, scapy может перехватить пакет данных с помощью скрипта 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 также представляет собой массив команд для одновременной отправки и получения пакетов.

Скачать Скапи

Инструменты Wireshark для анализа

Инструменты, используемые для тестирования протоколов — Wireshark. Он позволяет перехватывать пакеты в режиме реального времени и отображать их в удобочитаемом виде. Он позволяет вам глубоко копаться в сетевом трафике и проверять отдельные пакеты с помощью цветового кодирования и фильтров.

Wireshark перехватывает пакеты, что помогает определить, когда устанавливается сеанс, когда была инициирована точная передача данных, какой объем данных отправляется каждый раз и т. д.

Wireshark имеет набор богатых функций, в том числе

  • Тщательная проверка сотен протоколов, которые постоянно добавляются.
  • Запись в реальном времени и автономный анализ
  • Богатый анализ VoIP
  • Стандартный трехпанельный браузер
  • Работает на нескольких платформах, таких как Windows, Linux, OSX и т. д.
  • Захваченные сетевые данные можно просмотреть через графический интерфейс.
  • Расшифровка поддерживает множество протоколов, таких как IPsec, ISAKMP, SSL/TLS.
  • Живые данные можно считывать с Ethernet, банкомата, Bluetooth, USB, токена и т. д.
  • Вывод можно экспортировать в CSV, XML, обычный текст и т. д.

Скачать Wireshark

ТТСН

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, Си/С++. Основной язык TCCN3 существует в текстовом формате, помимо других форматов, таких как табличный, графический и презентационный.