Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Laden von Konfigurationsdateien

Das Laden von Konfigurationsdateien auf dem Gerät ist hilfreich, um Teile von Konfigurationsdateien zu laden, die auf vielen Geräten innerhalb eines Netzwerks gemeinsam sein können.

Beispiele für das Laden einer Konfiguration aus einer Datei oder dem Terminal

Sie können eine Datei mit Konfigurationsdaten für ein Gerät von Juniper Networks erstellen, die Datei auf das lokale Gerät kopieren und die Datei dann in die CLI laden. Nachdem Sie die Datei geladen haben, können Sie sie festschreiben, um die Konfiguration auf dem Gerät zu aktivieren, oder Sie können die Konfiguration interaktiv über die CLI bearbeiten und die Konfiguration zu einem späteren Zeitpunkt bestätigen.

Sie können auch eine Konfiguration erstellen, während Sie am Terminal tippen, und dann die Konfiguration laden. Das Laden einer Konfiguration aus dem Terminal ist nützlich, wenn Sie vorhandene Teile der Konfiguration ausschneiden und an anderer Stelle in der Konfiguration einfügen.

Um eine vorhandene Konfigurationsdatei zu laden, die sich auf dem Gerät befindet, verwenden Sie den load Befehl configuration mode:

Um eine Konfiguration aus dem Terminal zu laden, verwenden Sie die folgende Version des load Befehls configuration mode. Drücken Sie Strg-d, um die Eingabe zu beenden.

Um eine gesamte Konfiguration zu ersetzen, geben Sie die override Option auf einer beliebigen Ebene der Hierarchie an. Bei einem load override Vorgang wird die aktuelle Kandidatenkonfiguration vollständig durch die Datei ersetzt, die Sie laden. Wenn Sie also eine vollständige Konfiguration gespeichert haben, verwenden Sie diese Option.

Bei einem override Vorgang wird die aktuelle Kandidatenkonfiguration verworfen und die Konfiguration oder filename die Konfiguration, die Sie im Terminal eingeben, geladen. Wenn Sie die override Option verwenden und die Konfiguration bestätigen, analysieren alle Systemprozesse die Konfiguration erneut.

Um Teile einer Konfiguration zu ersetzen, geben Sie die replace Option an. Der load replace Vorgang sucht nach replace: Tags, die Sie der geladenen Datei hinzugefügt haben. Der Vorgang ersetzt dann diese Teile der Kandidatenkonfiguration durch das, was nach dem Tag angegeben wird. Dies ist nützlich, wenn Sie mehr Kontrolle darüber haben möchten, was genau geändert wird. Damit dieser Vorgang funktioniert, müssen Sie Tags in die Datei oder Konfiguration aufnehmen replace: , die Sie im Terminal eingeben. Die Software sucht nach den replace: Tags, löscht ggf. die vorhandenen gleichnamigen Anweisungen und ersetzt sie durch die eingehende Konfiguration. Wenn keine gleichnamige Anweisung vorhanden ist, fügt der replace Vorgang der Konfiguration die mit dem replace: Tag markierten Anweisungen hinzu.

Wenn Sie in einem override Oder-Vorgang merge eine Datei angeben oder Text eingeben, der Tags enthält replace: , werden die replace: Tags ignoriert. In diesem Szenario hat der override Vorgang "oder" merge Vorrang und wird ausgeführt.

Wenn Sie einen replace Vorgang ausführen und die von Ihnen angegebene Datei keine Tags enthält replace: , wird der replace Vorgang als Vorgang merge ausgeführt. Der replace Vorgang wird auch als Vorgang merge ausgeführt, wenn der eingegebene Text keine Tags enthält replace: . Diese Informationen können nützlich sein, wenn Sie automatisierte Skripts ausführen und nicht im Voraus wissen können, ob die Skripts einen replace Vorgang oder einen merge Vorgang ausführen müssen. Die Skripts können den replace Vorgang verwenden, um beide Fälle abzudecken.

