Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

設定ファイルの読み込み

デバイス上の設定ファイルの読み込みは、ネットワーク内の多くのデバイスに共通する設定ファイルの部分を読み込むのに役立ちます。

ファイルやターミナルから設定を読み込む場合の例

ジュニパー・ネットワークス・デバイスの設定データを含むファイルを作成し、そのファイルをローカル・デバイスにコピーすれば、そのファイルを CLI に読み込むことができます。ファイルを読み込んだ後、それをコミットしてデバイス上で設定を有効にするか、CLIを使用して設定を対話的に編集し、後にその設定をコミットすることができます。

また、ターミナルで入力しながらコンフィギュレーションを作成し、そのコンフィギュレーションを読み込むことも可能です。ターミナルからコンフィギュレーションを読み込むと、コンフィギュレーションの既存の部分を切り取って、別の場所に貼り付ける場合に便利です。

デバイスに配置されている既存のコンフィギュレーション・ファイルを読み込むには、コンフィギュレーloadション・モード・コマンドを使用します:

ターミナルからコンフィグレーションを読み込むには、次のバージョンのコンフィギュloadレーション・モード・コマンドを使用します。Ctrl-dを押すと入力が終了します。

コンフィギュレーション全体を置き換えるには、任意の階層でoverrideオプションを指定します。load overrideという操作は、現在の候補コンフィギュレーションを読み込んでいるファイルに完全に置き換えます。したがって、完全なコンフィギュレーションを保存した場合は、このオプションを使用します。

overrideというオペレーションは、現在の候補コンフィギュレーションを破棄し、そのコンフィギュレーションfilename または端末で入力したコンフィギュレーションを読み込みます。この overrideというオプションを使用して設定をコミットすると、すべてのシステム・プロセスが設定を再解析します。

コンフィギュレーションの一部を置き換えるには、replaceというオプションを指定します。このload replaceという操作は、読み込んだファイルに追加したreplace:というタグを探します。そして、この操作は、タグの後に指定されたもので、候補となるコンフィギュレーションのこれらの部分を置き換えます。これは、変更される内容をより正確に制御したい場合に有効です。この操作を行うには、端末で入力するファイルや設定にreplace:というタグを含める必要があります。ソフトウェアは、というタreplace:グを検索します。同じ名前の既存のステートメントがあれば削除し、受信した設定と置き換えます。同じ名前のステートメントが存在しない場合、このreplaceという操作は、replace:というタグでマークされたステートメントをコンフィギュレーションに追加します。

overrideまたはのmerge操作で、タreplace:グを含むファイルやタイプテキストを指定した場合、タreplace:グは無視されます。このシナリオの場合、overrideまたはmergeの操作が優先され、実行されます。

replaceという操作を行う場合、merge指定したファイルにタreplace:グがない場合は、replace操作として実行されます。また、入力したテキストにreplace:というタグがない場合は、replaceという操作もmergeという操作として実行されます。この情報は、自動化されたスクリプトを実行していて、スクリプトがmergeという操作あるいはreplaceという操作のどちらを実行する必要があるかを事前に知ることができない場合に便利かもしれません。スクリプトはどちらの場合にも対応できるようなreplaceという操作を行うことができます。

このload mergeという操作は、保存されたファイルまたは端末のコンフィギュレーションを既存の候補コンフィギュレーションにマージするものです。この情報は、新しいコンフィギュレーション・セクションを追加する場合に便利です。例えば、これまでBGPのコンフィギュレーションがなかった階[edit protocols]層レベルにBGPのコンフィギュレーションを追加する場合を考えてみましょう。このload mergeという操作を利用して、受信したコンフィギュレーションを既存の候補コンフィギュレーションと結合することができます。既存のコンフィギュレーションと受信コンフィギュレーションに矛盾するステートメントがある場合、受信コンフィギュレーションのステートメントが既存のコンフィギュレーションのステートメントを上書きします。

