Форк packagedrill, который добавляет поддержку
и общие исправления ошибок, особенно несколько исправлений, необходимых для работы packagedrill во FreeBSD. Также поддерживается MacOS (El Capitan и выше).
Есть несколько статей (вход: октябрь 2013 г., USENIX ATC '13) и презентация (ICCRG IETF87), описывающих пакетную обработку.
Загрузите исходники, скомпилируйте их и установите бинарный файл:
git clone https://github.com/nplab/packetdrill.git
cd packetdrill/gtests/net/packetdrill/
./configure
make
sudo cp packetdrill /usr/bin
Для установки необходимых пакетов выполните:
sudo apt-get install make git libsctp-dev bison flex python3 libssl-dev
Затем скачайте исходники, скомпилируйте их и установите бинарный файл:
git clone https://github.com/nplab/packetdrill.git
cd packetdrill/gtests/net/packetdrill/
./configure
make
sudo cp packetdrill /usr/bin
Для установки необходимых пакетов выполните:
sudo pkg install git bison python
Затем скачайте исходники, скомпилируйте их и установите бинарный файл:
git clone https://github.com/nplab/packetdrill.git
cd packetdrill/gtests/net/packetdrill/
./configure
make
sudo cp packetdrill /usr/local/bin
Чтобы иметь возможность запускать packagedrill в сочетании с sudo
run
sudo sysctl -w vm.old_mlock=1
или добавьте
vm.old_mlock=1
в /etc/sysctl.conf
и перезагрузитесь.
packagedrill не поддерживает Windows, но удаленный режим packagedrill работает внутри подсистемы Windows для Linux версии 1 (WSL1). Обратите внимание: WSL1 сопоставляет системные вызовы Linux с системными вызовами Windows, тогда как WSL2 по сути представляет собой виртуальную машину Linux. Для тестирования реализации Windows требуется WSL1.
Следуйте инструкциям Linux по установке.
Для удаленного режима packagedrill требуется два хоста: Wire_client (т. е. тестируемая система, Windows) и Wire_server (т. е. система, которая перехватывает пакеты, например, Ubuntu).
Чтобы запустить Wire_server с интерфейсом enp0s5f0, подключающимся к Wire_client.
sudo packetdrill --wire_server --wire_server_dev=enp0s5f0
Чтобы запустить Wire_client в Windows, сначала запустите cmd от имени администратора и запустите в нем wsl. Внутри wsl запустите
sudo packetdrill --wire_client --wire_client_dev=eth1 --wire_server_ip=10.1.2.3 <script_path>
где eth1 — это интерфейс wsl к Wire_server, а 10.1.2.3 — реальный IP-адрес интерфейса enp0s5f0 Wire_server.
Статус непрерывного интеграционного тестирования можно узнать в Buildbot.