Краткая теоретическая справка. Генераторы трафика являются необходимыми инструментами для проверки работоспособности сетей как на этапе тестовых испытаний
Генераторы трафика являются необходимыми инструментами для проверки работоспособности сетей как на этапе тестовых испытаний, так и при разработке новых услуг и технологий. Генераторы трафика бывают как программно-аппаратными, так и программными. Программно-аппаратные генераторы трафика обычно крайне дороги, являются закрытыми решениями, но при этом обладают специальным функционалом, ориентированным на тип сети. Что касается программных генераторов, то среди них есть достаточно большое количество предложений с открытым кодом, но позволяющих конструировать только пакетный трафик (в этом случае их иногда называют генераторами пакетов). Для ознакомления с принципами генерации трафика в лабораторной работе предлагается использовать одно из таких решений Ostinato [1].
Ostinato представляет собой кроссплатформенный open-source генератор пакетного трафика с графическим пользовательским интерфейсом, построенный на базе клиент-серверной архитектуры. Данный генератор позволяет передавать данные несколькими потоками и имеет широкие возможности для настройки поведения трафика и различных опций используемых сетевых протоколов. Генератор трафика Ostinato предустановлен на компьютере управления mnlin. Для начала работы с генератором, подключитесь к mnlin с помощью KVM-переключателя и запустите Ostinato из терминала с правами суперпользователя:
root@mnlin# ostinato &
Повышенные привилегии необходимы для получения доступа к сетевым устройствам mnlin.
Основной интерфейс программы разделен на три окна (рис.1): порты (ports list), потоки (stream list) и статистика (statistics).
Рис. 1 – Интерфейс Ostinato
В окне портов представлена группа портов [127.0.0.1] и зеленый индикатор напротив нее, что обозначает доступность группы портов. Ostinato является клиентским приложением и может работать с несколькими различными серверами (Drone). В данном случае клиент и сервер расположены на одном компьютере и обмениваются данными через сокет 127.0.0.1:7878.
Открыв группу портов (нажав на +) можно увидеть все доступные на данной машине порты. Выберите порт, с которого будет производиться отправка пакетов в сеть. Нажатием правой кнопки мыши в окне потоков откройте меню и создайте новый поток (new stream). Дважды кликнув на значке созданного потока, вы получите доступ к конфигуратору потока.
На первой вкладке Protocol Selection (рис.2) конструируйте будущий пакет в соответствии с моделью OSI. На рисунке 2 необходимые пункты помечены красным.
Рис. 2 – Вкладка Protocol Selection
Вкладка Protocol Data (рис. 3) позволяет настроить некоторые специфичные поля выбранных протоколов, такие как, например, адреса источника и получателя в протоколе IP, порты в UDP и т.п.
Рис. 3 – Вкладка Protocol Data
Примечание.: При конструировании пакета в реальной сети задавайте реальный MAC-адрес назначения в поле Media Access Protocol!
На вкладке Stream Control (рис. 4) выставляются опции потока. Например, можно настроить генерацию трафика пачками или отдельными пакетами, количество пакетов в секунду/битовую скорость потока, поведение потока и т.д.
Рис. 4 – Вкладка Stream Control
Создав несколько различных потоков для данного порта и выставив для каждого из них опцию Goto Next Stream в поле After this stream, можно организовать последовательную передачу этих потоков в сеть.
Также возможно организовать одновременную смешанную передачу. Для этого необходимо в окне портов выбрать требуемый, правой кнопкой мыши открыть контекстное меню и в пункте Port Configuration изменить режим работы передачи порта на Interleaved Streams (смешанные потоки). Теперь все созданные для данного порта потоки будут передаваться на сетевой интерфейс одновременно (рис. 5).
Рис. 5 – Перевод порта в смешанный режим передачи
Примечание: В смешанном режиме вместо количества передаваемых пакетов указывается скорость передачи пакетов/пачек или битовая скорость потока. Соответственно, передача трафика будет продолжаться до тех пор, пока не будет остановлена нажатием кнопки Stop Tx.
Вкладка Packet View позволяет просмотреть получившийся пакет в «собранном» виде (рис. 6).
Рис. 6 – Вкладка Packet View
После окончания настройки потока нажмите Ok и передайте изменения на сервер кнопкой Apply. Если этого не сделать, генерирующий демон Drone не получит информацию о произошедших изменениях.
Для проверки работы генератора, предварительно запустите анализатор трафика Wireshark, настроив его на прослушивание того порта, на который вы передаете сгенерированный трафик. Теперь можно начинать генерацию (рис.7).
Рис. 7 – Запуск генератора
В окне статистики выберите тот же порт, для которого вы конструировали поток (например, нажмите Port 0-0, если вы настроили Port Group 0 и в ней Port 0) и кнопкой Start Tx запустите генерацию трафика.
Задание на лабораторную работу:
1. Создайте 3 произвольных потока данных, состоящих из пакетов различных протоколов, заданных общим количеством пакетов и пакетной скоростью потока.
2. Создайте 3 произвольных потока данных, состоящих из пакетов различных протоколов, заданных числом пачек (bursts).
3. Запустите анализатор трафика Wireshark и начните захват на том порту, на котором предполагается генерировать трафик с помощью Ostinato.
4. Организуйте последовательную передачу сконструированных потоков в произвольном порядке. Сохраните полученный трэйс-файл.
5. Организуйте смешанную передачу (interleaved) сконструированных потоков трафика. Сохраните полученный трэйс-файл.
6. Изучив содержимое полученных трэйс-файлов, убедитесь в корректной работе генератора трафика. Используйте инструменты из меню Statistics:
a. IO Graph
b. Packet Lenghts
c. Protocol Hierarchy
К защите:
1. Знать основные принципы конструирования пакетов согласно модели TCP/IP, характеристики трафика пакетных сетей, процессы формирования потоков, принципы инкапсуляции.
2. Уметь использовать генератор трафика для создания потоков с различными характеристиками.
3. Представить отчет, содержащий характеристики сконструированных потоков трафика согласно п. 1 и 2 задания на лабораторную работу, примеры полученных пакетов (см. рис. 6), трэйс-файлы, статистику работы согласно меню Statistics.
Рекомендуемая литература:
1. Ostinato: Packet/Traffic Generator and Analyzer. https://code.google.com/p/ostinato/
2. Олифер Н. А., Олифер В.Г. Компьютерные сети. Принципы, технологии, протоколы. Издание 4-е. Питер, 2010.