Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Entwicklung von Off-Device-JET-Anwendungen

Übersicht

Sie können JET verwenden, um Anwendungen zu entwickeln, die außerhalb des Geräts ausgeführt werden. Auf diese Weise können Sie die Vorteile von JET auf allen Geräten in Ihrem Netzwerk nutzen. Um die Entwicklung zu vereinfachen, können Sie JET-Anwendungen außerhalb des Geräts in der Sprache Ihrer Wahl schreiben. So entwickeln Sie eine Off-Device-Anwendung:

  1. Laden Sie die IDL-Datei herunter und kompilieren Sie sie.

  2. Entwickeln Sie die Anwendung in der Sprache Ihrer Wahl.

  3. Verpacken Sie die Anwendung.

  4. Stellen Sie das Anwendungspaket auf einem externen Server bereit, oder führen Sie die Anwendung direkt von der JET-VM aus aus.

Abbildung 1 zeigt den Workflow für die Entwicklung von Anwendungen außerhalb des Geräts.

Abbildung 1: Off-Device-JET-Anwendungs-Workflow Off-Device JET Application Workflow

Entwickeln und verpacken Sie Ihre Anwendung

Bevor Sie Ihre Anwendung entwickeln, stellen Sie sicher, dass Sie bereits die Anweisungen unter Einrichten der JET-VM befolgt haben, um die JET-VM einzurichten und die IDL-Datei herunterzuladen.

  1. Kompilieren Sie die Protodefinitionsdateien, die Sie verwenden möchten, in der Sprache Ihrer Wahl.

    In diesem Beispiel verwenden wir Python. Wir kompilieren die Dateien für die APIs für Verwaltung, Authentifizierung und allgemeine Basistypen.

    Sie haben Python- und gRPC-Module für jede angegebene API kompiliert.

  2. Entwickeln Sie die Anwendung in der Sprache Ihrer Wahl.

    Wenn Sie eine Anwendung mit einer Abhängigkeit von C- oder C++-Modulen oder eine signierte Anwendung entwickeln, müssen Sie die JET-VM für die JET-Anwendungsentwicklung verwenden.

    Hinweis:

    Ab Junos OS Version 21.1R1 und Junos OS Evolved Version 22.3R1 wird Python 2.7 nicht mehr unterstützt. Verwenden Sie stattdessen Python 3.

    Sie können die Anwendung mithilfe eines Stubs schreiben, nachdem ein clientseitiger Stub generiert wurde. Weitere Informationen zum Generieren der clientseitigen gRPC-Stubs, zum Schreiben der Anwendung mithilfe des Stubs und zum Generieren von Code aus einer IDL-Datei in der Sprache Ihrer Wahl finden Sie unter https://www.grpc.io/docs/.

  3. Verpacken Sie die Anwendung mit JSON. Weitere Informationen finden Sie unter Paketieren von JET-Anwendungen.

Vorbereiten der Bereitstellung Ihrer Anwendung

Führen Sie Ihre Anwendung auf einem externen Server oder direkt von der JET-VM aus aus. Bevor Sie Ihre Anwendung auf einem externen Server bereitstellen, müssen Sie die JET-Interaktion mit Junos OS konfigurieren.

Konfigurieren der JET-Interaktion mit Junos OS

Um eine Anwendung außerhalb des Geräts auszuführen, müssen Sie die request-response Konfiguration unter Junos OS oder Junos OS Evolved aktivieren. Bei Verwendung des Anforderungs-Antwort-Service gibt die Clientanwendung eine Anforderung aus und wartet synchron auf die Antwort vom Junos-Server. Verwenden Sie diesen Abschnitt, um den JET-Dienstprozess (jsd) für den Anforderungs-Antwort-Dienst so zu konfigurieren, dass er im SSL-Modus (Secure Sockets Layer) ausgeführt wird. Dies sorgt für erhöhte Sicherheit und ermöglicht SSL-basierte API-Verbindungen.

Hinweis:

