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

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

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

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

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

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

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

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

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

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

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

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

Типы протоколов Цель протоколов
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-адрес является примером Layer3.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Скачать Scapy

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