Selfnet Blog

Jan 01, 2021

Introducing the "Selfnet Network Map"

Deutsche Übersetzung weiter unten.

Our "new" network map is public now which shows the current situation in our (internal) network.

But we also want to describe the path how this project came into existence.

Some years ago several members visited the Gulasch-Programmier-Nacht in Karlsruhe. As a project there they used a Javascript-Library VivaGraphJS, which is a graph rendering engine also used to display molecules, to visualize networks.

Originally the just wanted to know how our network "looks". The point about the funny movable map that resulted from the rendering engine naturally increased the fun factor.

Some years later another member built a Perl script (because he wantet to learn Perl) to scan our internal network automatically and collect the neighor relations between the devices. This script utilizes SNMP queries to our devices and asks for the LLDP Neighbors.

SNMP (Simple Network Management Protocol) is usually used by us to check for usage informations like temperature, cpu usage or network traffic. But it can (with sufficient privileges) also query a lot more information. This information includes the LLDP (Link Layer Discovery Protocol) data of the device. LLDP is utilizing a lower network layer between configured devices (even before using IP addesses) to exchange basic information between devices. It includes the hostnames or the connected ports. So this can also used to find physical faults in connections.

An Example Local Interface Parent Interface Chassis Id Port info System Name ge-0/1/2.0 - xx:xx:xx:xx:xx:xx ge-0/1/0.0

These resulting script data was just used to find missing links or single points of failure (via a script).

The last years we connected those two projects in our network map. The first versions are from 2016 and were used for internal debugging and visualization. Since December 2017 the project is developed in our internal GitLab but only as a "tinkering project" and not as something productive. With the map you could (for example) after bigger network changes or new dormitories check for the network structure and if somewhere fibers are missing or connected in a wrong way.

Meanwhile the project has evolved and several people are using it for debugging or just to understand how our network works.

Thats the reason why we automated it now, "brighten it up" and added several features. Now you can also see the speed of links between devices in colorcode or differentiate hosts by type. The last was quite important as the map became crowded after we added our wireless access points to it.

The network map (cutout)

Cutout of the network map

So for transparancy reasons (and so everybody can have a look how our network is connected) we now published the map on our Website. Direct Link

Of course there are still some small bugs we hope to eliminate as soon as possible.

Thanks to all of our members who helped in any way to realize this project.

Do you want to participate in taking care of such problems in the future? For our network to run smoothly there are a lot of different things to do: management of the equipment (including buying new stuff and getting service), taking care of servers for the network or additional services, debugging problems like this or connecting new dormitories to our network.

If you want to volunteer, it doesn't matter if you are a pro or a starter: Selfnet offers the opportunity to learn everything required. If you are interested in technical stuff, programming, public relations, project management or anything else: We would be glad to welcome you in our team! Just visit our support hours (once the office hours are re-opened).

The Selfnet-Team




Deutsche Übersetzung

Die Selfnet Netzwerk-Karte

Mittlerweile ist unsere interaktive Netzwerkkarte öffentlich geworden, mit der man den momentanen Zustand unseres (internen) Netzes besser nachvollziehen kann.

Wir möchten euch aber auch den Weg aufzeigen, wie diese Entwicklung über die Jahre entstanden ist.

Vor einigen Jahren auf einer Gulasch-Programmier-Nacht in Karlsruhe eine Javascript-Library (VivaGraphJS zur Graphendarstellung, die unter anderem in der Moleküldarstellung genutzt wurde, anzupassen um Netzwerke zu visualisieren.

Ursprünglich war der Gedanke nur, dass man mal "sieht" wie unser Netzwerk eigentlich aussieht. Das die Karte lustig durch die gegend "gebobbelt" werden konnte hat den Spaßfaktor natürlich erhöht :)

Einige Jahre später hat ein anderes unserer Mitglieder ein Script in Perl gebaut (weil er Perl lernen wollte), dass unser Netzwerk automatisch untersucht und Nachbarbeziehungen erfasst. Dies funktionierte über Anfragen an unsere Geräte per SNMP, welche die Nachbarbeziehungen per LLDP abgefragt haben.

