Categories
Cloud Computing

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:

Mininet

Install Mininet:

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

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

Categories
Cloud Computing

Flood Ping Fun with 24 Switches in a Ring Topology!

This demonstration video shows a total of 24 Ethernet switches in one large loop [ Ring Topology ] with Satellite Tree Protocol enabled and multiple switches being brought down and up every 10 seconds while Flood Pings are underway from multiple directions!

The SynchroKnot Satellite Tree Protocol an enhancement to the IEEE standard [ 802.1D (1998|2004), 802.1W ] while keeping the core semantics in place, and is a part of SynchroKnot Spatial Defined Networking.

Satellite Tree Protocol is the core networking component of the SynchroKnot Cloud Computing and Data Center Decentralization software which transforms any server, workstation, desktop or embedded device into a decentralized cloud or data center [data decenter].

The object is to ascertain the automatic and fast network resilience [root bridge failure, failover and failback], fault tolerance and intelligent path selection capabilities amidst very low hardware resources.

This demonstration setup has been purposefully done with an illogical setting so as to test how it can perform in extreme circumstances.

Mininet is used for actual network emulation.

You may also notice results of prior flood ping tests in the demonstration video before the current one gets underway.

We would like to assume that the outcome result with 0% [zero percent] packet loss with 24 switches is a bit much for our logical mind to digest and would love to blame the ping utility with a faulty flood ping option 🙂 ….. of course upon deeper contemplation you may develop an insight that differs.

■ In actual use case scenarios, with our unique cabling technique in a 5 X 5 2-D Torus topology, one may generally not have more than one or two hops! 24 nodes are used for purposes of extreme testing in difficult case scenarios.

■ Simple machine with 2 cores [4 threads] Intel Core i7-6500U Processor with 8 GB RAM. Alongside, a few running virtual machines not a part of this demo were used in the background to consume CPU and memory resources, leaving fewer CPU cycles and memory for Satellite Tree Protocol and the 24 nodes with Mininet. [This demonstration video was also recorded on the same machine and thus used additional CPU cycles and memory.]

■ Side Note : Spanning Tree Protocol and Rapid Spanning Tree Protocol generally respond to failures by recovering in about 40 to 300 seconds or more depending upon the timers and topology [ RSTP may recover faster in some scenarios ]. This is with the regular vendor / standards suggested timers found in most switches in standard setups today. One can increase the network diameter [ i.e number of switches between two endpoints ] to a maximum of about 18. This however will substantially increase the recovery time, alongside most likely put the timers of switches out of sync. Your mileage may vary. Please do your own research.

■ Caution : If you try a similar setup with standard physical Ethernet switches [Cisco, Juniper etc] then you are solely responsible if you brick your appliance(es). We cannot help you recover them.

In brief, the SynchroKnot software transforms any server, workstation, desktop or embedded device into a decentralized cloud or data center [data decenter]. You can use any commodity X86_64 Desktop/Workstation/Server/Embedded device and connect them to eachother. There is no need to purchase physical or virtual switches and routers or any of their licenses [Eg. Cisco, Juniper etc].

This demonstration video is available at the link below and also on synchroknot.com under the the demo section:

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

More information is available at:
■ synchroknot.com