ldprod - Fotolia

Ansible: So orchestrieren Sie Ihr Netzwerk für hohe Sprach- und Video-Qualität

Tools wie Ansible, Jinja2 und YAML verbessern die Übertragungs-Qualität (QoS) von Audio und Video durch die Orchestrierung von Netzwerkgeräten.

Viele Service-Provider und Unternehmen wollen den Wandel zum Software-defined Networking (SDN) einleiten, wissen aber nicht, wie sie dabei vorgehen. Hier stellt sich oft folgende Frage: Wie gehen sie mit herkömmlichen Netzwerkgeräten um, die sie nicht aktualisieren oder ersetzen wollen/können? Die Antwort: Da DevOps und Orchestrierungs-Tools mittlerweile in der Netzwerkwelt angekommen sind, bietet es sich an, den Weg in Richtung SDN über eine veränderte Orchestrierung der traditionellen Netzwerkgeräte zu starten.

Das Stichwort lautet NFV (Network Functions Virtualisation). NFV entkoppelt die einzelnen Netzwerkfunktionen von teurer und spezialisierter Hardware, so dass sie als Software betrieben werden können, die auf kostengünstigeren Standardservern läuft. Zu diesen Funktionen gehören etwa der Schutz durch Firewalls, Intrusion Detection, Caching oder WAN-Beschleunigung, Anwendungen zum Netzwerk-Management wie Monitoring-Tools, Traffic-Analyse oder Load Balancer sowie ganz allgemein virtualisierte Anwendungen wie Cloud-Applikationen oder virtuelle Datenspeicher. Unternehmen senken damit Kosten und erhalten eine effiziente Netzwerkstruktur. Die Virtualisierung der Netzwerkfunktionalitäten bildet im Prinzip die Basis für Software gesteuerte Netzwerke, sprich SDN.

NVF lässt sich am ehesten mit geeigneten Technologien und einer für das jeweilige Netzwerk angepassten Konfiguration umsetzen. Dieser Artikel zeigt, wie Unternehmen mit der freien Software-Plattform Ansible, YAML (einer Auszeichnungssprache zur Datenserialisierung) und der Template-Sprache Jinja2 ein konkretes Problem lösen können: Die Orchestrierung von Qualitätsänderungen in einem herkömmlichen Netzwerk für Echtzeit-Anwendungen wie Sprache und Video.

Quality of Services (QoS) beschreibt die Güte eines Kommunikationsdienstes aus Sicht des Anwenders. Parameter für die Qualität des Netzwerkservices sind beispielsweise Bandbreite, Verzögerung (Latenz), Paketverluste oder Schwankungen der Signalfrequenz (Jitter).

Die Bereitstellung und das Management von QoS sind sehr komplex. Provider finden es oft zu beschwerlich, da QoS-Änderungen strenge Disziplin und Planung erfordern, um die Konsistenz über die komplette Infrastruktur hinweg zu gewährleisten. In großen Netzwerken kann die Implementierung dieser Veränderungen sehr zeitraubend sein. Üblicherweise stellen Unternehmen dann mehr Bandbreite als notwendig für das Netzwerk bereit, um auf größere Nachfrage oder andere Änderungen reagieren zu können. Da sich diese Lösung nicht für alle Szenarien eignet, stellen wir QoS am Beispiel von Audio und Video dar.

Netzwerk-Orchestrierung mit Ansible

Um Quality of Service von Audio und Video konstant zu halten, sollten Unternehmen Ansible nutzen. Ansible ist eine Open-Source-Plattform zur Orchestrierung und Automatisierung. So kann die Lösung das Cloud Provisioning, Konfigurations-Management und die Anwendungsbereitstellung automatisieren.

Mit Ansible lassen sich sogenannte Playbooks für den gewünschten Zustand der Infrastruktur erstellen. Playbooks sind YAML-Dateien (Yet Another Markup Language) mit wiederverwendbaren Beschreibungen von Systemen. Ansible verwendet normalerweise SSH-Geräte (Secure Shell). Dies ermöglicht es Netzwerktechnikern, mit dem Werkzeug ohne wesentliche Änderungen an der zugrunde liegenden Ausrüstung zu starten. Für die Bereitstellung von Änderungen der QoS-Konfiguration setzt Ansible das Protokoll NETCONF über SSH ein.

