Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

NETCONF-Ereignisbenachrichtigungen

NETCONF-Clients können Ereignisbenachrichtigungen in NETCONF-Sitzungen abonnieren, um Warnungen für Ereignisse zu erhalten, die sich auf den Gerätebetrieb oder Verwaltungsaktivitäten auswirken können.

Übersicht über NETCONF-Ereignisbenachrichtigungen

Bestimmte Geräte, auf denen Junos OS Evolved ausgeführt wird, unterstützen NETCONF-Ereignisbenachrichtigungen, einen asynchronen Ereignisbenachrichtigungsdienst zwischen einem NETCONF-Server und einem NETCONF-Client. Nachdem Sie den Benachrichtigungsdienst aktiviert haben, sendet der NETCONF-Server asynchron Ereignisbenachrichtigungen an alle NETCONF-Clients, die die Benachrichtigungen abonnieren. Clients können NETCONF-Benachrichtigungen abonnieren, um Warnungen zu Ereignissen zu erhalten, die sich auf den Gerätebetrieb oder Verwaltungsaktivitäten auswirken können.

Der NETCONF-Server sendet Benachrichtigungen für die folgenden Arten von Ereignissen:

  • netconf-session-start– Gibt an, wann eine NETCONF-Sitzung gestartet wird, und identifiziert den Benutzer, der die Sitzung gestartet hat.
  • netconf-session-end– Gibt an, wann eine NETCONF-Sitzung endet, und identifiziert den Benutzer, dem die Sitzung gehörte, sowie den Grund für die Beendigung der Sitzung.
  • netconf-config-changeGibt an, wann eine Verwaltungssitzung Änderungen an die aktive Konfiguration übernimmt, und bietet eine Zusammenfassung der Änderungen.

Sie können den NETCONF-Ereignisbenachrichtigungsdienst auf unterstützten Geräten aktivieren. Anweisungen finden Sie unter Aktivieren und Abonnieren von NETCONF-Ereignisbenachrichtigungen . Sie können optional die Interleave-Funktion konfigurieren, die es NETCONF-Clients ermöglicht, Benachrichtigungen zu abonnieren und RPCs in derselben NETCONF-Sitzung zu senden, wie unter Interleave-Funktion beschrieben.

Anmerkung:

Es wird empfohlen, jeweils nur einen Satz von Benachrichtigungen zu konfigurieren und zu streamen, entweder NETCONF-Benachrichtigungen oder Telemetriedaten. Wenn Sie ein Gerät so konfigurieren, dass NETCONF-Benachrichtigungen aktiviert werden, streamt das Gerät alle Benachrichtigungen über den NETCONF-Kanal und keine Telemetriebenachrichtigungen über gRPC.

Nachdem Sie NETCONF-Ereignisbenachrichtigungen aktiviert haben, kündigt der NETCONF-Server die notification Funktion und die interleave Funktion im Funktionsaustausch an.

Um den Benachrichtigungsdienst für Ereignisse auf einem bestimmten Gerät zu abonnieren, sendet ein NETCONF-Client einen <create-subscription> RPC an den NETCONF-Server auf dem Gerät und gibt Folgendes an:

  • <stream>– Der Strom der Ereignisse, die von Interesse sind.

    Ein Stream ist eine Reihe von Ereignisbenachrichtigungen, die bestimmten Weiterleitungskriterien entsprechen. Ein Abonnement ist für die Lebensdauer des Abonnements an einen einzelnen Datenstrom gebunden. Der NETCONF Stream ist der standardmäßige und einzige Stream, der auf Junos-Geräten unterstützt wird. Der NETCONF-Server gibt einen Fehler zurück, wenn die Abonnementanforderung für einen anderen Datenstrom gilt. Wenn Sie diesen Parameter weglassen, behandelt das Gerät die Abonnementanforderung als Anforderung für den NETCONF Stream.

  • <filter>: Ein Teilstrukturfilter, der eine Teilmenge aller möglichen Ereignisse auswählt.

    Wenn ein NETCONF-Client einen Filter angibt, leitet der Server nur die Ereignisse weiter, die durch den Filter ausgewählt wurden. Wenn ein Client keinen Filter angibt, leitet der Server alle Ereignisse weiter. Junos OS Evolved unterstützt nur Filter der obersten Ebene und nicht die Verwendung von XPATH-Filtern für dieses Element. Weitere Informationen finden Sie unter Filterfunktion .

