Учебное пособие по тестированию протоколов: 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 также как массив команд для одновременной отправки и получения пакетов
2) Wireshark Инструменты для анализа
Инструменты, используемые для тестирования протокола: Wireshark. Он позволяет перехватывать пакеты в режиме реального времени и отображать их в удобочитаемом виде. Он позволяет вам глубоко копаться в сетевом трафике и проверять отдельные пакеты с помощью цветового кодирования и фильтров.
Wireshark захватывает пакеты, которые помогают определить, когда устанавливается сеанс, когда была инициирована точная передача данных, какой объем данных отправляется каждый раз и т. д.
Wireshark имеет набор богатых функций, который включает в себя
- Тщательная проверка сотен протоколов, которые постоянно добавляются.
- Запись в реальном времени и автономный анализ
- Богатый анализ VoIP
- Стандартный трехпанельный браузер
- Работает на нескольких платформах, таких как Windows, Linux, OSX и так далее
- Захваченные сетевые данные можно просмотреть через графический интерфейс.
- Расшифровка поддерживает множество протоколов, таких как IPsec, ISAKMP, SSL/TLS.
- Живые данные можно считывать с Ethernet, банкомата, Bluetooth, USB, токена и т. д.
- Вывод можно экспортировать в CSV, XML, обычный текст и т. д.
ТТСН
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 существует в текстовом формате, помимо других форматов, таких как табличный, графический и презентационный.