SCTP Tunnel

A demonstration of an IPv4 tunnel (over SCTP) between the Node A and Node B subnets.

  • GitHub Link: https://github.com/packetcord/packetcord.io/tree/main/apps/l3_sctp_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 SCTP tunnel compiled binaries (TEP A is client and TEP B is server). It is also recommended to modify the MTU sizes from 1420 to 1400 - inside the shell commands field.

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_sctp_tunnel_tep_s_app

Inside the shell of TEP A

cd /root
./l3_sctp_tunnel_tep_c_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.149 ms
64 bytes from 192.168.111.100: seq=1 ttl=64 time=0.186 ms
64 bytes from 192.168.111.100: seq=2 ttl=64 time=0.224 ms
64 bytes from 192.168.111.100: seq=3 ttl=64 time=0.234 ms

Let's also run iperf3 between Node A (client) and Node B (server):

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 35546 connected to 192.168.111.100 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  82.5 MBytes   691 Mbits/sec   46   96.1 KBytes       
[  5]   1.00-2.00   sec  95.9 MBytes   804 Mbits/sec   55    117 KBytes       
[  5]   2.00-3.00   sec  94.6 MBytes   794 Mbits/sec   57   96.1 KBytes       
[  5]   3.00-4.00   sec  94.2 MBytes   791 Mbits/sec   57    117 KBytes       
[  5]   4.00-5.00   sec  94.8 MBytes   795 Mbits/sec   55    121 KBytes       
[  5]   5.00-6.00   sec  95.1 MBytes   798 Mbits/sec   58   94.8 KBytes       
[  5]   6.00-7.00   sec  94.8 MBytes   795 Mbits/sec   54    118 KBytes       
[  5]   7.00-8.00   sec  94.2 MBytes   790 Mbits/sec   52   93.5 KBytes       
[  5]   8.00-9.00   sec  95.0 MBytes   797 Mbits/sec   54   94.8 KBytes       
[  5]   9.00-10.00  sec  94.2 MBytes   790 Mbits/sec   57    118 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   935 MBytes   785 Mbits/sec  545            sender
[  5]   0.00-10.21  sec   935 MBytes   768 Mbits/sec                 receiver

Terminate

Use the Destroy button to terminate the emulation.