Учебное пособие по тестированию протоколов (уровни L2 и L3)
⚡ Умное резюме
Тестирование протоколов проверяет, как сетевые устройства обмениваются данными по протоколам L2 и L3. Оно проверяет структуру пакетов, соответствие стандартам, производительность и совместимость коммутаторов, маршрутизаторов, VoIP-оборудования и беспроводного оборудования, используемого такими производителями, как [название производителя]. Cisco, Juniper и Alcatel.
Прежде чем мы начнем изучать тестирование протоколов, давайте разберемся, на каких основах оно базируется.
Что такое протокол?
Когда компьютеры взаимодействуют друг с другом, существует общий набор правил и условий, которым каждый компьютер должен следовать. Другими словами, протоколы определяют, как передаются данные. transmitОбмен данными между вычислительными устройствами и по сетям. Без этих общих правил устройства разных производителей не могли бы надежно обмениваться данными.
Что такое тестирование протокола?
Тестирование протокола Тестирование протоколов — это метод проверки коммуникационных протоколов в таких областях, как коммутация, беспроводная связь, VoIP, маршрутизация и аналогичные сетевые технологии. Основная цель тестирования протоколов — проверка структуры пакетов, передаваемых по сети, с использованием специализированных инструментов тестирования протоколов. В ходе тестирования используются маршрутизаторы и коммутаторы, являющиеся частью тестируемых устройств и продуктов.
Теперь, когда мы определили данную практику, давайте рассмотрим, почему эта дисциплина важна в производственных сетях.
Почему тестирование протоколов имеет значение
Современные сети обрабатывают критически важные рабочие нагрузки, такие как VoIP-звонки, финансовые транзакции и потоковое видео. Одна-единственная ошибка в протоколе может нарушить совместимость между поставщиками, привести к потере пакетов или выявить уязвимости в системе безопасности. Тестирование протоколов обеспечивает качество, проверяя, что каждая реализация протокола соответствует своей спецификации, масштабируется под нагрузкой и ведет себя предсказуемо при сбоях.
Исходя из обоснования, следующий вопрос заключается в том, как протоколы классифицируются в реальных сетях.
Маршрутизация и протоколы маршрутизации
Протоколы подразделяются на две категории: маршрутизируемые протоколы и протоколы маршрутизации.
- Маршрутизируемые протоколы: Маршрутизируемые протоколы используются для передачи пользовательских данных из одной сети в другую. Они обеспечивают передачу пользовательского трафика, такого как электронная почта, веб-трафик и передача файлов. Примерами маршрутизируемых протоколов являются IP, IPX и AppleTalk.
- Протоколы маршрутизации: Протоколы маршрутизации — это сетевые протоколы, определяющие маршруты для маршрутизаторов. Они используются только между маршрутизаторами. Примеры включают RIP, IGRP и EIGRP.
Проще говоря, Маршрутизатор подобен автобусу, используемому для перевозки пассажиров, а протоколы маршрутизации — это сигналы на дороге.
В зависимости от типа связи используются разные протоколы. Такие компании, как... CiscoJuniper и 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 включает в себя семь уровней сетевой связи, из которых уровни 2 (L2) и 3 (L3) имеют решающее значение для тестирования протоколов.
- Слой 2 (L2): Это канальный уровень. MAC-адрес, Ethernet, Token Ring и Frame Relay — все это примеры канального уровня.
- Слой 3 (L3): Сетевой уровень определяет наилучший доступный путь в сети для связи. IP-адрес является примером уровня L3.
Как провести тестирование протокола
- Для тестирования протокола вам потребуется анализатор протоколов и симулятор.
- Анализатор протоколов обеспечивает корректное декодирование, а также анализ вызовов и сессий. Симулятор имитирует различные компоненты сетевого элемента.
- Как правило, тестирование протокола осуществляется с помощью тестируемого устройства (DUT), подключенного к другим устройствам, таким как коммутаторы и маршрутизаторы, на которых настроен целевой протокол.
- После этого тестировщик проверяет структуру пакетов, отправленных устройствами.
- Он проверяет масштабируемость, производительность и поведение алгоритмов протокола устройства с помощью таких инструментов, как IxNetwork. Scapy и Wireshark.
Типы тестирования для тестирования протоколов
Тестирование протоколов включает проверку функциональности, производительности, стека протоколов, совместимости и многого другого. В ходе тестирования протоколов выполняются три основных проверки.
- Правильность: Получаем ли мы пакет X в ожидаемое время?
- Задержка: Сколько времени занимает передача пакета данных через систему?
- Объем и скорость: Сколько пакетов мы можем отправить в секунду?
Протокольное тестирование можно разделить на две широкие категории: стресс-тестирование и тестирование надежности, а также функциональное тестирование. Стресс-тестирование и тестирование надежности охватывают следующие области: испытание нагрузкой, Стресс-тестирование и Тестирование производительности. Функциональное тестирование Включает в себя тестирование на отсутствие дефектов, тестирование на соответствие стандартам и тестирование на совместимость.
- Тестирование соответствия: Протоколы, реализованные в продуктах, проверяются на соответствие таким стандартам, как IEEE и другим. RFC.
- Тестирование совместимости: Проверяется совместимость с продукцией разных поставщиков. Это тестирование проводится после завершения проверки на соответствие требованиям на соответствующей платформе.
- Тестирование сетевых функций: Функциональность сетевых устройств проверяется в соответствии с проектной документацией. Например, это может быть защита портов на коммутаторе или списки контроля доступа (ACL) на маршрутизаторе.
Примеры тестовых примеров для тестирования протоколов сетевых устройств
Вот примерный набор тестовых случаев для маршрутизаторов и коммутаторов.
| Название теста | Тестовые кейсы |
|---|---|
| Одна VLAN на одном коммутаторе | Создайте две разные VLAN. Проверьте видимость между хостами в разных VLAN. |
| Три симметричные VLAN на одном коммутаторе | Создайте три разные асимметричные VLAN. Проверьте видимость между хостами. |
| Связующее дерево: изменение стоимости корневого пути | Проверьте, как изменяется стоимость корневого пути после изменения топологии. |
| Связующее дерево: блокировка портов | Проверьте, как протокол остовного дерева предотвращает образование циклов в сети, блокируя избыточные связи, при наличии Сети VLAN тоже. |
| Разный корневой мост для разных MSTI | Покажите, что каждый MSTI может иметь разный корневой мост. |
| Визуализация между различными регионами STP | Проверьте видимость между различными регионами STP, используя одни и те же VLAN. |
| Производительность телефонной коммутационной станции | Совершите 1000 телефонных звонков и проверьте, продолжает ли работать телефонная коммутаторная система или её производительность снижается. |
| Отрицательный результат теста на устройство. | Введите неверный ключ и проверьте аутентификацию. Пользователю не должен быть предоставлен доступ. |
| Линейная скорость | Проверьте работу устройства на скорости 10 Гбит/с, используя всю доступную полосу пропускания для обработки входящего трафика. |
| Коэффициент конверсии протокола | TracУстановите TCP-соединение между двумя устройствами и убедитесь, что каждое устройство работает корректно. |
| Время отклика для начала сессии | Измерьте время отклика устройства на запрос приглашения для начала сеанса. |
Инструменты для тестирования протоколов
Давайте обсудим наиболее важные инструменты тестирования, используемые для проверки протоколов.
1) Scapy для создания пакетов
Scapy Это мощная интерактивная программа для обработки пакетов данных. Она позволяет вам:
- Создание пакетов
- Декодировать пакеты в сети
- Захватывайте пакеты и анализируйте их
- Внедрение пакетов в сеть
Итак, в основном, Scapy в основном делает две вещи: получение ответов и отправка пакетовВы определяете пакеты, программа отправляет их, получает ответы, сопоставляет запросы с ответами и возвращает список пар пакетов и список несовпадающих пакетов.
Оно также может выполнять другие задачи, такие как tracмаршрутизация, модульные тесты, атаки, обнаружение сети, разработкаping новые протоколы и исследования.
Scapy позволяет вам написать Python Скрипт, позволяющий выполнять такие задачи, как отправка, получение или перехват пакетов. Например, Scapy может перехватывать пакеты данных с помощью короткого замыкания Python скрипт. Команда для открытия редактора показана ниже.
#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 # ./scapysniff.py
Программа перехватит 10 пакетов, и как только перехватит их все, выведет сводку. Scapy Также имеется набор команд для одновременной отправки и приема пакетов.
2) Wireshark для анализа
Wireshark Это ведущий инструмент, используемый для анализа протоколов в процессе тестирования. Он позволяет захватывать пакеты в реальном времени и отображать их в удобочитаемом виде. Вы можете детально изучать сетевой трафик и анализировать отдельные пакеты, используя цветовую кодировку и фильтры.
Wireshark Он перехватывает пакеты, которые помогают определить, когда устанавливается сессия, когда именно началась передача данных и какой объем данных отправляется каждый раз.
Wireshark Обладает богатым набором функций, в который входят:
- Тщательная проверка сотен протоколов, и их число постоянно пополняется.
- Запись в реальном времени и автономный анализ
- Богатый анализ VoIP
- Стандартный трехпанельный браузер пакетов
- Работает на различных платформах, таких как Windows, Linux и macOS
- Захваченные сетевые данные можно просмотреть через графический интерфейс.
- Поддержка расшифровки для многих протоколов, таких как IPsec, ISAKMP и SSL/TLS.
- Данные в реальном времени можно считывать через Ethernet, ATM, Bluetooth, USB и Token Ring.
- Результаты можно экспортировать в форматы CSV, XML и обычный текст.
3) TTCN
TTCN — это стандартный язык тестирования для определения Сценарии тестирования и их реализация для тестирования протокола. Набор тестов TTCN содержит множество тестовых случаев, написанных на языке программирования TTCN, и используется для тестирование реактивных систем или поведенческое тестирование.
Например, рассмотрим кофейный автомат, который выдает кофе при вставке долларовой монеты, но не реагирует, если вставлена монета меньше доллара. Для программирования таких автоматов используется TTCN-3. Чтобы кофейный автомат реагировал на вставку монеты, вы пишете компонент TTCN-3, который ведет себя как кофейный автомат. Это позволяет запускать тесты до того, как реальный кофейный автомат станет доступен в качестве продукта. После этого вы можете подключить набор тестов TTCN-3 к внешнему устройству.
Тестовая система подает стимулы (долларовая монета) и получает ответы (кофе). Адаптер стимулов получает стимулы от тестовой системы и передает их тестируемой системе. Адаптер ответов ожидает ответов от тестируемой системы и передает их тестовой системе.
TTCN-3 может использоваться в различных областях, таких как:
- Мобильная связь (LTE, WiMAX, 3G)
- Широкополосные технологии (ATM, DSL)
- Платформы промежуточного программного обеспечения (веб-сервисы, CORBA)
- Интернет-протоколы (SIP, IMS, IPv6)
- Смарт-карты
- Автомобильная промышленность (AutoSAR, MOST, CAN)
В TTCN можно определить:
- Наборы тестов
- Тестовые кейсы
- Шаги тестирования
- Объявленные переменные
- Объявленные таймеры
- PDU и многое другое
TTCN может быть интегрирован с системами, написанными на других языках, таких как ASN.1. XMLи С/C++Основной язык TTCN-3 существует в текстовом формате, а также в табличном, графическом и презентационном форматах.
Как применять протокольное тестирование на практике
Для применения этих методов в реальном проекте определите область действия протокола (L2, L3 или выше), настройте тестируемое устройство с подключенными симулятором и анализатором, составьте тестовые примеры на соответствие и негативные тесты, ссылаясь на спецификации RFC или IEEE, а затем проведите стресс-тесты, тесты на совместимость и проверку на аномалии с помощью ИИ. Зафиксируйте результаты в Wireshark и повторять эти действия до тех пор, пока поведение пакетов не будет соответствовать стандарту.