Nachdem ein NETCONF-Client Ereignisbenachrichtigungen abonniert hat, sendet der NETCONF-Server die Benachrichtigungen, sobald sie auftreten. Die Benachrichtigungen werden so lange fortgesetzt, bis die NETCONF-Sitzung beendet wird.

Anmerkung:

Ein NETCONF-Client empfängt standardmäßig alle Ereignisbenachrichtigungen. Es gibt keine Möglichkeit, den Inhalt einer Benachrichtigung basierend auf Benutzerberechtigungen einzuschränken oder zu begrenzen. Da einige Ereignisse, z. B netconf-config-change . Ereignisse, vertrauliche Informationen enthalten können, ist es wichtig, den Lesezugriff auf die Informationen zu steuern.

Weitere Informationen zu NETCONF-Ereignisbenachrichtigungen finden Sie in den folgenden RFCs:

  • RFC 5277, NETCONF-Ereignisbenachrichtigungen

  • RFC 6470, Network Configuration Protocol (NETCONF) Basisbenachrichtigungen

NETCONF-Ereignisbenachrichtigungsformat

NETCONF-Ereignisbenachrichtigungen sind wohlgeformte XML-Dokumente. Wenn der NETCONF-Server ein internes Ereignis empfängt, konvertiert er es in eine geeignete XML-Codierung mit einem Element der obersten Ebene <notification> und einem <eventTime> untergeordneten Element. Der tatsächliche Inhalt der Benachrichtigung hängt vom Ereignis ab.

Eine Abonnementanforderung kann Filter für bestimmte Arten von Benachrichtigungen enthalten. Wenn die Abonnementanforderung Filter enthält, werden die benutzerdefinierten Filter auf jede Benachrichtigung im Ereignisdatenstrom angewendet, und der NETCONF-Server leitet nur übereinstimmende Ereignisse an den Client weiter.

Die folgende Beispielereignisbenachrichtigung enthält ein netconf-config-change Ereignis. Die Benachrichtigung erfasst den Zeitstempel des Ereignisses, den Commit-Zeitstempel, den Benutzer, der die Konfigurationsänderungen ausgeführt hat, sowie eine Zusammenfassung dieser Änderungen.

Die folgenden Benachrichtigungen enthalten Beispiele netconf-session-start und netconf-session-end Ereignisse:

Interleave-Fähigkeit

Nachdem ein NETCONF-Client Ereignisbenachrichtigungen in einer NETCONF-Sitzung abonniert hat, kann der Client standardmäßig keine RPCs in derselben Sitzung senden. Die Interleave-Funktion ermöglicht es dem NETCONF-Client und -Server, RPCs und RPC-Antworten innerhalb derselben NETCONF-Sitzung auszutauschen, die für Benachrichtigungen verwendet wird. Die Interleave-Funktion reduziert die Gesamtzahl der NETCONF-Sitzungen, da Sie keine dedizierte NETCONF-Sitzung für Benachrichtigungen benötigen. Um die Interleave-Funktion auf Geräten zu verwenden, die diese Funktion unterstützen, müssen Sie die interleave Anweisung auf Hierarchieebene [edit system services netconf notification] konfigurieren.

Ein NETCONF-Client beendet ein Abonnement, indem er entweder die NETCONF-Sitzung oder die zugrunde liegende Transportsitzung der NETCONF-Sitzung beendet, z. B. mit einem <close-session> OR-Vorgang <kill-session> . Wenn Sie die Interleave-Funktion aktivieren, kann ein Client die Sitzung beenden, indem er einen <close-session> Vorgang innerhalb derselben Sitzung ausführt. Wenn Sie die Interleave-Funktion nicht aktivieren, kann der Client die Sitzung beenden, indem er z. B. den <kill-session> Vorgang von einer anderen Sitzung aus ausführt.