Bei load merge diesem Vorgang wird die Konfiguration aus der gespeicherten Datei oder dem Terminal mit der vorhandenen Kandidatenkonfiguration zusammengeführt. Diese Informationen sind nützlich, wenn Sie neue Konfigurationsabschnitte hinzufügen. Angenommen, Sie fügen der [edit protocols] Hierarchieebene eine BGP-Konfiguration hinzu, für die es zuvor keine BGP-Konfiguration gab. Sie können den load merge Vorgang verwenden, um die eingehende Konfiguration mit der vorhandenen Kandidatenkonfiguration zu kombinieren. Wenn die vorhandene Konfiguration und die eingehende Konfiguration widersprüchliche Anweisungen enthalten, überschreiben die Anweisungen in der eingehenden Konfiguration die Anweisungen in der vorhandenen Konfiguration.

Um nur die Teile der Konfiguration zu ersetzen, die sich geändert haben, geben Sie die update Option auf einer beliebigen Ebene der Hierarchie an. Der load update Vorgang vergleicht die Kandidatenkonfiguration und die neuen Konfigurationsdaten. Dieser Vorgang ändert nur die Teile der Kandidatenkonfiguration, die sich von der neuen Konfiguration unterscheiden. Sie würden diesen Vorgang z. B. verwenden, wenn eine BGP-Konfiguration vorhanden ist und die Datei, die Sie laden, diese in irgendeiner Weise ändert.

Die mergeOptionen , overrideund update unterstützen das Laden von Konfigurationsdaten im JSON-Format (JavaScript Object Notation). Wenn Sie Konfigurationsdaten laden, die das JSON-Format verwenden, müssen Sie die json Option im Befehl angeben. Informationen zum Laden von JSON-Konfigurationsdaten, die ungeordnete Listeneinträge enthalten, d. h. Listeneinträge, bei denen der Listenschlüssel nicht unbedingt das erste Element im Listeneintrag ist, finden Sie unter Laden von JSON-Konfigurationsdaten mit ungeordneten Listeneinträgen.

Um einen Teil der Konfiguration mit einer Patch-Datei zu ändern, geben Sie die patch Option an. Der load patch Vorgang lädt eine Datei oder Terminaleingabe, die Konfigurationsänderungen enthält. Zuerst geben Sie auf einem Gerät, auf dem die Konfigurationsänderungen bereits vorgenommen wurden, den show | compare Befehl ein, um die Unterschiede zwischen zwei Konfigurationen auszugeben. Dann können Sie die Unterschiede auf ein anderes Gerät laden. Der Vorteil des load patch Befehls besteht darin, dass Sie keine Snippets aus verschiedenen Hierarchieebenen in eine Textdatei kopieren müssen, bevor Sie sie auf das Zielgerät laden. Dies kann eine nützliche Zeitersparnis sein, wenn Sie mehrere Geräte mit denselben Optionen konfigurieren. Angenommen, Sie konfigurieren eine Routing-Richtlinie auf Router1 und möchten die Richtlinienkonfiguration auf Router2, Router3 und Router4 replizieren. Sie können die load patch Operation verwenden.

In diesem Beispiel führen Sie zuerst den show | compare Befehl aus.

Beispiel:

In Fortsetzung dieses Beispiels kopieren Sie die Ausgabe des show | compare Befehls in die Zwischenablage und stellen sicher, dass die Hierarchieebenen enthalten sind. Auf router2, router3 und router4 geben Sie die Ausgabe ein load patch terminal und fügen sie ein. Drücken Sie dann die Eingabetaste und dann Strg-d, um den Vorgang zu beenden. Wenn die Patch-Eingabe unterschiedliche Werte für eine vorhandene Anweisung angibt, überschreibt die Patch-Eingabe die vorhandene Anweisung.

Wenn Sie die mergeOption , replace, setoder update verwenden möchten, ohne die vollständige Hierarchieebene anzugeben, geben Sie die relative Option an. Mit dieser Option wird die eingehende Konfiguration relativ zu Ihrem aktuellen Bearbeitungspunkt in der Konfigurationshierarchie geladen.

Beispiel:

Um eine Konfiguration zu laden, die Konfigurationsmodusbefehle enthält set , geben Sie die set Option an. Diese Option führt die Konfigurationsanweisungen Zeile für Zeile aus, wie sie in einer Datei oder von einem Terminal aus gespeichert sind. Die Anweisungen können beliebige Konfigurationsmodusbefehle enthalten, z. B set. , edit, exitund top.

