UDP Tunnel

A demonstration 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_udp_tunnel
  • Topology File: topology_examples/l3_tunnel_example.json

Topology diagram

TOP

Steps

Build the project (all examples)

cd packetcord.io
mkdir build
cd build
cmake .. --fresh
make

Start the topology

Load the l3_tunnel_example.json project file. On the two TEP nodes (A and B), change the network app field to point to the corresponding UDP tunnel compiled binaries.

Note: Complete example topology file will be added as part of the next release of Network Builder IDE.

Save the project file after the changes. Then Validate, Generate and Launch the topology.

Inside the shell of TEP B

cd /root
./l3_udp_tunnel_tep_b_app

Inside the shell of TEP A

cd /root
./l3_udp_tunnel_tep_a_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 -c4 192.168.111.100
PING 192.168.111.100 (192.168.111.100): 56 data bytes
64 bytes from 192.168.111.100: seq=0 ttl=64 time=0.234 ms
64 bytes from 192.168.111.100: seq=1 ttl=64 time=0.272 ms
64 bytes from 192.168.111.100: seq=2 ttl=64 time=0.179 ms
64 bytes from 192.168.111.100: seq=3 ttl=64 time=0.267 ms

Let's also run iperf3 between Node A and Node B:

Inside the shell of Node B

iperf3 -s

Inside the shell of Node A

iperf3 -c 192.168.111.100
Connecting to host 192.168.111.100, port 5201
[  5] local 11.11.11.100 port 39890 connected to 192.168.111.100 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   138 MBytes  1.16 Gbits/sec  404    116 KBytes
[  5]   1.00-2.00   sec   153 MBytes  1.28 Gbits/sec  613    116 KBytes
[  5]   2.00-3.00   sec   152 MBytes  1.28 Gbits/sec  612    111 KBytes
[  5]   3.00-4.00   sec   151 MBytes  1.27 Gbits/sec  583    112 KBytes
[  5]   4.00-5.00   sec   152 MBytes  1.27 Gbits/sec  633    119 KBytes
[  5]   5.00-6.00   sec   152 MBytes  1.27 Gbits/sec  587    110 KBytes
[  5]   6.00-7.00   sec   152 MBytes  1.28 Gbits/sec  618    114 KBytes
[  5]   7.00-8.00   sec   152 MBytes  1.28 Gbits/sec  617    167 KBytes
[  5]   8.00-9.00   sec   151 MBytes  1.27 Gbits/sec  612    107 KBytes
[  5]   9.00-10.00  sec   152 MBytes  1.27 Gbits/sec  570    115 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  1.47 GBytes  1.26 Gbits/sec  5849            sender
[  5]   0.00-10.00  sec  1.47 GBytes  1.26 Gbits/sec                  receiver

Terminate

Use the Destroy button to terminate the emulation.