Скрипт Net2axis
|
Оглавление
Скачать статью в формате PDF Вам доступна статья в формате PDF АннотацияПри разработке устройств на FPGA часто возникает необходимость симуляции сетевого трафика. Избавиться от столь рутинной процедуры вам поможет скрипт Net2axis.
Описание работы
Данный скрипт позволяет генерировать AXI-Stream пакеты из файлов *.pcap (packet capture). Файлы pcap можно получить захватив сетевой трафик например с помощью Wireshark/tcpdump либо воспользовавшись конструктором пакетов PackEth.
Для запуска Net2axis необходим Python 2.7.X и Scapy 2.X. Работа скрипта сводится к двум этапам:
Демонстрация работы
Чтобы продемонстрировать работу скрипта захватим несколько пакетов ping(протокол ICMP). Запускаем Wireshark и выбираем активный сетевой интерфейс в меню Capture -> Options, затем жмем Start.
Во время процедуры захвата пакетов я отправил несколько ping-запросов к моему роутеру, после чего остановил Wireshark выполнив команду Capture -> Stop. Чтобы из всех захваченных пакетов отобразить только интересующие нас ICMP я задал фильтр следующего содержания:
Экспортируем отфильтрованные пакеты в файл ping.pcap, для этого в меню File выбираем Export Specified Packets.
Теперь можно запустить скрипт Net2axis. Сейчас в моем распоряжении ноутбук с Windows 10 и установка scapy предвещает танцы с бубном, поэтому я воспользовался эмулятором Ubuntu 18.04 из Microsoft Store. Сразу после установки эмулятора открываем проводник, переходим в директорию, в которую ранее сохранили файл ping.pcap и с зажатым shift вызываем контекстное меню.
![]() В появившемся окне терминала, выполняем серию команд для установки scapy:
Клонируем репозиторий Net2axis: Конвертируем ping.pcap в ping.dat:
Рассмотрим параметры скрипта:
В директории /tool появился файл ping.dat, который можно использовать при симуляции. Обзорный тестбенч находится в директории sim, сам генератор пакетов расположен в директории hdl. После запуска симуляции я получил такую временную диаграмму:
Расширяем функционал
Пока писал этот текст возникла идея реализовать скрипт с обратным функционалом(axi-stream -> *.pcap). Первым делом добавим в симуляцию блок, который будет сохранять каждый принятый пакет в виде новой hex-строки. У меня получился такой код:
Теперь дело за малым - реализовать python-скрипт, который будет конвертировать полученный текстовый файл в формат *.pcap: Сохраняем скрипт в файл axis2net.py, размещаем его в одной директории с файлом outp.txt и запускаем командой:
После запуска должен появиться файл outp.pcap, который отлично открывается при помощи wireshark. Я использовал всё ту же scapy, на удивление эта библиотека оказалась простой и функциональной. На хабре есть хорошая статья про данную библиотеку - рекомендую ознакомиться.
На этой ноте завершаю свой обзор, благодарю за внимание!
P.S. Хочу обратиться к сообществу FPGA-Systems. На просторах сети много достойных проектов, о которых знают не все. Если вы нашли что-то полезное - напишите небольшой обзор, думаю многие будут благодарны. Скачать статью в формате PDF Вам доступна статья в формате PDF Источник: https://github.com/lucasbrasilino/net2axis |
|
|
|
|
| Просмотров: 63 | | |
| Всего комментариев: 0 | |