コンフィギュレーションの変更があった部分のみを置き換えるには、任意の階層でupdateオプションを指定します。このというload update操作は、候補コンフィギュレーションと新しいコンフィギュレーションのデータを比較します。この操作は、候補となるコンフィギュレーションのうち、新しいコンフィギュレーションと異なる部分のみを変更します。この操作は、例えば、既存のBGPのコンフィギュレーションがあり、読み込むファイルが何らかの形でそれを変更する場合に使用されます。

overrideupdate、およびmergeというオプションは、JavaScript Object Notation (JSON) 形式のコンフィギュレーション・データの読み込みに対応しています。JSON形式を使用してコンフィギュレーション・データを読み込む場合、コマンドでjsonというオプションを指定する必要があります。順序指定されていないリストエントリ、つまり、リストキーが必ずしもリストエントリの最初の要素ではない場合のリストエントリが含まれるJSON設定データを読み込むには、順序指定されていないリストエントリでJSON設定データを読み込むを参照してください。

パッチ・ファイルでコンフィギュレーションの一部を変更する場合は、patchというオプションを指定します。このload patchという操作は、コンフィギュレーションの変更を含むファイルまたは端末入力を読み込みます。まず、すでにコンフィギュレーションが変更されているデバイスにおいて、2つのコンフィギュレーションの差分を出力するというコマshow | compareンドを入力します。そして、その差分を別のデバイスで読み込むことができます。このload patchというコマンドの利点は、ターゲット・デバイスに読み込む前に、異なる階層レベルのスニペットをテキスト・ファイルにコピーする手間を省くことができる点です。これは、複数のデバイスを同じオプションで設定する場合に、時間を節約するのに有効かもしれません。例えば、ルータ1でルーティング・ポリシーを設定し、ルータ2、ルータ3、およびルータ4にポリシーのコンフィギュレーションを複製する場合を考えます。load patchという操作が可能です。

この例では、まず、show | compareというコマンドを実行します。

例:

この例に引き続き、show | compareコマンドの出力をクリップボードにコピーし、階層レベルを含むことを確認します。ルータ2、ルータ3、およびルータ4では、load patch terminalを入力し、出力を貼り付けます。その後、Enterキーを押し、Ctrl-dキーを押して操作を終了します。パッチ入力で既存のステートメントと異なる値が指定された場合、パッチ入力は既存のステートメントを上書きします。

完全な階層レベルを指定せず、replacesetupdate、またはmergeというオプションを使用する場合は、relativeというオプションを指定します。このオプションは、コンフィギュレーション階層内の現在の編集ポイントから相対的に受信したコンフィギュレーションを読み込みます。

例:

setというコンフィギュレーション・モード・コマンドを含むコンフィギュレーションを読み込むには、setというオプションを指定します。このオプションは、ファイルまたはターミナルから保存されたコンフィギュレーション・インストラクションを一行ずつ実行します。インストラクションには、 seteditexit、およびtopといった任意のコンフィギュレーション・モード・コマンドを含めることができます。

他のネットワーク・システムからローカル・ルータにコンフィギュレーション・ファイルをコピーするには、CLI Explorerで説明されているように、SSHとTelnetユーティリティを使用できます。

注:

Common Criteria環境で作業している場合、という属secret性が変更されるたびに(例えば、パスワードの変更やRADIUS共有シークレットの変更など)システム・ログ・メッセージが作成されます。これらの変更は、以下のコンフィギュレーションの読み込み操作時においてログに記録されます:

ジュニパーネットワークスのデバイスでの文字エンコードの仕組み

Junos OSの設定データや運用コマンドの出力には、7 ビットの ASCII 文字セットの範囲外である非 ASCII 文字が含まれている場合があります。操作データや設定データを特定の形式で表示する場合や、特定のセッション内で表示する場合、ソフトウェアはこれらの文字をエスケープおよびエンコードします。このソフトウェアは、同等の UTF-8 10 進文字参照を使用して、文字をエスケープまたはエンコードします。

