このページで
構成グループを使用してデバイスを迅速に構成する
設定グループを使用して、同じ設定内で再利用される共通の要素を設定して適用します。
設定グループの概要
このトピックでは、 Junos OS CLI の設定グループと継承モデルの概要について説明します。
設定グループの仕組み
設定グループを使用すると、設定ステートメントを含むグループを作成し、そのグループのステートメントを残りの設定に継承させることができます。同じグループを設定の異なるセクションに適用できます。1 つのグループの設定ステートメントの異なるセクションは、設定内の異なる場所に継承できます。
コンフィギュレーショングループを使用すると、より小規模で論理的に構築されたコンフィギュレーションファイルを作成できるため、ジュニパーネットワークスデバイスの設定やメンテナンスが容易になります。例えば、インターフェイスを設定する場合など、設定の多くの場所で繰り返されるステートメントをグループ化できます。ステートメントをグループ化することで、設定の更新をグループのみに制限できます。
設定グループでワイルドカードを使用することもできます。ワイルドカード式に一致するオブジェクトはすべて、グループ設定データを継承します。
設定グループのメカニズムは、BGP グループなど、設定の他の場所で使用されるグループ化メカニズムとは別のものです。コンフィギュレーション・グループは、コンフィギュレーション全体で使用できるが、CLIのみが知っている一般的なメカニズムを提供します。構成によって指示されたアクションを実行する個々のソフトウェアプロセスは、構成の拡張形式を受け取ります。構成グループに関する知識はありません。
継承モデル
構成グループは、構成データのソースとそのデータのターゲットの間に動的で継続的な関係がある真の継承を使用します。ターゲットは、設定グループで変更したデータ値を自動的に継承します。ターゲットには、継承された情報を含める必要はありません。ただし、継承された値は、継承元のソースに影響を与えることなく、ターゲットでオーバーライドできます。
この継承モデルでは、継承された詳細を表示せずに、インスタンス固有の情報のみを表示できます。コンフィギュレーション モードのコマンド パイプを使用すると、継承されたデータを表示できます。
設定グループの設定
設定のエリアで設定ステートメントを継承するには、まずステートメントを設定グループに入れる必要があります。次に、そのグループを、 ステートメントを必要とする設定階層のレベルに適用します。
設定ステートメントを継承する設定領域の場合:
-
ステートメントをコンフィギュレーション・グループにコンフィギュレーションします。設定グループと継承を設定するには、[edit]階層レベルで groups ステートメントを記述します。
[edit] groups {
group-name
{configuration-data
; } } -
ステップ 1 の設定グループを、 ステートメントを必要とする設定階層のレベルに適用します。
設定グループに含まれる設定ステートメントが必要な設定内の任意の場所に
apply-groups [ group-names ]
ステートメントを含めます。
設定グループの作成
Junos OS CLI では、設定ステートメントを含む再利用可能なグループを作成できます。これらのグループは、同じ設定ステートメントが複数回繰り返される設定の異なるセクションに適用できます。
設定の異なるセクションにグループを適用すると、設定のその部分はグループで設定されたステートメントを継承します。構成グループは、構成データのソースとそのデータのターゲットの間に動的で継続的な関係が設定される継承のルールに従います。設定グループのデータ値を変更すると、継承されたターゲットに変更が自動的に反映されます。
必要に応じてターゲット構成の値を上書きできますが、グループ内のソースには影響しません。
この継承モデルでは、継承された詳細を表示せずに、インスタンス固有の情報のみを表示できます。コンフィギュレーション モードのコマンド パイプを使用すると、継承されたデータを表示できます。例えば、すべての ge-0/0/1
インターフェースを MTU 値 1500 に設定することができます。
すべての ge-0/0/1
インターフェイスを MTU 値 1500 に設定するには:
-
MTU 値 1500 のグループを作成します。
[edit groups group-1] lab@vSRX3-05# show interfaces { ge-0/0/1 { unit 0 { family inet { mtu 1500; } } } }
-
次に、インターフェイス設定でグループを適用します。
[edit interfaces ge-0/0/1] lab@vSRX3-05# set apply-groups group-1
-
継承された設定を表示します。
[edit] lab@vSRX3-05# show interfaces ge-0/0/1 | display inheritance unit 0 { family inet { ## ## '1500' was inherited from group 'group-1' ## mtu 1500; address 5.0.0.254/24; } }
設定の異なる部分でインターフェイス ge-0/0/1
の MTU 値を設定する場合は、 apply-groups
option を使用して group ステートメントを適用できます。これを手動で行い、後で MTU を増やす場合は、すべてのインターフェイスを手動で変更する必要があります。設定グループを使用する場合、グループ設定を変更することで、関連するすべてのインターフェイスを自動的に更新できます。
また、設定グループでワイルドカードを使用して、ワイルドカード式に一致する任意のオブジェクトに設定データを継承できるようにすることもできます。たとえば、以下のように表示されます。
[edit groups group-1] lab@vSRX3-05# show interfaces { ge-* { unit 0 { family inet { mtu 1500; } } } }
設定グループの適用方法
ジュニパーネットワークスのデバイス設定で設定グループからステートメントを継承させる場合は、設定に apply-groups
ステートメントを含めます。
apply-groups [ group-names ];
複数のグループ名を指定する場合は、継承する優先度順に名前を列挙する必要があります。最初のグループの設定データは、以降のグループのデータよりも優先されます。
複数のルーティング エンジンをサポートするデバイスでは、 re0
および re1
グループ名を指定できます。グループ re0
で指定された設定は、現在のルーティング エンジンがスロット0にある場合にのみ適用されます。同様に、グループ re1
で指定された設定は、現在のルーティング エンジンがスロット 1 にある場合にのみ適用されます。そのため、両方のルーティング エンジンで、それぞれに適用されるコンフィギュレーション ステートメントのみを使用して、同じコンフィギュレーション ファイルを使用することができます。各 re0
または re1
グループには、少なくともホスト名と管理インターフェイス(fxp0
)の設定が含まれています。各ルーティング エンジンが異なる管理インターフェイスを使用する場合、グループにはバックアップ ルーターとスタティック ルートの設定も含める必要があります。
設定階層の各特定のレベルに含めることができる apply-groups
ステートメントは 1 つだけです。特定の階層レベルの apply-groups
ステートメントは、それを含むステートメントの設定グループリストに追加する設定グループをリストします。
特定の階層レベルで指定された値は、設定グループから継承された値を上書きします。
ネストされた apply-groups
ステートメントにリストされているグループは、外部ステートメントのグループよりも優先されます。次の例では、BGPネイバー 10.0.0.1
最初にグループ one
から設定データを継承します。その後、グループ two
とグループ three
から設定データを継承します。グループ one
内の設定データは、他のグループのデータを上書きします。グループ ten
からのデータは、ステートメントが他のグループに含まれていない場合にのみ使用されます。
apply-groups [ eight nine ten ]; protocols { apply-groups seven; bgp { apply-groups [ five six ]; group some-bgp-group { apply-groups four; neighbor 10.0.0.1 { apply-groups [ one two three ]; } } } }
ルート レベルは既定の論理システムです。ルート レベルに定義されたグループを設定すると、そのグループを [edit logical-systems logical-system-name]
階層レベル下の既定以外の論理システムに正常に適用することはできません。グループを適用すると、デバイスはコミットを受け入れますが、コンフィギュレーショングループはデフォルト以外の論理システムに対しては有効になりません。代わりに、ルート レベルで追加の設定グループを作成し、論理システム内で適用できます。または、元のグループを変更して、デフォルトと非デフォルトの両方の論理システム階層レベルの設定を含めることができます。
例:設定グループの作成と適用
この例では、設定グループの作成と適用について説明します。この例では、SNMP 設定はグループ basic
と通常の設定階層に分かれています。
システム固有の設定(SNMP 連絡先)を設定グループに配置し、通常の設定階層から分離することで、複数の利点が得られます。
-
load replace
コマンドを使用して、もう一方のセクションのデータを破棄せずに、いずれかのセクションを置き換えることができます。 -
グループデータはデバイス固有のデータによって非表示になるため、特定のボックスに連絡先を設定できます。
[edit] groups { basic { # User-defined group name snmp { # This group contains some SNMP data contact "My Engineering Group"; community BasicAccess { authorization read-only; } } } } apply-groups basic; # Enable inheritance from group "basic" snmp { # Some normal (non-group) configuration location "West of Nowhere"; }
この構成は、以下と同等です。
[edit] snmp { location "West of Nowhere"; contact "My Engineering Group"; community BasicAccess { authorization read-only; } }
例:設定グループの継承の無効化
設定グループの継承は、階層の最上位レベルを除くすべてのレベルで無効にすることができます。継承を無効にするには、設定に apply-groups-except
ステートメントを含めます。
apply-groups-except [ group-names ];
このステートメントは、特定の階層レベルで apply-group
ステートメントを使用するが、特定のパラメータの設定グループから継承された値を上書きする場合に便利です。
例:インターフェイスso-1/1/0で継承を無効にする
次の例では、 apply-groups
ステートメントがインターフェイスレベルでグローバルに適用されます。apply-groups-except
ステートメントはインターフェイス so-1/1/0
にも適用されるため、hold-time
ステートメントと link-mode
ステートメントにはデフォルト値が使用されます。
[edit] groups { # "groups" is a top-level statement global { # User-defined group name interfaces { <*> { hold-time down 640; link-mode full-duplex; } } } } apply-groups global; interfaces { so-1/1/0 { apply-groups-except global; # Disables inheritance from group "global" # so-1/1/0 uses default value for “hold-time” # and "link-mode" } }
コンフィギュレーショングループは、デバイスがコンフィギュレーショングループからコンフィギュレーションデータを継承する可能性があるため、デバイスで使用される実際の値に関して混乱を招く可能性があります。デバイスで使用されている実際の値を表示するには、show
コマンドのパイプ(|)の後にdisplay inheritance
コマンドを使用します。このコマンドは、継承されたレベルおよび継承元のグループで継承されたステートメントを表示します。
[edit]
user@host# show | display inheritance
snmp {
location "West of Nowhere";
##
## 'My Engineering Group' was inherited from group 'basic'
##
contact "My Engineering Group";
##
## 'BasicAccess' was inherited from group 'basic'
##
community BasicAccess {
##
## 'read-only' was inherited from group 'basic'
##
authorization read-only;
}
}
## 行なしで展開された設定(継承されたステートメントを含む設定)を表示するには、show
コマンドのパイプの後に except
コマンドを使用します。
[edit]
user@host# show | display inheritance | except ##
snmp {
location "West of Nowhere";
contact "My Engineering Group";
community BasicAccess {
authorization read-only;
}
}
display inheritance | except ##
オプションを使用すると、##
のある行がすべて削除されます。そのため、 ##
が使用されているパスワードやその他の重要なデータに関する情報を表示できない場合があります。すべての情報を含む完全な設定の詳細を表示するには(##
でマークされたコメントだけなしで)、display inheritance
コマンドでno-comments
オプションを使用します。
[edit]
user@host# show | display inheritance no-comments
snmp {
location "West of Nowhere";
contact "My Engineering Group";
community BasicAccess {
authorization read-only;
}
}
例:junos-defaults
設定グループを使用する
Junos OS デバイスの設定に自動的に適用される junos-defaults
と呼ばれる非表示の不変の設定グループを提供します。junos-defaults
グループには、一般的なアプリケーション用に事前定義された値を含む事前設定されたステートメントが含まれています。アプリケーションの定義 (FTP や telnet 設定など) など、一部のステートメントを有効にするには参照する必要があります。端末設定などの他のステートメントも自動的に適用されます。
junos-defaults
設定グループに含まれる多くの識別子は、名前 junos-
で始まります。junos-
という名前で始まる識別子はジュニパーネットワークスで使用するために予約されているため、この名前を使用して構成オブジェクトを定義することはできません。
apply-groups
ステートメントで、設定グループ名として junos-defaults
を含めることはできません。
junos-defaults
グループから利用可能なプリセットステートメントの完全なセットを表示するには、設定の最上位レベルで show groups junos-defaults
設定モードコマンドを発行します。以下の例では、Junos のデフォルト グループの一覧の一部を表示しています。
user@host# show groups junos-defaults
# Make vt100 the default for the console port
system {
ports {
console type vt100;
}
}
applications {
# File Transfer Protocol
application junos-ftp {
application-protocol ftp;
protocol tcp;
destination-port 21;
}
# Trivial File Transfer Protocol
application junos-tftp {
application-protocol tftp;
protocol udp;
destination-port 69;
}
# RPC port mapper on TCP
application junos-rpc-portmap-tcp {
application-protocol rpc-portmap;
protocol tcp;
destination-port 111;
}
# RPC port mapper on UDP
}
junos-defaults
グループから利用可能なステートメントを参照するには、該当する階層レベルで選択したjunos-
default-name
ステートメントを含めます。
junos-defaults
グループのアプリケーションのリストを表示するには、show configuration groups junos-defaults applications
を発行します。junos-
で始まるアプリケーションは、デフォルトでジュニパーネットワークスによって設定されます。次の例は、Junos default グループのアプリケーションの一覧の一部を示しています。
user@host>show configuration groups junos-defaults applications
## protect: groups junos-defaults
##
#
# File Transfer Protocol
#
application junos-ftp {
application-protocol ftp;
protocol tcp;
destination-port 21;
}
#
# Trivial File Transfer Protocol
#
application junos-ftp-data {
application-protocol ftp-data;
protocol tcp;
destination-port 20;
}
application junos-tftp {
application-protocol tftp;
protocol udp;
destination-port 69;
}
#
# Two-Way Active Measurement Protocol
#
application junos-twamp {
application-protocol twamp;
protocol tcp;
destination-port 862;
}
#
# Real Time Streaming Protocol
#
application junos-rtsp {
application-protocol rtsp;
protocol tcp;
destination-port 554;
}
#
# Network Basic Input Output System - networking protocol used on
# Windows networks session service port
#
application junos-netbios-session {
protocol tcp;
destination-port 139;
}
application junos-smb-session {
protocol tcp;
destination-port 445;
}
application junos-ssh {
protocol tcp;
destination-port 22;
}
application junos-telnet {
protocol tcp;
destination-port 23;
}
例:設定グループでのワイルドカードの使用
ワイルドカードを使用して名前を識別し、1 つのステートメントでさまざまなステートメントのデータを提供できます。
通常の構成データでのワイルドカードの使用は、従来の UNIX シェル・ワイルドカードで使用されるスタイルと一致するスタイルで行われます。このスタイルでは、次のメタ文字を使用できます。
-
アスタリスク(
*
)—任意の文字列に一致させます。 -
疑問符(
?
)—任意の1文字に一致します。 -
左角括弧 (
[
) - 文字クラスを導入します。 -
閉じ括弧(
]
)—文字クラスの末尾を示します。閉じ括弧がない場合は、文字クラスを導入するのではなく、左括弧が左括弧[
と一致します。 -
文字クラスは、角括弧で囲まれた任意の文字に一致します。設定グループ内では、文字クラスを含むインターフェイス名を引用符で囲む必要があります。
-
ハイフン(
-
)—文字の範囲を指定します。 -
感嘆符 (
!
) - 感嘆符を文字クラスの最初の文字にすることで、文字クラスを補完できます。文字クラスに閉じ括弧 (]
) を含めるには、リストされている最初の文字にします (ある場合は、!
の後)。マイナス記号を含めるには、リストされている最初または最後の文字にします。
groups
階層内の識別子を使用する場合は、識別子名の先頭に <
以外を指定します。ただし、ワイルドカード・ステートメントを定義する場合は、ワイルドカード・ステートメントに終了>
が必要であるため、<
を使用できます。
設定グループでのワイルドカードの使用は、通常の設定でワイルドカードを使用する場合と同じルールに従います。ただし、 <
と >
は、 groups
階層の下で使用すると特別な意味を持ちます。<c0/>階層では、ワイルドカード パターン <<c1/>>を使用して、構成ファイル内の他のワイルドカードと区別するために、任意の用語を山括弧で囲む必要があります。groups
pattern
[edit] groups { sonet-default { interfaces { <so-*> { sonet-options { payload-scrambler; rfc-2615; } } } } }
ワイルドカード式は、その式にのみ一致する設定内の既存のステートメントに一致します(そして、その設定データを提供します)。前の例では、式 <so-*>
は、式 so-*
に一致する任意のインターフェイスに sonet-options
ステートメントを渡します。
次に、インターフェイスの範囲を指定する例を示します。
[edit] groups { gigabit-ethernet-interfaces { interfaces { "<ge-1/2/[5-8]>" { description "These interfaces reserved for Customer ABC"; } } } }
山括弧を使用すると、通常のワイルドカードを変更せずに渡すことができます。ワイルドカードを使用するかどうかにかかわらず、構成内の一致では、構成内で最初に一致した項目が使用されます。次の例では、ワイルドカード設定された BGP グループのデータは、グループが記載されている順序で継承されます。
<*a*>
プリファレンス値は、<*b*>
プリファレンスを上書きします。-
<*c*>
からのp
値は、からの値を上書きします<*d*>
これらのグループのデータ値は、次の abcd
のデータ値をオーバーライドします。
[edit] user@host#show
groups { one { protocols { bgp { group <*a*> { preference 1; } group <*b*> { preference 2; } group <*c*> { out-delay 3; } group <*d*> { out-delay 4; } group abcd { preference 10; hold-time 10; out-delay 10; } } } } } protocols { bgp { group abcd { apply-groups one; } } } [edit] user@host#show | display inheritance
protocols { bgp { group abcd { ## ## ’1’ was inherited from group ’one’ ## preference 1; ## ## ’10’ was inherited from group ’one’ ## hold-time 10; ## ## ’3’ was inherited from group ’one’ ## out-delay 3; } } }
設定グループ使用時のコミット時間を短縮する方法
コンフィギュレーション・グループを使用すると、コンフィギュレーション・データを再入力することなく、他の階層にコンフィギュレーションを適用できます。設定グループ内のすべての設定詳細を指定できます。また、設定グループでワイルドカードを使用して、各設定行を詳しく説明せずに、データの範囲を設定することもできます。設定グループを使用する別の方法は、適用する設定の長い文字列を含む継承パスを作成することです。
コンフィギュレーション グループを使用するコンフィギュレーションがコミットされると、コミット プロセスでは、グループのすべてのコンフィギュレーション データが拡張されてメモリに読み込まれ、意図したとおりに設定が適用されます。多くの設定グループが適用されている場合、特に設定グループがワイルドカードを多用している場合、コミットのパフォーマンスに悪影響を及ぼす可能性があります。
ワイルドカードを使用する多くの設定グループをシステムで使用する場合は、[edit system commit]
階層レベルで persist-groups-inheritance
ステートメントを設定して、コミット時間のパフォーマンスを向上させることができます。
このオプションを使用すると、システムはプロセスメモリ内ではなくデータベース内に各設定グループの継承パスを構築できます。この変更により、コミット時間のパフォーマンスを向上させることができます。ただし、データベース サイズが大きくなる可能性もあります。
例:設定グループを使用したステートメントのセットの設定
ステートメントのセットがコンフィギュレーショングループに存在する場合、すべての値が継承されます。たとえば、以下のように表示されます。
[edit] user@host#show
groups { basic { snmp { interface so-1/1/1.0; } } } apply-groups basic; snmp { interface so-0/0/0.0; } [edit] user@host#show | display inheritance
snmp { ## ## ’so-1/1/1.0’ was inherited from group ’basic’ ## interface [ so-0/0/0.0 so-1/1/1.0 ]; }
角括弧内に表示されないセットの場合、すべての値も継承されます。たとえば、以下のように表示されます。
[edit] user@host#show
groups { worldwide { system { name-server { 10.0.0.100; 10.0.0.200; } } } } apply-groups worldwide; system { name-server { 10.0.0.1; 10.0.0.2; } } [edit] user@host#show | display inheritance
system { name-server { ## ## ’10.0.0.100’ was inherited from group ’worldwide’ ## 10.0.0.100; ## ## ’10.0.0.200’ was inherited from group ’worldwide’ ## 10.0.0.200; 10.0.0.1; 10.0.0.2; } }
例:設定グループを使用したインターフェイスの設定
設定グループを使って、共通のインターフェースメディアパラメーターをインターフェース固有のアドレス指定情報から切り離すことができます。次に、ATM インターフェイスの設定データを atm-options
というグループに配置する例を示します。
[edit] user@host#show
groups { atm-options { interfaces { <at-*> { atm-options { vpi 0 maximum-vcs 1024; } unit <*> { encapsulation atm-snap; point-to-point; family iso; } } } } } apply-groups atm-options; interfaces { at-0/0/0 { unit 100 { vci 0.100; family inet { address 10.0.0.100/30; } } unit 200 { vci 0.200; family inet { address 10.0.0.200/30; } } } } [edit] user@host#show | display inheritance
interfaces { at-0/0/0 { ## ## "atm-options" was inherited from group "atm-options" ## atm-options { ## ## "1024" was inherited from group "atm-options" ## vpi 0 maximum-vcs 1024; } unit 100 { ## ## "atm-snap" was inherited from group "atm-options" ## encapsulation atm-snap; ## ## "point-to-point" was inherited from group "atm-options" ## point-to-point; vci 0.100; family inet { address 10.0.0.100/30; } ## ## "iso" was inherited from group "atm-options" ## family iso; } unit 200 { ## ## "atm-snap" was inherited from group "atm-options" ## encapsulation atm-snap; ## ## "point-to-point" was inherited from group "atm-options" ## point-to-point; vci 0.200; family inet { address 10.0.0.200/30; } ## ## "iso" was inherited from group "atm-options" ## family iso; } } } [edit] user@host#show | display inheritance | except ##
interfaces { at-0/0/0 { atm-options { vpi 0 maximum-vcs 1024; } unit 100 { encapsulation atm-snap; point-to-point; vci 0.100; family inet { address 10.0.0.100/30; } family iso; } unit 200 { encapsulation atm-snap; point-to-point; vci 0.200; family inet { address 10.0.0.200/30; } family iso; } } }
関連項目
例:設定グループを使用して、管理インターフェイスに一貫した IP アドレスを設定する
複数のルーティング エンジンを搭載したデバイスでは、各ルーティング エンジンに管理インターフェイス用の個別の IP アドレスが設定されます。プライマリー ルーティング エンジンにアクセスするには、どのルーティング エンジンがアクティブであるかを知り、適切な IP アドレスを使用する必要があります。
プライマリ ルーティング エンジンに一貫してアクセスするためのもう 1 つのオプションは、追加の IP アドレスを設定することです。次に、どのルーティング エンジンがアクティブであるかに関係なく、管理インターフェイスにこのアドレスを使用します。この追加 IP アドレスは、プライマリー ルーティング エンジンの管理インターフェイスでのみ有効です。切り替えの際、アドレスは新しいプライマリ ルーティング エンジンに移動します。
この例では、両方のルーティング エンジンにアドレス 10.17.40.131
を設定し、 master-only
ステートメントを含めています。この構成では、プライマリー ルーティング エンジンでのみ10.17.40.131
アドレスが有効になります。このアドレスは、どのルーティング エンジンがアクティブであっても一貫しています。アドレス 10.17.40.132
は re0
に fxp0
に割り当てられ、10.17.40.133
は re1
に fxp0
に割り当てられます。
[edit groups re0 interfaces fxp0] unit 0 { family inet { address 10.17.40.131/25 { master-only; } address 10.17.40.132/25; } } [edit groups re1 interfaces fxp0] unit 0 { family inet { address 10.17.40.131/25 { master-only; } address 10.17.40.133/25; } }
この機能は、デュアル ルーティング エンジンを搭載するすべてのルーターで利用可能です。TX マトリクス ルーターで構成されるルーティング マトリクスでは、この機能はスイッチ カード シャーシ(SCC)にのみ適用されます。同様に、TX Matrix Plusルーターで構成されたルーティングマトリクスでは、この機能はスイッチファブリックシャーシ(SFC)にのみ適用されます。
-
プライベートインターフェイスとパブリックインターフェイスでアドレスが重複している2つのインターフェイスには、一意のIPアドレスを割り当てる必要があります。グレースフル ルーティング エンジン スイッチオーバー(GRES)が有効になっている場合、同一のアドレスが見つかると、CLI は適切なコミット エラー メッセージを表示します。このエラーは、管理インターフェイスまたは
fxp0
などの内部インターフェイスと、ge-0/0/1
などの外部物理インターフェイスに同じ IP アドレスを設定した場合に発生する可能性があります。 -
em0
管理イーサネットインターフェイスは、TX Matrix Plusルーター、ルーティングマトリックス内のT1600ルーター、PTXシリーズパケットトランスポートルーターに使用されます。 Junos OS、デバイスの管理イーサネットインターフェイスem0
を自動的に作成します。
例:設定グループを使用してピアエンティティを設定する
この例では、別の ISP に関連する設定データを含むグループ some-isp
を作成します。次に、さまざまなポイントに apply-group
ステートメントを挿入して、設定階層内のこれらの場所がこのデータを継承できるようにします。
[edit] user@host#show
groups { some-isp { interfaces { <xe-*> { gigether-options { flow-control; } } } protocols { bgp { group <*> { neighbor <*> { remove-private; } } } pim { interface <*> { version 1; } } } } } interfaces { xe-0/0/0 { apply-groups some-isp; unit 0 { family inet { address 10.0.0.1/24; } } } } protocols { bgp { group main { neighbor 10.254.0.1 { apply-groups some-isp; } } } pim { interface xe-0/0/0.0 { apply-groups some-isp; } } } [edit] user@host#show | display inheritance
interfaces { xe-0/0/0 { ## ## "gigether-options" was inherited from group "some-isp" ## gigether-options { ## ## "flow-control" was inherited from group "some-isp" ## flow-control; } unit 0 { family inet { address 10.0.0.1/24; } } } } protocols { bgp { group main { neighbor 10.254.0.1 { ## ## "remove-private" was inherited from group "some-isp" ## remove-private; } } } pim { interface xe-0/0/0.0 { ## ## "1" was inherited from group "some-isp" ## version 1; } } }
例:構成グループを使用して地域の構成を確立する
この例では、あるグループに会社全体の標準である構成データを入力し、別のグループにはこの標準からの地域偏差を含めます。
[edit] user@host#show
groups { standard { interfaces { <t3-*> { t3-options { compatibility-mode larscom subrate 10; idle-cycle-flag ones; } } } } northwest { interfaces { <t3-*> { t3-options { long-buildout; compatibility-mode kentrox; } } } } } apply-groups standard; interfaces { t3-0/0/0 { apply-groups northwest; } } [edit] user@host#show | display inheritance
interfaces { t3-0/0/0 { ## ## "t3-options" was inherited from group "northwest" ## t3-options { ## ## "long-buildout" was inherited from group "northwest" ## long-buildout; ## ## "kentrox" was inherited from group "northwest" ## compatibility-mode kentrox; ## ## "ones" was inherited from group "standard" ## idle-cycle-flag ones; } } }
例:ワイルドカード設定グループ名の設定
ワイルドカードは、特殊文字を使用して複数のステートメントに適用できるパターンを作成する設定グループ名です。ワイルドカードは、1 セットの構成オプションを多数の異なる構成グループにコピーする場合に便利です。ワイルドカード設定オプションが適切な設定グループにコピーされるように、ワイルドカード名を適切に設定する必要があります。
この例では、label-switched-path
ステートメントで、ワイルドカード グループ<*-major>
と<*-minor>
に異なる値を設定します。アスタリスク (*
) 文字は、任意の文字列と一致するワイルドカード名のセクションを表します。たとえば、label-switched-path <*-major>
の下の構成オプションは、label-switched-path metro-major
および名前に -major
を含むその他の label-switched-path
構成グループに渡されます。
[edit] user@host#show
groups { mpls-conf { protocols { mpls { label-switched-path <*-major> { retry-timer 5; bandwidth 155m; optimize-timer 60; } label-switched-path <*-minor> { retry-timer 15; bandwidth 64k; optimize-timer 120; } } } } } apply-groups mpls-conf; protocols { mpls { label-switched-path metro-major { to 10.0.0.10; } label-switched-path remote-minor { to 10.0.0.20; } } } [edit] user@host#show | display inheritance
protocols { mpls { label-switched-path metro-major { to 10.0.0.10; ## ## "5" was inherited from group "mpls-conf" ## retry-timer 5; ## "155m" was inherited from group "mpls-conf" ## bandwidth 155m; ## ## "60" was inherited from group "mpls-conf" ## optimize-timer 60; } label-switched-path remote-minor { to 10.0.0.20; ## ## "15" was inherited from group "mpls-conf" ## retry-timer 15; ## ## "64k" was inherited from group "mpls-conf" ## bandwidth 64k; ## ## "120" was inherited from group "mpls-conf" ## optimize-timer 120; } } }
例:デフォルトグループからプリセットステートメントを参照
次の例は、ステートフルファイアウォールでFTPに使用できるdefaultsグループのプリセットステートメントです。
[edit] groups { junos-defaults { applications { application junos-ftp {# Use FTP default configuration application-protocol ftp; protocol tcp; destination-port 21; } } }
defaults グループから事前設定されたデフォルトステートメントを参照するには、該当する階層レベルで junos-default-name
ステートメントを含めます。例えば、ステートフルファイアウォールでFTPのデフォルトステートメントを参照するには、[edit services stateful-firewall rule my-rule term my-term from applications]
階層レベルでjunos-ftp
ステートメントを含めます。
[edit] services { stateful-firewall { rule my-rule { term my-term { from { applications junos-ftp; #Reference predefined statement, junos-ftp } } } } }
例:設定に適用されたデフォルトステートメントの表示
デバイス・コンフィギュレーションに適用されているデフォルトを表示するには、 show | display inheritance defaults
コマンドを実行します。次に、 [edit system ports]
階層レベルで継承されたデフォルトを表示する例を示します。
user@host# show system ports | display inheritance defaults
## ## 'console' was inherited from group 'junos-defaults'
## 'vt100' was inherited from group 'junos-defaults'
## console type vt100;
既存のデフォルトステートメントを使用しない場合は、独自の設定グループを手動で作成できます。
##
のマークが付けられたコメントを省略して完全な設定情報を表示するには、display inheritance
コマンドでno-comments
オプションを使用します。
ルーティングエンジン設定グループを設定する
2 つのルーティング エンジンを持つデバイスでは、両方のルーティング エンジンが 1 つの設定を共有する必要があります。この設定により、両方のルーティングエンジン設定が同一になります。この設定内で、ルーティング エンジンごとに 1 つずつ、合計 2 つのルーティング エンジン グループを作成します。これらのグループ内で、ルーティング エンジン固有のパラメーターを指定します。
冗長ルーティングエンジンシステムとre0グループの初期設定の詳細については、 Junos OS高可用性ユーザーガイドを参照してください。
ルーティングエンジン設定グループを設定するには:
条件を使用して設定グループを適用する方法
[edit groups group-name]
階層レベルで when
ステートメントを使用して、設定グループを適用する条件を定義できます。
シャーシのタイプ、モデル、ルーティング エンジン、 バーチャル シャーシ メンバー、クラスタ ノード、および開始時刻とオプションの終了時刻(オプションの終了時刻または日付)に基づいて、適用するグループを設定できます。
例えば、 when
ステートメントを使用して、ノードのタイプごとに汎用の設定グループを作成し、シャーシやモデルなどの特定のノードプロパティに基づいて設定を適用できます。
例:設定グループを適用するための条件の設定
この例では、指定した設定グループが適用される条件を設定する方法を示します。
要件
この例を構成する前に、デバイスの初期化以上の特別な構成は必要ありません。
概要
グループ構成データは、 [edit groups group-name]
階層レベルで構成できます。次に、 when
ステートメントを使用して、次のような条件に基づいてグループ設定を適用できます。シャーシのタイプ、モデル、ルーティング エンジン、バーチャル シャーシ メンバー、クラスタ ノード、および開始時刻とオプションの終了時刻(オプション)。
1 つの設定グループに複数の条件を指定する場合、設定グループを適用する前にすべての条件を満たす必要があります。
設定グループを適用する開始時刻または期間を指定できます。開始時刻のみを指定した場合、構成グループは指定された時刻に適用され、時刻が変更されるまで有効です。終了時刻を指定すると、毎日、適用された設定グループが指定した時刻に開始および停止されます。
この例では、設定グループ test1
に条件を設定し、次の条件がすべて満たされた場合にのみこのグループが適用されるようにします。ルーターは、シャーシ タイプ LCC0 のモデル MX240 ルーターで、ルーティング エンジンは RE0 として動作しており、ノード 0 のバーチャル シャーシのメンバー 0 であり、設定グループは毎日午前 9:00 から午後 5:00 まで有効になります。
設定
CLIクイック構成
この例をすばやく設定するには、次のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク構成に合わせて必要な詳細を変更し、[edit]
階層レベルのCLIにコマンドをコピー&ペーストしてください。
set groups test1 when model mx240
set groups test1 when chassis lcc0
set groups test1 when routing-engine re0
set groups test1 when member member0
set groups test1 when node node0
set groups test1 when time 9 to 5
手順
ステップバイステップでの手順
設定グループ test1
の条件を設定するには:
モデル MX240 ルーターを識別する条件を設定します。
[edit groups test1 when] user@host#
set model mx240
シャーシ タイプを識別する条件をLCC0として設定します。
[edit groups test1 when] user@host#
set chassis lcc0
動作しているルーティング エンジンが
RE0
であることを識別する条件を設定します。[edit groups test1 when] user@host#
set routing-engine re0
バーチャル シャーシ
member0
を識別する条件を設定します。[edit groups test1 when] user@host#
set member member0
クラスター
node0
を識別する条件を設定します。[edit groups test1 when] user@host#
set node node0
毎日午前 9:00 から午後 5:00 の間のみグループを適用する条件を設定します。
[edit groups test1 when] user@host#
set time 9 to 5
注:時刻を指定する構文は次のとおりです。
time <start-time> [to <end-time>]
時刻形式 yyyy-mm-dd.hh:mm、hh:mm、または hh を使用します。設定をコミットします。
user@host#
commit
結果
設定モードで、show groups test1
コマンドを入力して設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の手順を繰り返して設定を修正します。
user@host# show groups test1
when {
time 9 to 5;
chassis lcc0;
model mx240;
routing-engine re0;
member member0;
node node0;
}
検証
条件付きデータによるグループ継承のチェック
目的
適用時に、設定グループの条件付きデータが継承されることを確認します。
アクション
when
データを指定して show | display inheritance
操作コマンドを発行し、条件付き継承を表示します。この例を使用して、以下のいずれかのコマンドを発行して、条件付きデータが継承されたことを判別できます。
user@host>show | display inheritance when model mx240
user@host>show | display inheritance when chassis lcc0
user@host>show | display inheritance when routing-engine re0
user@host>show | display inheritance when member member0
user@host>show | display inheritance when node node0
user@host>show | display inheritance when time 9 to 5