Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Verwenden der gRPC-Wählverbindung für die sichere Erfassung von Telemetriedaten

Grundlegendes zum gRPC-Dial-Out

Ab Junos OS Version 22.4R1 unterstützt JTI Remote-gRPC-Dial-Out-Unterstützung auf Routern der ACX-Serie, MX-Serie, PTX-Serie und Switches der QFX-Serie. Bei der gRPC-Auswahl initiiert das Zielgerät (Server) eine gRPC-Sitzung mit dem Collector (Client). Wenn die Sitzung eingerichtet ist, streamt das Ziel die Telemetriedaten, die durch das sensor-group-Abonnement angegeben sind, an den Collector. Dies steht im Gegensatz zur gRPC-Einwahlmethode (Network Management Interface, gNMI), bei der der Collector eine Verbindung zum Zielgerät aufbaut.

Die gRPC-Auswahl vereinfacht das Streaming von Telemetriestatistiken. Wenn Sie das Zielgerät so konfigurieren, dass Statistiken gestreamt und an eine Collector-IP-Adresse exportiert werden, entfällt die Last des Zugriffs auf den Collector (Client). (siehe Abbildung 1).

Abbildung 1: gRPC-Wählvorgang gRPC Dial-Out

Die gRPC-Einwahl bietet mehrere Vorteile im Vergleich zur gRPC-Einwahl:

  • Verringert die Gefährdung von Zielgeräten mit Bedrohungen außerhalb ihrer Topologie.

  • Vereinfacht den Zugriff auf ein Zielgerät. Bei der gRPC-Einwahlmethode muss ein Collector eine Reihe komplexer Firewallkonfigurationen überwinden, um Zugriff auf das Zielgerät zu erhalten. Bei gRPC Dial-Out ist dies nicht der Fall.

  • Kollektoren können zustandslos sein. Ohne eine Sitzung einleiten zu müssen, hören sie einfach zu, abonnieren und speichern die gesammelten Daten.

  • Unterstützen Sie die gegenseitige Verschlüsselung für mehr Sicherheit.