SNMP (Simple Network Management Protocol) ist dabei ein einfaches Netzwerkverwaltungsprotokoll, dass wir eigentlich benutzten um zum Beispiel Auslastungsinformationen wie Temperatur, CPU-Last oder Traffic auszulesen. Dieses Protokoll kann aber (mit den richtigen Benutzerdaten) auch andere Informationen abrufen. Diese Informationen umfassen die LLDP (Link Layer Discovery Protocol) Daten des Gerätes. LLDP funktioniert dabei zwischen konfigurierten Geräten auf einer der untersten Netzwerkebenen, noch bevor IP-Adressen benutzt werden und tauscht zwischen verbundenen Geräten Informationen aus. Diese Informationen beinhalten zum Beispiel den Hostnamen oder auch den angeschlossenen Port. Dies kann daher auch dafür genutzt werden, physikalische Fehler in Verbindungen zu finden.

Ein Beispiel Local Interface Parent Interface Chassis Id Port info System Name ge-0/1/2.0 - xx:xx:xx:xx:xx:xx ge-0/1/0.0

Diese Daten wurden ursprünglich dann nur genutzt um fehlende Verbindungen oder fehleranfällige Knotenpunkte zu finden (per Script).

Die letzten Jahre wurde dies dann "verheiratet". Die ersten Versionen sind von 2016 und wurden dann fürs interne Fehlersuchen und zum visualisieren genutzt. Seit Dezember 2017 ist dies Projekt bei uns im internen Gitlab verzeichnet, allerdings eher als "Bastelprojekt" und nicht als "produktives Projekt". Mithilfe der Karte konnte man beispielsweise nach großen umbauten oder neuen Wohnheimen feststellen, ob irgendwo Glasfasern falsch gesteckt sind oder Verbindungen noch fehlten.

Mittlerweile hat sich das Projekt aber soweit entwickelt, dass mehrere Personen das zum debugging oder zum verstehen des Netzwerkes genutzt haben.

Daher haben wir das Projekt jetzt automatisiert (das man es als Script ausführen kann) und auch etwas "aufgehübscht" und weitere Features eingebaut. So kann man jetzt auch per Farbe die Geschwindigkeit der Verbindungen erkennen, Hosts nach Typ erkennen oder einzelne Sachen nacheinander einblenden. Letzteres war ein wichtiger Punkt nachdem wir angefangen haben die WLAN-Accesspoints aufzunehmen, da die Karte einfach unglaublich komplex wurde.

Die Netzwerkkarte (Ausschnitt)

Ausschnitt der Netzwerkkarte

Aus Gründen der Transparenz für unsere Mitglieder (und damit jeder mal sehen kann wie das alles aussieht) haben wir die Karte nun auf unserer Webseite eingebunden. Direkter Link

Natürlich gibt es noch einige kleinere Probleme, die wir hoffen bald beheben zu können.

Wir danken hiermit allen Mitgliedern, die bei der Realisierung des Projektes beteiligt waren.

Möchtest du in Zukunft bei Selfnet mitmachen und dich ehrenamtlich um solche und andere interessante technische Dinge kümmern? Um das Wohnheimsnetz ordentlich zu betreiben gibt es viele verschiedene Dinge zu tun: Verwaltung der Hardware (inkl. Neukauf von Hardware und mit dem Hersteller bezüglich Service arbeiten), Verwaltung von Servern und anderen Netzwerkdiensten, Analyse von Problemen oder neue Wohnheime an das Wohnheimnetzwerk anschließen.

Wenn du mitmachen möchtest geht es nicht um Vorwissen. Wichtiger ist es Spaß zu haben und noch etwas sinnvolles/praktisches neben dem Studium zu tun. Wenn du dich für Technik, Softwareentwicklung, Öffentlichkeitsarbeit, Projektmanagement oder vieles andere interessierst: Wir freuen uns dich bei uns begrüßen zu dürfen! Besuche einfach eine unserer Sprechstunden, (sobald diese wieder stattfinden.).

Das Selfnet-Team