Grundlegendes zu gRPC-Diensten für die Verwaltung von Netzwerkgeräten
ZUSAMMENFASSUNG gRPC-Clientanwendungen können gRPC-Netzwerkdienste, einschließlich gNOI-Vorgänge und gRIBI-Dienste, verwenden, um unterstützte Netzwerkgeräte zu verwalten.
Vorteile von gRPC Network Services
- Stellen Sie einfache, herstellerunabhängige Schnittstellen für die Verwaltung von Netzwerkgeräten bereit.
- Ermöglicht Ihnen eine einfachere Verwaltung von herstellerübergreifenden Netzwerken in großem Maßstab.
- Verwenden Sie das gRPC-Framework für Remoteprozeduraufrufe für den Transport und Protokollpuffer für Dienstdefinitionen und Codierung, die einen effizienten Transport und eine schnelle Verarbeitung ermöglichen.
OpenConfig verstehen
OpenConfig ist ein Gemeinschaftsprojekt der Netzwerkbranche mit dem Ziel, eine dynamischere, programmierbare Methode für die Konfiguration und Verwaltung von herstellerübergreifenden Netzwerken zu entwickeln. OpenConfig unterstützt die Verwendung herstellerneutraler Service-Definitionen und Datenmodelle zur Verwaltung und Konfiguration des Netzwerks. Die Dienstdefinitionen definieren allgemeine Vorgänge, die auf Netzwerkgeräten ausgeführt werden, und die Datenmodelle definieren die Konfiguration und den Betriebsstatus von Netzwerkgeräten für gängige Netzwerkprotokolle oder -dienste.
Betreiber mit einem Multivendor-Netzwerk profitieren in hohem Maße von der Verwendung von branchenüblichen Modellen und Spezifikationen. Das Ziel von OpenConfig ist es, dass Betreiber in der Lage sind, einen einzigen Satz von Datenmodellen und Vorgängen zu verwenden, um alle Netzwerkgeräte zu konfigurieren und zu verwalten, die die OpenConfig-Initiative unterstützen. Die OpenConfig-Arbeitsgruppe hat Spezifikationen für gRPC-basierte Schnittstellen zur Verwaltung der Konfiguration, des Betriebs und der Telemetrieströme auf Netzwerkgeräten entwickelt, die Vorteile gegenüber anderen herkömmlichen Netzwerkmanagementprotokollen bieten.
Übersicht über gRPC-basierte Services
gRPC ist ein Open-Source-RPC-Framework (Remote Procedure Call), das ursprünglich von Google entwickelt wurde. gRPC verwendet HTTP/2 für den Transport und unterstützt moderne Sicherheitsmechanismen und bidirektionales Streaming. gRPC verwendet das Protocol Buffers-Datenformat zum Definieren von Diensten und zum Codieren von Daten. Protocol Buffers ist sprachunabhängig und unterstützt Bindungen für viele verschiedene Sprachen, was es Betreibern ermöglicht, gRPC-basierte Dienste einfach in bestehende Managementanwendungen zu integrieren.
Die OpenConfig-Arbeitsgruppe hat Spezifikationen für gRPC-basierte Netzwerkmanagementprotokolle definiert. Die gRPC-basierten Netzwerkservices umfassen:
- gRPC Network Management Interface (gNMI) – Zentraler Dienst für Konfigurationsmanagement und Streaming-Telemetrie.
- gRPC Network Operations Interface (gNOI) – Suite von Microservices für das Betriebsmanagement.
- gRPC Routing Information Base Interface (gRIBI) – Dienst, der es externen Anwendungen ermöglicht, programmgesteuert Einträge in einer Routing-Tabelle auf dem Zielgerät hinzuzufügen oder zu entfernen.
Abbildung 1 veranschaulicht den Umfang der verschiedenen Dienste.