CLI は、テキスト、セット、または JSON 形式で作成された設定データ内の非 ASCII 文字を表示しようとします。また、CLI は、テキスト形式で作成されるコマンド出力に、これらの文字を表示しようとします。例外的なケースでは、CLI は代わりに UTF-8 10 進文字参照を表示します。(例外として、XML 形式の設定データおよび XML または JSON 形式のコマンド出力があります)NETCONF および Junos XML プロトコルのセッションで、非 ASCII 文字を含む設定データやコマンド出力を要求すると、同様の結果になります。この場合、サーバーはすべての形式について、それらの文字に相当する UTF-8 10 進文字参照を返します。

例えば、ラテン語の小文字「n」にチルダ(ñ)を加えた以下のようなユーザーアカウントがデバイスに設定されているとします。

結果の設定をテキスト形式で表示すると、CLI は対応する文字を印刷します。

ñ結果の設定を CLI で XML 形式で表示すると、ñ 文字は同等の UTF-8 10進文字参照にマッピングされます。NETCONF や Junos XML プロトコルのセッションで、任意の形式で設定を表示しても同じ結果になります。

設定データをデバイスにロードする際に、同等の UTF-8 10 進文字参照を使って、非 ASCII 文字をロードすることができます。

ステートメントと識別子の指定について

このトピックでは、CLIのコンテナー・ステートメントとリーフ・ステートメントについて詳しく説明し、ASCIIコンフィギュレーション・ファイルを作成する際にどのように指定しなければならないかを説明します。このトピックでは、入力したデータが正しい形式であることを確認するために、CLIがどのようにタイプ・チェックを行うかについても説明します。

ステートメントの指定

ステートメントは、中括弧({ })で囲むか、囲まないかの2通りの方法で表示されます:

  • ステートメント名と識別子、および中括弧で囲まれた1つまたは複数の下位レベルのステートメント:

  • ステートメント名、識別子、および単一の識別子:

statement-nameはステートメントの名前です。identifier-nameは、ステートメントのインスタンスを一意に識別するための名前またはその他の文字列です。識別子は、コンフィギュレーションで複数回指定できるステートメントに使用します。

ステートメントを指定する場合、ステートメント階層によって、ステートメント名、識別子名、またはその両方を指定する必要があります。

識別子を指定する方法は、次のいずれかです:

  • identifier-nameidentifier-nameはステートメント内でステートメントを複数回指定できる場合にステートメントを一意に識別するために使用されるキーワードです。

  • identifier-name valueidentifier-nameはキーワードであり、valueは必須オプション変数です。

  • identifier-name [value1 value2 value3 ...]identifier-nameは複数の値を受け入れるキーワードです。括弧は、一連の値を指定する場合には必要です;しかしながら、1つの値のみを指定する場合には省略可能となります。

次の例は、コンフィギュレーションでステートメントと識別子がどのように指定されるかを示しています:

ASCIIのコンフィギュレーション・ファイルを作成する際には、ステートメントと識別子を指定します。各ステートメントには優先されたスタイルがあり、CLIはコンフィギュレーション・モードというコマshowンドに応答してコンフィギュレーションを表示する際に、そのスタイルを使用します。ステートメントと識別子の指定方法は、次のいずれかです:

  • ステートメントに続いて、識別子が表示されます:

  • ステートメントの後に中括弧で囲まれた識別子が続きます:

  • 繰り返しのある識別子の場合、すべてのステートメントに一組の中括弧を使用することができます:

CLIタイプ・チェックの実行

識別子と値を指定すると、CLIは入力されたデータが正しい形式であることを確認するために、タイプ・チェックを行います。例えば、IPアドレスを指定する必要があるステートメントでは、CLIは有効なフォーマットにおいてアドレスを入力することを要求します。そうでない場合は、エラー・メッセージで何を入力する必要があるかが示されます。CLIがチェックするデータ・タイプを一覧にします。CLIのコンフィギュレーション入力のタイプを以下に示します:

表 1: CLIコンフィギュレーション入力タイプ

データ・タイプ

フォーマット