Um eine Konfigurationsdatei von einem anderen Netzwerksystem auf den lokalen Router zu kopieren, können Sie die SSH- und Telnet-Dienstprogramme verwenden, wie im CLI-Explorerbeschrieben.

HINWEIS:

Wenn Sie in einer Common Criteria-Umgebung arbeiten, werden Systemprotokollmeldungen immer dann erstellt, wenn ein secret Attribut geändert wird (z. B. Kennwortänderungen oder Änderungen am gemeinsamen geheimen RADIUS-Schlüssel). Diese Änderungen werden während der folgenden Konfigurationsladevorgänge protokolliert:

Funktionsweise der Zeichenkodierung auf Geräten von Juniper Networks

Die Konfigurationsdaten des Junos OS und die Ausgabe von Betriebsbefehlen können Nicht-ASCII-Zeichen enthalten, die außerhalb des 7-Bit-ASCII-Zeichensatzes liegen. Bei der Anzeige von Betriebs- oder Konfigurationsdaten in bestimmten Formaten oder innerhalb eines bestimmten Sitzungstyps maskiert und kodiert die Software diese Zeichen. Die Software maskiert oder codiert die Zeichen mit der entsprechenden UTF-8-Dezimalzeichenreferenz.

Die CLI versucht, alle Nicht-ASCII-Zeichen in Konfigurationsdaten anzuzeigen, die im Text-, Set- oder JSON-Format erzeugt werden. Die CLI versucht auch, diese Zeichen in der Befehlsausgabe anzuzeigen, die im Textformat erzeugt wird. In den Ausnahmefällen zeigt die CLI stattdessen den UTF-8-Dezimalzeichenverweis an. (Ausnahmefälle sind Konfigurationsdaten im XML-Format und Befehlsausgabe im XML- oder JSON-Format.) In NETCONF- und Junos-XML-Protokollsitzungen wird ein ähnliches Ergebnis angezeigt, wenn Sie Konfigurationsdaten oder Befehlsausgaben anfordern, die Nicht-ASCII-Zeichen enthalten. In diesem Fall gibt der Server den entsprechenden UTF-8-Dezimalzeichenverweis für diese Zeichen für alle Formate zurück.

Angenommen, das folgende Benutzerkonto, das den lateinischen Kleinbuchstaben n mit einer Tilde (ñ) enthält, ist auf dem Gerät konfiguriert.

Wenn Sie die resultierende Konfiguration im Textformat anzeigen, gibt die CLI das entsprechende Zeichen aus.

Wenn Sie die resultierende Konfiguration im XML-Format in der CLI anzeigen, wird das Zeichen ñ der entsprechenden UTF-8-Dezimalzeichenreferenz ñzugeordnet. Das gleiche Ergebnis tritt auf, wenn Sie die Konfiguration in einem beliebigen Format in einer NETCONF- oder Junos XML-Protokollsitzung anzeigen.

Wenn Sie Konfigurationsdaten auf ein Gerät laden, können Sie Nicht-ASCII-Zeichen mit den entsprechenden UTF-8-Dezimalzeichenreferenzen laden.

Informationen zum Angeben von Anweisungen und Bezeichnern

Dieses Thema enthält Details zu CLI-Containeranweisungen und Leaf-Anweisungen, damit Sie wissen, wie Sie diese beim Erstellen von ASCII-Konfigurationsdateien angeben müssen. In diesem Thema wird auch beschrieben, wie die CLI eine Typüberprüfung durchführt, um zu überprüfen, ob die eingegebenen Daten das richtige Format haben.

Angeben von Anweisungen

Anweisungen werden auf zwei Arten angezeigt, entweder mit geschweiften Klammern ({ }) oder ohne:

  • Anweisungsname und -bezeichner, wobei eine oder mehrere Anweisungen auf niedrigerer Ebene in geschweifte Klammern eingeschlossen sind:

  • Anweisungsname, Bezeichner und ein einzelner Bezeichner:

Das statement-name ist der Name der Anweisung. Das identifier-name ist ein Name oder eine andere Zeichenfolge, die eine Instanz einer Anweisung eindeutig identifiziert. Sie verwenden einen Bezeichner, wenn eine Anweisung mehr als einmal in einer Konfiguration angegeben werden kann.