Filterfunktion

Wenn ein NETCONF-Client Ereignisbenachrichtigungen abonniert, kann der Client alle Ereignisbenachrichtigungen im Stream abonnieren, oder der Client kann eine Teilmenge von Ereignisbenachrichtigungen abonnieren. Um eine Teilmenge von Ereignisbenachrichtigungen zu abonnieren, schließt der Client das optionale <filter> Element in den <create-subscription> RPC ein. Wenn die Abonnementanforderung Filter enthält, werden die Filter auf jede Benachrichtigung im Ereignisdatenstrom angewendet, und der NETCONF-Server leitet nur übereinstimmende Ereignisse an den Client weiter. Andernfalls leitet der Server alle Ereignisse weiter.

Das <filter> Parameterformat für den <create-subscription> Vorgang ähnelt dem filter Parameterformat für andere NETCONF-Operationen. Es umschließt einen Teilbaumfilter, der die gewünschten Ereignisbenachrichtigungen auswählt. Im Fall des <create-subscription> Vorgangs unterstützen Junos-Geräte jedoch nur Teilstrukturfilter, die mit dem Element der obersten Ebene der eingeschlossenen Benachrichtigung übereinstimmen, z. B <netconf-config-change>. . . Der Filter wird auf die Benachrichtigungen im Stream und nur auf den Inhalt des <notification> Wrappers angewendet.

Anmerkung:

Junos-Geräte unterstützen nicht die Verwendung von XPath zum Filtern der Benachrichtigungen.

Wenn Sie nach bestimmten Benachrichtigungen filtern, müssen Sie den entsprechenden Namespace in das Tag aufnehmen. Wenn Sie den Namespace nicht angeben, stimmen die Ereignisbenachrichtigungen nicht mit dem Filter überein, und der NETCONF-Server leitet die Benachrichtigungen nicht weiter. Im folgenden Beispiel gibt die Abonnementanforderung eine Teilmenge aller NETCONF-Ereignisbenachrichtigungen zurück. Der Filter wählt nur Ereignisse und Ereignisse aus und <oc-ifl-event> leitet sie <netconf-config-change> weiter.

Aktivieren und Abonnieren von NETCONF-Ereignisbenachrichtigungen

Sie müssen den NETCONF-Ereignisbenachrichtigungsdienst auf einem Gerät aktivieren, bevor ein NETCONF-Client Ereignisbenachrichtigungen in einer NETCONF-Sitzung abonnieren kann. Nachdem der Dienst aktiviert wurde, abonniert ein NETCONF-Client den Empfang von Ereignisbenachrichtigungen, indem er eine Abonnementanforderung an den NETCONF-Server sendet. Die Antwort des NETCONF-Servers gibt an, ob die Anforderung erfolgreich ist. Wenn die Anforderung erfolgreich ist, sendet der Server asynchrone Ereignisbenachrichtigungen an den NETCONF-Client, wenn die Ereignisse auftreten und bis die NETCONF-Sitzung beendet wird.

Für dieses Beispiel ist die folgende Hardware und Software erforderlich:

  • Gerät mit Junos OS Evolved Version 21.2R1 oder höher, das den NETCONF-Ereignisbenachrichtigungsservice unterstützt. Informationen zu unterstützten Geräten finden Sie im Funktions-Explorer .

Führen Sie die folgenden Aufgaben aus, um NETCONF-Ereignisbenachrichtigungen zu aktivieren und zu abonnieren:

Aktivieren des NETCONF-Ereignisbenachrichtigungsdiensts