Folgendes Beispielszenario zeigt, wie Ansible arbeitet: Ein Kunde bietet einen zeitlich befristeten Live-Video-Feed an. Dafür muss sein Netzwerk vorübergehend in der Lage sein, zusätzlichen Sprach- und Video-Traffic zuverlässig in gleichbleibender Qualität zu liefern. Um dies zu gewährleisten, orchestriert der Kunde einige QoS-Änderungen im gesamten Netzwerk. Abbildung 1 zeigt unser Beispiel-Kundennetzwerk. Mit einem Vier-Router-Netzwerk und einer Ansible-Workstation können wir die erforderlichen Konfigurationsänderungen über ein Ansible-Playbook ausführen. Die IP-Adressen in der Abbildung sind die Management-IPs, die Ansible für die Verbindung zu jedem Gerät über ein Out-of-Band-Netzwerk verwendet.

Topologie-Diagramm und Verwaltung von IP-Adressen.
Abbildung 1: Topologie-Diagramm und Verwaltung von IP-Adressen.

Um unser einfaches Orchestrierungssystem in Betrieb zu nehmen, sind folgende drei Aufgaben zu erledigen:

  • Im ersten Schritt müssen wir eine YAML-Datei erstellen. Sie definiert die neuen Daten, die in unseren Netzwerkkonfigurationen verwendet werden können. Konkret geht es darum, die Datenübertragungsrate und den Puffer zu erhöhen, die für Sprache und Video reserviert sind.
  • Zweitens müssen wir ein Jinja2-Template erstellen, das sich mit der besagten YAML-Datei kombinieren lässt, um automatisch eine neue QoS-Konfiguration erzeugen zu können.
  • Im dritten Schritt folgt ein Ansible-Playbook, das die Netzwerkkonfigurationen automatisch erstellt und an jeden Router im Netzwerk überträgt.

Beginnen wir mit der YAML-Datei, in der die Bandbreite definiert wird, die für Sprache und Video reserviert ist. Die folgende Datei (siehe Abbildung 2) enthält einige Variablen, die zehn Prozent der Übertragungsrate und des Puffers für die Übertragung von Sprache und 20 Prozent für Video zuteilen.

 Ursprüngliche YAML-Definition für Sprache und Video.
Abbildung 2: Ursprüngliche YAML-Definition für Sprache und Video.

In diesem Beispiel verwenden wir YAML, um zu definieren, wie viel Bandbreite die Echtzeitanwendungen erhalten. Diese Datei nutzt Ansible zusammen mit Jinja2, um die aktualisierten QoS-Konfigurationen zu erstellen.

In diesem Beispiel ist es notwendig, mehr Ressourcen zuzuweisen, um zusätzlichen Video- und Sprach-QoS zu unterstützen. Für jede Art von kritischem Verkehr sind weitere fünf Prozent der Puffer- und Übertragungsrate erforderlich. Wir können unsere YAML-Datei aktualisieren und die zugeteilten Ressourcen erhöhen. Wichtig: Um künftig Änderungen wieder rückgängig zu machen, sollten Unternehmen die ursprüngliche YAML-Datei in einem Versionskontrollsystem sichern.

Neue YAML-Definition für Sprache und Video.
Abbildung 3: Neue YAML-Definition für Sprache und Video.

Jetzt zum zweiten Schritt, den Jinja2-Templates als Teil der Video- und Sprach-QoS-Konfiguration unserer Netzwerkgeräte. Jinja2 ist eine Templating-Sprache, die typischerweise mit Python verwendet wird. Netzwerktechniker sind mit Templates vertraut; häufig eingesetzte Konfigurationen erstellen sie meist mit Hilfe von Textdateien, Word-Dokumenten oder Tabellen. Abbildung 4 zeigt einen der wichtigsten Vorteile von Jinja2: Jinja2-Templates lassen sich mit Ansible-Playbooks und der vorher erstellten YAML-Datei verbinden, um automatisch aktualisierte QoS-Konfigurationen für die Netzwerkgeräte zu erzeugen.

Jinja2-Templates für die QoS-Konfiguration.
Abbildung 4: Jinja2-Templates für die QoS-Konfiguration.

Im Ansible-Playbook (siehe Abbildung 5) müssen wir zwei Aufgaben definieren, um die Änderungen an der Konfiguration abzuschließen und die Bereitstellung von Sprach- und Videoverbindungen sicherzustellen. Zum einen geht es darum, die Netzwerkkonfigurationen auf Basis der Templates zu erstellen und diese dann auf jedes verbundene Netzwerkgerät zu übertragen.