gNMI-, gNOI- und gRIBI-Services im Überblick
gNMI bietet einen einzigen Dienst für die Zustandsverwaltung von Netzwerkelementen. gNMI verwendet herstellerneutrale Datenmodelle, die die Konfiguration und den Betriebszustand von Netzwerkgeräten für gängige Netzwerkprotokolle oder -dienste definieren. gNMI-Clients können die Konfiguration eines Netzwerkgeräts abrufen und ändern sowie Betriebsdaten streamen. Die Betreiber überwachen das Netzwerk, indem sie die spezifischen Datenobjekte abonnieren, die sie interessieren. gNMI unterstützt auch On-Change-Streaming , was für zeitkritische Vorgänge von entscheidender Bedeutung ist.
Weitere Informationen zur Verwendung von gNMI für Konfigurationsmanagement und Telemetrie-Streaming auf Junos-Geräten finden Sie unter:
Während gNMI für die Zustandsverwaltung zuständig ist, kümmert sich gNOI um die Betriebsverwaltung. gNOI ist eine Sammlung von gRPC-basierten Microservices zum Ausführen allgemeiner Vorgänge auf Netzwerkgeräten. Jede Dienstdefinition definiert Remote Procedure Calls (RPCs), die Verwaltungsanwendungen auf einem Gerät ausführen können, um eine Reihe von Vorgängen auszuführen, z. B. den Neustart eines Geräts, das Aktualisieren der Software oder das Rotieren eines Zertifikats. Eine Liste der unterstützten gNOI-Dienste finden Sie unter Übersicht über gNOI-Dienste.
gRIBI ist ein einzelner Dienst zur Verwaltung der Routing-Informationsdatenbank (RIB, auch als Routing-Tabelle bezeichnet) und der Weiterleitungs-Informationsdatenbank (FIB, auch als Weiterleitungstabelle bezeichnet) des Netzwerkgeräts. Managementanwendungen können gRIBI-RPCs auf einem Gerät ausführen, um Routen aus dem RIB oder FIB des Geräts abzurufen, hinzuzufügen, zu ändern oder zu löschen. Weitere Informationen zu unterstützten gRIBI-RPCs finden Sie unter gRIBI.
gNMI, gNOI und gRIBI verwenden gRPC für den Transport, und die Verbindung zwischen dem gRPC-Server und dem gRPC-Client erfolgt über eine SSL-verschlüsselte gRPC-Sitzung. Abbildung 2 zeigt beispielsweise eine einfache Verbindung zwischen einem gNOI-Client und einem Server. Juniper Networks unterstützt sowohl die reine Serverauthentifizierung als auch die gegenseitige Authentifizierung für die gRPC-Sitzung, bei der X.509-Zertifikate zur Authentifizierung des Geräts oder der Anwendung verwendet werden. Zertifikate können von einer Zertifizierungsstelle signiert oder selbstsigniert sein.

gNMI, gNOI und gRIBI definieren Services für die Verwaltung von Netzwerkgeräten. Jede Dienstdefinition definiert die Vorgänge (RPCs) und Datenstrukturen (Nachrichten) für diesen bestimmten Dienst in Protodefinitionsdateien. Die Datenstrukturen werden mithilfe von Protocol Buffers definiert, einem sprachneutralen Open-Source-Datenformat zur Serialisierung strukturierter Daten. Sie verwenden protoc
einen gleichwertigen Compiler, um die Protodateien für die Sprache Ihrer Wahl zu kompilieren. Verwaltungsanwendungen können den Code in den kompilierten Dateien verwenden, um die angeforderten Vorgänge auf Netzwerkgeräten auszuführen. Tabelle 1 enthält die Speicherorte für die GitHub-Repositorys gNMI, gNOI und gRIBI, die die Protodefinitionsdateien enthalten.
Schnittstelle | GitHub-Repository |
---|---|
gNMI | openconfig/gnmi |
gNOI | openconfig/gnoi |
gRIBI | openconfig/gribi |
gNMI, gNOI und gRIBI bieten Alternativen und Vorteile gegenüber anderen Netzwerkmanagementprotokollen wie NETCONF und RESTCONF. Da es sich bei gNMI, gNOI und gRIBI um gRPC-basierte Dienste handelt und die Protodefinitionsdateien für viele verschiedene unterstützte Sprachen kompiliert werden können, können die Dienste problemlos in vorhandene Verwaltungsanwendungen integriert werden, um Netzwerke verschiedener Anbieter zu verwalten. Darüber hinaus bietet die Verwendung von Protokollpuffern für die Datenserialisierung im Allgemeinen einen effizienteren Transport und eine schnellere Verarbeitung gegenüber anderen Serialisierungsformaten wie JSON und XML.