OS: Ubuntu 22.04
Kernel: 5.15.0-46-generic
Python: 3.10.4
iproute: iproute2-5.15.0
-
nest
pip3 install nest
-
scapy, wireshark
sudo apt install python3-scapy wireshark
-
Toolchains/headers & helpers for eBPF
sudo apt install clang llvm libelf-dev libpcap-dev gcc-multilib build-essential libmnl-dev sudo apt install linux-tools-$(uname -r) sudo apt install linux-headers-$(uname -r) sudo apt install linux-tools-common linux-tools-generic
h1 --------- r --------- h2
h1: host in a private network
r: router (nat gateway)
h2: host outside the private network
-
Change directory to nat44-bpf / nat64-bpf
-
Create the topology & compile & start nat ebpf program
sudo python3 testbed.py
The script will start wireshark instances in the end hosts & router nodes(h1, h2 & r).
This script has to be running in foreground. The below operations has to be done in a new shell
-
Send a packet from h1 to h2
sudo ip netns exec h1 python3 send_pkt.py
-
Send a packet from h2 to h1
sudo ip netns exec h2 python3 ret_pkt.py
-
The packets can be analyzed using wireshark at hosts or router nodes.