Derzeit unterstützt JET Transport Layer Security (TLS) Version 1.2 für den Zertifikataustausch und unterstützt mehrere Verschlüsselungsalgorithmen, jedoch keine gegenseitige Authentifizierung. Dies bedeutet, dass Clients den Server authentifizieren können, der Server jedoch keine Clients mit SSL/TLS-Zertifikaten authentifizieren kann. Verwenden Sie für die Clientauthentifizierung die LoginCheck()-Prozedur aus der Authentifizierungsdienst-API.

  1. Aktivieren Sie jsd für die Verwendung von SSL, indem Sie den Zertifikatsnamen lokal hinzufügen und konfigurieren. Bei dem Zertifikat muss es sich um ein RSA-Zertifikat handeln. ECDSA- und DSA-SSL-Zertifikate werden nicht unterstützt.

    Diese Methode ist identisch mit anderen SSL-basierten Diensten in Junos OS wie xnm-ssl. Verfolgen Sie den Zertifikatnameneintrag, den Sie während der Zertifikatgenerierung angeben. Sie werden es für die HOST_OVERRIDE Option in der Python-Beispielanwendung im nächsten Abschnitt verwenden. In diesem Beispiel lautet routerder Zertifikatname .

    Hinweis:

    Wenn ein Zertifikat mit demselben Bezeichner aktualisiert wird, werden die Änderungen für jsd nicht widergespiegelt. Sie müssen das Zertifikat entweder mit einem neuen Bezeichner in der jsd-Hierarchie konfigurieren oder einen jsd-Neustart durchführen, um die vorgenommenen Änderungen widerzuspiegeln.

  2. Kopieren Sie die PEM-Datei des SSL-Zertifikats auf das Junos-Gerät.

    Zum Beispiel:

  3. Laden Sie das Zertifikat in den Schlüsselbund auf dem Junos-Gerät. Wenn der lokale Name des SSL-Zertifikats beispielsweise lautet sslcert:

  4. Aktivieren Sie die SSL-Unterstützung für das geladene Zertifikat.

    Zum Beispiel:

  5. (Optional) Geben Sie die spezifische IP-Adresse oder den Port an, der SSL verwenden soll. SSL macht diese Adresse oder diesen Port zu einem sicheren Kanal.

    Wenn Sie die Adresse auf 0.0.0.0 festlegen, verwendet das Gerät SSL auf allen Ports. So aktivieren Sie beispielsweise die Unterstützung für SSL auf dem gRPC-Endpunkt auf allen Ports und dem TCP-Standardport 51051:

  6. Geben Sie die maximale Anzahl gleichzeitiger Verbindungen für Request-Response an, die an jsd angehängt werden können. Je höher die Zahl, desto höher die Auswirkungen auf die Leistung des Kunden.

    Sie haben jsd für den Anforderungsantwortdienst so konfiguriert, dass er im SSL-Modus ausgeführt wird. Sie sind bereit, Ihre JET-Anwendung außerhalb des Geräts bereitzustellen.

  7. Geben Sie die zu verwendenden Skripts an.

    Hinweis:

    Ab Junos OS Version 21.1R1 und Junos OS Evolved Version 22.3R1 wird Python 2.7 nicht mehr unterstützt und die set system scripts language python Anweisung ist veraltet. Verwenden Sie stattdessen die set system scripts language python3 Anweisung.

Beispiel: Python JET-Anwendung

Verwenden Sie dieses Beispiel, um eine geräteunabhängige JET-Anwendung zu entwickeln, die in Python geschrieben wurde. Sie können die gleiche Anleitung für andere Sprachen befolgen, die von gRPC unterstützt werden. Diese Python JET-Anwendung führt den Befehl get-system-uptime-information im XML-Format aus.

In diesem Beispiel verwendet die HOST_OVERRIDE Option den Zertifikatnamen, den Sie bei der Zertifikatgenerierung angegeben haben. Weitere Informationen finden Sie unter Vorbereiten der Bereitstellung Ihrer Anwendung.

Hinweis:

Juniper Networks unterstützt die beiden folgenden Formen zum Bezeichnen von öffnenden und schließenden XML-Tags: <xml-tag/> und <xml-tag></xml-tag>.

Junos OS Version 18.4R1 und höher

Verwenden Sie die in diesem Abschnitt gezeigte Python-Beispielanwendung als Leitfaden, wenn Sie Junos OS Version 18.4R1 oder höher verwenden.

Wenn Sie Ihre Anwendung mit Python 3 schreiben, fügen Sie das Schlüsselwort PASS in den Exception-Block des Skripts ein.

Vor Junos OS Version 18.4R1

Verwenden Sie die Python-Beispielanwendung in diesem Abschnitt als Leitfaden, wenn Sie Junos OS-Versionen vor 18.4R1 verwenden.