High performance implementation of the Tapdance decoy routing design.
These instructions are for the standard build, which includes drivers for Intel i40e- and ixgbe-based NICs.
sudo apt-get update
$HOME/tapdance
$HOME/tapdance
, run ./scripts/tapdance-prereqs.sh
(NOT sudo/as root)$HOME/tapdance
, run ./scripts/tapdance-build.sh
(NOT sudo/as root)$HOME/tapdance/libtapdance
, run ./genkey
(unless you already have a keypair you're planning to use for this station).gotapdance/assets/station_pubkey
Do this after the above station installation process, as well as after every reboot.
$HOME/tapdance
, run sudo ./startup.sh
. The output should include the following instructions on running the station.Use the service
interface, as described in sysvinit/README
. Note that you might need to wait a few seconds after starting zbalance before you start tapdance, to let zbalance come fully online.
If you want to recompile before running:
$HOME/tapdance
, run ./scripts/tapdance-build.sh
(NOT sudo/as root)Run these three programs in separate screens, in this order.
$HOME/tapdance/pfring-framework/userland/examples_zc
, run sudo ./zbalance_ipc -i zc:$INTERFACE -c 99 -n 4 -m 1 -g 1
.$HOME/tapdance/gobbler
, run ./gobbler
after building with go build gobbler.go
. If gobbler isn't run, the station will still work; the Gobbler's purpose is to collect and report statistics.$HOME/tapdance/pfring-framework/userland/examples
, run sudo RUST_BACKTRACE=1 ./zc_tapdance -c 99 -n 4 -K /path/to/privkey
.The -n and -c arguments are number of processes to split over, and cluster ID. You can safely change them (-n must be no more than number of logical CPU cores on the host machine), but you must give zbalance_ipc and zc_tapdance the same values.
After completing the previous steps, you should have an email from an ntop employee, giving you an OrderId.
./zcount -i theIFname
./zcount -h
to get PF_RING ZC version.sudo ./zcount -C -i zc:enp5s0f0
If you have previously configured the station for ZC operation, you must reboot in order to run non-ZC! (You can run non-ZC and then switch to ZC without rebooting).
To run the non-zero-copy multi-process TapDance station, follow the installation and setup instructions as above, but:
sudo ./startup.sh
, run sudo ./startup.sh --nozerocopy
../scripts/tapdance-build.sh
, run ./scripts/tapdance-build.sh --nozerocopy
.zbalance_ipc
at all.sudo RUST_BACKTRACE=1 ./tapdance -i $INTERFACE -c 7 -o 0 -n 4 -K /path/to/privkey
.The gobbler remains the same. Running tapdance-prereqs.sh remains the same. n and c are the same as in the ZC version; -o is core id offset. (So, -o 3 -n 4 would use cores 3,4,5,6).
This is the TapDance station code. You do not need this to be a user of TapDance; for that, you will need the client.