Wenn Sie eine Anweisung angeben, müssen Sie je nach Anweisungshierarchie einen Anweisungsnamen, einen Bezeichnernamen oder beides angeben.

Sie geben Bezeichner auf eine der folgenden Arten an:

  • identifier-name– Das identifier-name ist ein Schlüsselwort, das zur eindeutigen Identifizierung einer Anweisung verwendet wird, wenn eine Anweisung mehr als einmal in einer Anweisung angegeben werden kann.

  • identifier-name value– Das identifier-name ist ein Schlüsselwort und das value ist eine erforderliche Optionsvariable.

  • identifier-name [value1 value2 value3 ...]—Das identifier-name ist ein Schlüsselwort, das mehrere Werte akzeptiert. Die eckigen Klammern sind erforderlich, wenn Sie eine Gruppe von Werten angeben. Sie sind jedoch optional, wenn Sie nur einen Wert angeben.

Die folgenden Beispiele veranschaulichen, wie Anweisungen und Bezeichner in der Konfiguration angegeben werden:

Wenn Sie eine ASCII-Konfigurationsdatei erstellen, geben Sie Anweisungen und Bezeichner an. Jede Anweisung hat einen bevorzugten Stil, und die CLI verwendet diesen Stil, wenn die Konfiguration als Reaktion auf einen Konfigurationsmodusbefehl show angezeigt wird. Sie können Anweisungen und Bezeichner auf eine der folgenden Arten angeben:

  • Anweisung gefolgt von Bezeichnern:

  • Anweisung gefolgt von Bezeichnern in geschweiften Klammern:

  • Bei einigen sich wiederholenden Bezeichnern können Sie einen Satz geschweifter Klammern für alle Anweisungen verwenden:

Durchführen der CLI-Typüberprüfung

Wenn Sie Bezeichner und Werte angeben, führt die CLI eine Typüberprüfung durch, um sicherzustellen, dass die eingegebenen Daten das richtige Format aufweisen. Für eine Anweisung, in der Sie beispielsweise eine IP-Adresse angeben müssen, erfordert die CLI, dass Sie eine Adresse in einem gültigen Format eingeben. Andernfalls gibt eine Fehlermeldung an, was Sie eingeben müssen. listet die Datentypen auf, die von der CLI überprüft werden. Im Folgenden finden Sie Eingabetypen für die CLI-Konfiguration:

Tabelle 1: Eingabetypen für die CLI-Konfiguration

Datentyp

Format

Beispiele

Name der physischen Schnittstelle (wird in der [edit interfaces] Hierarchie] verwendet)

type-fpc/pic/port

Correct: et-0/0/1

Incorrect: et-0

Vollständiger Schnittstellenname

type-fpc/pic/port<:channel>.logical

Correct: et-0/0/1.0

Incorrect: et-0/0/1

Vollständiger oder abgekürzter Schnittstellenname (wird an anderen Stellen als der [edit interfaces] hierarchy verwendet)

type-<fpc</pic/port>><<: channel>.logical>

Correct: et, et-1, et-1/2/3:4.5

IP-Adresse

0xhex-bytesoctet<. octet<.octet. <octet>>>

Correct: 1.2.3.4, 0x01020304, 128.8.1, 128.8

Sample translations:

1.2.3 wird 1.2.3.00x01020304 wird 1.2.3.40x010203 wird 0.1.2.3

IP-Adresse (Zielpräfix) und Präfixlänge

0xhex-bytes</length>octet<octet <octet.<octet>>></length>

Correct: 10/8, 128.8/16, 1.2.3.4/32, 1.2.3.4

Sample translations:

1.2.3 wird 1.2.3.0/320x01020304 wird 1.2.3.4/320x010203 wird 0.1.2.3/32default wird 0.0.0.0/0

Adresse der Internationalen Organisation für Normung (ISO)

hex-nibble<hex-nibble ...>

Correct: 47.1234.2345.3456.00, 47123423453456.00, 47.12.34.23.45.34.56.00

Sample translations:

47123456 wird 47.1234.5647.12.34.56 wird 47.1234.564712.3456 wird 47.1234.56

OSPF-Bereichskennung (ID)

0xhex-bytesoctet<.octet<.octet.< octet >>> decimal-number

Correct: 54, 0.0.0.54, 0x01020304, 1.2.3.4

