基本的な BGP ルーティング ポリシー
ルーティング ポリシーの理解
各ルーティング・ポリシーは、ポリシー名で識別されます。名前には、文字、数字、ハイフン(-)を使用でき、最大 255 文字まで使用可能です。名前にスペースを含める場合は、名前全体をダブル クォーテーションで囲んでください。各ルーティング ポリシー名は、コンフィギュレーション内で一意である必要があります。
ポリシーが作成され、名前が付けられると、それがアクティブになる前に適用される必要があります。ルーティング ポリシーは、設定階層のprotocols protocol-name
レベルでステートメントとimport
ステートexport
メントを使用して適用します。
import
文には,ルーティング プロトコルからルーティング テーブルにルートを取り込むときに評価するルーティング ポリシーの名称を記載します。
export
文では,ルーティング テーブルからダイナミック ルーティング プロトコルにルートをエクスポートするときに評価するルーティング ポリシーの名前を列挙します。ルーティング テーブルからエクスポートされるのは、アクティブなルートのみです。
複数のポリシーを指定してポリシー チェーンを作成するには、スペースを区切り文字としてポリシーを列挙します。複数のポリシーが指定された場合、指定された順番に評価されます。受理または拒否のアクションが実行されると同時に、ポリシー チェーンの評価は終了します。
関連項目
例:BGP 階層の異なるレベルでのルーティング ポリシーの適用
この例は、シンプルなネットワークトポロジーで設定された BGP を紹介し、ルーティングポリシーが BGP 設定の異なるレベルで適用された時にどのような効果があるかを説明します。
要件
この例を設定する前に、デバイス初期化以外の特別な設定を行う必要はありません。
概要
BGPでは、以下のようなポリシーを適用できます。
BGPグローバル
import
およびexport
ステートメント-これらのステートメントを階[edit protocols bgp]
層レベルに含める(ルーティング・インスタンスの場合、これらのステートメントを階[edit routing-instances routing-instance-name protocols bgp]
層レベルに含める)。export
グループimport
およびステートメント-これらのステートメントを階[edit protocols bgp group group-name]
層レベルに含める(ルーティング・インスタンスの場合、これらのステートメントを階[edit routing-instances routing-instance-name protocols bgp group group-name]
層レベルに含める)。export
ピアimport
およびステートメント-これらのステートメントを階[edit protocols bgp group group-name neighbor address]
層レベルに含める(ルーティング・インスタンスの場合は、これらのステートメントを階[edit routing-instances routing-instance-name protocols bgp group group-name neighbor address]
層レベルに含める)。
ピアレベルのorステートexport
メントimport
は、グループのorステートexport
メントを上書きimport
します。グループレベルのorステートexport
メントimport
は、グローバルなBGPのorステートexport
メントを上書きimport
します。
send-192.168.0.1
この例では、という名のポリシーsend-direct
がグローバルなレベルで適用され、という名の別のポリシーがグループレベルで適用され、という名の 3 つ目のポリシーがネイバーレベルで適用send-192.168.20.1
されています。
user@host# show protocols bgp { local-address 172.16.1.1; export send-direct; group internal-peers { type internal; export send-192.168.0.1; neighbor 172.16.2.2 { export send-192.168.20.1; } neighbor 172.16.3.3; } group other-group { type internal; neighbor 172.16.4.4; } }
重要なポイントであり、しばしば誤解され問題につながる可能性がある点は、そのような設定では、最も明示的なポリシーのみが適用されることです。ネイバーレベルのポリシーは、グループレベルのポリシーよりも明示的で、そのグループレベルのポリシーは、グローバルポリシーよりも明示的です。
ネイバー 172.16.2.2 は、send-192.168.20.1 のポリシーにのみ適用されます。ネイバー 172.16.3.3 は何らかのより具体的なものに欠けており、send-192.168.0.1 ポリシーにのみ適用されます。一方、グループ他のグループのネイバー 172.16.4.4 は、グループまたはネイバーレベルのポリシーを持っていないので、send-ダイレクトポリシーを使用します。
ネイバー 172.16.2.2 に 3 つのポリシーすべての機能を実行させる必要がある場合、他の 3 つの機能を含めた新しいネイバーレベルのポリシーを書いて適用するか、既存の 3 つのポリシーすべてをチェーンとして、ネイバー 172.16.2.2 に適用できます。
トポロジー
図 1は、サンプルのネットワークを示しています。
CLIクイック構成は、図 1でのすべてのデバイスの設定を示しています。
セクション#d99e200__d99e454は、デバイス R1 の手順を説明します。
設定
CLIクイック構成
この例をすばやく設定するには、次のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク構成に合わせて必要な詳細を変更し、[edit]
階層レベルのCLIにコマンドをコピー&ペーストしてください。
デバイスR1
set interfaces fe-1/2/0 unit 0 description to-R2 set interfaces fe-1/2/0 unit 0 family inet address 10.10.10.1/30 set interfaces lo0 unit 0 family inet address 172.16.1.1/32 set protocols bgp local-address 172.16.1.1 set protocols bgp export send-direct set protocols bgp group internal-peers type internal set protocols bgp group internal-peers export send-static-192.168.0 set protocols bgp group internal-peers neighbor 172.16.2.2 export send-static-192.168.20 set protocols bgp group internal-peers neighbor 172.16.3.3 set protocols bgp group other-group type internal set protocols bgp group other-group neighbor 172.16.4.4 set protocols ospf area 0.0.0.0 interface lo0.0 passive set protocols ospf area 0.0.0.0 interface fe-1/2/0.0 set policy-options policy-statement send-direct term 1 from protocol direct set policy-options policy-statement send-direct term 1 then accept set policy-options policy-statement send-static-192.168.0 term 1 from protocol static set policy-options policy-statement send-static-192.168.0 term 1 from route-filter 192.168.0.0/24 orlonger set policy-options policy-statement send-static-192.168.0 term 1 then accept set policy-options policy-statement send-static-192.168.20 term 1 from protocol static set policy-options policy-statement send-static-192.168.20 term 1 from route-filter 192.168.20.0/24 orlonger set policy-options policy-statement send-static-192.168.20 term 1 then accept set routing-options static route 192.168.0.1/32 discard set routing-options static route 192.168.20.1/32 discard set routing-options router-id 172.16.1.1 set routing-options autonomous-system 17
デバイスR2
set interfaces fe-1/2/0 unit 0 description to-R1 set interfaces fe-1/2/0 unit 0 family inet address 10.10.10.2/30 set interfaces fe-1/2/1 unit 0 description to-R3 set interfaces fe-1/2/1 unit 0 family inet address 10.10.10.5/30 set interfaces lo0 unit 0 family inet address 172.16.2.2/32 set protocols bgp group internal-peers type internal set protocols bgp group internal-peers local-address 172.16.2.2 set protocols bgp group internal-peers neighbor 172.16.3.3 set protocols bgp group internal-peers neighbor 172.16.1.1 set protocols bgp group internal-peers neighbor 172.16.4.4 set protocols ospf area 0.0.0.0 interface lo0.0 passive set protocols ospf area 0.0.0.0 interface fe-1/2/0.0 set protocols ospf area 0.0.0.0 interface fe-1/2/1.0 set routing-options router-id 172.16.2.2 set routing-options autonomous-system 17
デバイスR3
set interfaces fe-1/2/1 unit 0 description to-R2 set interfaces fe-1/2/1 unit 0 family inet address 10.10.10.6/30 set interfaces fe-1/2/2 unit 0 description to-R4 set interfaces fe-1/2/2 unit 0 family inet address 10.10.10.9/30 set interfaces lo0 unit 0 family inet address 172.16.3.3/32 set protocols bgp group internal-peers type internal set protocols bgp group internal-peers local-address 172.16.3.3 set protocols bgp group internal-peers neighbor 172.16.2.2 set protocols bgp group internal-peers neighbor 172.16.1.1 set protocols bgp group internal-peers neighbor 172.16.4.4 set protocols ospf area 0.0.0.0 interface lo0.0 passive set protocols ospf area 0.0.0.0 interface fe-1/2/1.0 set protocols ospf area 0.0.0.0 interface fe-1/2/2.0 set routing-options router-id 172.16.3.3 set routing-options autonomous-system 17
デバイス R4
set interfaces fe-1/2/2 unit 0 description to-R3 set interfaces fe-1/2/2 unit 0 family inet address 10.10.10.10/30 set interfaces lo0 unit 0 family inet address 172.16.4.4/32 set protocols bgp group internal-peers type internal set protocols bgp group internal-peers local-address 172.16.4.4 set protocols bgp group internal-peers neighbor 172.16.2.2 set protocols bgp group internal-peers neighbor 172.16.1.1 set protocols bgp group internal-peers neighbor 172.16.3.3 set protocols ospf area 0.0.0.0 interface lo0.0 passive set protocols ospf area 0.0.0.0 interface fe-1/2/2.0 set routing-options router-id 172.16.4.4 set routing-options autonomous-system 17
手順
ステップバイステップでの手順
次の例では、設定階層のいくつかのレベルに移動する必要があります。CLI のナビゲーションについては、CLIユーザー・ガイド の コンフィギュレーション・モードでのCLIエディタの使用を参照してください。
IS-IS デフォルトのルート ポリシーを設定します。
デバイスインターフェイスを設定します。
[edit interfaces] user@R1# set fe-1/2/0 unit 0 description to-R2 user@R1# set fe-1/2/0 unit 0 family inet address 10.10.10.1/30 user@R1# set lo0 unit 0 family inet address 172.16.1.1/32
インターフェイス上で、OSPF または別の内部ゲートウェイ プロトコル(IGP)を有効にします。
[edit protocols OSPF area 0.0.0.0] user@R1# set interface lo0.0 passive user@R1# set interface fe-1/2/0.0
スタティックルートを設定します。
[edit routing-options] user@R1# set static route 192.168.0.1/32 discard user@R1# set static route 192.168.20.1/32 discard
ルーティング ポリシーを有効にします。
[edit protocols policy-options] user@R1# set policy-statement send-direct term 1 from protocol direct user@R1# set policy-statement send-direct term 1 then accept user@R1# set policy-statement send-static-192.168.0 term 1 from protocol static user@R1# set policy-statement send-static-192.168.0 term 1 from route-filter 192.168.0.0/24 orlonger user@R1# set policy-statement send-static-192.168.0 term 1 then accept user@R1# set policy-statement send-static-192.168.20 term 1 from protocol static user@R1# set policy-statement send-static-192.168.20 term 1 from route-filter 192.168.20.0/24 orlonger user@R1# set policy-statement send-static-192.168.20 term 1 then accept
BGP を設定し、エクスポート ポリシーを適用します。
[edit protocols bgp] user@R1# set local-address 172.16.1.1 user@R1# set protocols bgp export send-direct user@R1# set group internal-peers type internal user@R1# set group internal-peers export send-static-192.168.0 user@R1# set group internal-peers neighbor 172.16.2.2 export send-static-192.168.20 user@R1# set group internal-peers neighbor 172.16.3.3 user@R1# set group other-group type internal user@R1# set group other-group neighbor 172.16.4.4
ルーター ID と AS(自律システム)番号を設定します。
[edit routing-options] user@R1# set router-id 172.16.1.1 user@R1# set autonomous-system 17
デバイスの設定が完了したら、設定をコミットします。
[edit] user@R1# commit
結果
設定モードから、show interfaces
、show protocols
、show policy-options
、およびshow routing-options
のコマンドを発行して設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の手順を繰り返して設定を修正します。
user@R1# show interfaces fe-1/2/0 { unit 0 { description to-R2; family inet { address 10.10.10.1/30; } } } lo0 { unit 0 { family inet { address 172.16.1.1/32; } } }
user@R1# show protocols bgp { local-address 172.16.1.1; export send-direct; group internal-peers { type internal; export send-static-192.168.0; neighbor 172.16.2.2 { export send-static-192.168.20; } neighbor 172.16.3.3; } group other-group { type internal; neighbor 172.16.4.4; } } ospf { area 0.0.0.0 { interface lo0.0 { passive; } interface fe-1/2/0.0; } }
user@R1# show policy-options policy-statement send-direct { term 1 { from protocol direct; then accept; } } policy-statement send-static-192.168.0 { term 1 { from { protocol static; route-filter 192.168.0.0/24 orlonger; } then accept; } } policy-statement send-static-192.168.20 { term 1 { from { protocol static; route-filter 192.168.20.0/24 orlonger; } then accept; } }
user@R1# show routing-options static { route 192.168.0.1/32 discard; route 192.168.20.1/32 discard; } router-id 172.16.1.1; autonomous-system 17;
検証
設定が正常に機能していることを確認します。
BGP ルートラーニングの検証
目的
ルーティング テーブルを確認して、BGP エクスポート ポリシーが期待通りに機能していることを確認してください。
アクション
user@R1> show route protocol direct inet.0: 11 destinations, 11 routes (11 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 172.16.1.1/32 *[Direct/0] 1d 22:19:47 > via lo0.0 10.10.10.0/30 *[Direct/0] 1d 22:19:47 > via fe-1/2/0.0
user@R1> show route protocol static inet.0: 11 destinations, 11 routes (11 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 192.168.0.1/32 *[Static/5] 02:20:03 Discard 192.168.20.1/32 *[Static/5] 02:20:03 Discard
user@R2> show route protocol bgp inet.0: 11 destinations, 11 routes (11 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 192.168.20.1/32 *[BGP/170] 02:02:40, localpref 100, from 172.16.1.1 AS path: I, validation-state: unverified > to 10.10.10.1 via fe-1/2/0.0
user@R3> show route protocol bgp inet.0: 11 destinations, 11 routes (11 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 192.168.0.1/32 *[BGP/170] 02:02:51, localpref 100, from 172.16.1.1 AS path: I, validation-state: unverified > to 10.10.10.5 via fe-1/2/1.0
user@R4> show route protocol bgp inet.0: 9 destinations, 11 routes (9 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 172.16.1.1/32 [BGP/170] 1d 20:38:54, localpref 100, from 172.16.1.1 AS path: I, validation-state: unverified > to 10.10.10.9 via fe-1/2/2.0 10.10.10.0/30 [BGP/170] 1d 20:38:54, localpref 100, from 172.16.1.1 AS path: I, validation-state: unverified > to 10.10.10.9 via fe-1/2/2.0
意味
デバイス R1 は、コマshow route protocol direct
ンドに 2 つのダイレクト ルートを表示します。172.16.1.1/32 および 10.10.10.0/30 です。show route protocol static
コマンドは、2 つのスタティック ルートを表示します。192.168.0.1/32 および 192.168.20.1/32 です。
デバイス R2 で、show route protocol bgp
コマンドが、デバイス R2 が BGP で学習した唯一のルートが 192.168.20.1/32 ルートであることを示しています。
デバイス R3 で、show route protocol bgp
コマンドが、デバイス R3 が BGP で学習した唯一のルートが 192.168.0.1/32 ルートであることを示しています。
デバイス R4 で、show route protocol bgp
コマンドが、デバイス R4 が BGP で学習した唯一のルートが 172.16.1.1/32 および 10.10.10.0/30 ルートであることを示しています。
BGP ルート受信の検証
目的
デバイス R1 から受信した BGP ルートを確認することで、BGP のエクスポート ポリシーが期待通りに機能していることを確認してください。
アクション
user@R2> show route receive-protocol bgp 172.16.1.1 inet.0: 11 destinations, 11 routes (11 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 192.168.20.1/32 172.16.1.1 100 I
user@R3> show route receive-protocol bgp 172.16.1.1 inet.0: 11 destinations, 11 routes (11 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 192.168.0.1/32 172.16.1.1 100 I
user@R4> show route receive-protocol bgp 172.16.1.1 inet.0: 9 destinations, 11 routes (9 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path 172.16.1.1/32 172.16.1.1 100 I 10.10.10.0/30 172.16.1.1 100 I
意味
デバイス R2 で、route receive-protocol bgp 172.16.1.1
コマンドは、デバイス R2 がデバイス R1 から 1 つの BGP ルート192.168.20.1/32 のみを受け取ったことを示しています。
デバイス R3 で、コマンドroute receive-protocol bgp 172.16.1.1
は、デバイス R3 が デバイス R1 から 1 つの BGP ルート 192.168.0.1/32 のみを受け取ったことを示しています。
デバイスR4で、コマンドroute receive-protocol bgp 172.16.1.1
は、デバイス R4 がデバイス R1 から 2 つの BGP ルート 172.16.1.1/32 および 10.10.10.0/30 を受け取ったことを示しています。
要約すると、BGP の異なる CLI 階層に複数のポリシーが適用される場合、最も具体的なアプリケーションのみが評価され、より非具体的な他のアプリケーションは除外されます。このポイントは理にかなっているように見えますが、ルーターの設定時には忘れられがちです。ネイバーレベルのポリシーがグローバルポリシーまたはグループレベルのポリシーと組み合わされていると勘違いして、ポリシーの動作が予想と異なるのに気づくのです。
例:BGPルーティング・テーブルへのOSPFルートの注入
この例では,BGPルーティング・テーブルにOSPFルートを注入するポリシーを作成する方法を示します。
要件
開始する前に、以下を実行します。
ネットワークインターフェイスの設定
外部ピア・セッションを設定します。変更された手順については、「例:外部 BGP ポイントツーポイント ピア セッションの設定
ピア間のインテリア・ゲートウェイ・プロトコル(IGP)セッションを設定します。
概要
この例では、 injectpolicy1
と呼ばれるルーティング・ポリシーと injectterm1
と呼ばれるルーティング・タームを作成します。ポリシーは、BGPルーティング・テーブルにOSPFルートを注入します。
トポロジー
設定
ルーティング・ポリシーの設定
CLIクイック構成
この例を素早く設定するには、以下のコマンドをコピーしてテキスト・ファイルに貼り付け、改行を削除し、ネットワーク・コンフィギュレーションに合わせて必要な詳細を変更し、[edit]階層レベルのCLIにコマンドをコピー&ペーストし、コンフィギュレーション・モードからcommit
を入力してください。
set policy-options policy-statement injectpolicy1 term injectterm1 from protocol ospf set policy-options policy-statement injectpolicy1 term injectterm1 from area 0.0.0.1 set policy-options policy-statement injectpolicy1 term injectterm1 then accept set protocols bgp export injectpolicy1
ステップバイステップでの手順
次の例では、設定階層のいくつかのレベルに移動する必要があります。CLI のナビゲーションについては、CLIユーザー・ガイド の コンフィギュレーション・モードでのCLIエディタの使用を参照してください。
BGPルーティング・テーブルにOSPFルートをインジェクションするには:
ポリシー・タームを作成します。
[edit policy-options policy-statement injectpolicy1] user@host# set term injectterm1
マッチ・コンディションにOSPFを指定します。
[edit policy-options policy-statement injectpolicy1 term injectterm1] user@host# set from protocol ospf
OSPFエリアからのルートをマッチ条件として指定します。
[edit policy-options policy-statement injectpolicy1 term injectterm1] user@host# set from area 0.0.0.1
前の条件にマッチした場合に、ルートを受け入れることを指定します。
[edit policy-options policy-statement injectpolicy1 term injectterm1] user@host# set then accept
BGPにルーティング・ポリシーを適用します。
[edit] user@host# set protocols bgp export injectpolicy1
結果
コンフィギュレーション・モードからshow policy-options
とshow protocols bgp
というコマンドを入力し、コンフィギュレーションを確認します。出力結果に意図した設定内容が表示されない場合は、この例の手順を繰り返して設定を修正します。
user@host# show policy-options policy-statement injectpolicy1 { term injectterm1 { from { protocol ospf; area 0.0.0.1; } then accept; } }
user@host# show protocols bgp export injectpolicy1;
デバイスの設定が完了したら、設定モードから commit
を入力します。
ルーティング・ポリシーのトレース設定
CLIクイック構成
この例を素早く設定するには、以下のコマンドをコピーしてテキスト・ファイルに貼り付け、改行を削除し、ネットワーク・コンフィギュレーションに合わせて必要な詳細を変更し、[edit]階層レベルのCLIにコマンドをコピー&ペーストし、コンフィギュレーション・モードからcommit
を入力してください。
set policy-options policy-statement injectpolicy1 term injectterm1 then trace set routing-options traceoptions file ospf-bgp-policy-log set routing-options traceoptions file size 5m set routing-options traceoptions file files 5 set routing-options traceoptions flag policy
ステップバイステップでの手順
次の例では、設定階層のいくつかのレベルに移動する必要があります。CLI のナビゲーションについては、CLIユーザー・ガイド の コンフィギュレーション・モードでのCLIエディタの使用を参照してください。
ポリシーにトレース・アクションを含めます。
[edit policy-options policy-statement injectpolicy1 term injectterm1] user@host# then trace
出力するトレース・ファイルを設定します。
[edit routing-options traceoptions] user@host# set file ospf-bgp-policy-log user@host# set file size 5m user@host# set file files 5 user@host# set flag policy
結果
コンフィギュレーション・モードからとというコマshow routing-options
ンドを入力し、コンフィギュレーションshow policy-options
を確認します。出力結果に意図した設定内容が表示されない場合は、この例の手順を繰り返して設定を修正します。
user@host# show policy-options policy-statement injectpolicy1 { term injectterm1 { then { trace; } } }
user@host# show routing-options traceoptions { file ospf-bgp-policy-log size 5m files 5; flag policy; }
デバイスの設定が完了したら、設定モードから commit
を入力します。
検証
トラブルシューティング
BGPルート広告を制御するためのルーティング・ポリシーの設定
すべてのルーティング・プロトコルは、Junos OSルーティング・テーブルを使用して、学習したルートを保存し、プロトコル・パケットの中でどのルートをアドバタイズすべきかを決定します。ルーティング・ポリシーは、ルーティング・プロトコルがルーティング・テーブルに格納するルート、およびルーティング・テーブルから取得するルートを制御することができます。ルーティング・ポリシーについては、「ルーティング・ポリシー、ファイアウォール・フィルタ、およびトラフィック・ポリサー・ユーザーガイド」を参照してください。
BGPルーティング・ポリシーを設定する場合、以下の作業を行うことができます:
- ルーティング・ポリシーの適用
- BGPが非アクティブなルートを告知する設定
- 内部ピアに最適な外部ルートを告知するBGPの設定
- BGPがルーティング・テーブルとルートを交換する頻度の設定
- ルートアドバタイズのサプレッションを無効化
ルーティング・ポリシーの適用
ルーティング・ポリシーは、階[edit policy-options]
層レベルで定義します。BGPに定義したポリシーを適用するには、BGPの設定内にandステートexport
メントimport
を含めます。
ポリシーは、以下のように適用できます:
BGPグローバル
import
およびexport
ステートメント-これらのステートメントを階[edit protocols bgp]
層レベルに含める(ルーティング・インスタンスの場合、これらのステートメントを階[edit routing-instances routing-instance-name protocols bgp]
層レベルに含める)。export
グループimport
およびステートメント-これらのステートメントを階[edit protocols bgp group group-name]
層レベルに含める(ルーティング・インスタンスの場合、これらのステートメントを階[edit routing-instances routing-instance-name protocols bgp group group-name]
層レベルに含める)。export
ピアimport
およびステートメント-これらのステートメントを階[edit protocols bgp group group-name neighbor address]
層レベルに含める(ルーティング・インスタンスの場合は、これらのステートメントを階[edit routing-instances routing-instance-name protocols bgp group group-name neighbor address]
層レベルに含める)。
ピアレベルのorステートexport
メントimport
は、グループのorステートexport
メントを上書きimport
します。グループレベルのorステートexport
メントimport
は、グローバルなBGPのorステートexport
メントを上書きimport
します。
ポリシーを適用するには、次のセクションを参照してください:
BGPからルーティング・テーブルにインポートされるルートへのポリシーの適用
BGP からルーティング・テーブルにインポートされるルートにポリシーを適用するには、評価された1つ以上のポリシーの名前を列挙したステートimport
メントを含めます:
import [ policy-names ];
このステートメントを含めることができる階層レベルの一覧は、このステートメントのステートメント概要のセクションを参照してください。
複数のポリシーを指定した場合は、指定した最初から最後の順序で評価され、最初に一致したフィルタがルートに適用されます。一致しない場合,BGPはBGPルーティング・デバイスから学習したルートだけをルーティング・テーブルに配置します。
ルーティング・テーブルからBGPにエクスポートされるルートへのポリシーの適用
ルーティング・テーブルから BGP にエクスポートされるルートにポリシーを適用するには,評価された1つ以上のポリシーの名前を列挙したステートexport
メントを含めます:
export [ policy-names ];
このステートメントを含めることができる階層レベルの一覧は、このステートメントのステートメント概要のセクションを参照してください。
複数のポリシーを指定した場合は、指定した最初から最後の順序で評価され、最初に一致したフィルタがルートに適用されます。フィルタに一致するルートがない場合,ルーティング・テーブルは,BGPから学習したルートだけをBGPにエクスポートします。
BGPが非アクティブなルートを告知する設定
デフォルトでは、BGPはアップデート・メッセージから受け取ったルート情報をJunos OSのルーティング・テーブルに格納し、ルーティング・テーブルはアクティブなルートのみをBGPにエクスポートし、BGPはそれをピアにアドバタイズします。Junos OSがアクティブなルートとして選択しなかった場合でも、BGPによって学習された最良のルートをBGPへとルーティング・テーブルにエクスポートさせるには、次のステートadvertise-inactive
メントを含めます:
advertise-inactive;
このステートメントを含めることができる階層レベルの一覧は、このステートメントのステートメント概要のセクションを参照してください。
内部ピアに最適な外部ルートを告知するBGPの設定
一般に、デプロイされたBGP実装においては、ローカル・プリファレンス値が最も高い外部ルートは、それが最良のルートでない限り、内部ピアにアドバタイズされません。この動作は、BGPバージョン4仕様の以前のバージョンであるRFC1771で要求されていましたが、アドバタイズされる情報量を最小限に抑え、ルーティング・ループを防ぐために、通常、順守されていませんでした。しかし、最適な外部ルートをアドバタイズすることが有益なシナリオでもあります。特に、IBGPルートの発振が発生する可能性のある状況について説明します。
Junos OS Release 9.3以降では、最適なルートが内部ルートである場合でも、内部BGP(IBGP)メッシュ・グループ、ルート・リフレクタ・クラスタ、または自律システム(AS)連合に最適な外部ルートを広告するようにBGPを設定することができます。
ルート・リフレクタにステートadvertise-external
メントを設定するためには,ステートno-client-reflect
メントでクラスタ内リフレクションを無効にする必要があります。
ルーティング・デバイスがクラスタのルート・リフレクタとして設定されている場合,ルート・リフレクタが広告するルートは,同じクラスタ識別子を持つ内部ピアから受信するか,両方のピアにクラスタ識別子が設定されていなければ内部ルートとみなされます。内部ピアから受信した,別のクラスタに属する,つまりクラスタ識別子の異なるルートは,外部ルートとみなされます。
コンフェデレーションでは、コンフェデレーション境界ルーターに対してルートをアドバタイズする場合、別のコンフェデレーションサブASからのルートは外部と見なされます。
また,ルート選択プロセスでMultiple Exit Discriminator(MED)メトリックを評価する地点に到達した場合のみ,外部ルートを広告するようにBGPを設定することも可能です。その結果、アクティブパスの外部ルートより悪い(つまり長い)ASパスを持つ外部ルートはアドバタイズされません。
Junos OSは、広告されたルートの状態にマッチするBGPエクスポート・ポリシーの設定もサポートしています。アクティブまたは非アクティブなルートでマッチングすることができます。詳細については、「ルーティングポリシー、ファイアウォールフィルター、およびトラフィックポリサーユーザーガイド」を参照してください。
BGPが内部ピアに最適な外部パスを広告するように設定するには、次のステートadvertise-external
メントを含めます:
advertise-external;
このステートadvertise-external
メントは、グループとネイバーレベルの両方でサポートされています。ネイバーレベルでステートメントを設定する場合、グループ内のすべてのネイバーに設定する必要があります。そうでない場合は、グループは自動的に別のグループに分割されます。
このステートメントを設定できる階層レベルの完全なリストについては、このステートメントに関するステートメント要約セクションを参照してください。
BGPがルート選択プロセスでMED値を評価する地点に到達した際においてのみ,最適な外部パスを広告するように設定する場合は,以下のステートconditional
メントを含みます:
advertise-external { conditional; }
BGPがルーティング・テーブルとルートを交換する頻度の設定
BGPはアップデート・メッセージから受け取ったルート情報をルーティング・テーブルに格納し、ルーティング・テーブルからアクティブなルートをBGPにエクスポートします。そして、BGPはエクスポートされたルートをピアに広告します。デフォルトでは,BGPとルーティング・テーブル間のルート情報の交換は,ルートを受信した直後に行われます。このように、ルート情報を即座に交換すると、ネットワークの到達性情報が不安定になる可能性があります。これを防ぐために、BGPとルーティング・テーブルがルート情報を交換するまでの時間を遅らせることができます。
BGPとルーティング・テーブルがルート情報を交換する頻度を設定する場合は、以下のステートout-delay
メントを含めます:
out-delay seconds;
デフォルトでは,ルーティング・テーブルにはBGPから学習したルート情報の一部が保持されています。ルーティング・テーブルがこの情報をすべて保持するか、或いはまったく保持しないようにするには、このステートkeep
メントを含めます:
keep (all | none);
これらのステートメントを含めることができる階層レベルの一覧は、これらのステートメントのステートメント概要セクションを参照してください。
ルーティング・テーブルには,次のいずれかの方法でBGPから学習したルート情報を保持することができます:
デフォルト(記
keep
述を省略)-ASパスがループしているルートで,そのループにローカルASが含まれるルートを除き,BGPから学習したすべてのルート情報を保持します。keep all
-BGPから学習したすべてのルート情報を保持します。keep none
-ピアから受信したルートのうち,ASパスやネクスト・ホップなどのインポート・ポリシーやその他のサニティ・チェックによって拒否されたルートを破棄します。BGPセッションの設定を行い、受信ポリシーが変更されると、Junos OSはピアによってアドバタイズされたルートのフルセットの再アドバタイズkeep none
を強制します。
ASパス・ヒーリングの状況において,ループしたパスを持つルートは,理論的にはソフト・リコンフィギュレーション時にASパスループ制限を変更することで使用可能になる可能性があります。しかし、デフォルトとではメモリ使用量に大きな差がありますkeep all
。
以下のようなシナリオを考えてみましょう:
ピアは、ルートを学習したピアにそれを再アドバタイズします。
次のような場合に発生する可能性があります:
別のベンダーのルーティング・デバイスは、送信ピアに戻るルートをアドバタイズします。
送信側ピアにルートを再広告しないというJunos OSピアのデフォルトの動作は、
advertise-peer-as
を設定することで上書きされます。
プロバイダエッジ(PE)ルーティング・デバイスは、期待されるルート・ターゲットのいずれかを持たないVPNルートを破棄します。
keep all
を設定すると、上記のシナリオで受信したルートを破棄する動作が上書きされます。
ルートアドバタイズのサプレッションを無効化
Junos OSは、あるEBGPピアから学習した経路を同じ外部BGP(EBGP)ピアに戻してアドバタイズすることはありません。また,ルーティング・インスタンスに関係なく,ソフトウェアは、送信元ピアと同じASにあるEBGPピアには、それらのルートをアドバタイズし直さないようにしています。コンフィギュレーションにこのステートadvertise-peer-as
メントを含めることで、この動作を変更することができます。デフォルトのアドバタイズ抑制を無効にするには、このadvertise-peer-as
というステートメントを含めます。
advertise-peer-as;
コンフィグレーションにこのas-override
というステートメントが含まれる場合、ルート抑止のデフォルト動作は無効になります。
コンフィグレーションにこのadvertise-peer-as
というステートメントを含めると,BGPはこのチェックに関係なくルートをアドバタイズします。
デフォルトの動作に戻すには、コンフィギュレーションにこのno-advertise-peer-as
というステートメントを含めます:
no-advertise-peer-as;
as-override
およびという両方のステートno-advertise-peer-as
メントをコンフィギュレーションに含めると、このというステートno-advertise-peer-as
メントは無視されます。これらのステートメントは、複数の階層に含めることができます。
これらのステートメントを含めることができる階層レベルの一覧は、これらのステートメントに関するステートメント概要セクションを参照してください。
関連項目
例:内部ピアに最適な外部ルートを告知するルーティングポリシーの設定
RFC1771で規定されているBGPプロトコル仕様では、BGPピアは、総合的に最適なルートでなくても(言い換えれば、最適なルートが内部経路であっても)、より優先度の高い外部ルートを内部ピアにアドバタイズすることが定められています。実際のところ、デプロイされたBGP実装はこのルールに従いません。使用から逸脱する理由は、以下のとおりです:
アドバタイズされた情報量を最小限に抑える。BGPが、利用可能なパスの数に応じてスケーリングする。
ルーティングと転送ループを回避する。
しかし、RFC1771で規定されている「最適な外部ルートを広告する」という動作が有益となるシナリオがいくつかあります。パス情報を制限することは、パス多様性が復元時間を削減する可能性があるため、必ずしも望ましくありません。また、最適な外部パスをアドバタイズすると、RFC3345、Border Gateway Protocol(BGP)永続ルート発振条件に記載されているように、内部BGP(IBGP)ルート発振の問題に対応することができます。
ステートadvertise-external
メントは、BGPスピーカーの動作を変更し、最適な総合パスが内部パスであっても、IBGPピアに最適な外部パスをアドバタイズします。
このステートadvertise-external
メントは、グループとネイバーレベルの両方でサポートされています。ネイバーレベルでステートメントを設定する場合、グループ内のすべてのネイバーに設定する必要があります。そうでない場合は、グループは自動的に別のグループに分割されます。
conditional
オプションは、ルート選択プロセスが、複数出口識別子(MED)メトリックが評価された場合のみに限り、外部ルートがアドバタイズされるよう、advertise-external
設定の動作を制限します。そのため、例えばASパスがアクティブパスよりもより悪い(長い)場合、外部ルートはアドバタイズされません。conditional
オプションは、最適な外部パスとアクティブなパスが等しい場合に、外部パスのアドバタイズメントをルート選択プロセスのMEDステップまで制限します。最適な外部パスを選択するのに使用される基準は、conditional
オプションがどのように設定されていても同じであることに注意してください。
Junos OSは、広告されたルートの状態にマッチするBGPエクスポートポリシーの設定もサポートしています。以下のように、アクティブまたは非アクティブなルートのいずれかを次のようにマッチすることができます。
policy-options { policy-statement name{ from state (active|inactive); } }
この修飾子は、エクスポートポリシーのコンテキストで使用される場合にのみマッチします。非アクティブなルートを広告できるプロトコルによってルートがアドバタイズされる場合、state inactive
はadvertise-inactive
とadvertise-external
ステートメントの結果としてアドバタイズされたルートに一致します。
例えば、以下の設定は、ユーザー定義コミュニティーとのadvertise-external
設定によりアドバタイズされたルートをマークするために、内部ピアに対するBGPへのBGPエクスポートポリシーとして使用できます。そのコミュニティーは、受信ルーターで使用し、転送テーブルからそのルートをフィルターして除外することができます。そういったメカニズムを使うことで、送信者によって転送用に使用されないアドバタイズパスが転送ループにつながるのではないかという懸念に対応できます。
user@host# show policy-options policy-statement mark-inactive { term inactive { from state inactive; then { community set comm-inactive; } } term default { from protocol bgp; then accept; } then reject; } community comm-inactive members 65536:65284;
要件
Junos OS 9.3以降が必要です。
概要
この例では、3つのルーティングデバイスを示しています。デバイスR2には、デバイスR1への外部BGP(EBGP)接続があります。デバイスR2には、デバイスR3へのIBGP接続があります。
デバイスR1は、172.16.6.0/24をアドバタイズします。デバイスR2は、デバイスR1のルートのインポートポリシーでローカルプリファレンスを設定する必要はありません。そのため、172.16.6.0/24では100がデフォルトループです。
デバイスR3は、200のローカルプリファレンスで172.16.6.0/24をアドバタイズします。
advertise-external
ステートメントがデバイスR2で設定されていない場合、172.16.6.0/24はデバイスR2によってデバイスR3に対してアドバタイズされません。
advertise-external
ステートメントがデバイスR2で設定されている場合、172.16.6.0/24はデバイスR2によってデバイスR3に対してアドバタイズされます。
デバイスR3へのセッションのデバイスR2で設定advertise-external conditional
されている場合、172.16.6.0/24はデバイスR2によってデバイスR3に対してアドバタイズされません。デバイスR3でthen local-preference 200
設定を削除し、デバイスR2にpath-selection as-path-ignore
設定を追加する(そのため、ルート選択プロセスのMEDステップまでパス選択基準を同一にする)場合、172.16.6.0/24はデバイスR2によってデバイスR3に対してアドバタイズされます。
ルートリフレクタでadvertise-external
ステートメントを設定するには、no-client-reflect
ステートメントでクラスタ内リフレクションを無効にする必要があり、クライアントクラスタは、冗長ルートアドバタイズメントの送信を防止するために完全にメッシュ化する必要があります。
ルーティング・デバイスがクラスタのルート・リフレクタとして設定されている場合,ルート・リフレクタが広告するルートは,同じクラスタ識別子を持つ内部ピアから受信するか,両方のピアにクラスタ識別子が設定されていなければ内部ルートとみなされます。内部ピアから受信した,別のクラスタに属する,つまりクラスタ識別子の異なるルートは,外部ルートとみなされます。
トポロジー
図 2は、サンプルのネットワークを示しています。
CLIクイック構成は、図 2でのすべてのデバイスの設定を示しています。
セクション#d102e163__d102e341は、デバイスR2の手順を説明します。
設定
CLIクイック構成
この例をすばやく設定するには、次のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク構成に合わせて必要な詳細を変更し、[edit]
階層レベルのCLIにコマンドをコピー&ペーストしてください。
デバイスR1
set interfaces fe-1/2/0 unit 0 description to-R2 set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.1/30 set interfaces lo0 unit 0 family inet address 192.168.0.1/32 set protocols bgp group ext type external set protocols bgp group ext export send-static set protocols bgp group ext peer-as 200 set protocols bgp group ext neighbor 10.0.0.2 set policy-options policy-statement send-static term 1 from protocol static set policy-options policy-statement send-static term 1 from route-filter 172.16.6.0/24 exact set policy-options policy-statement send-static term 1 then accept set policy-options policy-statement send-static term 2 then reject set routing-options static route 172.16.6.0/24 reject set routing-options router-id 192.168.0.1 set routing-options autonomous-system 100
デバイスR2
set interfaces fe-1/2/0 unit 0 description to-R1 set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.2/30 set interfaces fe-1/2/1 unit 0 description to-R3 set interfaces fe-1/2/1 unit 0 family inet address 10.0.0.5/30 set interfaces lo0 unit 0 family inet address 192.168.0.2/32 set protocols bgp group ext type external set protocols bgp group ext peer-as 100 set protocols bgp group ext neighbor 10.0.0.1 set protocols bgp group int type internal set protocols bgp group int local-address 192.168.0.2 set protocols bgp group int advertise-external set protocols bgp group int neighbor 192.168.0.3 set protocols ospf area 0.0.0.0 interface fe-1/2/1.0 set protocols ospf area 0.0.0.0 interface lo0.0 passive set routing-options router-id 192.168.0.2 set routing-options autonomous-system 200
デバイスR3
set interfaces fe-1/2/0 unit 6 family inet address 10.0.0.6/30 set interfaces lo0 unit 0 family inet address 192.168.0.3/32 set protocols bgp group int type internal set protocols bgp group int local-address 192.168.0.3 set protocols bgp group int export send-static set protocols bgp group int neighbor 192.168.0.2 set protocols ospf area 0.0.0.0 interface fe-1/2/0.6 set protocols ospf area 0.0.0.0 interface lo0.0 passive set policy-options policy-statement send-static term 1 from protocol static set policy-options policy-statement send-static term 1 then local-preference 200 set policy-options policy-statement send-static term 1 then accept set routing-options static route 172.16.6.0/24 reject set routing-options static route 0.0.0.0/0 next-hop 10.0.0.5 set routing-options autonomous-system 200
手順
ステップバイステップでの手順
次の例では、設定階層内のさまざまなレベルに移動する必要があります。CLIのナビゲーションについては、Junos OS CLIユーザーガイドの 設定モードでCLIエディターを使用する を参照してください。
デバイスR2 を設定するには:
デバイスインターフェイスを設定します。
[edit interfaces] user@R2# set fe-1/2/0 unit 0 description to-R1 user@R2# set fe-1/2/0 unit 0 family inet address 10.0.0.2/30 user@R2# set fe-1/2/1 unit 0 description to-R3 user@R2# set fe-1/2/1 unit 0 family inet address 10.0.0.5/30 user@R2# set lo0 unit 0 family inet address 192.168.0.2/32
OSPFまたは別の内部ゲートウェイプロトコル(IGP)を設定します。
[edit protocols ospf area 0.0.0.0] user@R2# set interface fe-1/2/1.0 user@R2# set interface lo0.0 passive
デバイスR1へのEBGP接続を設定します。
[edit protocols bgp group ext] user@R2# set type external user@R2# set peer-as 100 user@R2# set neighbor 10.0.0.1
デバイスR3へのIBGP接続を設定します。
[edit protocols bgp group int] user@R2# set type internal user@R2# set local-address 192.168.0.2 user@R2# set neighbor 192.168.0.3
IBGPグループピアリングセッションに
advertise-external
ステートメントを追加します。[edit protocols bgp group int] user@R2# set advertise-external
自律システム(AS)番号とルーターIDを設定します。
[edit routing-options ] user@R2# set router-id 192.168.0.2 user@R2# set autonomous-system 200
結果
設定モードから、show interfaces
、show protocols
、show policy-options
、およびshow routing-options
のコマンドを入力して設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の手順を繰り返して設定を修正します。
user@R2# show interfaces fe-1/2/0 { unit 0{ description to-R1; family inet { address 10.0.0.2/30; } } } fe-1/2/1 { unit 0 { description to-R3; family inet { address 10.0.0.5/30; } } } lo0 { unit 0 { family inet { address 192.168.0.2/32; } } }
user@R2# show protocols bgp { group ext { type external; peer-as 100; neighbor 10.0.0.1; } group int { type internal; local-address 192.168.0.2; advertise-external; neighbor 192.168.0.3; } } ospf { area 0.0.0.0 { interface fe-1/2/1.0; interface lo0.0 { passive; } } }
user@R2# show routing-options router-id 192.168.0.2; autonomous-system 200;
デバイスの設定が完了したら、設定モードから commit
を入力します。
検証
設定が正常に機能していることを確認します。
BGPアクティブパスの検証
目的
デバイスR2では、172.16.6.0/24プレフィックスがルーティングテーブルに存在することを確認します。
アクション
user@R2> show route 172.16.6 inet.0: 8 destinations, 9 routes (8 active, 1 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 172.16.6.0/24 *[BGP/170] 00:00:07, localpref 200, from 192.168.0.3 AS path: I, validation-state: unverified > to 10.0.0.6 via fe-1/2/1.0 [BGP/170] 03:23:03, localpref 100 AS path: 100 I, validation-state: unverified > to 10.0.0.1 via fe-1/2/0.0
意味
デバイスR2は、デバイスR1とデバイスR3の両方から172.16.6.0/24ルートを受信します。デバイスR3からのルートは、アスタリスク(*)によって指定されたように、アクティブなパスです。アクティブなパスには、ローカルプリファレンスがあります。2つのルートのローカルプリファレンスが等しい場合でも、デバイスR3からのルートは、ASパスが最短であるため、アクティブなままになります。
外部ルートアドバタイズメントの検証
目的
デバイスR2では、172.16.6.0/24ルートがデバイスR3に対してアドバタイズされていることを確認します。
アクション
user@R2> show route advertising-protocol bgp 192.168.0.3 inet.0: 8 destinations, 9 routes (8 active, 1 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path 172.16.6.0/24 10.0.0.1 100 100 I
意味
デバイスR2は、デバイスR3に対して172.16.6.0/24ルートをアドバタイズしています。
デバイスR3でのルートの検証
目的
172.16.6.0/24プレフィックスがデバイスR3のルーティングテーブルに存在することを確認します。
アクション
user@R3> show route 172.16.6.0/24 inet.0: 7 destinations, 8 routes (7 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 172.16.6.0/24 *[Static/5] 03:34:14 Reject [BGP/170] 06:34:43, localpref 100, from 192.168.0.2 AS path: 100 I, validation-state: unverified > to 10.0.0.5 via fe-1/2/0.6
意味
デバイスR3には、172.16.6.0/24に対する静的ルートとBGPルートがあります。
ルートが到達可能ではない場合、またはNexthopが解決できない場合、BGPルートがデバイスR3では非表示になっていることに注意してください。この要件を満たすために、この例ではデバイスR3(static route 0.0.0.0/0 next-hop 10.0.0.5
)の静的デフォルトルートを含めています。
条件付きオプションでの実験
目的
BGPパス選択アルゴリズムのコンテキストで、conditional
オプションがどのように機能するかをご覧ください。
アクション
デバイスR2で、
conditional
オプションを追加します。[edit protocols bgp group int] user@R2# set advertise-external conditional user@R2# commit
デバイスR2では、172.16.6.0/24ルートがデバイスR3に対してアドバタイズされているかどうかを確認します。
user@R2> show route advertising-protocol bgp 192.168.0.3
予想通り、ルートはもうアドバタイズされなくなります。この結果が出るまでには数秒かかる場合があります。
デバイスR3で、
then local-preference
ポリシーアクションを無効にします。[edit policy-options policy-statement send-static term 1] user@R3# deactivate logical-systems R3 then local-preference user@R3# commit
デバイスR2で、2つのパスのローカルプリファレンスが等しいことを確認します。
user@R2> show route 172.16.6.0/24 inet.0: 8 destinations, 9 routes (8 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 172.16.6.0/24 *[BGP/170] 08:02:59, localpref 100 AS path: 100 I, validation-state: unverified > to 10.0.0.1 via fe-1/2/0.0 [BGP/170] 00:07:51, localpref 100, from 192.168.0.3 AS path: I, validation-state: unverified > to 10.0.0.6 via fe-1/2/1.0
デバイスR2で、ステート
as-path-ignore
メントを追加します。[edit protocols bgp] user@R2# set path-selection as-path-ignore user@R2# commit
デバイスR2では、172.16.6.0/24ルートがデバイスR3に対してアドバタイズされているかどうかを確認します。
user@R2> show route advertising-protocol bgp 192.168.0.3 inet.0: 8 destinations, 9 routes (8 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 172.16.6.0/24 10.0.0.1 100 100 I
想定のとおり、ASパス長が無視され、かつローカルの基本設定が同じになるため、ルートがアドバタイズされます。
例:BGPプレフィックスベースのアウトバウンド・ルート・フィルタリングの設定
この例では、ジュニパー・ネットワーク・ルーターがリモート・ピアからルート・フィルターを受 け取り、受け取ったフィルターを使用してアウトバウンド・ルート・フィルタリングを実行 するように設定する方法を示しています。
要件
開始する前に、以下を実行します。
ルーター・インターフェイスを設定します。
内部ゲートウェイプロトコル(IGP)を設定します。
概要
BGPピアは、リモート・ピアからルート・フィルタを受け取り、受け取ったフィルタを使用してアウトバウンド・ルート・フィルタリングを実行するように設定することができます。不要なアップデートをフィルタリングすることで、送信ピアはアップデートの作成と送信に必要なリソースを節約し、受信ピアはアップデートの処理に必要なリソースを削減することができます。この機能は、例えば、仮想プライベート・ネットワーク(VPN)において、Customer Edge(CE)デバイスのサブセットがVPN内のすべてのルートを処理できない場合に有効です。CEデバイスは、プレフィックスベースのアウトバウンド・ルート・フィルタリングを使用して、メイン・データ・センターへのルートのみとするなど、ルートのサブセットのみを送信するようにプロバイダ・エッジ(PE)ルーティング・デバイスに通信することができます。
BGPピアが受け入れることができるプレフィックスベースのアウトバウンド・ルート・フィルタの最大数は5000です。リモート・ピアがピア・アドレスに5000を超えるアウトバウンド・ルート・フィルタを送信した場合、追加フィルタは破棄され,システム・ログ・メッセージが作成されます。
ルーティング・デバイス全体,または特定のBGPグループやピアに対してのみ相互運用性を設定できます。
トポロジー
サンプル・ネットワークでは、デバイスCE1が他社製のルータとなります。この例で示すコンフィギュレーションは、ジュニパー・ネットワーク・ルータPE1上でのものです。
図 3は、サンプルのネットワークを示しています。
設定
CLIクイック構成
この例をすばやく設定するには、次のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク構成に合わせて必要な詳細を変更し、[edit]
階層レベルのCLIにコマンドをコピー&ペーストしてください。
PE1
set protocols bgp group cisco-peers type external set protocols bgp group cisco-peers description “to CE1” set protocols bgp group cisco-peers local-address 192.168.165.58 set protocols bgp group cisco-peers peer-as 35 set protocols bgp group cisco-peers outbound-route-filter bgp-orf-cisco-mode set protocols bgp group cisco-peers outbound-route-filter prefix-based accept inet set protocols bgp group cisco-peers neighbor 192.168.165.56 set routing-options autonomous-system 65500
手順
ステップバイステップでの手順
次の例では、設定階層内のさまざまなレベルに移動する必要があります。CLIのナビゲーションについては、Junos OS CLIユーザーガイドの 設定モードでCLIエディターを使用する を参照してください。
ルーターPE1がデバイスCE1からのルート・フィルターを受信し、受信したフィルターを使用してアウトバウンド・ルート・フィルタリングを実行するように設定するためには:
ローカルの自律システムを設定します。
[edit routing-options] user@PE1# set autonomous-system 65500
デバイスCE1との外部ピアリングを設定します。
[edit protocols bgp group cisco-peers] user@PE1# set type external user@PE1# set description “to CE1” user@PE1# set local-address 192.168.165.58 user@PE1# set peer-as 35 user@PE1# set neighbor 192.168.165.56
ルーターPE1 がデバイス CE1 からの IPv4 ルート・フィルターを受信し、受信したフィルターを使用してアウトバウンド・ルート・フィルタリングを実行するように設定します。
[edit protocols bgp group cisco-peers] user@PE1# set outbound-route-filter prefix-based accept inet
(オプション)アウトバウンド・ルート・フィルタにベンダ固有の互換コード130を使用し,コード・タイプ128を使用するルーティング・デバイスとの相互運用性を可能にします。
IANA標準コードは 3、標準コードタイプは64となります。
[edit protocols bgp group cisco-peers] user@PE1# set outbound-route-filter bgp-orf-cisco-mode
結果
設定モードから、show protocols
および show routing-options
コマンドを入力して設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の手順を繰り返して設定を修正します。
user@PE1# show protocols group cisco-peers { type external; description “to CE1”; local-address 192.168.165.58; peer-as 35; outbound-route-filter { bgp-orf-cisco-mode; prefix-based { accept { inet; } } } neighbor 192.168.165.56; }
user@PE1# show routing-options autonomous-system 65500;
デバイスの設定が完了したら、設定モードから commit
を入力します。
検証
設定が正常に機能していることを確認します。
アウトバウンド・ルート・フィルタの検証
目的
デバイスCE1から受信したプレフィックスベースのアウトバウンド・ルート・フィルタの情報を表示します。
アクション
動作モードからshow bgp neighbor orf detail
コマンドを入力します。
user@PE1> show bgp neighbor orf 192.168.165.56 detail Peer: 192.168.165.56 Type: External Group: cisco-peers inet-unicast Filter updates recv: 4 Immediate: 0 Filter: prefix-based receive Updates recv: 4 Received filter entries: seq 10 2.2.0.0/16 deny minlen 0 maxlen 0 seq 20 3.3.0.0/16 deny minlen 24 maxlen 0 seq 30 4.4.0.0/16 deny minlen 0 maxlen 28 seq 40 5.5.0.0/16 deny minlen 24 maxlen 28
BGPネイバーモードの検証
目的
show bgp neighbor
というコマンド出力にORFCiscoMode
というオプションが表示されていることを確認し、ピアに関するbgp-orf-cisco-mode
という設定が有効になっていることを検証します。
アクション
動作モードからshow bgp neighbor
コマンドを入力します。
user@PE1> show bgp neighbor Peer: 192.168.165.56 AS 35 Local: 192.168.165.58 AS 65500 Type: External State: Active Flags: <> Last State: Idle Last Event: Start Last Error: None Export: [ adv_stat ] Options: <Preference LocalAddress AddressFamily PeerAS Refresh> Options: <ORF ORFCiscoMode> Address families configured: inet-unicast Local Address: 192.168.165.58 Holdtime: 90 Preference: 170 Number of flaps: 0 Trace options: detail open detail refresh Trace file: /var/log/orf size 5242880 files 20
パケット・トランスポート・ルータ(PTXシリーズ)のデフォルトBGPルーティング・ポリシーの理解
PTXシリーズ・パケット・トランスポート・ルーターでは、デフォルトのBGPルーティング・ポリシーが他のJunos OSルーティング・デバイスと異なります。
PTXシリーズ・ルーターは、通常インテリア・ゲートウェイ・プロトコル(IGP)ルートを使用してIP転送を行うMPLSトランジット・プラットフォームとなります。PTXシリーズのパケット転送エンジンは、比較的少数の可変長プレフィックスに対応できます。
PTXシリーズ・ルーターは、コントロール・プレーンでフルBGPルートをサポートし、ルート・リフレクター(RR)として使用することができます。正確な長さのルックアップによるマルチキャスト転送が可能で、ユニキャスト制御プレーンが使用するマルチキャスト転送プレーンを構築できます(たとえば、マルチキャストのリバースパス転送ルックアップを実行する場合などです)。
PFEの制限を考えると、PTX シリーズ・ルーターのデフォルト・ルーティング・ポリシーは、BGPルートが転送テーブルにインストールされないことです。デフォルト・ルーティング・ポリシーを上書きして、特定のBGPルートを選択し、転送テーブルにインストールすることができます。
PTXシリーズ・ルーターでの負荷分散およびBGPルートのデフォルトの動作は次のとおりです。以下のような好ましい特性を備えています:
デフォルト・ポリシーを直接変更することなく、デフォルトの動作を上書きできるようにします
デフォルトを無効化するような偶発的な変更の可能性を低減します
アクセプトやリジェクトなどのフロー制御アクションを設定しません
PTXシリーズ・ルーターのデフォルト・ルーティング・ポリシーは次のとおりです:
user@host# show policy-options | display inheritance defaults no-comments policy-options { policy-statement junos-ptx-series-default { term t1 { from { protocol bgp; rib inet.0; } then no-install-to-fib; } term t2 { from { protocol bgp; rib inet6.0; } then no-install-to-fib; } term t3 { then load-balance per-packet; } } } routing-options { forwarding-table { default-export junos-ptx-series-default; } } user@host# show routing-options forwarding-table default-export | display inheritance defaults no-comments default-export junos-ptx-series-default;
ここに示すように、 junos-ptx-series-default
というポリシーは、 [edit policy-options]
で定義されています。このポリシーは、default-export
というステートメントを使用して、[edit routing-options forwarding-table]
で適用されます。これらのデフォルトのコンフィギュレーションは、| display inheritance
というフラグを使用することで確認できます。
また、このshow policy
というコマンドを使用すると、デフォルト・ポリシーを表示することができます。
user@host> show policy junos-ptx-series-default Policy junos-ptx-series-default: Term t1: from proto BGP inet.0 then install-to-fib no Term t2: from proto BGP inet6.0 then install-to-fib no Term t3: then load-balance per-packet
junos-ptx-series-default
というルーティング・ポリシーを直接変更しないことを強くお勧めします。
Junos OSは、そのjunos-ptx-series-default
ポリシーと、ユーザーが設定したエクスポート・ポリシーを連鎖させます。junos-ptx-series-default
というポリシーはフロー制御アクションを使用しないため,設定したエクスポート・ポリシーは,すべてのルートに対して(暗示的ネクストポリシーのアクションによって)実行されます.したがって、junos-ptx-series-default
というポリシーによって設定されたアクションを上書きすることができます。エクスポート・ポリシーを設定しない場合、junos-ptx-series-default
ポリシーで設定されたアクションのみがアクションとなります。
ポリシー・アクションを使用して、install-to-fib
というポリシー・アクションを使用して、no-install-to-fib
というアクションを上書きすることができます。
同様に、 load-balance per-prefix
というアクションを load-balance per-packet
というアクションに上書きするように設定することもできます。
関連項目
例:PTX シリーズパケットトランスポートルーターのデフォルト BGP ルーティングポリシーの上書き
この例では、PTX シリーズパケットトランスポートルーターなどで、デフォルトのルーティングポリシーを上書きする方法を示しています。
要件
この例では、Junos OS Release 12.1 以降が必要です。
概要
デフォルトでは、PTX シリーズルーターは、転送テーブルに BGP ルートをインストールしません。
PTX シリーズルーターでは、アクthen accept
ションでfrom protocols bgp
条件を設定しても、他の Junos OS ルーティングデバイスのような通常の結果にはなりません。PTX シリーズルーター上で、以下のルーティングポリシーを設定すると、BGP ルートは転送テーブルにインストールされません。
user@host# show policy-options policy-statement accept-no-install { term 1 { from protocol bgp; then accept; } } user@host# show routing-options forwarding-table { export accept-no-install; }
user@host> show route forwarding-table Routing table: default.inet Internet: Destination Type RtRef Next hop Type Index NhRef Netif default perm 0 rjct 36 2
転送テーブルに BGP ルートはインストールされていません。これは予期される動作です。
この例では、のアクthen install-to-fib
ションを使用して、デフォルトの BGP ルーティングポリシーを効果的に上書きする方法を示しています。
設定
CLIクイック構成
この例をすばやく設定するには、次のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク構成に合わせて必要な詳細を変更し、[edit]
階層レベルのCLIにコマンドをコピー&ペーストしてください。
set policy-options prefix-list install-bgp 66.0.0.1/32 set policy-options policy-statement override-ptx-series-default term 1 from prefix-list install-bgp set policy-options policy-statement override-ptx-series-default term 1 then load-balance per-prefix set policy-options policy-statement override-ptx-series-default term 1 then install-to-fib set routing-options forwarding-table export override-ptx-series-default
選択した BGP ルートを転送テーブルにインストール
ステップバイステップでの手順
次の例では、設定階層のいくつかのレベルに移動する必要があります。CLIのナビゲーションについては、Junos OS CLIユーザーガイドの 設定モードでCLIエディターを使用する を参照してください。
選択した BGP ルートを転送テーブルにインストールするには、次の手順に従います:
転送テーブルにインストールするプレフィックス一覧を設定します。
[edit policy-options prefix-list install-bgp] user@host# set 66.0.0.1/32
ルーティングポリシーを設定し、プレフィックスリストを条件として適用します。
[edit policy-options policy-statement override-ptx-series-default term 1] user@host# set from prefix-list install-bgp user@host# set then install-to-fib user@host# set then load-balance per-prefix
ルーティングポリシーを転送テーブルに適用します。
[edit routing-options forwarding-table] user@host# set export override-ptx-series-default
結果
設定モードから、show policy-options
および show routing-options
コマンドを入力して設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の手順を繰り返して設定を修正します。
user@host# show policy-options prefix-list install-bgp { 66.0.0.1/32; } policy-statement override-ptx-series-default { term 1 { from { prefix-list install-bgp; } then { load-balance per-prefix; install-to-fib; } } }
user@host# show routing-options forwarding-table { export override-ptx-series-default; }
デバイスの設定が完了したら、設定モードから commit
を入力します。
検証
設定が正常に機能していることを確認します。
その選択したルートが転送テーブルにインストールされていることを確認
目的
設定されたポリシーが、デフォルトのポリシーに上書きされていることを確認してください。
アクション
動作モードからshow route forwarding-table
コマンドを入力します。
user@host> show route forwarding-table destination 66.0.0.1 Internet: Destination Type RtRef Next hop Type Index NhRef Netif 66.0.0.1/32 user 0 indr 2097159 3 ulst 2097156 2 5.1.0.2 ucst 574 1 et-6/0/0.1 5.2.0.2 ucst 575 1 et-6/0/0.2
意味
この出力は、66.0.0.1/32 へのルートが、転送テーブルにインストールされていることを示しています。
プレフィックス使用事例の条件付きインストールを可能にする条件付き広告
ネットワークは通常、自律システム(AS)と呼ばれる、より小規模で管理しやすいユニットに分割されます。ルーターがBGPを使用して同じAS内にピア関係を形成している場合、それを内部BGP(IBGP)と呼びます。BGP がルーターによって使用されて異なる AS でピア関係を形成する場合、外部 BGP(EBGP)と呼ばれます。
ルート正常性チェックを実行した後、BGP ルーターはそのピアから受信したルートを受け取り、ルーティング テーブルにインストールします。デフォルトでは、IBGP と EBGP セッションのすべてのルーターは標準 BGP 広告ルールに従います。IBGP セッションのルーターは、直接ピアから学習したルートだけを広告しますが、EBGP セッション内のルーターは、その直接および間接ピア(ピア オブ ピア)から学習したルートをすべてアドバタイズします。そのため、EBGP が設定された典型的なネットワークでは、ルーターは EBGP ピアから受信したすべてのルートをそのルーティング テーブルに追加し、すべての EBGP ピアにほぼすべてのルートをアドバタイズします。
顧客およびインターネット上のピアとBGPルートを交換しているサービス プロバイダーは、悪意のある、または意図しない脅威にさらされ、トラフィックの適切なルーティングやルーターの動作が損なわれる危険性があります。
これにはいくつかのデメリットがあります。
Non-aggregated route advertisements—顧客は、自分のアドレス空間の集計ではなく、すべてのプレフィックスを誤って ISP にアドバタイズしてしまう可能性があります。インターネット ルーティング テーブルの規模を考えると、これは慎重に制御する必要があります。また、エッジ ルーターにはインターネットに対するデフォルト ルートのみが必要となり、そのアップストリーム ピアから BGP ルーティング テーブル全体を受信している場合があります。
BGP route manipulation—悪意のある管理者が BGP ルーティング テーブルのコンテンツを変更した場合、トラフィックが意図した宛先に到達できなくなる可能性があります。
BGP route hijacking—BGP ピアの不正な管理者は、ネットワークのプレフィックスを悪意を持って公開して、被害者のネットワークに向けられたトラフィックを管理者のネットワークに再ルーティングし、トラフィックの内容にアクセスしたり、被害者のオンライン サービスをブロックしたりすることができます。
BGP denial of service (DoS)—悪意のある管理者がルーターの利用可能な BGP リソースをすべて使用しようとして、想定していないまたは望ましくない BGP トラフィックをルーターに送信した場合、有効な BGP ルート情報を処理するルーターの能力が損なわれる可能性があります。
プレフィックスの条件付きインストールを使用して、前述したすべての問題を処理できます。顧客がリモート ネットワークへのアクセスを必要とする場合、リモート ネットワークに接続されているルーターのルーティング テーブルに特定のルートをインストールできます。これは、典型的な EBGP ネットワークで発生しないため、プレフィックスの条件付きインストールが不可欠となります。
ASは物理的な関係だけでなく、ビジネスやその他の組織の関係によっても制約を受けます。ASは、他の組織にサービスを提供したり、他の2つのAS間でトランジットASとして機能したりすることができます。これらのトランジット AS は、互いへの接続方法と、最も重要な、互いに転送するトラフィックの種類と量に関するパラメーターを含む当事者間の契約によって拘束されます。そのため、法的にも経済的にも、サービス プロバイダーは、BGP ルートをネイバーとどのように交換するか、どのルートをネイバーから受け取るか、そしてそれらのルートが AS 間のトラフィックにどのように影響するかを制御するポリシーを実装する必要があります。
BGP ピアから受信したルートをフィルタリングするには、さまざまなオプションが用意されており、それによって、AS 間ポリシーを強化するとともに、潜在的に有害なルートを受信するリスクを軽減できます。従来のルート フィルタリングによりルートの属性を調査し、その属性に基づいてルートを受信または拒否できます。ポリシーまたはフィルターを使用して、ASパス、ネクストホップ値、コミュニティ値、プレフィックスのリスト、ルートのアドレスファミリーなどの内容を調べることができます。
場合によっては、特定の属性値に一致するという標準的な「受け入れ条件」では不十分なことがあります。サービス プロバイダーは、ルート自体の外に別の条件(たとえば、ルーティング テーブル内の別のルート)を使用する必要がある場合があります。例えば、このピアがさらにアップストリームの他のネットワークに到達可能であることが確認できた場合にのみ、アップストリーム ピアから受信したデフォルト ルートをインストールすることが望ましい場合があります。この条件付きルート インストールによって、ピアがアップストリームのルートを失ってブラックホール トラフィックになった場合にこのピアへのトラフィック送信に使用されるデフォルト ルートをインストールしてしまうことを避けられます。これを実現するために、ルーターは、ルーティング テーブルにおける特定のルートの存在を検索し、この知識に基づいて別のプレフィックスを受け入れる、または拒否するように設定できます。
関連項目
条件付き広告と特定のマッチ条件を持つインポート・ポリシー(ルーティング・テーブル)
BGPは、ネイバーから学習したループしていないルートをすべて受け入れ、RIB-Inテーブルにインポートします。これらのルートがBGPインポート・ポリシーで受け入れられた場合、inet.0ルーティング・テーブルにインポートされます。また、特定のルートのみをインポートする必要がある場合は、条件に基づいて相手ルーティング・デバイスからルートをエクスポートするように規定することも可能です。
ルートのエクスポートの条件は、以下のものがあります:
ルートが学習されたピア
ルートが学習されたインターフェイス
その他の必須属性
たとえば、以下のように表示されます。
[edit] policy-options { condition condition-name { if-route-exists address table table-name; } }
これはプレフィックスの条件付きインストールと呼ばれ、以下の例で説明されています:ルーティング・テーブルへのプレフィックスの条件付きインストールを有効にする条件付きアドバタイズのルーティング・ポリシーの設定。
ルーティング・ポリシーの条件は、エクスポート・ポリシー、インポート・ポリシー、またはその両方に関係なく設定することができます。エクスポート・ポリシーは,ルーティング・ポリシー内の別のルートの存在に基づいて,ルーティング・ポリシーから継承されたこれらの条件をサポートします。しかし、インポート・ポリシーではこれらの条件に対応しておらず、条件が存在していても実行されません。
図 4 は、BGPインポートおよびエクスポート・ポリシーが適用される場所を示しています。インポート・ポリシーは、というコマshow route receive-protocol bgp neighbor-address
ンドの出力に表示されているインバウンド・ルートに適用されます。エクスポート・ポリシーは、というコマshow route advertising-protocol bgp neighbor-address
ンドの出力に表示されているアウトバウンド・ルートに適用されます。
プレフィックスの条件付きインストールを有効にするには、プレフィックスのエクスポートが行われるデバイスにエクスポート・ポリシーを設定する必要があります。エクスポート・ポリシーは各ルートを評価し,というステートfrom
メントに基づくすべてのマッチ条件を満たすことを確認します。また、というステートcondition
メントの下に定義されたルートの存在も検索します(というステートfrom
メントの下に設定されたルートも検索します)。
ポリシーで定義した必須条件すべてに合致しない場合,またはというステートcondition
メントで定義したルートがルーティング・テーブルに存在しない場合,そのルートはBGPピアにエクスポートされません。このように、条件付きエクスポート・ポリシーは、ピアのルーティング・テーブルにインストールしたい目的のルートまたはプレフィックスに関して、ルートをマッチングさせます。
エクスポート・ポリシーを使用して、プレフィックスの条件付きインストールを設定するには:
プレフィックスをチェックするというステート
condition
メントを作成します。[edit] policy-options { condition condition-name { if-route-exists address table table-name; } }
というステート
condition
メントを使用して、新しく作成した条件を含むエクスポート・ポリシーを作成します。[edit] policy-options { policy-statement policy-name { term 1 { from { protocols bgp; condition condition-name; } then { accept; } } } }
選択したプレフィックスのみをルーティング・テーブルからエクスポートすることを要求するエクスポート・ポリシーをデバイスに適用します。
[edit] protocols bgp { group group-name { export policy-name; } }
関連項目
例:ルーティング テーブルにおけるプレフィックスの条件付きインストールを可能にする条件付きアドバタイズのルーティング ポリシーの設定
この例では、BGPエクスポートポリシーを使用して、ルーティングテーブルでのプレフィックスの条件付きインストールを設定する方法を示しています。
要件
この例では、以下のハードウェアとソフトウェアのコンポーネントを使用しています。
Mシリーズマルチサービスエッジルーター、MXシリーズ5Gユニバーサルルーティングプラットフォーム、またはTシリーズコアルーター
Junos OS リリース 9.0 以降
概要
この例では、3つの異なる自律システム(AS)にある3つのルーターが接続され、BGPプロトコルで設定されています。アップストリームルーターであるルーターラベル付きインターネットは、lo0.0ループバックインターフェイスで設定された5つのアドレス(172.16.11.1/32、172.16.12.1/32、172.16.13.1/32、172.16.14.1/32、および172.16.15.1/32)があり、追加のループバックアドレス(192.168.9.1/32) がルーターIDとして設定されています。これら6つのアドレスは、インターネットに接続されたルーターのBGPルーティングテーブルの内容をエミュレートするためにBGPにエクスポートされて、Northにアドバタイズされます。
NorthルーターとSouthルーターは、それぞれ10.0.89.12/30および10.0.78.12/30ネットワークを使用し、各ループバックアドレスに対して192.168.7.1と192.168.8.1を使用します。
図 5 この例で使用されているトポロジーを示しています。
ルーターNorthは、学習した172.16.0.0/16 BGPルートをルーターインターネットからルーターSouthにエクスポートします。これらのルートは、インターネットルーターのドメインが所有するルートを表す場合があります。さらに、特定の172.16.11.1/32ルートが存在する場合、ルーターNorthはデフォルトルートもアドバタイズします。172.16.11.1ルートは、完全なインターネット接続を提供するティア1トランジットピアリングプロバイダへのインターネットルーターのリンクを表す場合があります。
ルーターSouthは、6つのルートすべてを受信しますが、ルーティングテーブルにデフォルトルートと1つの他の特定のルート(172.16.11.1/32)のみをインストールする必要があります。
要約すると、この例は次の要件を満たしています:
-
Northでは、すべての172.16/16プレフィックスを送信します。さらに、特定のルートがinet.0ルーティングテーブル(この例では172.16.11.1/32)に存在する場合にのみ、0/0をSouthに送信します。
-
Southでは、ルーティングと転送テーブルでデフォルトルートと172.16.11.1/32ルートを受け入れ、インストールします。その他すべてのルートをドロップします。Southが、完全なインターネットルーティングテーブルを受け入れられないローエンドデバイスかもしれないということを考慮してください。結果として、オペレータはSouthにデフォルトルートと1つの他の特定のプレフィックスのみを割り当てたいと考えています。
最初の要件は、Northのエクスポートポリシーで満たされています:
user@North# show policy-options policy-statement conditional-export-bgp { term prefix_11 { from { protocol bgp; route-filter 172.16.0.0/16 orlonger; } then accept; } term conditional-default { from { route-filter 0.0.0.0/0 exact; condition prefix_11; } then accept; } term others { then reject; } } condition prefix_11 { if-route-exists { 172.16.11.1/32; table inet.0; } }
条件付きエクスポートポリシーの論理は、以下のように要約できます:0/0が存在する場合、172.16.11.1/32が存在した場合、0/0プレフィックスを送信します。つまり、172.16.11.1/32が存在しない場合、0/0を送信しないということです。
2つ目の要件は、Southのインポートポリシーで満たされています:
user@South# show policy-options policy-statement import-selected-routes { term 1 { from { rib inet.0; neighbor 10.0.78.14; route-filter 0.0.0.0/0 exact; route-filter 172.16.11.1/32 exact; } then accept; } term 2 { then reject; } }
この例では、Southのインポートポリシーの結果として、4つのルートがドロップされます。これは、Northのエクスポポリシーが、インターネットから受信したルートをリークし、Southのインポートポリシーがこれらのルートのいくつかを除外しているためです。
Junos OSでは、インポートポリシー(インバウンドルートフィルター)がルートを拒否する、トラフィック転送に使用しない、他のピアへのアドバタイズに含まれないこと、ルーターがこれらのルートを非表示ルートとして保持することを理解しておくことが重要です。これらの非表示ルートはポリシーまたはルーティング目的に使用できません。ただし、ルーターでメモリ領域を取りません。ルートをフィルタリングして、メモリに保管され、ルーターによって処理された情報量を制御するサービスプロバイダは、インポートポリシーによって拒否されたルートをルーターで完全にドロップすることができます。
非表示のルートは、コマshow route receive-protocol bgp neighbor-address hidden
ンドを使用して表示することができます。その後、非表示のルートは、またはの階[edit protocols bgp group group-name]
層レベル[edit protocols bgp]
でステートkeep all | none
メントを設定することにより、ルーティングテーブルから保持またはドロップすることができます。
BGPルート保持のルールは、以下のとおりです:
-
デフォルトでは、BGPから学習したルートはすべて保持されますが、ASパスがループするルートは除外されます。(ASパスにはローカルASが含まれます。)
-
ステート
keep all
メントを設定することで、BGPから学習したすべてのルートは、ASパスにローカルASを持つルートでも保持されます。 -
keep none
ステートメントを設定することで、BGPはピアから受信したルート、およびインポートポリシーまたはその他のサニティーチェックによって拒否されたルートを破棄します。このステートメントが設定され、インバウンドポリシーが変更された場合、Junos OSがピアによってアドバタイズされたすべてのルートを再アドバタイズします。
keep all
またはを設定し、ピアがルート更新をサポートkeep none
する場合、ローカルスピーカーはリフレッシュメッセージを送信し、インポート評価を実行します。これらのピアに対してセッションは再起動されません。ピアが更新をサポートするかどうかを確認するには、コマshow bgp neighbor
ンドの出力Peer supports Refresh capability
でをチェックします。
keep all
またはkeep none
を設定し、ピアがセッション再起動をサポートしない場合、関連するBGPセッションが再起動します(フラップされる)。
トポロジー
設定
CLIクイック構成
この例をすばやく設定するには、次のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク構成に合わせて必要な詳細を変更し、[edit]
階層レベルのCLIにコマンドをコピー&ペーストしてください。
ルーターインターネット
set interfaces lo0 unit 0 family inet address 172.16.11.1/32 set interfaces lo0 unit 0 family inet address 172.16.12.1/32 set interfaces lo0 unit 0 family inet address 172.16.13.1/32 set interfaces lo0 unit 0 family inet address 172.16.14.1/32 set interfaces lo0 unit 0 family inet address 172.16.15.1/32 set interfaces lo0 unit 0 family inet address 192.168.9.1/32 set interfaces fe-0/1/3 unit 0 family inet address 10.0.89.14/30 set protocols bgp group toNorth local-address 10.0.89.14 set protocols bgp group toNorth peer-as 65200 set protocols bgp group toNorth neighbor 10.0.89.13 set protocols bgp group toNorth export into-bgp set policy-options policy-statement into-bgp term 1 from interface lo0.0 set policy-options policy-statement into-bgp term 1 then accept set routing-options router-id 192.168.9.1 set routing-options autonomous-system 65300
ルーターNorth
set interfaces fe-1/3/1 unit 0 family inet address 10.0.78.14/30 set interfaces fe-1/3/0 unit 0 family inet address 10.0.89.13/30 set interfaces lo0 unit 0 family inet address 192.168.8.1/32 set protocols bgp group toInternet local-address 10.0.89.13 set protocols bgp group toInternet peer-as 65300 set protocols bgp group toInternet neighbor 10.0.89.14 set protocols bgp group toSouth local-address 10.0.78.14 set protocols bgp group toSouth export conditional-export-bgp set protocols bgp group toSouth peer-as 65100 set protocols bgp group toSouth neighbor 10.0.78.13 set policy-options policy-statement conditional-export-bgp term prefix_11 from protocol bgp set policy-options policy-statement conditional-export-bgp term prefix_11 from route-filter 172.16.0.0/16 orlonger set policy-options policy-statement conditional-export-bgp term prefix_11 then accept set policy-options policy-statement conditional-export-bgp term conditional-default from route-filter 0.0.0.0/0 exact set policy-options policy-statement conditional-export-bgp term conditional-default from condition prefix_11 set policy-options policy-statement conditional-export-bgp term conditional-default then accept set policy-options policy-statement conditional-export-bgp term others then reject set policy-options condition prefix_11 if-route-exists 172.16.11.1/32 set policy-options condition prefix_11 if-route-exists table inet.0 set routing-options static route 0/0 reject set routing-options router-id 192.168.8.1 set routing-options autonomous-system 65200
ルーターSouth
set interfaces fe-0/1/2 unit 0 family inet address 10.0.78.13/30 set interfaces lo0 unit 0 family inet address 192.168.7.1/32 set protocols bgp group toNorth local-address 10.0.78.13 set protocols bgp group toNorth import import-selected-routes set protocols bgp group toNorth peer-as 65200 set protocols bgp group toNorth neighbor 10.0.78.14 set policy-options policy-statement import-selected-routes term 1 from neighbor 10.0.78.14 set policy-options policy-statement import-selected-routes term 1 from route-filter 172.16.11.1/32 exact set policy-options policy-statement import-selected-routes term 1 from route-filter 0.0.0.0/0 exact set policy-options policy-statement import-selected-routes term 1 then accept set policy-options policy-statement import-selected-routes term 2 then reject set routing-options router-id 192.168.7.1 set routing-options autonomous-system 65100
プレフィックスの条件付きインストールの設定
ステップバイステップでの手順
次の例では、設定階層内のさまざまなレベルに移動する必要があります。CLI のナビゲーションについては、『Junos OS CLIユーザーガイド』の「コンフィギュレーション・モードで CLI エディタを使用する」を参照してください。
プレフィックスの条件付きインストールを設定するには:
3つのルーター間のリンクを形成するルーターインターフェイスを設定します。
Router Internet [edit interfaces] user@Internet# set fe-0/1/3 unit 0 family inet address 10.0.89.14/30
Router North [edit interfaces] user@North# set fe-1/3/1 unit 0 family inet address 10.0.78.14/30 user@North# set fe-1/3/0 unit 0 family inet address 10.0.89.13/30
Router South [edit interfaces] user@South# set fe-0/1/2 unit 0 family inet address 10.0.78.13/30
ルーターインターネットで5つのループバックインターフェイスアドレスを設定して、ルーターSouthのルーティングテーブルにインポートされるインターネットから学習するBGPルートをエミュレートし、ルーターIDとして設定する追加アドレス(192.168.9.1/32)を設定します。
Router Internet [edit interfaces lo0 unit 0 family inet] user@Internet# set address 172.16.11.1/32 user@Internet# set address 172.16.12.1/32 user@Internet# set address 172.16.13.1/32 user@Internet# set address 172.16.14.1/32 user@Internet# set address 172.16.15.1/32 user@Internet# set address 192.168.9.1/32
また、ルーターNorthとSouthでループバックインターフェイスアドレスを設定します。
Router North [edit interfaces lo0 unit 0 family inet] user@North# set address 192.168.8.1/32
Router South [edit interfaces lo0 unit 0 family inet] user@South# set address 192.168.7.1/32
ルーターNorthで、ルーターSouthにアドバタイズされる静的デフォルトルートを設定します。
[edit routing-options] user@North# set static route 0/0 reject
ルーターNorthのルーティングテーブルからプレフィックスをエクスポートする条件を定義します。
[edit policy-options condition prefix_11] user@North# set if-route-exists 172.16.11.1/32 user@North# set if-route-exists table inet.0
ルーターインターネットとNorthで、それぞれエクスポートポリシー(
into-bgp
とconditional-export-bgp
)を定義し、BGPにルートをアドバタイズします。注:エクスポートポリシーで、条件
prefix_11
(ステップで設定4)を参照する必要があります。Router Internet [edit policy-options policy-statement into-bgp ] user@Internet# set term 1 from interface lo0.0 user@Internet# set term 1 then accept
Router North [edit policy-options policy-statement conditional-export-bgp] user@North# set term prefix_11 from protocol bgp user@North# set term prefix_11 from route-filter 172,16.0.0/16 orlonger user@North# set term prefix_11 then accept user@North# set term conditional-default from route-filter 0.0.0.0/0 exact user@North# set term conditional-default from condition prefix_11 user@North# set term conditional-default then accept user@North# set term others then reject
ルーターSouthで、インポートポリシー(
import-selected-routes
)を定義して、ルーターNorthによってアドバタイズされたルートの一部をルーティングテーブルにインポートします。[edit policy-options policy-statement import-selected-routes ] user@South# set term 1 from neighbor 10.0.78.14 user@South# set term 1 from route-filter 172.16.11.1/32 exact user@South# set term 1 from route-filter 0.0.0.0/0 exact user@South# set term 1 then accept user@South# set term 2 then reject
3つのルーターすべてでBGPを設定し、自律システム間でプレフィックスのフローを有効にします。
注:プレフィックスアドバタイズメントが行われるように、定義したインポートおよびエクスポートポリシーをそれぞれ、対応するBGPグループに適用してください。
Router Internet [edit protocols bgp group toNorth] user@Internet# set local-address 10.0.89.14 user@Internet# set peer-as 65200 user@Internet# set neighbor 10.0.89.13 user@Internet# set export into-bgp
Router North [edit protocols bgp group toInternet] user@North# set local-address 10.0.89.13 user@North# set peer-as 65300 user@North# set neighbor 10.0.89.14
[edit protocols bgp group toSouth] user@North# set local-address 10.0.78.14 user@North# set peer-as 65100 user@North# set neighbor 10.0.78.13 user@North# set export conditional-export-bgp
Router South [edit protocols bgp group toNorth] user@South# set local-address 10.0.78.13 user@South# set peer-as 65200 user@South# set neighbor 10.0.78.14 user@South# set import import-selected-routes
3つすべてのルーターに、機器のルーターIDと自律システム番号を設定します。
注:この例では、ルーターIDがルーターのlo0.0インターフェイスで設定されたIPアドレスに基づいて設定されています。
Router Internet [edit routing options] user@Internet# set router-id 192.168.9.1 user@Internet# set autonomous-system 65300
Router North [edit routing options] user@North# set router-id 192.168.8.1 user@North# set autonomous-system 65200
Router South [edit routing options] user@South# set router-id 192.168.7.1 user@South# set autonomous-system 65100
結果
設定モードから、show interfaces
、show protocols bgp
、show policy-options
、およびshow routing-options
のコマンドを発行して設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の手順を繰り返して設定を修正します。
デバイスインターネット
user@Internet# show interfaces fe-0/1/3 { unit 0 { family inet { address 10.0.89.14/30; } } } lo0 { unit 0 { family inet { address 172.16.11.1/32; address 172.16.12.1/32; address 172.16.13.1/32; address 172.16.14.1/32; address 172.16.15.1/32; address 192.168.9.1/32; } } }
user@Internet# show protocols bgp group toNorth { local-address 10.0.89.14; export into-bgp; peer-as 65200; neighbor 10.0.89.13; }
user@Internet# show policy-options policy-statement into-bgp { term 1 { from interface lo0.0; then accept; } }
user@Internet# show routing-options router-id 192.168.9.1; autonomous-system 65300;
デバイスNorth
user@North# show interfaces fe-1/3/1 { unit 0 { family inet { address 10.0.78.14/30; } } } fe-1/3/0 { unit 0 { family inet { address 10.0.89.13/30; } } } lo0 { unit 0 { family inet { address 192.168.8.1/32; } } }
user@North# show protocols bgp group toInternet { local-address 10.0.89.13; peer-as 65300; neighbor 10.0.89.14; } group toSouth { local-address 10.0.78.14; export conditional-export-bgp; peer-as 65100; neighbor 10.0.78.13; }
user@North# show policy-options policy-statement conditional-export-bgp { term prefix_11 { from { protocol bgp; route-filter 172.16.0.0/16 orlonger; } then accept; } term conditional-default { from { route-filter 0.0.0.0/0 exact; condition prefix_11; } then accept; } term others { then reject; } } condition prefix_11 { if-route-exists { 172.16.11.1/32; table inet.0; } }
user@North# show routing-options static { route 0.0.0.0/0 reject; } router-id 192.168.8.1; autonomous-system 65200;
デバイスSouth
user@South# show interfaces fe-0/1/2 { unit 0 { family inet { address 10.0.78.13/30; } } } lo0 { unit 0 { family inet { address 192.168.7.1/32; } } }
user@South# show protocols bgp bgp { group toNorth { local-address 10.0.78.13; import import-selected-routes; peer-as 65200; neighbor 10.0.78.14; } }
user@South# show policy-options policy-statement import-selected-routes { term 1 { from { neighbor 10.0.78.14; route-filter 172.16.11.1 exact; route-filter 0.0.0.0/0 exact; } then accept; } term 2 { then reject; } }
user@South# show routing-options router-id 192.168.7.1; autonomous-system 65100;
デバイスの設定が完了したら、設定モードcommit
からを入力します。
検証
設定が正常に機能していることを確認します。
- BGPの検証
- ルーターインターネットからルーターNorthへのプレフィックスアドバタイズの検証
- ルーターNorthからルーターSouthへのプレフィックスアドバタイズメントの検証
- プレフィックスのインストールに対するBGPインポートポリシーの検証
- ルーターNorthからルーターSouthへの条件付きエクスポートの検証
- ポリシーによって非表示とされているルートの存在の検証(オプション)
BGPの検証
目的
3つのルーター間でBGPセッションが確立されたことを確認します。
アクション
オペレーショナルモードから、show bgp neighbor neighbor-address
コマンドを実行します。
ルーターインターネットでBGPセッションをチェックして、ルーターNorthがネイバーであることを確認します。
user@Internet> show bgp neighbor 10.0.89.13 Peer: 10.0.89.13+179 AS 65200 Local: 10.0.89.14+56187 AS 65300 Type: External State: Established Flags: [ImportEval Sync] Last State: OpenConfirm Last Event: RecvKeepAlive Last Error: None Export: [ into-bgp ] Options: [Preference LocalAddress PeerAS Refresh] Local Address: 10.0.89.14 Holdtime: 90 Preference: 170 Number of flaps: 0 Peer ID: 192.168.8.1 Local ID: 192.168.9.1 Active Holdtime: 90 Keepalive Interval: 30 Group index: 0 Peer index: 0 BFD: disabled, down Local Interface: fe-0/1/3.0 NLRI for restart configured on peer: inet-unicast NLRI advertised by peer: inet-unicast NLRI for this session: inet-unicast Peer supports Refresh capability (2) Stale routes from peer are kept for: 300 Peer does not support Restarter functionality NLRI that restart is negotiated for: inet-unicast NLRI of received end-of-rib markers: inet-unicast NLRI of all end-of-rib markers sent: inet-unicast Peer supports 4 byte AS extension (peer-as 65200) Peer does not support Addpath Table inet.0 Bit: 10000 RIB State: BGP restart is complete Send state: in sync Active prefixes: 0 Received prefixes: 0 Accepted prefixes: 0 Suppressed due to damping: 0 Advertised prefixes: 6 Last traffic (seconds): Received 9 Sent 18 Checked 28 Input messages: Total 12 Updates 1 Refreshes 0 Octets 232 Output messages: Total 14 Updates 1 Refreshes 0 Octets 383 Output Queue[0]: 0
ルーターNorthでBGPセッションをチェックして、ルーターインターネットがネイバーであることを確認します。
user@North> show bgp neighbor 10.0.89.14 Peer: 10.0.89.14+56187 AS 65300 Local: 10.0.89.13+179 AS 65200 Type: External State: Established Flags: [ImportEval Sync] Last State: OpenConfirm Last Event: RecvKeepAlive Last Error: None Options: [Preference LocalAddress PeerAS Refresh] Local Address: 10.0.89.13 Holdtime: 90 Preference: 170 Number of flaps: 0 Peer ID: 192.168.9.1 Local ID: 192.168.8.1 Active Holdtime: 90 Keepalive Interval: 30 Group index: 0 Peer index: 0 BFD: disabled, down Local Interface: fe-1/3/0.0 NLRI for restart configured on peer: inet-unicast NLRI advertised by peer: inet-unicast NLRI for this session: inet-unicast Peer supports Refresh capability (2) Stale routes from peer are kept for: 300 Peer does not support Restarter functionality NLRI that restart is negotiated for: inet-unicast NLRI of received end-of-rib markers: inet-unicast NLRI of all end-of-rib markers sent: inet-unicast Peer supports 4 byte AS extension (peer-as 65300) Peer does not support Addpath Table inet.0 Bit: 10001 RIB State: BGP restart is complete Send state: in sync Active prefixes: 6 Received prefixes: 6 Accepted prefixes: 6 Suppressed due to damping: 0 Advertised prefixes: 0 Last traffic (seconds): Received 14 Sent 3 Checked 3 Input messages: Total 16 Updates 2 Refreshes 0 Octets 402 Output messages: Total 15 Updates 0 Refreshes 0 Octets 348 Output Queue[0]: 0
これらの出力で、以下のフィールドをチェックして、BGPセッションが確立されたことを確認します。
Peer—ピアAS番号が表示されているかどうか確認します。
Local—ローカルAS番号が表示されているかどうか確認します。
State—値がであることを確認します
Established
。そうでない場合、設定をチェックし、出力フィールドの詳細についてshow bgp neighbor
を参照してください。
同様に、ルーターNorthとSouthが互いのピア関係を形成していることを確認します。
意味
BGPセッションは、3つのルーター間で確立されています。
ルーターインターネットからルーターNorthへのプレフィックスアドバタイズの検証
目的
ルーターインターネットから送信されたルートが、ルーターNorthによって受信されていることを確認します。
アクション
ルーターインターネットでのオペレーショナルモードから、
show route advertising-protocol bgp neighbor-address
コマンドを実行します。user@Internet> show route advertising-protocol bgp 10.0.89.13 inet.0: 8 destinations, 8 routes (8 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 172.16.11.1/32 Self I * 172.16.12.1/32 Self I * 172.16.13.1/32 Self I * 172.16.14.1/32 Self I * 172.16.15.1/32 Self I * 192.168.9.1/32 Self I
出力では、ルーターインターネットがルート172.16.11.1/32、172.16.12.1/32、172.16.13.1/32、172.16.14.1/32、172.16.15.1/32、192.168.9.1/32(ルーターIDとして使用されるループバックアドレス)をルーターNorthにアドバタイズすることを確認します。
ルーターNorthでの運用モードから、コマ
show route receive-protocol bgp neighbor-address
ンドを実行します。user@North> show route receive-protocol bgp 10.0.89.14 inet.0: 12 destinations, 12 routes (12 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 172.16.11.1/32 10.0.89.14 65300 I * 172.16.12.1/32 10.0.89.14 65300 I * 172.16.13.1/32 10.0.89.14 65300 I * 172.16.14.1/32 10.0.89.14 65300 I * 172.16.15.1/32 10.0.89.14 65300 I * 192.168.9.1/32 10.0.89.14 65300 I
出力では、ルーターNorthがルーターインターネットによってアドバタイズされたすべてのルートを受信したことを確認します。
意味
ルーターインターネットによって送信されたプレフィックスは、ルーターNorthのルーティングテーブルに正常にインストールされました。
ルーターNorthからルーターSouthへのプレフィックスアドバタイズメントの検証
目的
ルーターインターネットから受信したルートと静的デフォルトルートが、ルーターNorthからルーターSouthでアドバタイズされていることを確認します。
アクション
ルーターNorthでの運用モードから、コマ
show route 0/0 exact
ンドを実行します。user@North> show route 0/0 exact inet.0: 12 destinations, 12 routes (12 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 0.0.0.0/0 *[Static/5] 00:10:22 Reject
出力では、ルーターNorthのルーティングテーブルでの静的デフォルルート(0.0.0.0/0)の存在を検証します。
ルーターNorthでの運用モードから、コマ
show route advertising-protocol bgp neighbor-address
ンドを実行します。user@North> show route advertising-protocol bgp 10.0.78.13 inet.0: 12 destinations, 12 routes (12 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 0.0.0.0/0 Self I * 172.16.11.1/32 Self 65300 I * 172.16.12.1/32 Self 65300 I * 172.16.13.1/32 Self 65300 I * 172.16.14.1/32 Self 65300 I * 172.16.15.1/32 Self 65300 I
出力では、ルーターNorthがルーターインターネットから受信した静的ルートと172.16.11.1/32ルート、その他の多くのルートを、ルーターSouthにアドバタイズしていることを確認します。
プレフィックスのインストールに対するBGPインポートポリシーの検証
目的
BGPインポートポリシーにより、必要なプレフィックスが正しくインストールされていることを確認します。
アクション
ルーターNorthからの静的デフォルトルートとルーターSouthからの172.16.11.1/32ルートのみがルーティングテーブルにインストールされているかどうか、ルーターSouthのインポートポリシーが動作しているかどうかを確認します。
オペレーショナルモードから、show route receive-protocol bgp neighbor-address
コマンドを実行します。
user@South> show route receive-protocol bgp 10.0.78.14 inet.0: 10 destinations, 11 routes (6 active, 0 holddown, 4 hidden) Prefix Nexthop MED Lclpref AS path * 0.0.0.0/0 10.0.78.14 65200 I * 172.16.11.1/32 10.0.78.14 65200 65300 I
出力では、BGPインポートポリシーがルーターSouthで動作していること、さらにルーターNorthからの0.0.0.0/0の静的デフォルルルートと、ルーターインターネットからの172.16.11.1/32ルートのみがルーティングテーブルにリークされたことを確認します。
意味
設定されたBGPインポートポリシーにより、プレフィックスのインストールが成功しました。
ルーターNorthからルーターSouthへの条件付きエクスポートの検証
目的
デバイスインターネットが172.16.11.1/32ルートの送信を停止すると、デバイスNorthがデフォルト0/0ルートの送信を停止することを確認します。
アクション
ループバックインターフェイスで172.16.11.1/32アドレスを無効にすることにより、デバイスインターネットが172.16.11.1/3ルートの送信を停止する原因となります。
[edit interfaces lo0 unit 0 family inet] user@Internet# deactivate address 172.16.11.1/32 user@Internet# commit
ルーターNorthでの運用モードから、コマ
show route advertising-protocol bgp neighbor-address
ンドを実行します。user@North> show route advertising-protocol bgp 10.0.78.13 inet.0: 11 destinations, 11 routes (11 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 172.16.12.1/32 Self 65300 I * 172.16.13.1/32 Self 65300 I * 172.16.14.1/32 Self 65300 I * 172.16.15.1/32 Self 65300 I
出力では、ルーターNorthがルーターSouthにデフォルトルートをアドバタイズしていないことを確認します。これは、172.16.11.1/32ルートが存在しない場合に予想される動作です。
デバイスインターネットのループバックインターフェイスで、172.16.11.1/32アドレスを再有効化します。
[edit interfaces lo0 unit 0 family inet] user@Internet# activate address 172.16.11.1/32 user@Internet# commit
ポリシーによって非表示とされているルートの存在の検証(オプション)
目的
ルーターSouthで設定されたインポートポリシーによって非表示とされているルートの存在を確認します。
このセクションでは、ニーズに応じて設定にできる各種変更による効果を説明しています。
アクション
ルーターSouthのルーティングテーブルから非表示となっているルートを表示するには:
コマ
show route receive-protocol bgp neighbor-address
ンドのhidden
オプションを使用します。インポートポリシーを無効にします。
オペレーショナルモードから、コマ
show route receive-protocol bgp neighbor-address hidden
ンドを実行して、非表示ルートを表示します。user@South> show route receive-protocol bgp 10.0.78.14 hidden inet.0: 10 destinations, 11 routes (6 active, 0 holddown, 4 hidden) Prefix Nexthop MED Lclpref AS path 172.16.12.1/32 10.0.78.14 65200 65300 I 172.16.13.1/32 10.0.78.14 65200 65300 I 172.16.14.1/32 10.0.78.14 65200 65300 I 172.16.15.1/32 10.0.78.14 65200 65300 I
出力では、ルーターSouthのインポートポリシー(172.16.12.1/32、172.16.13.1/32、172.16.16.14.1/32、および172.16.15.1/32)によって非表示となっているルートの存在を確認します。
階
[edit protocols bgp group group-name]
層レベルでステートdeactivate import
メントを設定して、BGPインポートポリシーを無効にします。[edit protocols bgp group toNorth] user@South# deactivate import user@South# commit
インポートポリシーを無効にした後、オペレーショ
show route receive-protocol bgp neighbor-address
ナルモードコマンドを実行して、ルートをチェックします。user@South> show route receive-protocol bgp 10.0.78.14 inet.0: 10 destinations, 11 routes (10 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 0.0.0.0/0 10.0.78.14 65200 I * 172.16.11.1/32 10.0.78.14 65200 65300 I * 172.16.12.1/32 10.0.78.14 65200 65300 I * 172.16.13.1/32 10.0.78.14 65200 65300 I * 172.16.14.1/32 10.0.78.14 65200 65300 I * 172.16.15.1/32 10.0.78.14 65200 65300 I
出力では、過去に非表示となっているルート(172.16.12.1/32、172.16.16.13.1/32、172.16.16.14.1/32、および172.16.16.15.1/32)の存在を確認します。
BGPインポートポリシーを有効にし、階
[edit protocols bgp group group-name]
層レベルでそれぞれとステートkeep none
メントactivate import
を設定することにより、ルーティングテーブルから非表示ルートを削除します。[edit protocols bgp group toNorth] user@South# activate import user@South# set keep none user@South# commit
オペレーショナルモードから
show route receive-protocol bgp neighbor-address hidden
コマンドを実行し、インポートポリシーを有効にし、keep none
ステートメントを設定した後、ルートをチェックします。user@South> show route receive-protocol bgp 10.0.78.14 hidden inet.0: 6 destinations, 7 routes (6 active, 0 holddown, 0 hidden)
出力では、設定されたステート
keep none
メントによりルーティングテーブルで非表示ルートが維持されていないことを確認します。
ポリシーがない場合のデフォルトEBGPルート伝搬動作に関する暗示的フィルタ
SUMMARY ここでは、明示的なポリシーが設定されていない場合に、EBGPルート伝搬の動作を制御する暗示的なフィルタを使用する方法について説明します。
メリット
この機能は、以下のメリットを提供します。
Regulates BGP implementation-EBGPスピーカーが、デフォルトですべてのルートを受け入れ、アドバタイズされたサイレント・パススルーとなることを防止します。この機能により、特に上流のインターネット・サービス・プロバイダとマルチホームしている場合、リーフ自律システム上のトランジット・トラフィックの増加を効果的に抑制することができます。したがって、トラフィックのサイレント・ドロップ、サービス拒否、およびグローバルなインターネットの停止も防ぐことができます。
Implicit filter-暗示的フィルタの使用を容易にするコンフィギュレーションで、デフォルトの動作は、デフォルトですべてのルートを受信してアドバタイズするように設定されたままです。コンフィグレーション・ステートメントは、accept、 reject、reject-always項目の有効あるいは無効を指定するオプションが必要な場合のみ追加されます。暗示的フィルタにより、デフォルトのBGPポリシーに依存する既存のデプロイメントを持つユーザーが、運用に支障をきたさないようにすることができます。
概要
BGPは、グローバルなインターネット・ルーティングに使用される、現在におけるドメイン間自律プロトコルです。また、VPNやリンク・ステートなど、グローバルな利用を想定していない様々なサービスにも対応しています。
BGP の実装は、デフォルトのEBGP動作を含め、RFC4271、A Border Gateway Protocol 4 (BGP-4)に準拠しています。しかし、どのようなルートを配信すべきかを指定する明示的なガイダンスは提供されていません。このため、本来のBGPの実装では、フィルタリングを行わずにルートのサイレント・パススルーとなるため、トラフィックが増加し、グローバルにインターネットが停止する事態が発生することになります。
Junos OS Release 20.3R1より、既存の階[edit protocols bgp]
層レベルdefaults ebgp no-policy
に暗示的フィルタが導入されました。このコンフィギュレーションでは、受信とアドバタイズのデフォルトのポリシーを個別の項目(accept、reject、reject-always)に分離して、動作を個別に変更できるようにしています。
明示的なポリシーが設定されていない場合、暗示的なフィルタによって,次の3つの状態のいずれかでデフォルトのeBGP受信およびアドバタイズ動作を有効にすることができます:
価値 |
デフォルト・ポリシー |
機能概要 |
---|---|---|
受け入れ |
受信 |
すべてのルートを受信することを受け入れます(デフォルトの動作でもあります)。 |
アドバタイズ |
すべてのルートをアドバタイズすることを受け入れます(デフォルトの動作でもあります)。 |
|
拒む |
受信 |
インスタンス・タイプ・プライマリ、vrf、virtual-router、およびnon-forwardingでinet unicast並びにinet6 unicastのルートの受信を拒否します。 |
アドバタイズ |
インスタンス・タイプ・プライマリ、vrf、virtual-router、およびnon-forwardingでinet unicast 並びにinet6 unicastのルートのアドバタイズを拒否します。 |
|
reject-ways |
受信 |
すべてのルートの受信を拒否します。 |
アドバタイズ |
すべてのルートのアドバタイズを拒否します。 |