Neuanordnen von Elementen in Konfigurationsdaten mithilfe des Junos XML-Protokolls
Bei den meisten Konfigurationsobjekten ist die Reihenfolge, in der das Objekt oder seine untergeordneten Objekte erstellt werden, nicht von Bedeutung, da die Konfigurationsverwaltungssoftware Junos OS Konfigurationsobjekte an vordefinierten Positionen in der Konfigurationshierarchie speichert und anzeigt. Einige Konfigurationsobjekte, z. B. Routingrichtlinien und Firewallfilter, bestehen jedoch aus Elementen, die sequenziell verarbeitet und analysiert werden müssen, um das beabsichtigte Routingverhalten zu erzeugen. Wenn eine Clientanwendung das Junos XML-Verwaltungsprotokoll verwendet, um einem geordneten Satz ein neues Element hinzuzufügen, wird das Element an die vorhandene Liste von Elementen angehängt. Die Clientanwendung kann dann die Elemente bei Bedarf neu anordnen.
In einer Junos XML-Protokollsitzung mit einem Gerät, auf dem Junos OS ausgeführt wird, schließt eine Clientanwendung zunächst die Tag-Elemente ein, die unter Erstellen, Ändern oder Löschen von Konfigurationselementen mit dem Junos XML-Protokoll beschrieben sind, um die Reihenfolge der Konfigurationselemente in einem geordneten Satz zu ändern. Wenn Sie Junos XML-Tag-Elemente verwenden, gibt die Anwendung das Container-Tag-Element aus, das den geordneten Satz darstellt, und schließt das Tag-Element für jeden Bezeichner des Konfigurationselements ein, der verschoben wird. In den folgenden Beispielen wird das Bezeichner-Tag-Element als <name>
aufgerufen.
Um ein vorhandenes Element an die erste Position in einer geordneten Menge zu verschieben, schließt die Anwendung das Attribut in das insert="first"
öffnende Container-Tag für dieses Element ein.
<configuration> <!-- opening tag for each parent of the set --> <ordered-set insert="first"> <name>identifier-for-moving-object</name> </ordered-set> <!-- closing tag for each parent of the set --> </configuration>
Um ein vorhandenes Element an eine Position zu verschieben, die relativ zu einem anderen Element ist, fügt die Anwendung das Attribut or insert="after"
in das insert="before"
öffnende Container-Tag ein, um die neue Position des verschiebenden Elements relativ zu einem anderen Referenzelement im Satz anzugeben. Um das Referenzelement zu identifizieren, schließt es jeden Bezeichner des Referenzelements als Attribut in das öffnende Container-Tag für den geordneten Satz ein.
Im folgenden Beispiel haben die Elemente in der Menge einen Bezeichner mit dem Namen <name>
:
<configuration> <!-- opening tag for each parent of the set --> <ordered-set insert="(before | after)" name="referent-value"> <name>identifier-for-moving-object</name> </ordered-set> <!-- closing tag for each parent of the set --> </configuration>
Im folgenden Beispiel verfügt jedes Element im Satz über zwei Bezeichner. Das öffnende Tag wird nur aus Gründen der Lesbarkeit in zwei Zeilen angezeigt:
<configuration> <!-- opening tag for each parent of the set --> <ordered-set insert="(before | after)" identifier1="referent-value" identifier2="referent-value"> <identifier1>value-for-moving-object</identifier1> <identifier2>value-for-moving-object</identifier2> </ordered-set> <!-- closing tag for each parent of the set --> </configuration>
Das insert
Attribut kann mit dem inactive
Attribut or active
kombiniert werden, um das Konfigurationselement bei der Neuanordnung zu deaktivieren oder zu reaktivieren. Weitere Informationen finden Sie unter Ändern des Aktivierungsstatus eines Konfigurationselements gleichzeitig mit anderen Änderungen mithilfe des Junos XML-Protokolls.
Wenn Sie Konfigurationsmodusbefehle verwenden, um Elemente neu anzuordnen, gibt die Anwendung den Befehl an, der insert
dem CLI-Konfigurationsmodusbefehl entspricht.
<configuration-set> insert statement-path-to-object identifier-for-moving-object (before | after) referent-value </configuration-set>
Das insert="first"
Attribut verfügt über keinen entsprechenden CLI-Konfigurationsmodusbefehl.
Der Neuanordnungsvorgang ist nicht verfügbar, wenn formatierter ASCII-Text oder JSON zur Darstellung der Konfigurationsdaten verwendet wird.
Das folgende Beispiel zeigt, wie ein auf der Hierarchieebene definierter Firewallfilter mit dem Namen older-filter
"" nach einem anderen Filter platziert wird, der mithilfe von Junos XML-Tag-Elementen aufgerufen wird newer-filter
.[edit firewall filter]
Dieser Vorgang entspricht dem folgenden Konfigurationsmodusbefehl :
[edit] user@host# insert firewall family inet filter older-filter after filter newer-filter

Das folgende Beispiel zeigt, wie ein Firewallfilter mit dem Namen older-filter
, der auf Hierarchieebene [edit firewall filter]
definiert ist, nach einem anderen Filter platziert wird, der mithilfe von Konfigurationsmodusbefehlen aufgerufen newer-filter
wird:
<rpc> <load-configuration action="set" format="text"> <configuration-set> insert firewall family inet filter older-filter after filter newer-filter </configuration-set> </load-configuration> </rpc>
Das folgende Beispiel zeigt, wie ein virtueller OSPF-Link, der auf Hierarchieebene [edit protocols ospf area area]
definiert ist, verschoben wird. Der Link mit Bezeichnern und bewegt sich vor dem Link mit Bezeichnern neighbor-id 192.168.0.3
neighbor-id 192.168.0.5
und transit-area 10.10.10.1
transit-area 10.10.10.2
. Dieser Vorgang entspricht dem folgenden Konfigurationsmodusbefehl:
[edit protocols ospf area area] user@host# insert virtual-link neighbor-id 192.168.0.3 transit-area 10.10.10.1 before virtual-link neighbor-id 192.168.0.5 transit-area 10.10.10.2
Client-Anwendung
<rpc> <load-configuration> <configuration> <protocols> <ospf> <area> <name>area</name> <virtual-link insert="before" neighbor-id="192.168.0.5" transit-area="10.10.10.2"> <neighbor-id>192.168.0.3</neighbor-id> <transit-area>10.10.10.1</transit-area> </virtual-link> </area> </ospf> </protocols> </configuration> </load-configuration> </rpc>
Junos XML-Protokollserver
<rpc-reply xmlns:junos="URL"> <load-configuration-results> <load-success/> </load-configuration-results> </rpc-reply>