Sample translations:

54 wird 0.0.0.54

257 wird 0.0.1.1128.8 wird 128.8.0.00x010203 wird 0.1.2.3

Informationen zum Laden einer Konfiguration aus einer Datei

In den folgenden Beispielen wird das Laden einer Konfiguration aus einer Datei veranschaulicht.

Abbildung 1: Überschreiben der aktuellen KonfigurationÜberschreiben der aktuellen Konfiguration
Abbildung 2: Verwenden der Option "Ersetzen"Verwenden der Option "Ersetzen"
Abbildung 3: Verwenden der Merge-OptionVerwenden der Merge-Option
Abbildung 4: Verwenden einer Patch-DateiVerwenden einer Patch-Datei
Abbildung 5: Verwenden der set-OptionVerwenden der set-Option

Hochladen einer Konfigurationsdatei

Sie können eine Konfigurationsdatei auf Ihrem lokalen System erstellen, die Datei auf das Gerät kopieren und die Datei dann in die CLI laden. Nachdem Sie die Konfigurationsdatei geladen haben, können Sie sie bestätigen, um die Konfiguration auf dem Gerät zu aktivieren. Sie können die Konfiguration auch interaktiv über die CLI bearbeiten und zu einem späteren Zeitpunkt bestätigen.

So laden Sie eine Konfigurationsdatei von Ihrem lokalen System hoch:

  1. Erstellen Sie die Konfigurationsdatei mit einem Texteditor wie Notepad, und stellen Sie sicher, dass die Syntax der Konfigurationsdatei korrekt ist.
  2. Fügen Sie in der Konfigurationstextdatei eine oder mehrere der folgenden Optionen ein, um die erforderliche Aktion beim Laden der Datei auszuführen.
    Tabelle 2: Optionen für den load-Befehl
    Optionen Beschreibung

    merge

    Kombiniert die aktuell aktive Konfiguration entweder mit der Konfiguration im Dateinamen, den Sie angeben, oder mit der Konfiguration, die Sie im Terminalfenster eingeben. Ein merge Vorgang ist nützlich, wenn Sie einer vorhandenen Konfiguration einen neuen Abschnitt hinzufügen. Wenn die aktive Konfiguration und die eingehende Konfiguration widersprüchliche Anweisungen enthalten, überschreiben die Anweisungen in der eingehenden Konfiguration die Anweisungen in der aktiven Konfiguration.

    override

    Verwirft die aktuelle Kandidatenkonfiguration. Lädt entweder die Konfiguration in dem Dateinamen, den Sie angeben, oder die Konfiguration, die Sie am Terminal eingeben. Wenn Sie die override Option verwenden und die Konfiguration bestätigen, analysieren alle Systemprozesse die Konfiguration erneut. Sie können die override Option auf jeder Ebene der Hierarchie verwenden.

    replace

    Sucht nach den replace Tags, löscht ggf. die vorhandenen Anweisungen mit demselben Namen und ersetzt die vorhandenen Anweisungen durch die eingehende Konfiguration. Wenn keine gleichnamige Anweisung vorhanden ist, fügt der replace Vorgang die mit dem replace Tag markierten Anweisungen der aktiven Konfiguration hinzu.

    HINWEIS:

    Damit dieser Vorgang funktioniert, müssen Sie Tags in die Textdatei oder in die Konfiguration aufnehmen replace , die Sie am Terminal eingeben.

  3. Drücken Sie Strg+a, um den gesamten Text in der Konfigurationsdatei auszuwählen.
  4. Drücken Sie Strg+c, um den Inhalt der Konfigurationstextdatei in die Zwischenablage zu kopieren.
  5. Melden Sie sich mit Ihrem Benutzernamen und Passwort am Gerät an.
  6. Wechseln Sie in den Konfigurationsmodus: user@host> configure

    [Bearbeiten] user@host#

  7. Laden Sie die Konfigurationsdatei: [Bearbeiten] user@host# load merge terminal
  8. Fügen Sie am Cursor den Inhalt der Zwischenablage mit der Maus und dem Symbol Einfügen ein: [Bearbeiten] user@host# load merge terminal [Geben Sie ^D in einer neuen Zeile ein, um die Eingabe zu beenden] >Der Cursor ist hier. Fügen Sie hier den Inhalt der Zwischenablage ein<
  9. Drücken Sie die Eingabetaste.
  10. Drücken Sie Strg+d, um die Dateiende-Markierung festzulegen.

