Edited at

█║▌ Learn and Try Satellite Tree Protocol Hands-On with Mininet Yourself!

As SynchroKnot technology has gained the attention of technical peers and businesses across the globe, the team at Spatial Systems Engineering at SynchroKnot has decided to make the Satellite Tree Protocol software [similar to what is seen in the demonstration videos, but not the bleeding edge] free and available to everyone providing you understand & keep in mind that the enhancements to the IEEE standards 802.1D (1998|2004) and 802.1W as seen in the Linux version and other operating systems versions of the Satellite Tree Protocol Software are the Intellectual Property of its creator and owner Mehul Sharma.

Feel free to use, distribute, hack, re-engineer and have fun!

Keep in mind this software is provided to you "as is" for the purposes of fun without any support or warranty of any kind. One of the considerate ideas behind this decision is to help warm up the end users to get acquainted with the actual SynchroKnot Cloud Computing Decentralization Software.

The Satellite Tree Protocol software provided here is the Linux version, which will work on Linux kernel version 4.9, as seen in Debian and Debian derivatives.

If you have recompiled the kernel or are using a derivative with CONFIG_MODULE_SIG [Module signature verification], then the kernel module will fail to load.

It is recommended that you download and install Debian 9 [Stretch] or Devuan [ASCII] from their official website. Below is a short list of known-to-be-working kernels:

GRML:

SMP Debian 4.9.29-1+grml-1

Kali:

SMP Debian 4.9.30-2kali1

Debian:

SMP Debian 4.9.65-3

Devuan:

SMP Debian 4.9.88-1+deb9u1

Though we understand the actual, real-world use requires understanding of various interconnect topologies, troubleshooting of various aspects depending on your setup, understanding the core work-ability before you can even attempt to troubleshoot, gaining of professional support to help you engineer and help you solve problems, and so on, we believe this will help you get started and see the potential and power of this small part of the complete SynchroKnot software and solution.

For those who are unaware of what Satellite Tree Protocol is, a full description can be found in one of our other articles or on our official website.

What is Mininet?

Mininet creates a realistic virtual network, running real kernel, switch and application code, on a single machine in seconds, with a single command.

Please visit Mininet website to learn more:

http://mininet.org/

Install Mininet:

Please visit the Download/Get Started With Mininet page for necessary steps to get Mininet installed:

http://mininet.org/download/

Important: Please consider installing Mininet on a physical machine with ample resources and not a virtual machine to get good performance when using it with Satellite Tree Protocol.

Steps to Get Started:

1] Important: Make sure you remove the standard Linux Bridge.

rmmod bridge

Please make sure it has been successfully removed.

2] Insert the 8021q module

modprobe 8021q

Please make sure it has successfully loaded.

3] Insert the Satellite Tree Protocol-enabled Bridge:

Please make sure you are loading only the Satellite Tree Protocol-enabled Bridge. To confirm do the following:

modinfo sstp-bridge.ko

The value of alias: should look similar to below:

alias: rtnl-link-SynchroKnot-Satellite-Tree-Protocol-bridge

Now insert the module:

insmod -f [path]/sstp-bridge.ko

example:

insmod -f sstp-bridge.ko

Please make sure it has successfully loaded. The command lsmod should show "bridge".

4] Create a pair of veth devices to complete the loop of the ring topology:

ip link add loop0 type veth peer name loop1

ifconfig loop0 up

ifconfig loop1 up

5] Start Mininet without a controller [--controller none] and with Linux bridge which is now Satellite Tree Protocol enabled.

mn --controller none --switch lxbr,stp=1 --topo linear,8,1

The topology above [--topo linear,8,1] refers to 8 switches [nodes] in a linear topology. Start with 8 or less switches [nodes] and then increase it when you get acquainted with the workabilities and observations.

You can also add the option below to mn to experiment:

--link=tc,bw=1000

6] Connect the ends of the topology to form one large loop or ring:

brctl addif s1 loop0

brctl addif s8 loop1

[The veth loop devices must be up for the ring to form. We have already brought up the loop0 and loop1 devices in step 3]

Note: As soon as the loop devices are connected you can see topology change and related activity.

One simple way to capture topology change-related activity is to use the Tcpdump utility:

tcpdump -vvv -p -n -i any stp | grep -ie topology

Refer to the tcpdump manual page for more information related to the options:

man tcpdump

For an in-depth investigation you can look at syslog or dmesg. Below is an example to get information in real-time from syslog:

tail -f /var/log/syslog | grep --color -ie sstp

Now, you can start to experiment with bringing down a switch and observing what happens and then bringing it up again and then observing the change.

Example:

echo "Bringing Down s8" && ifconfig s8 down

echo "-- waiting for 10 seconds --" && sleep 10

echo "Bringing Up s8" && ifconfig s8 up

Similarly, you can start pings from one switch [node] to another and make observations. Of course you won't get a ping response from the switch[es] that you might be bringing down, so make sure you are only pinging the switches that are not being brought down and up.

Also, experiment with moving or bouncing the root bridge over to another switch and then moving it back with and without the pings, and make observations in tcpdump. Obviously, you are not going to move/bounce the root bridge to the switch that you might be bringing up and down.

Example:

Check which switch is the root bridge and then set a lower bridge priority to another switch and you will notice that the bridge with the lower priority becomes the root bridge.

Here we are giving s4 as a priority of 50:

brctl setbridgeprio s4 50

How to check which switch is the root bridge:

In the tcpdump results, see what is next to "root-id" and then find that id after executing brctl show

To move the root bridge back to the previous switch that was the root bridge or to another switch, set a lower priority than 50:

brctl setbridgeprio [name of the switch] 25

To make things easier we have depicted the steps and different experiments in our video demonstrations. Please refer to our website for the details of the demonstrations under the demo section. The links below are directly of the demonstration videos:

■ Spatial Satellite Tree Protocol

■ Satellite Tree Protocol showing Root Bridge failure, failover, failback

■ Satellite Tree Protocol showing Root Bridge failure, failover, failback with Flood Ping from multiple directions

After you have had an opportunity to experiment with the ring topology, you can start Mininet with the Torus topology!

Please keep in mind that at the moment only the binary version of this software is available (similar to many binaries made available by companies such as Nvidia and others). If this conflicts with your belief, please decide against trying or using it.

Considering their active, busy schedule, the team at Spatial Systems Engineering is in the very early stages of gathering requirements and necessary details for the possible open-sourcing of the code of this software.

Also keep in mind that it is not a requirement to use the Satellite Tree Protocol with the SynchroKnot software and solutions. You can use regular switches with STP and RSTP, etc. as well. Many have shown preference for the Satellite Tree Protocol, due to the logical, underlying benefits.

Below are the links to download sstp-bridge.ko and checksum [sha512sum] of sstp-bridge.ko

DOWNLOAD SATELLITE TREE PROTOCOL - sstp-bridge.ko

SHA512SUM [in a file]

SHA512SUM:

13335bcb0c5ce6ba2a497a01ab5e2944f032a7f08a694887d8b17b2bc6160d4532cc231afd5c1b625f23b4e81856d011bacdbee29aaf4b316b77d3633f1d6f7c

SynchroKnot-Satellite-Tree-Protocol-Direct-Connect-Architecture.png