物理インターフェイス名([edit interfaces]階層で使用)

type-fpc/pic/port

Correct: et-0/0/1

Incorrect: et-0

フル・インターフェース名

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

Correct: et-0/0/1.0

Incorrect: et-0/0/1

完全または短縮されたインターフェース名([edit interfaces]階層以外の場所で使用)

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

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

IPアドレス

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

Correct: 1.2.3.40x01020304128.8.1128.8

Sample translations:

1.2.3becomes 1.2.3.00x01020304becomes 1.2.3.40x010203becomes 0.1.2.3

IPアドレス(宛先プレフィックス)およびプレフィックス長

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.3becomes 1.2.3.0/320x01020304becomes 1.2.3.4/320x010203becomes 0.1.2.3/32defaultbecomes 0.0.0.0/0

国際標準化機構(ISO)のアドレス

hex-nibble<hex-nibble ...>

Correct: 47.1234.2345.3456.00, 47123423453456.00, 47.12.34.23.45.34.56.00

Sample translations:

47123456becomes 47.1234.5647.12.34.56becomes 47.1234.564712.3456becomes 47.1234.56

OSPFエリア識別子(ID)

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

Correct: 54, 0.0.0.54, 0x01020304, 1.2.3.4

Sample translations:

54becomes 0.0.0.54

257becomes 0.0.1.1128.8becomes 128.8.0.00x010203becomes 0.1.2.3

ファイルからのコンフィグレーションの読み込みについて

次の例は、ファイルから設定を読み込むプロセスを示しています。

図 1: 現在のコンフィギュレーションの上書き現在のコンフィギュレーションの上書き
図 2: 置換オプションの使用置換オプションの使用
図 3: マージ オプションの使用マージ オプションの使用
図 4: パッチ ファイルの使用パッチ ファイルの使用
図 5: セット オプションの使用セット オプションの使用

コンフィギュレーション・ファイルのアップロード

ローカル・システムでコンフィギュレーション・ファイルを作成し、そのファイルをデバイスにコピーしてから、CLIに読み込ませることができます。コンフィギュレーション・ファイルの読み込みが完了したら、コミットしてデバイス上でコンフィギュレーションを有効にすることができます。また、CLIを使用して対話的にコンフィギュレーションを編集し、後でコミットすることも可能です。

ローカル・システムからコンフィギュレーション・ファイルをアップロードするには:

  1. メモ帳などのテキスト・エディタを活用し、コンフィギュレーション・ファイルの構文が正しいことを確認しながら作成します。
  2. コンフィギュレーション・テキスト・ファイルには、ファイルを読み込む際に必要な動作を行うために、以下のオプションを1つ以上含めてください。
    表 2: ロード・コマンドのオプション
    オプション 説明

    merge

    現在のアクティブなコンフィギュレーションに対し、指定したファイル名のコンフィギュレーション、またはターミナル・ウィンドウに入力したコンフィギュレーションのどちらかを結合します。既存のコンフィギュレーションに新しいセクションを追加する場合、mergeというオペレーションが有効です。アクティブ・コンフィギュレーションと受信コンフィギュレーションに矛盾するステートメントがある場合、受信コンフィギュレーションのステートメントがアクティブ・コンフィギュレーションのステートメントを上書きします。

    override

    現在の候補コンフィギュレーションを破棄します。指定したファイル名のコンフィギュレーション、またはターミナルで入力したコンフィギュレーションのいずれかを読み込みます。この overrideというオプションを使用して設定をコミットすると、すべてのシステム・プロセスが設定を再解析します。このoverrideというオプションは、どのレベルの階層でも使用することができます。

    replace

    replaceというタグを検索し、同じ名前の既存のステートメントがあれば削除します。そして、既存のステートメントが入力されたコンフィギュレーションに置き換えます。同じ名前のステートメントが存在しない場合、このreplaceという操作はreplaceというタグでマークされたステートメントをアクティブなコンフィギュレーションに追加します。

    注:

    この操作を行うには、テキストファイルまたは端末で入力するコンフィギュレーションにreplaceというタグを含める必要があります。

  3. Ctrl+aでコンフィギュレーション・ファイル内の全テキストを選択します。
  4. Ctrl+cを押して、コンフィギュレーション・テキスト・ファイルの内容をクリップボードにコピーします。
  5. ユーザー名とパスワードを使って、デバイスにログインします。
  6. 設定モードにします。user@host> configure

    [編集] ユーザ@ホスト#

  7. コンフィギュレーション・ファイルの読み込み:[編集]ユーザー@ホスト#load merge terminal
  8. カーソル位置で、マウスと貼り付けアイコンを使用して、クリップボードの内容を貼り付けます:[編集]ユーザー@ホスト# load merge terminal[改行で^Dを入力して入力を終了] >カーソルはここです。クリップボードの内容をここに貼り付けます<
  9. Enterキーを押します。
  10. Ctrl+dでファイル終了マーカーを設定します。