Um den Export von Statistiken zu ermöglichen, fügen Sie die export-profile sensor und-Anweisungen auf der Hierarchieebene [edit services analytics] ein. Das Exportprofil muss die Berichtsrate, den Transportdienst (z. B. gRPC) und das Format (z. B. gbp-gnmi) enthalten. Die Sensorkonfiguration sollte den Namen des Collectors (den Namen des Servers), den Namen des Exportprofils und den Ressourcenpfad enthalten. Ein Beispiel für einen Ressourcenpfad ist /interfaces/interface[name='fxp0'.

Konfigurieren einer IP-Quelladresse für ältere gRPC-Wählverbindungen

Ab Junos OS Evolved Version 24.2R1 unterstützt JTI die Konfiguration einer Quell-IP-Adresse für ältere gRPC-Service-Dial-Out-Verbindungen auf Routern der ACX-Serie, PTX-Serie und Switches der QFX-Serie. In früheren Versionen, die die Legacy-gRPC-Auswahl unterstützen, wird die IP-Adresse der ausgehenden Schnittstelle als Quelladresse verwendet, ohne dass eine Option zum Konfigurieren einer Quell-IP-Adresse besteht. Diese Funktion unterstützt FLEX-Bereitstellungen und bietet die Möglichkeit, eine Auswahl von der angegebenen IP-Adresse oder Schnittstellenadresse des Routers (z. B. einer Loopback0-Adresse) zu senden.

Wenn Sie keine lokale Adresse konfigurieren, wird die lokale Standardadresse verwendet.

So konfigurieren Sie eine lokale Adresse:

  1. Gehen Sie im Konfigurationsmodus auf die [edit services analytics export-profile] Hierarchieebene und fügen Sie den Namen Ihres Exportprofils hinzu (hier ep1).
  2. Fügen Sie die local-address Anweisung (hier mit IPv6-Adresse2000:200::20) ein.

    Sie können eine IPv6-Adresse nur für ältere gRPC-Wählverbindungen (Transporttyp grpc. IPv6-Adressen werden vom UDP-Transport nicht unterstützt. Wenn der UDP-Transport konfiguriert ist, wird beim Bestätigen der Konfiguration ein Fehler angezeigt.

  3. Verwenden Sie den folgenden Befehl für den Betriebsmodus, um die Konfiguration der lokalen Adresse zu bestätigen.

    In der Exportdatei ep1 wird die IPv6-Adresse 2000:200::20 als lokale Adresse angezeigt.

Konfigurieren einer Routinginstanz für ältere gRPC-Wählverbindungen

Ab Junos OS Evolved Version 24.2R1 unterstützt JTI die Konfiguration einer Routing-Instanz für ältere gRPC-Service-Dial-Out-Verbindungen auf Routern der ACX-Serie, PTX-Serie und Switches der QFX-Serie.

Wenn Sie keine Routinginstanz konfigurieren, wird die Standardroutinginstanz verwendet.

So konfigurieren Sie eine Routing-Instanz:

  1. Gehen Sie im Konfigurationsmodus auf die [edit services analytics export-profile] Hierarchieebene und fügen Sie den Namen Ihres Exportprofils hinzu (hier ep1).
  2. Fügen Sie die routing-instance Anweisung ein (hier mit Routing-Instanz mgmt-1).

    Sie können eine Routing-Instanz nur für ältere gRPC-Wählverbindungen (Transporttyp grpc. Wenn der UDP-Transport konfiguriert ist, wird beim Bestätigen der Konfiguration ein Fehler angezeigt.

  3. Verwenden Sie den folgenden Betriebsmodusbefehl, um die Konfiguration der Routinginstanz zu bestätigen.

    In der Exportdatei ep1 wird die Routinginstanz als mgmt-1angezeigt.

gRPC-Tunnel – Übersicht

Ein gRPC-Tunnel fungiert als Client-Server-Protokoll, das eine Sitzung vom Ziel über die Standardroutinginstanz oder die konfigurierte Routinginstanz vom Ziel zum TCP-Client wählt. Wenn Sie keine Routinginstanz konfigurieren möchten, verwendet der gRPC-Tunnel die Standardroutinginstanz.

Sie können die Queladresse für jede gRPC-Tunnelsitzung so konfigurieren, dass eine Verbindung zum Tunnelserver hergestellt wird. Wenn Sie die Quelladresse nicht konfigurieren, wählt der Kernel die Quelladresse aus, die den Tunnelserver erreichen kann.

Weitere Informationen zu gRPC-Tunneln finden Sie unter https://github.com/openconfig/grpctunnel.

Ein gRPC-Tunnel hat drei Hauptentitäten:

  • Ziel: Stellt das Netzwerkgerät dar. Das Ziel ist ein gRPC-Client.

  • Tunnelserver: Eine Softwareentität, bei der es sich um eine externe Anwendung handelt, die die Abonnement- und Zielregistrierungen verwaltet. Der Tunnelserver ist ein gRPC-Server.

  • Tunnel-Client: Eine Software-Entität, die Client-Aufgaben ausführt. Der Tunnelclient kann innerhalb des Tunnelservers eigenständig sein. Der Tunnelclient ist ebenfalls ein gRPC-Client.

Vorteile der Verwendung einer gRPC-Tunnelsitzung:

  • Überwindet eine Reihe komplexer Firewall-Konfigurationen, wenn die Verbindung von der Serverseite aus hergestellt wird.

  • Greifen Sie auf verschiedene TCP-Serveranwendungen wie gNMI-gNOI, SSH oder NETCONF-SSH zu, ohne dass betriebliche Anforderungen erforderlich sind.

gRPC-Tunnelarchitektur

Ein gRPC-Tunnel ist eine generische Infrastruktur für TCP-basierte Anwendungen zur Kommunikation innerhalb von gRPC-Nachrichten.

Im Allgemeinen initiiert der TCP-Client eine Verbindung zum TCP-Server oder -Ziel. Junos-Geräte fungieren als Ziel, auf dem TCP-Serveranwendungen wie gNMI-gNOI, SSH und NETCONF-SSH ausgeführt werden. Wenn ein Client den Server nicht erreichen kann, können häufige Gründe sein:

  • Der Server stößt auf komplexe Firewall-Konfigurationen, wobei Firewalls eingehende Verbindungen verhindern.

  • Der Server stößt auf einen Router, der Network Address Translation (NAT) implementiert.

  • Der Server stößt auf alle anderen betrieblichen Anforderungen, wodurch externe Verbindungen verhindert werden.

Wenn ein TCP-Client ein Ziel nicht erreichen kann, können Sie eine gRPC-Tunnelsitzung konfigurieren, um eine Verbindung zwischen dem TCP-Client und dem Ziel herzustellen. Eine gRPC-Tunnelsitzung stellt eine Verbindung in umgekehrter Richtung her, wobei sich ein Ziel in einen TCP-Client einwählt.

Um eine gRPC-Tunnelsitzung zu verwenden, wird der Zielseite ein Tunnelclient hinzugefügt, auf der der grpc-tunnel-Prozess ausgeführt wird und alle gRPC-Tunnel-bezogenen Konfigurationen ausgeführt werden. Auf der TCP-Client-Seite wird ein Tunnelserver hinzugefügt.

Sie müssen die grpc-tunnel configuration-Anweisung in die [edit system services]-Hierarchie einschließen, um eine gRPC-Tunnelsitzung zu konfigurieren.

gRPC-Tunnelsicherheit

Der gRPC-Tunnel ist ein Dial-Out-Modell, bei dem ein Gerät basierend auf der Konfiguration eine Verbindung initiiert. Der gRPC-Tunnel befindet sich auf einem sicheren gRPC-Kanal, der TLS-Zertifikate verwendet.

Beispiel: Konfigurieren eines gRPC-Tunnels

Überblick

In diesem Abschnitt werden die Schritte beschrieben, die zum Konfigurieren des Ziels für dieses Beispiel erforderlich sind. Der Fokus liegt auf dem Ziel, da es sich dabei um das Junos-Gerät handelt, auf dem der gRPC-Tunnel konfiguriert ist.

Anforderungen

In diesem Beispiel werden die folgenden Software- und Hardwarekomponenten verwendet:

  • Junos OS oder Junos Evolved Version 22.4 oder höher für Routing- und Switching-Geräte

  • Ein Host-Gerät als Tunnel-Client

  • Ein Host-Gerät als Tunnel-Server

Topologie

Abbildung 1 zeigt die in diesem Beispiel verwendete Topologie.

Abbildung 2: Einrichtung des gRPC tunnel setup gRPC-Tunnels

Basierend auf der Junos-Konfiguration des Zielgeräts wählt es einen grpc-Tunnel zum Tunnelserver aus. Das Zielgerät registriert sich beim Tunnelserver über den Registerstream-RPC.

Wenn ein Client eine TCP-Sitzung an ein bestimmtes Ziel anfordert, fungiert der Tunnelserver als Vermittler und stellt eine Verbindung zu der oben registrierten Zielsitzung auf dem Tunnelserver her.

Wenn das Ziel den angeforderten Zieltyp unterstützt, wählt das Gerät einen neuen Tunnel aus, der als Tunnelstream-RPC bezeichnet wird. Dadurch wird ein gRPC-Tunnel zwischen dem Client und dem Ziel über den Tunnelserver eingerichtet. Der Tunnelclient kann nun auf die vorgesehenen TCP-Anwendungen auf dem Ziel zugreifen.

Anmerkung:

Es kann nur einen Register-Stream zwischen einem Tunnelserver und dem Netzwerkgerät geben, aber mehrere Tunnel-Streams für dasselbe Paar.

Konfigurieren eines gRPC-Tunnels

CLI-Schnellkonfiguration

Um dieses Beispiel schnell zu konfigurieren, kopieren Sie die folgenden Befehle, fügen Sie sie in eine Textdatei ein, entfernen Sie alle Zeilenumbrüche, ändern Sie alle Details, die für Ihre Netzwerkkonfiguration erforderlich sind, und kopieren Sie dann die Befehle und fügen Sie sie in die CLI auf der Hierarchieebene [edit] ein.

Schritt-für-Schritt-Anleitung

Führen Sie die folgenden Schritte aus, um den gRPC-Tunnel auf dem Zielgerät zu konfigurieren.

  1. Konfigurieren Sie die Server unter gRPC-tunnel.

    1. Konfigurieren Sie die IPv4- oder IPv6-Adresse oder den Hostnamen des Tunnelservers.

    2. Konfigurieren Sie die Portnummer, über die der Tunnelserver lauscht.

    3. Konfigurieren Sie die Anmeldeinformationen mit der tls-Anweisung .

    4. Geben Sie die Zielanwendungen an, auf die Sie zugreifen möchten. Die verfügbaren Optionen sind ssh, netconf-ssh und gnmi-gnoi.

  2. (Optional) Legen Sie das Wiederholungsintervall (in Sekunden) fest. Wenn der Tunnelserver nicht erreichbar ist, versucht das Zielgerät, nach Ablauf des Wiederholungsintervalls eine Verbindung herzustellen.

  3. (Optional)

    Legen Sie die Routing-Instanz fest. Wenn Sie die Routinginstanz nicht festlegen, verwendet der gRPC-Tunnel die Standardroutinginstanz.
  4. (Optional)

    Legen Sie die Quelladresse fest. Wenn Sie die Quelladresse nicht festlegen, wählt der Kernel die Quelladresse aus, die den Tunnelserver erreichen kann.
  5. (Optional) Konfigurieren Sie die target-string-option unter grpc-tunnel.

    1. Verwenden Sie die pattern-Anweisung, um eine geordnete Liste der unterstützten Optionen zu erstellen.

    2. Verwenden Sie die custom-string-Anweisung , um eine benutzerdefinierte Zeichenfolge zu definieren, die gesendet wird, wenn das Anweisungsmuster eine der Optionen enthält custom .

    3. Verwenden Sie die delimiter-Anweisung , wenn mehr als eine Option im Muster ausgewählt ist. Standardmäßig wird das | (Pipe-Symbol) verwendet.

Anmerkung:

Es können maximal 10 Tunnelserver konfiguriert werden.

Befund

Zeigen Sie die Ergebnisse der Konfiguration auf dem Zielgerät an. Die Ausgabe spiegelt nur die funktionale Konfiguration wider, die in diesem Beispiel hinzugefügt wurde.

Tabelle "Änderungshistorie"

Die Funktionsunterstützung hängt von der Plattform und der Version ab, die Sie verwenden. Verwenden Sie den Feature-Explorer , um festzustellen, ob ein Feature auf Ihrer Plattform unterstützt wird.

Loslassen
Beschreibung
22.4R1
Ab Junos OS Release und Junos OS Evolved Release 22.4R1 unterstützt JTI Remote-gRPC-Dial-Out-Unterstützung auf Routern der ACX-Serie, MX-Serie, PTX-Serie und Switches der QFX-Serie.