このページで
デバイスの設定を変更
CLI により、既存のJunos OS設定を変更することができます。このセクションでは、ステートメントの追加、ステートメントの削除、ステートメントのコピー、新しい識別子の挿入の詳細について、例を挙げながら説明します。
現在のコンフィグレーションを編集しているユーザーを表示する
現在コンフィグレーションを編集しているユーザを表示するには、status
コンフィグレーション モード コマンドを使用します。
user@host# status
Users currently editing the configuration:
rchen terminal p0 (pid 55691) on since 2018-03-01 13:17:25 PST
[edit interfaces]
システムは、誰が設定を編集しているか(rchen
)、ユーザーがどこにログインしているか(terminal p0
)、ユーザーがログインした日付と時間(2018-03-01 13:17:25
PST
)、ユーザーがどの階層を編集しているか([edit interfaces]
)などを表示します。
status
設定モードコマンドを発行し、ユーザーが将来の時刻にアクティブになる候補設定をスケジュールしている場合、システムはコミットをスケジュールした人(root
)、ユーザーがログインしている場所(terminal d0
)、ユーザーがログインした日付と時刻(2018-10-31 14:55:15 PST
)、およびコミットが(commit at).
を保留していることを表示します。
[edit]
user@host# status
Users currently editing the configuration:
root terminal d0 (pid 767) on since 2018-10-31 14:55:15 PST, idle 00:03:09
commit at
status
コンフィギュレーション モード コマンドを発行したとき、ユーザーがコンフィギュレーション独占モードでコンフィグレーションの編集を行っている場合、システムは、誰がコンフィギュレーションを編集しているか(root
)、ユーザーがログインしている場所(terminal d0
)、ユーザーがログインした日付と時間(2018-11-01 13:05:11 PST
)、およびユーザーがコンフィギュレーション独占モード(exclusive [edit]
)でコンフィギュレーションを編集していることを表示します。
[edit]
user@host# status
Users currently editing the configuration:
root terminal d0 (pid 2088) on since 2018-11-01 13:05:11 PST
exclusive [edit]
関連項目
ジュニパーネットワークスの機器設定を変更する方法
ジュニパーネットワークスのデバイスを設定したり、既存の設定を変更したりするには、edit
およびset
コマンドを使用して、設定にステートメントを追加します。各ステートメント階層に対して、最上位レベルのステートメントで始まる階層を作成します。その後、徐々に下の階層に移動するステートメントで、階層を作り続けます。
階層を変更するには、2つの設定モードコマンドを使用します。目的に応じて適切なコマンドを選択してください。
edit
—指定された階層レベルに移動します。その階層レベルが存在しない場合は、edit
コマンドで作成されます。そのedit
コマンドの構文は次のとおりです:edit <statement-path>
set
—設定ステートメントを作成し、識別子の値を設定します。そのset
コマンドを発行した後は、階層内の同じレベルに留まります。そのset
コマンドの構文は次のとおりです:set <statement-path> statement <identifier>
設定ステートメントへの階層とステートメント自体は、です
statement-path
。すでにステートメントの階層レベルに移動している場合は、ステートメントパスを省略することができます。設定ステートメント自体は、statement
です。この文字identifier
列は、ステートメントのインスタンスを識別します。
ステートメントには、コンテナーステートメントまたはリーフステートメントのいずれかが可能です。コンテナステートメントには、その内部に、追加のコンテナステートメントやリーフステートメントを含めることができます。しかし、リーフステートメントは単独で成立します。コマンドはコンテナステートメントをedit?
表示しますが、はコンテナステートメントとリーフステートメントの両方をset?
表示し、を使って区別>
しています。
edit
コマンドを使用して、識別子の値を変更することはできません。そのset
コマンドを使用する必要があります。
関連項目
コンフィギュレーション・ステートメントと識別子を追加する方法
ジュニパー・ネットワーク・デバイスのすべてのプロパティは、コンフィギュレーションにステートメントを含めるように設定します。ステートメントは、固定テキストであるキーワードで構成されています。また、ステートメント中に識別子を含めることも可能です。識別子とは、インターフェイス名やユーザー名など、自分で定義した識別名で、これによって自分やCLIがステートメントの集合体を識別することができます。
例えば、次のリストは、コンフィギュレーション・モードのトップ・レベルで利用可能なステートメントを示します:
user@host# set ?
Possible completions:
> accounting-options Accounting data configuration
+ apply-groups Groups from which to inherit configuration data
> chassis Chassis configuration
> class-of-service Class-of-service configuration
> firewall Define a firewall configuration
> forwarding-options Configure options to control packet sampling
> groups Configuration groups
> interfaces Interface configuration
> policy-options Routing policy option configuration
> protocols Routing protocol configuration
> routing-instances Routing instance configuration
> routing-options Protocol-independent routing option configuration
> snmp Simple Network Management Protocol
> system System parameters
ステートメント名の前にある山括弧( >
)は、それがコンテナ・ステートメントであることを示すとともに、その下のレベルの他のステートメントを定義できることを示しています。ステートメント名の前に山括弧( >
)がない場合、そのステートメントはリーフ・ステートメントであり、その下の階層レベルの他のステートメントを定義することはできません。
ステートメント名の前にあるプラス記号(+)は、ステートメントが一連の値を含むことができることを示します。セットを指定する場合は、値を括弧で囲んでください。たとえば、以下のように表示されます。
[edit]
user@host# set policy-options community my-as1-transit members [65535:10 65535:11]
一部のステートメントでは、識別子を含めることができます。インターフェース名など一部の識別子については、正確なフォーマットで指定する必要があります。例えば、インターフェース名so-0/0/0は、Flexible PIC Concentrator(FPC)上のスロット0、最初のPICの位置、物理インターフェースカード(PIC)の最初のポートにあるSONET/SDHインターフェースを指します。
インターフェースの説明テキスト、ポリシーとファイアウォール用語の名前など、その他の識別子については、特殊文字、スペース、およびタブを含む任意の名前を指定できます。
識別子を引用符(ダブル・クォート)で囲む必要があります。また、識別子や、スペース、タブ文字、あるいは以下のいずれかの文字を含む文字列は、引用符で囲む必要があります:
( ) [ ] { } ! @ # $ % ^ & | ' = ?
オプションが必要なステートメントに対してオプションを入力しない場合、必要な情報の種類を示すメッセージが表示されます。この例では、コマンドを完了するためにエリア番号を入力する必要があります。
[edit]
user@host# set protocols ospf area
^
syntax error, expecting <identifier>
関連項目
デバイス・コンフィギュレーションからステートメントを削除する方法
コンフィギュレーション・モード・コマンドを使用して、デバイス・コンフィギdelete
ュレーションからステートメントまたは識別子を削除します。ステートメントや識別子を削除すると、そのステートメントや識別子に関連する機能が「アンコンフィギュレーション」され、その機能はデフォルトの状態に戻されます。
user@host# delete <statement-path> <identifier>
ステートメントを削除すると、そのステートメントとその下位のステートメントおよび識別子がすべてコンフィギュレーションから削除されます。
複数の識別子を持つことができるステートメントでは、1つの識別子を削除すると、その識別子だけが除かれます。ステートメント中の他の識別子はそのままです。
現在の階層レベルから始まる階層全体を削除する場合は、ステートメントや識別子を指定せずにdelete
というコマンドを使用します。ステートメントや識別子を省略すると、削除の確認画面が表示されます:
[edit]
user@host# delete
Delete everything under this level? [yes, no] (no)
Possible completions:
no Don't delete everything under this level
yes Delete everything under this level
Delete everything under this level? [yes, no] (no)
1つのdelete
というコマンドで、階層内の複数のステートメントや識別子を削除することはできません。複数のdelete
というコマンドを使用して、各ステートメントまたは識別子を個別に削除する必要があります。例えば、次のような[edit system]
という階層レベルのコンフィギュレーションを考えてみましょう。
system { host-name host-211; domain-name domain-122; backup-router 192.168.71.254; arp; authentication-order [ radius password tacplus ]; }
domain-name
、host-name
、およびbackup-router
をコンフィギュレーションから削除するには、各ステートメントを個別に削除する必要があります。
user@hostdelete system host-name host-211
user@hostdelete system domain-name domain-122
user@hostdelete system backup-router 192.168.71.254
1つのdelete
というコマンドを発行することはできません。例えば、以下のようなコマンドでは動作しません。
user@host> delete system hostname host-211 domain-name domain-122 backup-router 192.168.71.254
チャネル化されたインタフェースやスタティック・ルートなど、関連するコンフィギュレーションの項目を1つのコマンドと正規表現で同時に削除することができます。ステートメントや識別子を削除すると、そのステートメントや識別子に関連する機能が「アンコンフィギュレーション」され、その機能はデフォルトの状態に戻されます。
インターフェースなど、通常複数の項目を配置するコンフィギュレーションの特定の部分のみを削除することができますただし、この例のように、異なる項目の「グループ」を削除することはできません:
user@host#show system services
ftp; rlogin; rsh; ssh { root-login allow; } telnet; [edit] user@host#wildcard delete system services *
syntax error.
ステートメントを削除すると、そのステートメントとその下位のステートメントおよび識別子がすべてコンフィギュレーションから削除されます。
関連する設定項目を削除するには,というコンフィギュwildcard
レーション・モード・コマンドにというdelete
オプションを付けて発行し,次のようにステートメント・パス,正規表現でまとめる項目,および正規表現を指定します:
user@host# wildcard delete <statement-path> <identifier> <regular-expression>
wildcard
というコマンドを使用して関連するコンフィギュレーション項目を削除する場合、正規表現は最後のステートメントにする必要があります。
Junos OSが8つ以上の関連項目にマッチした場合、CLIは最初の8つの項目のみを表示します。
コンフィギュレーションからインターフェイスを削除する方法
この構文を使用すると、t1-0/0/0:0
からt1-0/0/0:23
の範囲で複数のT1インタフェースを削除できます:
user@host# wildcard delete interfaces t1-0/0/0:.*
matched: t1-0/0/0:0
matched: t1-0/0/0:1
matched: t1-0/0/0:2
Delete 3 objects? [yes,no] (no) no
コンフィギュレーションからルートを削除する方法
この構文を使用することで、172.0.0.0
から172.255.0.0
までの範囲のスタティック・ルートを削除することができます:
user@host# wildcard delete routing-options static route 172.*
matched: 172.16.0.0/12
matched: 172.16.14.0/24
matched: 172.16.100.0/24
matched: 172.16.128.0/19
matched: 172.16.160.0/24
matched: 172.17.12.0/23
matched: 172.17.24.0/23
matched: 172.17.28.0/23
...
Delete 13 objects? [yes,no] (no)
例:機器構成からステートメントを削除する
次の例では、 ステートメントを削除して、ルーターで OSPF を効果的にアンコンフィグレーospf
ションする方法を示しています。
[edit] user@host#set protocols ospf area 0.0.0.0 interface so-0/0/0 hello-interval 5
[edit] user@host#show
protocols { ospf { area 0.0.0.0 { interface so-0/0/0 { hello-interval 5; } } } } [edit] user@host#delete protocols ospf
[edit] user@host#show
[edit] user@host#
現在のレベルから下のすべてのステートメントを削除します。
[edit] user@host#edit protocols ospf area 0.0.0.0
[edit protocols ospf area 0.0.0.0] user@host#set interface so-0/0/0 hello-interval 5
[edit protocols ospf area 0.0.0.0] user@host#delete
Delete everything under this level? [yes, no]yes
[edit protocols ospf area 0.0.0.0] user@host#show
[edit] user@host#
特定のプロパティをアンコンフィグレーションします。この例では、インターフェース速度の設定を削除します。
[edit] user@host#set interfaces so-3/0/0 speed 100mb
[edit] user@host#show
interfaces { so-3/0/0 { speed 100mb; } } [edit] user@host#delete interfaces so-3/0/0 speed
[edit] user@host#show
interfaces { so-3/0/0; }
コンフィギュレーション内のステートメントをコピーする
機器構成上、類似したステートメントが多数ある場合、1 つのステートメントを追加し、そのステートメントのコピーを作成することができます。ステートメントをコピーすると、そのステートメントと、そのステートメントの下に設定されたステートメントの階層全体が複製されます。ステートメントをコピーすることは、同じタイプの多くの物理的または論理的インターフェイスを設定する場合に便利です。
コンフィギュレーション内の既存のステートメントのコピーを作成する場合。
- コンフィグレーションモード
copy
コマンドを使用します。user@host#
copy existing-statement to new-statement
- コンフィギュレーションの一部をコピーした直後に、新しいコンフィギュレーションの有効性を確認します。
- コンフィギュレーションが無効な場合は、コピーした部分と元の部分のどちらかを修正して、有効なコンフィギュレーションを作成します。
例:コンフィギュレーション内のステートメントをコピーする
この例では、既存の VC をコピーしてインターフェース上に1つの仮想接続(VC)を作成する方法を示しています。
要件
この例を設定する前に、デバイス初期化以外の特別な設定を行う必要はありません。
この例を始める前に、以下の初期設定を行ってください。
[edit interfaces]
user@host# show
at-1/0/0 {
description "PAIX to MAE West"
encapsulation atm-pvc;
unit 61 {
point-to-point;
vci 0.61;
family inet {
address 10.0.1.1/24;
}
}
}
この例の初期設定を素早く行うには、以下のコマンドをコピーしてテキストファイルに貼り付け、改行を削除し、ネットワーク構成に合わせて必要な内容を変更した後、このコマンドを[edit]
階層レベルの CLI にコピー&ペーストし、コンフィグレーションモードでcommit
を入力します。
set interfaces at-1/0/0 description "PAIX to MAE West" set interfaces at-1/0/0 encapsulation atm-pvc set interfaces at-1/0/0 unit 61 point-to-point set interfaces at-1/0/0 unit 61 vci 0.61 set interfaces at-1/0/0 unit 61 family inet address 10.0.1.1/24
概要
この例では、ステートメントをコピーする方法を説明するために、すでに設定されている仮想接続と非常によく似た仮想接続を追加しています。
設定
CLIクイック構成
[edit interfaces at-1/0/0]
の階層レベルから始める。
copy unit 61 to unit 62
set unit 62 vci 0.62
edit unit 62
replace pattern 10.0.1.1 with 10.0.2.1
コピーで構成する
ステップバイステップでの手順
コンフィギュレーションをコピーして構成する場合。
[edit interfaces at-1/0/0]
の階層レベルに移動し、ユニット 61 をコピーする。[edit interfaces at-1/0/0] user@host#
copy unit 61 to unit 62
-
新しいコンフィギュレーションを見て、コンフィギュレーションを有効にするために変更する必要があるものを確認します。
user@host#
show interfaces at-1/0/0
description "PAIX to MAE West" encapsulation atm-pvc; unit 61 { point-to-point; vci 0.61; family inet { address 10.0.1.1/24; } } unit 62 { point-to-point; vci 0.61; family inet { address 10.0.1.1/24; } } 有効な設定に変更する。
この例では、仮想回路識別子(VCI)と仮想パス識別子(VPI)を再設定したいと思います。
[edit interfaces at-1/0/0] user@host#
set unit 62 vci 0.62
また、新しいインターフェースの IP アドレスは、それ自身の IP アドレスに置き換えたいと思います。
[edit interfaces at-1/0/0] user@host#
edit unit 62
user@host#replace pattern 10.0.1.1 with 10.0.2.1
結果
[edit] show interfaces at-1/0/0 { description "PAIX to MAE West" encapsulation atm-pvc; unit 61 { point-to-point; vci 0.61; family inet { address 10.0.1.1/24; } } unit 62 { point-to-point; vci 0.62; family inet { address 10.0.2.1/24; } } }
例:設定の置換
デバイスの設定に変更を加える必要がある場合、delete
コマンドを使用して元の構成設定を削除し、set
コマンドを使用して新しい構成設定を追加できます。しかし、より効率的で使いやすい設定の変更方法は他にも存在します。
この例では、以下の設定モードコマンドを使用して既存の設定を更新する方法を示しています。
rename
—インターフェイス名などの既存の構成設定の名前を変更します。このコマンドは、デバイスに新しいインターフェイスを追加する場合に便利です。copy
—構成設定と、その設定の下で構成されたステートメントの階層全体をコピーします。設定ステートメントのコピーは、同じタイプの物理または論理インターフェイスを設定する場合に便利です。replace
—設定のテキストパターンのグローバル変更を行います。例えば、デバイス上のすべてのインターフェイスの説明ステートメントに共通の単語のスペルミスがある場合、単一のコマンドでこれを修正できます。
要件
この例を設定する前に、デバイス初期化以外の特別な設定を行う必要はありません。
概要
このトピックの最初の例では、以下の設定を変更します。
入力エラーを含む説明付きの新しいインターフェイスを作成します。
作成したインターフェイスから設定をコピーして、新しいインターフェイスを作成します。
作成したインターフェイスの1つの名前を変更します。
作成したインターフェイスの説明の入力エラーを修正します。
2番目のより短い例では、わずかに異なる状況で同じコマンドをいくつか試しています。
設定
コピー、名前変更、および置換コマンドを使用したループバックインターフェイス設定の変更
ステップバイステップでの手順
既存の設定がこの例で使用されたループバックインターフェイスユニット番号のいずれかを使用している場合、異なる未使用のループバックインターフェイスユニット番号を代わりに使用する必要があります。そうしないと、以下のステップの実行によってデバイスの既存の運用ステータスが損なわれる可能性があります。
copy
、rename
、およびreplace
コマンドを使用してループバックインターフェイスの設定を作成および変更するには:
-
新しいループバックインターフェイスユニット番号を作成し、説明を含めます。
説明におけるループバックのミススペルは意図的です。
[edit] user@host#
set interfaces lo0 unit 100 description "this is a lopbck interface"
-
先ほど追加したループバックインターフェイスの設定を表示します。
[edit] user@host#
show interfaces lo0 unit 100
description "this is a lopbck interface";
-
ユニット100からユニット101に作成したループバックインターフェイス(エラー)を複製します。
[edit] user@host#
copy interfaces lo0 unit 100 to unit 101
-
ループバックインターフェイスlo0ユニット100およびlo0ユニット101の設定を表示します。
[edit] user@host#
show interfaces lo0 unit 100
description "this is a lopbck interface";
[edit] user@host#show interfaces lo0 unit 101
description "this is a lopbck interface";
copy
コマンドは、description
などの子ステートメントを含むインターフェイスを複製します。 -
ループバックインターフェイスlo0ユニット100の名前をループバックインターフェイスlo0ユニット102に変更します。
[edit] user@host#
rename interfaces lo0 unit 100 to unit 102
-
ループバックインターフェイスlo0ユニット100の設定を表示します。
[edit] user@host#
show interfaces lo0 unit 100
[edit] user@host#このコマンドの結果は表示されないはずです。ループバックインターフェイスlo0ユニット100がなくなりました。
rename
コマンドは、指定された設定ステートメントを新しい設定に置き換えます。 -
ループバックインターフェイスlo0ユニット101および102の説明中のloopbackという単語のミススペルを修正します。
[edit] user@host#
replace pattern lopbck with loopback
-
ループバックインターフェイスlo0ユニット101およびlo0 102の設定を表示し、loopbackという単語のスペルが正しくなっていることを確認します。
[edit] user@host#
show interfaces lo0 unit 101
description "this is a loopback interface";
[edit] user@host#show interfaces lo0 unit 102
description "this is a loopback interface";
replace
コマンドは、何かしらの制限がない限り、コマンドで指定されたパターンのすべてのインスタンスを置き換えます。このトピックの次の例は、replace
コマンドの効果を制限する方法の1つです。 -
設定モードでは、
rollback
コマンドを使用して、デバイス設定を以前のステップを実行する前の状態に戻すことができます。[edit] user@host#
rollback
結果
show interfaces lo0 unit 101
設定モードでは、およびコマshow interfaces lo0 unit 102
ンドを使用して、デバイスの設定がこの例のステップを実行する前の状態になっていることを確認します。
[edit]
user@host: show interfaces lo0 unit 101
[edit]
user@host#
このコマンドの結果は表示されないはずです。
[edit] user@host# show interfaces lo0 unit 102 [edit] user@host#
このコマンドの結果は表示されないはずです。
トップレベル設定階層レベルのコピーコマンドの比較
ステップバイステップでの手順
前の例は、[edit interfaces interface-name unit logical-interface-number]
階層レベルでcopy
、rename
、およびreplace
コマンドを示しています。この例では、CLI設定モード階層のトップレベルでこれらのコマンドの一部がどのように機能するかを示しています。
次の例では、設定階層のいくつかのレベルに移動する必要があります。CLI のナビゲーションについては、コンフィグレーション・モードでの CLI エディタの使用を参照してください。
-
イーサネットインターフェイスを作成します。
[edit] user@host#
set interfaces et-2/0/0 unit 0 family inet address 192.0.2.2
-
作成したインターフェイスを別のインターフェイスにコピーします。
[edit] user@host#
copy interfaces et-2/0/0 to et-2/1/0
このコマ
copy
ンドを前の例のものと比較します。コマcopy
ンドは、コピーされる値のunit
前にあるキーワードを取得します。[edit] user@host#
copy interfaces lo0 unit 100 to unit 101
キーワード
interfaces
は、前置詞の後にto
、コピーされる値の前に繰り返されないことに注意してください。これは、copy
コマンドで一部のトップレベルステートメントで発生します。ヒント:同様に、コマ
rename
ンドでは、いくつかのトップレベルステートメントの新しい識別子の前にステートメントのキーワード部分を繰り返しません。 -
今までの設定を表示します。
[edit] user@host#
show interfaces
et-2/0/0 { unit 0 { family inet { address 192.0.2.2/32; } } } et-2/1/0 { unit 0 { family inet { address 192.0.2.2/32; } } } -
et-2/1/0のアドレスを別のIPアドレスに置き換えます。
[edit interfaces et-2/1/0 unit 0 family inet] user@host#
replace pattern 192.0.2.2 with 192.0.2.40
すべての発生ではなく、パターンの特定の発生のみを変更する場合、コマ
replace
ンドを使用する前に、特定の階層レベルに移動する必要があります。 -
インターフェイスを再表示します。
[edit] user@host#
show interfaces
et-2/0/0 { unit 0 { family inet { address 192.0.2.2/32; } } } et-2/1/0 { unit 0 { family inet { address 192.0.2.40/32; } } } -
設定モードでは、コマ
rollback
ンドを使用して、デバイス設定を前のステップを実行する以前の状態に戻すことができます。[edit] user@host#
rollback
結果
show interfaces et-2/0/0
設定モードでは、およびコマshow interfaces et-2/1/0
ンドを使用して、デバイスの設定がこの例のステップを実行する前の状態になっていることを確認します。
[edit]
user@hostshow interfaces et-2/0/0
[edit]
user@host#
このコマンドの結果は表示されないはずです。
[edit]
user@R1# show interfaces et-2/1/0
[edit]
user@host#
このコマンドの結果は表示されないはずです。
機器構成に新しい識別子を挿入する
Juniper Networks のデバイスを設定する場合、ほとんどのステートメントと識別子を任意の順序で入力することができます。設定文を入力する順序に関係なく、CLI は常に厳密な順序で設定を表示します。しかし、いくつかのケースでは、設定ステートメントが順番に分析されるシーケンスを作成するため、ステートメントの順序が重要になります。
例えば、ルーティング ポリシーやファイア ウォール フィルターでは、順次分析される用語を定義する。また、ダイナミック MPLS で名前付きパスを作成する場合、パス内のトランジット ルーターの順序リストを、最初のトランジット ルーターから始まり、最後のトランジット ルーターで終わるように定義します。
ステートメントの順序が重要である設定の一部を変更するには、insert
コンフィグレーション モード コマンドを使用します。
user@host#insert <statement-path> identifier1 (before | after) identifier2
insert
コマンドを使用せず、識別子を設定した場合、その識別子は類似した識別子のリストの最後に配置されます。
例:機器構成に新しい識別子を挿入する
この例では、コマinsert
ンドの使用を示しています。
set
コマンドを使用して追加された用語は、既存の用語リストの最後に配置されますが、insert
コマンドを使用して指定した順序で用語を追加します。ステートメントの順序を指定することは、設定ステートメントが順番に分析されるシーケンスを作成するため、順序に関するケースでは重要です。
この例で示すように、insert
コマンドで使用する前に、用語を作成する(または既に作成されている)必要があります。用語を配置する際の参照ポイントも必要です。例えば、用語T1を用語T2の前に配置するには、T1とT2の両方が既に存在し、データが登録されている必要があります。空の用語が自動的にJunos OS削除されます。
要件
用語を挿入する前に、初期ポリシーを設定する必要があります。この例の初期ポリシーを迅速に設定するには、以下のコマンドをコピーしてテキストファイルに貼り付け、改行を削除してネットワーク構成に合わせて必要な詳細を変更し、コマンドを階[edit policy-options]
層レベルでCLIにコピー&ペーストして、設定モードcommit
からを入力します。
set policy-statement statics term term1 from route-filter 192.168.0.0/16 orlonger set policy-statement statics term term1 from route-filter 224.0.0.0/3 orlonger set policy-statement statics term term1 then reject set policy-statement statics term term2 from protocol direct set policy-statement statics term term2 then reject set policy-statement statics term term3 from protocol static set policy-statement statics term term3 then reject set policy-statement statics term term4 then accept
次に、階層が正しく設定されていることを確認します。
[edit policy-options]
user@host# show
policy-statement statics {
term term1 {
from {
route-filter 192.168.0.0/16 orlonger;
route-filter 224.0.0.0/3 orlonger;
}
then reject;
}
term term2 {
from protocol direct;
then reject;
}
term term3 {
from protocol static;
then reject;
}
term term4 {
then accept;
}
}
概要
ステートメントの順序が重要である設定の一部を変更するには、insert
設定モードコマンドを使用する必要があります。代わりにコマset
ンドを使用すると、追加ステートメントまたは識別子は順次間違った位置に表示されるようになります。コマンドの用語を正しい順序で取得する唯一の方法は、設定を解除し、最初からやり直すことです。
設定
CLIクイック構成
この例を迅速に設定するには、以下のコマンドをコピーしてテキストファイルに貼り付け、改行を削除し、ネットワーク設定に一致させる必要がある詳細情報を変更し、コマンドを[edit policy-options]階層レベルでCLIにコピー&ペーストし、設定モードcommit
にを入力してください。
[edit] user@host#rename policy-options policy-statement statics term term4 to term term6
[edit] user@host#set policy-options policy-statement statics term term4 from protocol local
[edit] user@host#set policy-options policy-statement statics term term4 then reject
[edit] user@host#set policy-options policy-statement statics term term5 from protocol aggregate
[edit] user@host#set policy-options policy-statement statics term term5 then reject
[edit] user@host#insert policy-options policy-statement statics term term4 after term term3
[edit] user@host#insert policy-options policy-statement statics term term5 after term term4
用語を挿入して設定
ステップバイステップでの手順
-
設定条件を実行する必要がある順序を決定します。最初の用語と追加する新しい用語の両方を検討してください。
元の設定では、ポリシーの名前は
statics
で、4語です。最初の3語はそれぞれ異なる一致基準で一致し、結果の一致は拒否されます。最後の用語は、トラフィックの残りすべてを受け入れます。この例では、他のタイプのトラフィックを排除する2つの用語を追加する必要があります。これらの用語は、元の設定の最後の用語よりも前に実行する必要があります。
元の用語4から用語6に名前を変更します。
[edit] user@host#
rename policy-options policy-statement statics term term4 to term term6
このステップでは、用語6に名前が変更された元の最後の用語が保持されます。
新しい用語4を作成します。
[edit] user@host#
set policy-options policy-statement statics term term4 from protocol local
user@host#set policy-options policy-statement statics term term4 then reject
ローカルシステムアドレスからのトラフィックに一致する新しい用語が追加され、それを拒否します。
新しい用語5を作成します。
[edit] user@host#
set policy-options policy-statement statics term term5 from protocol aggregate
user@host#set policy-options policy-statement statics term term5 then reject
集約ルートからのトラフィックに一致する新しい用語が追加され、それを拒否します。
用語3の後に用語4を挿入します。
[edit] user@host#
insert policy-options policy-statement statics term term4 after term term3
用語4の後に用語5を挿入します。
[edit] user@host#
insert policy-options policy-statement statics term term5 after term term4
結果
[edit]
user@host# show policy-options policy-statement statics
term term1 {
from {
route-filter 192.168.0.0/16 orlonger;
route-filter 224.0.0.0/3 orlonger;
}
then reject;
}
term term2 {
from protocol direct;
then reject;
}
term term3 {
from protocol static;
then accept;
}
term term4 {
from protocol local;
then reject;
}
term term5 {
from protocol aggregate;
then reject;
}
term term6 {
then accept;
}
機器構成におけるステートメントと識別子の無効化および再活性化
Junos OSコンフィグレーションでは、ステートメントと識別子を無効にすることで、commit
コマンドを発行したときにそれらが有効にならないようにすることができます。無効化された文や識別子には、inactive
タグが付けられます。これらはコンフィグレーションには残りますが、commit
コマンドを発行しても有効になりません。
ステートメントまたは識別子を無効にするには、deactivate
コンフィグレーション モード コマンドを使用します。
user@host# deactivate( statement | identifier )
ステートメントまたは識別子を再活性化するには、コンフィactivate
グレーション モード コマンドを使用します。
user@host# activate ( statement | identifier )
identifier
どちらのコマンドでも、指定statement
するとは現在の階層レベルにある必要があります。ステートメントを無効化すると、その特定のステートメントは無視され、コマcommit
ンドを発行しても全く適用されません。
ステートメントを無効にするには、コンフィdisable
グレーションモードコマンドを使用します。
コンフィギュレーション階層の一部では、ステートdisable
メントを含めることで機能を無効化することができます。一例として、[edit interface
interface-name]
階層レベルでdisable
ステートメントを含めることで、インターフェイスを無効化することができる。機能を無効にした場合、commit
コマンドを発行すると再活性化されますが、ダウンまたは管理上無効であるかのように扱われます。
例:機器構成におけるステートメントと識別子の無効化および再活性化
この例では、deactivate
とactivate
設定モードコマンドを使用する一般的な使用例を示していますこれには、グレースフルルーティングエンジンスイッチオーバー(GRES)が設定された、プライマリとバックアップのデュアルルーティングエンジンを使用します。両方のルーティングエンジンのソフトウェアは、アップグレードする必要があります。これは、GRES を停止し、ルーティングエンジンを更新した後、GRES を再起動することで簡単に行うことができます。
また、GRES の代わりにノンストップ アクティブ ルーティング(NSR)を設定する以外は、同じ設定を使用して、同様のアップグレードを行うことができます。NSR を停止し、ルーティングエンジンをアップグレードしてから NSR を再起動する必要があります。
要件
この例では、アップグレード可能なデュアルルーティングエンジンを搭載したデバイスを使用する必要があります。
この例を始める前に、GRES が設定されていることを確認します。
概要
この例では、2 つのルーティングエンジンがあります。GRES が設定されていて、ルーティングエンジンのアップグレードが必要です。アップグレードを行うためには、GRES 機能を無効化し、各ルーティングエンジンをアップグレードした後、再度 GRES を有効化する必要があります。
設定
GRES の無効化および再有効化の設定
ステップバイステップでの手順
ルーティングエンジンのアップグレードのために GRES を無効化し、再有効化するには、次の手順に従います:
ルーターで GRES が有効になっていることを示します。
[edit] user@host#
show chassis
redundancy { graceful-switchover; } fpc 2 { pic 0 { tunnel-services { bandwidth 1g; } } }GRES を無効化します。
[edit] user@host#
deactivate chassis redundancy graceful-switchover
user@host#commit
GRES が無効化であることを示します。
[edit] user@host#
show chassis
redundancy { inactive: graceful-switchover; } fpc 2 { pic 0 { tunnel-services { bandwidth 1g; } } }-
ルーティングエンジンを 1 つずつアップグレードしていきます。
デュアルルーティングエンジンの Junos OS をアップグレードする方法については、冗長化ルーティングエンジンを搭載したデバイスへのソフトウェアパッケージのインストールをご覧ください。
GRES を再有効化します。
[edit] user@host#
activate chassis redundancy graceful-switchover
user@host#commit
結果
GRES 機能が再び有効化されていることを確認します。
[edit]
user@host# show chassis
redundancy {
graceful-switchover;
}
fpc 2 {
pic 0 {
tunnel-services {
bandwidth 1g;
}
}
}
機器構成をグローバルに変更する方法
そのreplace
設定モードコマンドを使用して、機器構成内の変数や識別子にグローバルに変更することができます。このコマンドは、設定内のパターンを別のパターンで置き換えます。例えば、PIC がルーター内の別のスロットに移動したときに、このコマンドを使用して、インターフェイス名のすべての出現箇所を検索し、置換することができます。
user@host# replace pattern pattern1 with pattern2 <upto n>
その オpattern
pattern1
プションは、設定で置き換えたい識別子や値を定義するテキスト文字列または正規表現です。
このpattern2
オプションは、の内部にある識別子や値を置換するテキスト文字列または正規表現ですpattern1
。
CLI では、(POSIX 1003.2 に定義されたとおりに)標準的な UNIX スタイルの正規表現構文を使用します。正規表現にスペース、演算子、またはワイルドカード文字が含まれる場合は、表現を引用符で囲みます。最長マッチを行う修飾子(できるだけ一致させる)をサポートします。遅延修飾子(できるだけ一致しないようにする)はサポートされていません。
その オupto
n
プションは、置換されたオブジェクトの数を指定します。そのn
の値は、設定で置き換えられるオブジェクトの総数を制御します(パターンの発生回数の総数ではありません)。同じ階層レベルのオブジェクト(兄弟)が最初に置換されます。特定のオブジェクト内でパターンが複数出現した場合は、単一の置換とみなされます。replace pattern 01 with pattern 02 upto 2
020201
例えば、設定にのテキ010101
スト文字列が含まれている場合、コマンドはを(ではなく020202
)010101
に置換します。010101
から020202
への置換は、3つの別々の置換(n
=3
)ではなく、単一の置き換え(n
= 1
)とみなされます。
そのupto
オプションを指定しない場合は、pattern1
に一致する設定の識別子や値がすべて置換されます。
そのコマreplace
ンドは、どの階層レベルの設定モードでも使用できます。すべての一致は、大文字と小文字を区別します。
replace
コマンドで使用する一般的な正規表現
オペレータ |
機能 |
---|---|
|
パイプの両側にある2つの用語のいずれかに一致する可能性があることを示します。 |
|
式の先頭で使用され、一致を開始させる場所を示します。 |
|
表現の末尾で使用し、 |
|
一致させる文字または数字の範囲を指定します。範囲の開始と終了を区切るには、ハイフン(-)を使用します。 |
|
一致させる語句のグループを指定します。番号付き変数として格納されます。 |
|
0項以上を示します。 |
|
1つ以上の項を示します。 |
|
スペース(" ")以外の任意の文字を示します。 |
|
バックスラッシュは特殊文字をエスケープし、その特殊な意味を抑制します。例えば、 \. は |
|
n番目のグループと一致するバックリファレンス。 |
|
全一致にマッチするバックリファレンス。 |
次の表は交換の一例を示しています。
コマンド |
結果 |
---|---|
|
一致: 結果: |
|
一致: 結果: |
|
一致: 結果: |
|
一致: 結果: |
例:機器構成におけるグローバルな置換を使用する方法— \n 後方参照
この例では、後方参照を使用してパターンを置換する方法を示しています。
要件
この例を設定する前に、デバイスの開始以降の特別な設定は必要ありません。
開始する前に、以下の設定を行います。
[edit]
user@host# show interfaces
xe-0/0/0 {
unit 0;
}
fe-3/0/1 {
vlan-tagging;
unit 0 {
description "inet6 configuration. IP: 2000::c0a8::1bf5";
vlan-id 100;
family inet {
address 17.10.1.1/24;
}
family inet6 {
address 2000::c0a8:1bf5/3;
}
}
}
この初期設定をすばやく設定するには、以下のコマンドをコピーしてテキストファイルに貼り付け、改行を削除し、ネットワーク構成に合わせて必要な詳細を変更した後、[edit]
階層レベルの CLI にコマンドをコピー&ペーストしてください:
set interfaces xe-0/0/0 unit 0
set interfaces fe-3/0/1 vlan-tagging
set interfaces fe-3/0/1 unit 0 description "inet6 configuration IP: 2000::c0a8::1bf5"
set interfaces fe-3/0/1 unit 0 vlan-id 100
set interfaces fe-3/0/1 unit 0 family inet address 17.10.1.1/24
set interfaces fe-3/0/1 unit 0 family inet6 address 2000::c0a8:1bf5/3
概要
正規表現の最も便利な機能の 1 つに、後方参照があります。後方参照は、文字列内で繰り返される文字や部分文字列を特定する便利な方法です。一度パターンを検索すると、再び入力しなくても繰り返すことができます。先に取得したパターンをだけで参照します \#
(は、パターンを一致させる回数を示す数字#
です)。
後方参照を使用して、データを呼び出したり、検索したり、別のものに置換したりできます。このようにして、大規模なデータセットを 1 つの置換コマンドで再フォーマットすることができるので、手動でパターンを探して置換する時間を節約できます。
設定
コマンドの後方参照を使用した置換の設定
ステップバイステップでの手順
そのJunos OS設定のパターンを後方参照を使用して置換するには、次の手順に従います:
その
replace
コマンドを使用します。[edit] user@host#
replace pattern pattern1 with pattern2
この場合、
:1bf5
を1bf5
に置き換えます。[edit] user@host#
replace pattern "(.*):1bf5" with "\11bf5"
後方参照(\1)に注目してください。これは、そのパターンを検索して、一度だけ置換する必要があることを示しています。
結果
その結果、以下のような設定になります。
[edit]
user@host# show interfaces
xe-0/0/0 {
unit 0;
}
fe-3/0/1 {
vlan-tagging;
unit 0 {
description "inet6 configuration. IP: 2000::c0a8:1bf5";
vlan-id 100;
family inet {
address 17.10.1.1/24;
}
family inet6 {
address 2000::c0a8:1bf5/3;
}
}
}
2000::c0a8::1bf5
この例では、パターンを一2000::c0a8:1bf5
旦に置換しています。
例:デバイス設定でのグローバルな置換—インターフェイス名の置換
この例では、replace
というコマンドを使用して、設定でインターフェイス名をグローバルに置換する方法を説明します。
このreplace
コマンドを使った方が、より早く、より良い方法で設定を変更することができます。例えば、PIC をルーター内の別のスロットに移動して、インターフェース名を変更する可能性があります。1 つのコマンドで、設定全体を更新できます。または、他の類似の設定、例えば、同様のインターフェイスで設定を迅速に拡張することができます。
このcopy
とreplace
のコマンドを組み合わせて使用することで、設定を追加した後、新たにコピーした設定の一部を置換できます。このコマreplace
ンドは、正規表現で動作します。正規表現は、迅速で、柔軟性が高く、広く使用されています。まさに検索する必要のあるあらゆるパターンを作り出すことができ、ほとんどのプログラミング言語が正規表現に対応しています。
要件
この例を設定する前に、デバイス初期化以外の特別な設定を行う必要はありません。
開始する前に、ルーターに以下の階層を設定してください。この階層を迅速に設定するには、CLIクイック構成を参照してください。
user@host#show interfaces
so-0/0/0 { dce; } user@host#show protocols
ospf { area 0.0.0.0 { interface so-0/0/0.0 { hello-interval 5; } } }
概要
この例では、replace
というコマンドを使用して、設定でインターフェイス名をグローバルに置換する方法を説明します。簡単な例です。
前回の設定が、今回の設定更新の出発点となります。この例では、1 つのコマンドで設定全体の初期インターフェース名を変更しています。
設定
CLIクイック構成
この例の初期設定を素早く行うには、以下のコマンドをコピーしてテキストファイルに貼り付け、改行を削除し、ネットワーク構成に合わせて必要な内容を変更した後、これらのコマンドを[edit]
階層レベルの CLI にコピー&ペーストし、設定モードからcommit
を入力します。
set interfaces so-0/0/0 dce set protocols ospf area 0.0.0.0 interface so-0/0/0.0 hello-interval 5
インターフェース名変更の設定
ステップバイステップでの手順
インターフェース名を変更するには:
設定モードの階層の最上部にいることを確認します。
user@host#
top
-
so-0/0/0
pattern
キーワードを使用したコマreplace
ンドso-1/1/0
で、をに置き換えます。user@host#
replace pattern so-0/0/0 with so-1/1/0
結果
必要な変更を行った後、show interfaces
およびshow protocols
の設定モードコマンドを使用して、設定を確認します。
[edit] user@host#show interfaces
so-1/1/0 { dce; } user@host#show protocols
ospf { area 0.0.0.0 { interface so-1/1/0.0 { hello-interval 5; } } }
設定が正しいことを確認した後、commit
というコマンドを入力します
例:機器構成におけるグローバル置換- upto オプション
図 1に示すような階層を考える。という文字列は 3 か所に表示010101
される。ge-0/0/0
、ge-0/0/0.0
、fe-0/0/1
の説明欄に記載されています。この 3 つのインスタンスは、3 つのオブジェクトです。upto
次の例は、オプションを使用して、デバイスコンフィギュレーションで置換を実行する方法を示しています。
01
コマreplace
ンドのupto 2
オプションは、2 つのオブジェクトインスタンスについて02
をに変換します。メインインターフェイスge-0/0/0
とfe-0/0/1
の下にあるオブジェクトが最初に置き換えられます(これらは階層レベルで兄弟であるため)。の制upto 2
限により、コマンドreplace
は階層内の1番目と 2 番目のインスタンス(兄弟)のパターンを置き換えますが、3番目のインスタンス(最初のインスタンスの子)は置き換えません。
user@host#show interfaces
ge-0/0/0 { description "mkt 010101"; #First instance in the hierarchy unit 0 { description "mkt 010101"; #Third instance in the hierarchy (child of the first instance) } } fe-0/0/1 { description "mkt 010101"; #second instance in the hierarchy (sibling of the first instance) unit 0 { family inet { address 200.200.20.2/24; } } } [edit] user@host#replace pattern 01 with 02 upto 2
[edit] user@host#commit
commit complete
[edit]
user@host# show interfaces
ge-0/0/0 {
description "mkt 020202"; #First instance in the hierarchy
unit 0 {
description "mkt 010101"; #Third instance in the hierarchy (child of the first
instance)
}
}
fe-0/0/1 {
description "mkt 020202"; #second instance in the hierarchy (sibling of the first
instance)
unit 0 {
family inet {
address 200.200.20.2/24;
}
}
}
デバイス・コンフィギュレーションにコメントを追加
デバイスのコンフィギュレーションには、コンフィギュレーション内の任意のステートメントを記述するためのコメントを含めることができます。CLIで対話的にコメントを追加したり、ASCIIコンフィギュレーション・ファイルを編集してコメントを追加することができます。
インターフェイスを設定する際、[edit interfaces
interface-name
]
という階層層レベルにdescription
というステートメントを含めることで、インターフェイスに関するコメントを追加することができます。あなたが含めたコメントは、show interfaces
コマンドの出力に表示されます。
CLIでコメントを追加
コンフィギュレーション・モードでコメントを追加すると、そのコメントは現在のレベルのステートメントに関連付けられます。各ステートメントには、1行のコメントを関連付けることができます。コメントをステートメントに関連付ける前に、ステートメントが存在する必要があります。コメントは、ステートメントの前の行に配置されます。
コンフィギュレーションにコメントを追加するには、annotate
というコンフィギュレーション・モードのコマンドを使用します。
user@host# annotate statement "comment-string
"
statement
はコメントを付けるコンフィギュレーション・ステートメントで、現在の階層レベルになければなりません。指定されたstatement
というコメントが既に存在する場合は、削除され新しいコメントに置き換えられます。
comment-string
121はコメント本文です。コメント・ステートメントは任意の長さで、1行で入力する必要があります。コメントにスペースが含まれる場合は、引用符で囲む必要があります。コメント文字列中に/* */
あるいは#
というコメント・デリミタを含めることができます。何も指定しない場合、コメント文字列は/* */
コメント・デリミタで囲まれます。
既存のコメントを削除する場合は、空白のコメント文字列を指定します。
user@host# annotate statement ""
annotate
というコマンドでコメントを追加した場合,show configuration modeコマンドまたはshow configuration
というoperational modeコマンドを入力すると,コンフィギュレーション内でコメントを確認できます。
Junos OSは、onelinerを含むコンフィギュレーション階層の最終レベルまでのアノテーションをサポートしています。ただし、onelinerの部分(oneliner内の子ステートメントあるいは識別子)に対するアノテーションはサポートされていません。例えば、以下のコンフィギュレーション階層例では、level 1
親階層まではアノテーションがサポートされていますが、metric
子階層文はサポートされていません:
[edit protocols] isis { interface ge-0/0/0.0 { level 1 metric 10; } } }
ファイルへのコメントの追加
ASCII設定ファイルを編集してコメントを追加するときは、1つ以上の行を追加することができ、関連付けられたステートメントの前に追加する必要があります。ステートメントに続く同じ行やステートメントに続く別の行など、ファイル内の他の場所にコメントを配置した場合、CLIでコンフィギュレーションを開くというload
コマンドを使用する際にコメントが削除されます。
次のコンフィギュレーション例の抜粋は、コンフィギュレーション・ファイルにコメントを配置する方法と配置しない方法を示しています。
/* This comment goes with routing-options */ routing-options { /* This comment goes with routing-options traceoptions */ traceoptions { /* This comment goes with routing-options traceoptions tracefile */ tracefile rpd size 1m files 10; /* This comment goes with routing-options traceoptions traceflag task */ traceflag task; /* This comment goes with routing-options traceoptions traceflag general */ traceflag general; } autonomous-system 10458; /* This comment is dropped */ } routing-options { rib-groups { ifrg { import-rib [ inet.0 inet.2 ]; /* A comment here is dropped */ } dvmrp-rib { import-rib inet.2; export-rib inet.2; /* A comment here is dropped */ } /* A comment here is dropped */ } /* A comment here is dropped */ }
コンフィギュレーション・ファイルに直接コメントを記述する場合、以下の方法でコメントの書式を設定することができます:
コメントを
/*
で始め、*/
で終わらせます。コメント・テキストは1行でも、あるいは複数行にまたがることでも可能です。コメントを
#
で開始し、改行(キャリッジ・リターン)で終了します。
例:CLIを使用してデバイスのコンフィギュレーションにコメントを含めます
デバイスのコンフィギュレーションにコメントを加えることで、コンフィギュレーション・ファイルが読みやすくなり、ユーザーが理解しやすくなります。annotate
ステートメントを使用すれば、設定通りにコメントを入れることができます。この例では、すでに存在するコンフィギュレーションに対してCLIを使用してコメントを追加しています:
要件
この例を設定する前に、デバイス初期化以外の特別な設定を行う必要はありません。
コメントを追加する前に、ルーターで次の階層を設定する必要があります。
この例の初期設定を素早く行うには、以下のコマンドをコピーしてテキスト・ファイルに貼り付け、改行を削除してネットワーク・コンフィギュレーションに合わせて必要な内容を変更し、このコマンドをCLIに[edit]
という階層レベルでコピー&ペーストして、コンフィグレーション・モードからcommit
を入力します。
set protocols ospf area 0.0.0.0 interface so-0/0/0.0 hello-interval 5
ここで、この階層が設定されていることを確認してください。
user@host# show protocols
ospf {
area 0.0.0.0 {
interface so-0/0/0 {
hello-interval 5;
}
}
}
概要
CLIを使用してコメントを追加する場合、コンフィギュレーション・モードでannotate
ステートメントを使用して行います。追加した各コメントは、現在のレベルのステートメントに関連付けられます。各ステートメントには、1行のコメントを関連付けることができます。
annotate
ステートメントを設定するには、コメントを関連付けたいステートメントのレベルへ移動します。コメントを表示するには、コンフィギュレーション階層の最上位に移動して、show
コマンドを使用します。
設定
CLIクイック構成
この例のコメントを素早く設定するには、以下のコマンドをコピーしてテキストファイルに貼り付け、改行を削除してネットワーク・コンフィギュレーションに合わせて必要な詳細を変更し、CLIにコピーして[edit]
という階層レベルから貼り付け、コンフィギュレーション・モードからcommit
を入力します。
edit protocols ospf
annotate area 0.0.0.0 "Backbone area configuration added June 15, 2018"
edit area 0.0.0.0
annotate interface so-0/0/0.0 "Interface from router sj1 to router sj2"
コマンドは、階層の異なるセクションに注釈を付けると、階層を下へ下へと移動することに注意してください
CLI設定モードでのコメントの挿入
ステップバイステップでの手順
この手順は、すでに初期設定を行っていることを前提にしています。
コンフィギュレーションにコメントを追加するには:
コメントを追加する必要がある最初の階層に移動します。
[edit] user@host#
edit protocols ospf
annotate
というステートメントを使用して、area
というコンフィギュレーション・ステートメントにコメントを追加します。[edit protocols ospf] user@host#
annotate area 0.0.0.0 "Backbone area configuration added June 15, 1998"
interface
というコンフィギュレーション・ステートメントにレベルを下げます。[edit protocols ospf] user@host#
edit area 0.0.0.0
-
annotate
というステートメントを使用して、インターフェイスso-0/0/0.0
にコメントを追加します。[edit protocols ospf area 0.0.0.0] user@host#
annotate interface so-0/0/0.0 "Interface from router sj1 to router sj2"
結果
階層の一番上に移動して、show
というコマンドで追加したコメントを確認します。コメントは、関連するステートメントの前に表示されます。
[edit]
user@host# show protocols
ospf {
/* Backbone area configuration added June 15, 2018 */
area 0.0.0.0 {
/* Interface from router sj1 to router sj2 */
interface so-0/0/0.0 {
hello-interval 5;
}
}
}
設定が正しいことを確認した後、commit
というコマンドを入力します
例:ワイルドカード コマンドを Range オプションと共に使用する
デバイスの設定に変更を加える必要がある場合、delete
コマンドを使用して元の構成設定を削除し、set
コマンドを使用して新しい構成設定を追加できます。しかし、より効率的で使いやすい設定の変更方法は他にも存在します。
この例では、activate、非アクティブ化、削除、保護、設定、表示、および保護解除の設定コマンドで、範囲とともにワイルドカード コマンドを使用する方法を示します。
ワイルドカード コマンドでは、構成階層を作成できません。これを使用して、既存のステートメントを変更します。空の階層で非アクティブ化などのパラメーターを設定しようとすると、フォーム warning: statement not found
の CLI エラーが発生することが予想されます。
要件
デバイスで実行されている Junos OS リリース 12.1 以降。
概要
ワイルドカード コマンドの range オプションを使用すると、アクティブ化、非アクティブ化、削除、保護、設定、表示、および保護解除コマンドで範囲を指定できます。範囲を使用して、インターフェイス、論理ユニット、VLAN、およびその他の番号付き要素の範囲を指定できます。ワイルドカード範囲オプションは、入力したコマンドを複数のコマンドに展開し、それぞれが範囲内の 1 つの項目に対応します。
ワイルドカード範囲オプションを使用すると、複数の設定ステートメントを個別に設定するのではなく、1つのsetコマンドで設定できます。例えば、異なるポート番号を持つ24のギガビットイーサネットインターフェイスを設定する場合、24の個別のセットインターフェイスコマンドの代わりに、単一のワイルドカード範囲設定コマンドを使用することができます。
同様に、30個の論理インターフェイスのグループを非アクティブ化するには、各論理インターフェイスを個別に非アクティブ化する代わりに、ワイルドカード範囲のdeactivateコマンドを使用できます。
設定
- rangeステートメントとともにワイルドカードコマンドを様々な設定タスクに使用します。
- 範囲オプションを使用した設定ステートメントの一連の名前付き識別子の設定
- 構文での複数範囲の指定
- 構文での範囲と一意の数値を指定する
- 範囲から一部の値を除外する
- ステップ番号による範囲の指定
- ワイルドカードを使用したポリシーの削除 p1-p10
rangeステートメントとともにワイルドカードコマンドを様々な設定タスクに使用します。
ステップバイステップでの手順
- ワイルドカード範囲は、アクティブ、非アクティブ化、削除、保護、設定、表示、および保護解除の設定コマンドで使用できます。
[edit] user@host#
wildcard range ? Possible completions: activate Remove the inactive tag from a statement annotate Annotate the statement with a comment deactivate Add the inactive tag to a statement delete Delete a data element protect Protect the statement set Set a parameter show Show a parameter unprotect Unprotect the statement
-
wildcard
ステートメントは、完全なコンフィギュレーション階層で修飾できます。設定階層にパークされている場合、ワイルドカード コマンドは、その階層でサポートされているオプションに対する相対パスになります。[edit] user@host#
wildcard range set interfaces ? Possible completions: <interface-name> Interface name + apply-groups Groups from which to inherit configuration data + apply-groups-except Don't inherit configuration data from these groups > interface-range Interface ranges configuration > interface-set Logical interface set configuration lo0 Interface name > stacked-interface-set Stacked interface set configuration > traceoptions Interface trace options xe-0/0/0:0 Interface name xe-0/0/0:1 Interface name
user@host# edit interfaces [edit interfaces]wildcard range set ? Possible completions: <interface-name> Interface name + apply-groups Groups from which to inherit configuration data + apply-groups-except Don't inherit configuration data from these groups > interface-range Interface ranges configuration > interface-set Logical interface set configuration lo0 Interface name > stacked-interface-set Stacked interface set configuration > traceoptions Interface trace options xe-0/0/0:0 Interface name xe-0/0/0:1 Interface name
前者の場合、インターフェイス階層へのフルパスはワイルドカードステートメントで指定されます。2 番目に、ユーザーはインターフェイス階層にパークされます。サポートされるオプションは、どちらの方法でも同じです。
範囲オプションを使用した設定ステートメントの一連の名前付き識別子の設定
ステップバイステップでの手順
ポート番号(0〜23)の異なる同じタイプのインターフェイスシリーズを設定する場合は、ポート番号の範囲を以下の形式で指定します。
-
[edit] user@host# wildcard range set interfaces ge-0/0/[0-23] unit 0 family vpls
-
結果を表示します。範囲ワイルドカードの範囲が24の異なるsetコマンドに拡張され、0〜23の範囲のポート番号を持つインターフェイスを設定できます。この場合、
vpls
プロトコルファミリーを追加するためにインターフェイスが作成されます。インターフェイスがすでに定義されている場合は、 ファミリーのみが追加されます。root@R1# show | compare [edit interfaces] + ge-0/0/0 { + unit 0 { + family vpls; + } + } + ge-0/0/1 { + unit 0 { + family vpls; + } + } + ge-0/0/2 { + unit 0 { + family vpls; + } + } . . . + ge-0/0/23 { + unit 0 { + family vpls; + }
構文での複数範囲の指定
ステップバイステップでの手順
ワイルドカードの範囲コマンドで複数の範囲を指定できます。各範囲はコンマで区切る必要があります。範囲を重複させることもできます。
残りの例では、10個のポリシーステートメントを含む設定の一時コピーを作成します。これらのステートメントを使用することで、階層のヌル部分の属性を操作しようとしたときに報告されるCLIエラーを回避できます。
[edit] user@device# set policy-options policy-statement p1 then reject set policy-options policy-statement p10 then reject set policy-options policy-statement p2 then reject set policy-options policy-statement p3 then reject set policy-options policy-statement p4 then reject set policy-options policy-statement p5 then reject set policy-options policy-statement p6 then reject set policy-options policy-statement p7 then reject set policy-options policy-statement p8 then reject set policy-options policy-statement p9 then reject [edit] user@device# save temp Wrote 254 lines of configuration to 'temp'
- 構文に複数の範囲を指定するには、各範囲の最小値と最大値をコンマで区切って含めます。
[edit] user@host# wildcard range deactivate policy-options policy-statement p[1-3,5-7,6-9]
-
結果を表示します。ワイルドカードの範囲が拡張され、指定された範囲に一致する名前を持つポリシーに
deactivate
ステートメントが追加されます。注目すべきは、候補となるコンフィギュレーションに対する変更のリストに p4 と p10 がないことです。注:指定されたポリシー名が構成にまだ存在しない場合は、エラーが返されます。これは、設定階層の空の部分に deactivate ステートメントを追加できないためです。
[edit] show | compare [edit policy-options] ! inactive: policy-statement p1 { ... } ! inactive: policy-statement p2 { ... } ! inactive: policy-statement p3 { ... } ! inactive: policy-statement p5 { ... } ! inactive: policy-statement p6 { ... } ! inactive: policy-statement p7 { ... } ! inactive: policy-statement p8 { ... } ! inactive: policy-statement p9 { ... }
構文での範囲と一意の数値を指定する
ステップバイステップでの手順
ワイルドカード範囲コマンドの構文で、範囲と一意の番号の組み合わせを指定できます。
-
一時的な設定を再読み込みします。
[edit] user@host# load override temp load complete
- 範囲と一意の番号を指定するには、コンマで区切ります。この例では、10 が一連の範囲に一意の番号として追加されます。
[edit] user@host# wildcard range deactivate policy-options policy-statement p[1-3,5,7,10]
-
結果を表示します。ワイルドカードの範囲が拡張され、指定された範囲に一致する名前を持つポリシーと一意の番号に
deactivate
ステートメントが追加されます。その結果、この例では p10 ポリシーも非アクティブ化されます。注:指定されたポリシー名が構成にまだ存在しない場合は、エラーが返されます。これは、空のコンフィギュレーション階層に deactivate ステートメントを追加できないためです。
[edit] user@host# show | compare [edit policy-options] ! inactive: policy-statement p1 { ... } ! inactive: policy-statement p10 { ... } ! inactive: policy-statement p2 { ... } ! inactive: policy-statement p3 { ... } ! inactive: policy-statement p5 { ... } ! inactive: policy-statement p7 { ... }
範囲から一部の値を除外する
ステップバイステップでの手順
感嘆符を使用して除外する数値または数値の範囲をマークすることにより、範囲から特定の値を除外できます。
-
一時的な設定を再読み込みします。
[edit] user@host# load override temp load complete
- 範囲から特定の値を除外するには、除外する部分を !構文で。
[edit] user@host# wildcard range deactivate policy-options policy-statement p[1-5,!3-4]
-
結果を表示します。ワイルドカードの範囲が拡張され、指定された範囲に一致する名前を持つポリシーに
deactivate
ステートメントが追加されます。ポリシー p3 と p4 は、候補の構成に加えられた変更のリストに含まれていないことに注意してください。ワイルドカードの範囲から除外されています。注:指定されたポリシー名が構成にまだ存在しない場合は、エラーが返されます。これは、空のコンフィギュレーション階層に deactivate ステートメントを追加できないためです。
[edit] user@host# show | compare [edit policy-options] ! inactive: policy-statement p1 { ... } ! inactive: policy-statement p2 { ... } ! inactive: policy-statement p5 { ... }
ステップ番号による範囲の指定
ステップバイステップでの手順
ステップ番号を指定して、範囲内の間隔を一定にすることができます。step 値は、最初の一致をカウントし、指定されたステップ値まで後続の一致をスキップします。
-
一時的な設定を再読み込みします。
[edit] user@host# load override temp load complete
- ステップを指定するには、構文の前にスラッシュ (/) を付けた step 値を含めます。ここでは、1〜10の範囲を指定し、ステップ値2を使用して各一致の間に1つの数値をスキップします。その効果は、奇数(1)の一致から始めるときに、すべての偶数の一致をスキップすることです。
[edit] user@host# wildcard range deactivate policy-options policy-statement p[1-10/2]
-
結果を表示します。ワイルドカードの範囲が拡張され、最初の一致から始めて、他のすべての一致するステートメントに
deactivate
ステートメントが追加されます。注:指定されたポリシー名が構成にまだ存在しない場合は、エラーが返されます。これは、空のコンフィギュレーション階層に deactivate ステートメントを追加できないためです。
[edit] user@host# show | compare [edit policy-options] ! inactive: policy-statement p1 { ... } ! inactive: policy-statement p3 { ... } ! inactive: policy-statement p5 { ... } ! inactive: policy-statement p7 { ... } ! inactive: policy-statement p9 { ... }
ステップ関数をわかりやすく説明するために、一時的な構成を復元し、ワイルドカード コマンドをステップ値 4 で繰り返します。これで、最初の一致ごとに3つのエントリがスキップされます。
[edit] user@host# load override temp load complete user@host## wildcard range deactivate policy-options policy-statement p[1-10/4] \
-
結果を表示します。ワイルドカードの範囲が拡大され、最初の一致から始めて、4 番目に一致するステートメントごとに
deactivate
ステートメントが追加されます。[edit] user@host# show | compare [edit policy-options] ! inactive: policy-statement p1 { ... } ! inactive: policy-statement p5 { ... } ! inactive: policy-statement p9 { ... }
ワイルドカードを使用したポリシーの削除 p1-p10
ステップバイステップでの手順
ワイルドカード関数をテストするために追加した一時ポリシーを削除します。
-
delete
ステートメントとワイルドカードの範囲ステートメントを使用して、p1からp10までのポリシーを削除します。[edit] user@host# wildcard range delete policy-options policy-statement p[1-10]
-
結果を表示します。私たちの
policy-options
スタンザには、 p1 から p10までのポリシーのみが含まれていました。これにより、空のpolicy-options
設定階層になります。[edit] user@host# show policy-options