コンフィギュレーションをコミットする前に、コンフィギュレーション・ステップの結果を表示するには、ユーザー・プロンプトでshowというコマンドを入力します。

これらの変更をアクティブなコンフィギュレーションにコミットするには、ユーザー・プロンプトでcommitというコマンドを入力します。また、CLIを使用して対話的にコンフィギュレーションを編集し、後でコミットすることも可能です。

順序指定されていないリストエントリでJSON設定データを読み込む

Junosスキーマはリストとして特定の構成オブジェクトを定義します。JSON設定データでは、リストインスタンスは、名前および配列ペアとしてエンコードされ、配列要素はJSONオブジェクトです。通常、JSONエンコードリストエントリーのメンバーの順序は任意です。これはJSONオブジェクトが基本的に順序指定のないメンバーの集合体だからです。しかし、Junosスキーマでは、リストキーがリストエントリ内で他の兄弟の前にあり、スキーマで指定されている順序で表示される必要があります。

例えば、[edit system login]階層レベルのuserオブジェクトは、nameが各ユーザーを一意に識別するリストキーであるリストです。

次のサンプル設定データでは、リストキー(name)は各ユーザーの最初の要素です。デフォルトでは、JSON設定データを読み込む際、Junosデバイスはリストキーがリストエントリー内で他の兄弟の前にあり、スキーマで指定された順序で表示される必要があります。

Junosデバイスでは、順序指定のないリストエントリ、つまりリストキーが必ずしも最初の要素でないリストエントリーを含む、JSON設定データを読み込むのに2つのオプションを提供しています。

  • request system convert-json-configuration操作モードコマンドを使用し、デバイスにデータを読み込む前に、順序指定リストエントリーでJSON設定データを生成します。

  • [edit system configuration input format json]階層レベルでreorder-list-keysのステートメントを設定します。ステートメントを設定後、順序指定のないリストエントリでJSON設定データを読み込むことができます。デバイスは読み込み操作中にJunosスキーマで要求されるようにリストキーの順序指定を再度行います。

注:

reorder-list-keysステートメントを設定する際、設定サイズおよびリストの数によって読み込み操作が設定を解析するのにかなり多くの時間がかかる場合があります。このように、大きな設定や多くのリストのある設定を行う場合には、reorder-list-keysステートメントではなく、request system convert-json-configurationコマンドを使用することを推奨します。

例えば、user-data.jsonファイルが次のJSON設定を含んでいると考えてください。設定を読み込もうとすると、リストキーnameがそのリストエントリの最初の要素ではないため、デバイスはadmin2の読み込みエラーを生成します。

入力に前のファイルでrequest system convert-json-configurationコマンドを使用する場合、コマンドはJunosデバイスが読み込み操作中に解析可能なJSON設定データで指定された出力ファイルを生成します。

あるいは、reorder-list-keys構成ステートメントを設定することもできます。

ステートメントを設定後、順序指定のないリストエントリで元のJSON設定ファイルを読み込むことが可能です。この場合、設定を解析する際にデバイスがリストエントリを処理します。