Service Programming

Einführung

In den letzten Jahren hat sich der Bereich der IT-Netze grundlegend verändert. Es wurden neue Ansätze und Technologien eingeführt, die die Zukunft dieses Bereichs radikal verändert haben und weiter verändern werden. Das Ergebnis sind moderne und dynamische Netzwerke, die die Lücke zwischen Netzwerken, Anwendungen und Endbenutzern schließen. Sie ermöglichen die Entwicklung von Anwendungen, die eng mit dem zugrunde liegenden Netz zusammenarbeiten, und schaffen ein Netz, das die Bedürfnisse der Kunden vollständig erfüllt. Netzwerkdienste wie Firewall-Systeme oder Intrusion Detection/Prevention-Systeme sind unverzichtbar geworden und fest in Computernetzen verankert. Diese Dienste sind heute nicht mehr wegzudenken, haben aber auch einen massiven Nachteil: sie werden statisch konsumiert. Service Programming ist eines der Ergebnisse in zukünftigen Netzwerken und löst das Problem des statischen Dienstkonsums. Sie erlaubt es, das Netz dynamisch zu konfigurieren, so dass Netzdienste den Kundenverkehr nach ihren Bedürfnissen verarbeiten können. Die folgenden Netzdienste können universell im Netz platziert werden - die Anwendung zur Dienstprogrammierung findet die besten Dienste entsprechend den Verkehrseigenschaften. Somit werden Netze mit integrierter Dienstprogrammierung intelligenter, wirtschaftlicher und sind für künftige Anforderungen gerüstet.

Segment Routing als game-changer

Segment Routing (SR) kann die Dienstprogrammierung mit einer einzigen Verkapselung kombinieren. Andere Lösungen erfordern neue Kapselungen/Protokolle für den gleichen Anwendungsfall. Dies führt zu einer sehr effizienten und eleganten Lösung in Bezug auf die SR-Dienstprogrammierung. Durch den zustandslosen Ansatz der SR, bei dem alle Anweisungen/Segmente im Paketkopf enthalten sind. SR bietet eine völlig zustandslose Lösung, bei der kein Zustand auf jedem Zwischenrouter erforderlich ist. Das vereinfacht das gesamte Routing und eröffnet völlig neue Möglichkeiten, den Verkehr zu routen.

Die neuen Ansätze mit SR haben auch völlig neue Anwendungsfälle geschaffen. Der interessanteste für dieses Projekt ist die Möglichkeit, so genannte Service Chains zu erstellen. Unter Serviceverkettung versteht man die gezielte Verkettung von Netzdiensten. Ziel ist es, dem Kunden die Möglichkeit zu geben, zu konfigurieren, welche Netzwerkflüsse von welchen verschiedenen Diensten behandelt werden sollen. SR verwendet das Source-Routing- statt des Destination-Routing-Paradigmas, d.h. der erste Router entscheidet, durch welchen Pfad das Paket geleitet werden soll. Dieses Paradigma ermöglicht die einfache Definition der Dienstkette in einer so genannten SR Service Policy auf dem SR Policy Headend Router.

Unsere Lösung

Wir können mit Stolz verkünden, dass wir die Anwendung Segment Routing Service Programming, auch SerPro genannt, entwickelt haben. SerPro erlaubt es dem Kunden, sogenannte Steering Policies über eine dedizierte GUI zu programmieren. Der Kunde hat die Möglichkeit, SR Policy Kopfstellen-, Endpunkt- und Metrik/Algorithmus-Informationen zusammen mit Diensten auszuwählen, die direkt im Netzwerk eingesetzt werden. Die Anwendung berechnet automatisch den am besten geeigneten Pfad gemäß den angegebenen Parametern. Der Kunde kann diese Richtlinie dann im Netz einsetzen, wenn er dies möchte. Der Verkehr wird dann über die definierten Dienste zum Ziel geleitet.

Die Anwendung kann dynamisch auf Veränderungen im angeschlossenen Netz reagieren und somit immer die beste, zur veränderten Topologie passende Policy liefern. Folglich kann sich der Benutzer immer auf die Daten verlassen, mit denen er arbeitet.

Cloud-Native Architecture

Since Segment Routing is nowadays mainly used in large networks, especially in provider networks, the application must handle extremely large topologies and many users. Due to this fact, the application had to be scalable and highly available. Therefore, a cloud-native approach came to the fore. The complete application was developed cloud-native in order to deploy it natively on a Kubernetes cluster, allowing the application to scale quickly and even allowing the possibility to activate autoscaling functions.

Through the requirement to be highly available most of the core components like the messaging system and the caching system are clustered deployed. To this clustered core components the application can always rely that this components are available and therefore also all the data is everytime accessable for the user.

Customer Value

Die Anwendung ermöglicht es dem Kunden, die verschiedenen Richtlinien von einem zentralen Ort aus zu verwalten. Die granulare Berechtigungsstruktur erlaubt es dem Kunden zu kontrollieren, wer welche Aktivitäten durchführen darf. Die ständige manuelle Anpassung der verschiedenen Richtlinien gehört der Vergangenheit an, dank der automatischen Neuberechnung und Neuverteilung. Durch die Möglichkeit, den Datenverkehr dynamisch durch die verschiedenen Dienste zu leiten, können Dienste wie eine Firewall oder ein Intrusion Detection/Prevention System nun besser genutzt und zentral im Netzwerk eingesetzt werden.

Über das standardisierte Application Programming Interface (API) können alle Funktionen der Anwendung gesteuert werden; ein Frontend kann die komplette Topologie anzeigen und den Benutzer dynamisch über Updates informieren. Die Anwendung lässt sich aufgrund ihrer cloud-nativen Struktur nahtlos in eine Cloud-Umgebung integrieren und skaliert problemlos mit der Größe des Netzes.

Demonstration

Contributors

Julian Klaiber

INS Network and Research Engineer

+41 58 257 44 89 julian.klaiber@ost.ch

Severin Dellsperger

INS Network and Research Engineer

+41 58 257 44 76 severin.dellsperger@ost.ch