基本的な 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]階層レベルに含める)。 -
グループの
importおよびexportステートメント-これらのステートメントを[edit protocols bgp group group-name]階層レベルに含める(ルーティングインスタンスの場合は、これらのステートメントを[edit routing-instances routing-instance-name protocols bgp group group-name]階層レベルに含める)。 -
ピアの
importおよびexportステートメント-これらのステートメントを[edit protocols bgp group group-name neighbor address]階層レベルに含める(ルーティングインスタンスの場合は、これらのステートメントを[edit routing-instances routing-instance-name protocols bgp group group-name neighbor address]階層レベルに含める)。 -
ファミリの
importおよびexportステートメント-これらのステートメントを[edit protocols bgp family nlri]階層レベルに含める(ルーティングインスタンスの場合は、これらのステートメントを[edit routing-instances routing-instance-name protocols bgp family nlri]階層レベルに含める)。
ピアレベルのimportまたはexportステートメントは、グループのimportまたはexportステートメントを上書きします。グループレベルimportまたはexportステートメントは、グローバルBGPのimportまたはexportステートメントを上書きします。
この例では、send-directという名のポリシーがグローバルレベルで適用され、send-192.168.0.1という名の別のポリシーがグループレベルで適用されており、send-192.168.20.1という名の3つ目のポリシーがネイバーレベルで適用されています。
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ポリシー適用のみがされます。一方で、other-groupのグループにあるネイバー172.16.4.4には、グループまたはネイバーレベルのポリシーがないため、send-directポリシーを使用します。
ネイバー172.16.2.2で3つのポリシーすべての機能を実行させる必要がある場合は、他の3つの機能が含まれる新しいネイバーレベルのポリシーを記述して適用するか、既存の3つのポリシーすべてをチェーンとして、ネイバー172.16.2.2に適用することができます。
トポロジー
図 1は、サンプルネットワークを示しています。

CLIクイック構成は、図 1にあるすべてのデバイスの構成を示しています。
セクション#d100e247__d100e501は、デバイス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
Discarduser@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.0user@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.0user@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の設定内にimportおよびexportステートメントを含めます。
ポリシーは次のように適用できます。
-
BGPグローバル
importおよびexportステートメント-これらのステートメントを[edit protocols bgp]階層レベルに含める(ルーティングインスタンスの場合、これらのステートメントを[edit routing-instances routing-instance-name protocols bgp]階層レベルに含める)。 -
グループ
importおよびexportステートメント-これらのステートメントを[edit protocols bgp group group-name]階層レベルに含める(ルーティングインスタンスの場合、これらのステートメントを[edit routing-instances routing-instance-name protocols bgp group group-name]階層レベルに含める)。 -
ピア
importおよびexportステートメント-これらのステートメントを[edit protocols bgp group group-name neighbor address]階層レベルに含める(ルーティングインスタンスの場合は、これらのステートメントを[edit routing-instances routing-instance-name protocols bgp group group-name neighbor address]階層レベルに含める)。 -
ファミリの
importおよびexportステートメント-これらのステートメントを[edit protocols bgp family nlri]階層レベルに含める(ルーティングインスタンスの場合は、これらのステートメントを[edit routing-instances routing-instance-name protocols bgp family nlri]階層レベルに含める)。
ピアレベルのimportまたはexportステートメントは、グループimportのまたはexportステートメントを上書きします。グループレベルのimportまたはexportステートメントは、グローバルBGPのimportまたはexportステートメントを上書きします。
ポリシーを適用するには、次のセクションを参照してください。
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セッションでkeep noneを設定し、受信ポリシーが変更されると、Junos OSはピアによってアドバタイズされた全ルートの再アドバタイズを強制します。
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でのすべてのデバイスの設定を示しています。
セクション#d103e166__d103e344は、デバイス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シリーズ3000および5000シリーズルーターのデフォルトルーティングポリシーは、別のポリシーを上書きさせるように設定しない限り、BGPルートは転送テーブルにインストールされません。その他のPTXシリーズルーターは、ポリシーを必要とせずに、BGP学習ルートを転送情報ベース(FIB)およびパケットフォワーディングエンジン(PFE)にインストールします。
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]で定義されています。このポリシーは[edit routing-options forwarding-table]、 というステートdefault-exportメントを使用して、で適用されます。これらのデフォルトのコンフィギュレーションは、| 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-packetjunos-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ルート伝搬動作に関する暗示的フィルタ
ここでは、明示的なポリシーが設定されていない場合に、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 |
受信 |
すべてのルートの受信を拒否します。 |
アドバタイズ |
すべてのルートのアドバタイズを拒否します。 |