Um die Ergebnisse der Konfigurationsschritte anzuzeigen, bevor Sie die Konfiguration bestätigen, geben Sie den show Befehl an der Benutzeraufforderung ein.

Um diese Änderungen in die aktive Konfiguration zu übernehmen, geben Sie den commit Befehl an der Benutzeraufforderung ein. Sie können die Konfiguration auch interaktiv über die CLI bearbeiten und zu einem späteren Zeitpunkt bestätigen.

Laden von JSON-Konfigurationsdaten mit ungeordneten Listeneinträgen

Das Junos-Schema definiert bestimmte Konfigurationsobjekte als Listen. In JSON-Konfigurationsdaten wird eine Listeninstanz als Name/Array-Paar codiert, und die Arrayelemente sind JSON-Objekte. Im Allgemeinen ist die Reihenfolge der Elemente in einem JSON-codierten Listeneintrag willkürlich, da JSON-Objekte grundsätzlich ungeordnete Sammlungen von Elementen sind. Das Junos-Schema erfordert jedoch, dass Listenschlüssel vor allen anderen gleichgeordneten Schlüsseln in einem Listeneintrag stehen und in der vom Schema angegebenen Reihenfolge angezeigt werden.

Das Objekt auf der [edit system login] Hierarchieebene ist z. B. eine Liste, userwobei name der Listenschlüssel ist, der jeden Benutzer eindeutig identifiziert.

In den folgenden Beispielkonfigurationsdaten ist der Listenschlüssel (name) das erste Element für jeden Benutzer. Wenn Sie JSON-Konfigurationsdaten laden, erfordern Junos-Geräte standardmäßig, dass die Listenschlüssel allen anderen gleichgeordneten Schlüsseln innerhalb eines Listeneintrags vorangestellt sind und in der durch das Schema angegebenen Reihenfolge angezeigt werden.

Junos-Geräte bieten zwei Optionen zum Laden von JSON-Konfigurationsdaten, die ungeordnete Listeneinträge enthalten, d. h. Listeneinträge, bei denen der Listenschlüssel nicht unbedingt das erste Element ist.

  • Verwenden Sie den request system convert-json-configuration Befehl operational mode, um JSON-Konfigurationsdaten mit geordneten Listeneinträgen zu erzeugen, bevor Sie die Daten auf das Gerät laden.

  • Konfigurieren Sie die reorder-list-keys Anweisung auf Hierarchieebene [edit system configuration input format json] . Nachdem Sie die Anweisung konfiguriert haben, können Sie JSON-Konfigurationsdaten mit ungeordneten Listeneinträgen laden, und das Gerät ordnet die Listenschlüssel neu an, wie es das Junos-Schema während des Ladevorgangs erfordert.

HINWEIS:

Wenn Sie die reorder-list-keys Anweisung konfigurieren, kann das Analysieren der Konfiguration durch den Ladevorgang erheblich länger dauern, abhängig von der Größe der Konfiguration und der Anzahl der Listen. Für große Konfigurationen oder Konfigurationen mit vielen Listen empfehlen wir daher, den request system convert-json-configuration Befehl anstelle der reorder-list-keys Anweisung zu verwenden.

Angenommen, die user-data.json Datei enthält die folgende JSON-Konfiguration. Wenn Sie versuchten, die Konfiguration zu laden, gab das Gerät einen Ladefehler aus, da admin2 der Listenschlüssel name nicht das erste Element in diesem Listeneintrag ist.

Wenn Sie den request system convert-json-configuration Befehl mit der vorherigen Datei als Eingabe verwenden, generiert der Befehl die angegebene Ausgabedatei mit JSON-Konfigurationsdaten, die das Junos-Gerät während des Ladevorgangs analysieren kann.

Alternativ können Sie die reorder-list-keys Konfigurationsanweisung konfigurieren.

Nachdem Sie die Anweisung konfiguriert haben, können Sie die ursprüngliche JSON-Konfigurationsdatei mit ungeordneten Listeneinträgen laden, und das Gerät verarbeitet die Listeneinträge, wenn es die Konfiguration analysiert.