Tunnel
A demonstation of an IPv4 tunnel (over UDP) between the Node A and Node B subnets.
- GitHub Link: https://github.com/packetcord/packetcord.io/tree/main/apps/l3_tunnel
- Topology File: topology_examples/l3_tunnel_example.json
Topology diagram
Steps
Build the project (all examples)
cd packetcord.io
mkdir build
cd build
cmake .. --fresh
make
Start the topology
Load the exampe topology project file. Then Validate, Generate and Launch the topology.
Inside the shell of TEP A
cd /root
./l3_tunnel_tep_a_app
Inside the shell of TEP B
cd /root
./l3_tunnel_tep_b_app
Result
Open the shells of Node A and Node B. Try to ping each other (11.11.11.100 and 192.168.111.100).
PING 11.11.11.100 (11.11.11.100): 56 data bytes
64 bytes from 11.11.11.100: seq=0 ttl=64 time=0.334 ms
64 bytes from 11.11.11.100: seq=1 ttl=64 time=0.117 ms
Let's also run iperf3 between Node A (server) and Node B (client):
Inside the shell of Node A
iperf3 -s
Inside the shell of Node B
iperf3 -c 11.11.11.100
Connecting to host 11.11.11.100, port 5201
[ 5] local 192.168.111.100 port 45230 connected to 11.11.11.100 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 158 MBytes 1.32 Gbits/sec 645 130 KBytes
[ 5] 1.00-2.00 sec 180 MBytes 1.51 Gbits/sec 804 128 KBytes
[ 5] 2.00-3.00 sec 182 MBytes 1.52 Gbits/sec 804 124 KBytes
[ 5] 3.00-4.00 sec 179 MBytes 1.51 Gbits/sec 736 126 KBytes
[ 5] 4.00-5.00 sec 181 MBytes 1.52 Gbits/sec 829 115 KBytes
[ 5] 5.00-6.00 sec 176 MBytes 1.48 Gbits/sec 820 127 KBytes
[ 5] 6.00-7.00 sec 179 MBytes 1.50 Gbits/sec 785 116 KBytes
[ 5] 7.00-8.00 sec 182 MBytes 1.53 Gbits/sec 883 126 KBytes
[ 5] 8.00-9.00 sec 182 MBytes 1.52 Gbits/sec 836 119 KBytes
[ 5] 9.00-10.00 sec 182 MBytes 1.53 Gbits/sec 905 127 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 1.74 GBytes 1.49 Gbits/sec 8047 sender
[ 5] 0.00-10.00 sec 1.74 GBytes 1.49 Gbits/sec receiver
Terminate
Use the Destroy button to terminate the emulation.