So aktivieren Sie einem Client das Abonnieren von Ereignisbenachrichtigungen in einer NETCONF-Sitzung:

  1. Aktivieren Sie den NETCONF-Ereignisbenachrichtigungsdienst, indem Sie die notification Anweisung konfigurieren.
  2. (Optional) Konfigurieren Sie die interleave Option, um einem NETCONF-Client die Ausführung von RPCs in einer NETCONF-Sitzung zu ermöglichen, die auch Benachrichtigungen abonniert.
  3. Konfigurieren Sie die rfc-compliant Anweisung, um sicherzustellen, dass das Gerät mit NETCONF RFC 4741 konform ist.
  4. (Optional) Konfigurieren Sie NETCONF-Ablaufverfolgungsoptionen für die Fehlerbehebung von Problemen.

    Zum Beispiel:

  5. Aktivieren Sie die Benachrichtigungsdienste am Standardport für Anwendungen, die auf dem Gerät ausgeführt werden.

    In Releases, die die allow-clients Anweisung erfordern, müssen Sie auch die Clients (Hostnamen oder IP-Adressen) angeben, die Benachrichtigungen abonnieren dürfen.

    Zum Beispiel:

  6. Bestätigen Sie die Konfiguration.

Abonnieren Sie den Empfang von Ereignisbenachrichtigungen

Nachdem Sie den NETCONF-Ereignisbenachrichtigungsdienst auf einem Gerät aktiviert haben, können NETCONF-Clients den Empfang von Ereignisbenachrichtigungen in einer NETCONF-Sitzung abonnieren. Ein NETCONF-Client kann die folgenden optionalen Parameter in die Abonnementanforderung aufnehmen:

  • <stream>: Stream von Ereignissen, die von Interesse sind. Der standardmäßige und einzig akzeptable Wert ist NETCONF.

  • <filter>: Teilstrukturfilter, der eine Teilmenge aller möglichen Ereignisse auswählt.

So abonnieren Sie Ereignisbenachrichtigungen in einer NETCONF-Sitzung:

  1. Starten Sie die NETCONF-Sitzung.
  2. Stellen Sie sicher, dass der NETCONF-Ereignisbenachrichtigungsdienst auf dem Gerät aktiviert ist, indem Sie bestätigen, dass die Benachrichtigungsfunktion im Funktionsaustausch angekündigt wird.
  3. Geben Sie eine create-subscription Anforderung aus, und geben Sie optional den NETCONF Stream an.
    • Um alle Benachrichtigungen zu abonnieren, lassen Sie den <filter> Parameter weg.

    • Um eine Teilmenge von Benachrichtigungen zu abonnieren, schließen Sie das <filter type="subtree"> Element ein, und definieren Sie einen oder mehrere Unterstrukturfilter für die relevanten Benachrichtigungen. Junos-Geräte unterstützen nur Unterstrukturfilter, die mit dem Element der obersten Ebene der beigefügten Benachrichtigung übereinstimmen. Sie müssen den entsprechenden Namespace in das Tag für die jeweilige Benachrichtigung aufnehmen.

      Zum Beispiel:

  4. Vergewissern Sie sich, dass die Abonnementanforderung erfolgreich ist.

    Der NETCONF-Server gibt zurück <ok/> , wenn die Anforderung erfolgreich ist, oder ein <rpc-error> Element, wenn er die Abonnementanforderung nicht abschließen kann.

    Wenn die Abonnementanforderung erfolgreich ist, beginnt der NETCONF-Server, Ereignisbenachrichtigungen asynchron über die Verbindung zu senden.

  5. Wenn die Interleave-Funktion aktiviert ist, kann der NETCONF-Client weiterhin RPCs innerhalb derselben Sitzung senden.

Beenden des Abonnements

Ein NETCONF-Client beendet ein Abonnement für den Empfang von Ereignisbenachrichtigungen, indem er entweder die NETCONF-Sitzung oder die zugrunde liegende Transportsitzung der NETCONF-Sitzung beendet.

Führen Sie eine der folgenden Aktionen aus, um die NETCONF-Sitzung und das Abonnement zu beenden:
  • Wenn die Interleave-Funktion aktiviert ist, geben Sie den <close-session/> Vorgang in der NETCONF-Sitzung ab.

  • Geben Sie den <kill-session> Vorgang von einer externen NETCONF-Sitzung aus aus, und geben Sie die Sitzungs-ID für die zu beendende NETCONF-Sitzung an (wie im <session-id> Element des ersten <hello> Austauschs definiert).

  • Beenden Sie die der NETCONF-Sitzung zugrunde liegende Transportsitzung.