Ansible-Playbook für die Orchestrierung der Konfigurationsänderung.
Abbildung 5. Ansible-Playbook für die Orchestrierung der Konfigurationsänderung.

Hier einige weiterführende Informationen zum obigen Playbook: Als Teil des Setups haben wir eine Inventardatei mit den Management-IP-Adressen der Router aktualisiert (siehe Topologie-Diagramm in Abbildung 1). Diese IP-Adressen sind als eine Gruppe namens core_routers gekennzeichnet. Wir verwenden SSH-Schlüssel, um die Eingabe von Passwörtern zu vermeiden. Wenn wir dieses Ansible-Playbook starten, wird zunächst eine aktualisierte Konfigurationsdatei für jeden unserer core_router erzeugt. Anschließend erstellt Ansible NETCONF-over-SSH-Sitzungen, um die Konfiguration für jeden der core_router bereitzustellen.

Wir starten das Ansible-Playbook über eine einfache Kommandozeile (Command Line Interface, CLI; siehe unten); anschließend zeigt das CLI-Tool von Ansible in folgendem Bericht (Abbildung 6), dass die Änderung erfolgreich war.

 Starten des Ansible-Playbooks.
Abbildung 6: Starten des Ansible-Playbooks.

Die Änderungen am Netzwerk zeigt ein Blick auf den Ursprungszustand. Vor dem Ausführen des Ansible-Playbook war jeder Router so eingestellt, dass er zehn Prozent der Übertragungsrate und des Puffers für Sprache und 20 Prozent für Video zuwies.

Ursprüngliche QoS-Konfiguration.
Abbildung 7: Ursprüngliche QoS-Konfiguration.

Nur wenige Sekunden nach dem Start des Ansible-Playbooks sind die Änderungen auf jedes Gerät übertragen. Das Playbook hat die Übertragungsrate und Puffergröße für Sprache und Video um zusätzliche fünf Prozent erhöht, um die Anforderungen des Kunden zu erfüllen. Wurde die originale YAML-Datei gesichert, ist es möglich, nach dem Ende des Live-Video-Feeds wieder zur ursprünglichen Konfiguration zurückzukehren. All dies wird ohne manuelle Eingriffe an den einzelnen Netzwerkgeräten erreicht.

Aktualisierte QoS-Konfiguration.
Abbildung 8: Aktualisierte QoS-Konfiguration.

Fazit

Das Netzwerk verfügt jetzt über eine breitere Palette an Tools, um QoS-Änderungen bei der Übertragung von Sprache und Video zu vereinfachen sowie zu orchestrieren. Software wie Ansible lässt sich leicht mit anderen größeren Orchestrierungs-Systemen oder sogar einem einfachen CRON-Job integrieren. Das für diesen Text genutzte Beispiel beschreibt eine einfache Funktion. Die Funktionalität lässt sich allerdings beliebig um zusätzliche Geräte oder komplexere Änderungen wie die Aktualisierung von Klassifikatoren erweitern.

Folgen Sie SearchNetworking.de auch auf Twitter, Google+, Xing und Facebook!

Nächste Schritte

Wie können Unternehmen VoIP-QoS verbessern?

QoS versus Upgrade bei überlasteten Netzwerkverbindungen

Die benötigte VoIP-Bandbreite für SIP-Trunk-Services beachten

Video und Sprache: Echtzeit-Kommunikation scheitert ohne Monitoring

 

Artikel wurde zuletzt im Februar 2017 aktualisiert

Pro+

Premium-Inhalte

Weitere Pro+ Premium-Inhalte und andere Mitglieder-Angebote, finden Sie hier.

Erfahren Sie mehr über Unified Communications

Diskussion starten

Schicken Sie mir eine Nachricht bei Kommentaren anderer Mitglieder.

Mit dem Absenden dieser Daten erklären Sie sich bereit, E-Mails von TechTarget und seinen Partnern zu erhalten. Wenn Ihr Wohnsitz außerhalb der Vereinigten Staaten ist, geben Sie uns hiermit Ihre Erlaubnis, Ihre persönlichen Daten zu übertragen und in den Vereinigten Staaten zu verarbeiten. Datenschutz

Bitte erstellen Sie einen Usernamen, um einen Kommentar abzugeben.

- GOOGLE-ANZEIGEN

SearchSecurity.de

SearchStorage.de

SearchDataCenter.de

SearchEnterpriseSoftware.de

Close