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

Содержание:

Anonim

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

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

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

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

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

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

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

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

Проще говоря, маршрутизатор похож на шину, используемую для транспортировки, а протоколы маршрутизации - это сигналы на дороге.

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

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

Типы протоколов Назначение протоколов
TCP / IP Используется для отправки информации небольшими пакетами через Интернет.
UDP / ICMP Он используется для отправки небольшого количества информации в пакетах данных через Интернет.
POP3 и SMTP Используется для отправки и получения почты.
Протокол передачи гипертекста Он используется для передачи HTML-страницы в зашифрованном виде для обеспечения безопасности конфиденциальных данных.
FTP Он используется для передачи файлов по сети от одного узла к другому.

* TCP / IP - протокол управления передачей / Интернет-протокол, UDP / ICMP - протокол дейтаграмм пользователя / протокол управляющих сообщений Интернет, POP3 / SMTP - протокол почтового отделения / простой протокол передачи почты, HTTP - протокол передачи гипертекста, FTP - протокол передачи файлов

Различные типы сетевых протоколов (L2 и L3)

Модель OSI имеет в общей сложности 7 уровней сетевого взаимодействия, в которых уровень 2 и уровень 3 очень важны.

  • Уровень 2 : это уровень канала передачи данных. Mac-адрес, Ethernet, Token Ring и Frame Relay - все это примеры уровня канала передачи данных.
  • Уровень 3 : это сетевой уровень, который определяет наилучший доступный путь в сети для связи. IP-адрес - это пример уровня 3.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Scapy позволяет нам писать скрипт Python, который позволяет нам выполнять такую ​​задачу, как отправка и получение пакетов или их прослушивание. Например, scapy может обнюхивать пакет данных с помощью скрипта Python. Команда открытия getdit введена в редакторе

#gedit scapysniff.py#! / usr / bin / env pythonиз scapy.all import *а = нюхать (счетчик = 10)a.nsummary ()сохранить и изменить режим файла на исполняемую форму# chmod + x scapysniff.py# ./scaotsbuff.py

Он будет обнюхивать 10 пакетов, и как только он перехватит 10 пакетов, он распечатает сводку. Scapy также как массив команд для одновременной отправки и получения пакетов

Скачать Scapy

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

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

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

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

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

Скачать Wireshark

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