サービスの改善にご協力お願いします。

お客様のご意見をお聞かせください。

アンケートの所要時間はおよそ 2 分です。

header-navigation
keyboard_arrow_up
close
keyboard_arrow_left
BGPユーザーガイド
Table of Contents Expand all
list Table of Contents

この機械翻訳はお役に立ちましたでしょうか?

starstarstarstarstar
Go to English page
免責事項:

このページは、サードパーティー製機械翻訳ソフトウェアを使用して翻訳されます。質の高い翻訳を提供するために合理的な対応はされていますが、ジュニパーネットワークスがその正確性を保証することはできかねます。この翻訳に含まれる情報の正確性について疑問が生じた場合は、英語版を参照してください. ダウンロード可能なPDF (英語版のみ).

基本的な BGP ルーティング ポリシー

date_range 19-Jan-25

ルーティング ポリシーの理解

各ルーティング・ポリシーは、ポリシー名で識別されます。名前には、文字、数字、ハイフン(-)を使用でき、最大 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されています。

content_copy zoom_out_map
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は、サンプルのネットワークを示しています。

図 1: BGP へのルーティング ポリシーの適用BGP へのルーティング ポリシーの適用

CLIクイック構成は、図 1でのすべてのデバイスの設定を示しています。

セクション#d100e203__d100e457は、デバイス R1 の手順を説明します。

設定

CLIクイック構成

この例をすばやく設定するには、次のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク構成に合わせて必要な詳細を変更し、[edit]階層レベルのCLIにコマンドをコピー&ペーストしてください。

デバイスR1

content_copy zoom_out_map
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

content_copy zoom_out_map
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

content_copy zoom_out_map
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

content_copy zoom_out_map
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 デフォルトのルート ポリシーを設定します。

  1. デバイスインターフェイスを設定します。

    content_copy zoom_out_map
    [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
    
  2. インターフェイス上で、OSPF または別の内部ゲートウェイ プロトコル(IGP)を有効にします。

    content_copy zoom_out_map
    [edit protocols OSPF area 0.0.0.0]
    user@R1# set interface lo0.0 passive
    user@R1# set interface fe-1/2/0.0
    
  3. スタティックルートを設定します。

    content_copy zoom_out_map
    [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
    
  4. ルーティング ポリシーを有効にします。

    content_copy zoom_out_map
    [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
    
  5. BGP を設定し、エクスポート ポリシーを適用します。

    content_copy zoom_out_map
    [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
    
  6. ルーター ID と AS(自律システム)番号を設定します。

    content_copy zoom_out_map
    [edit routing-options]
    user@R1# set router-id 172.16.1.1
    user@R1# set autonomous-system 17
    
  7. デバイスの設定が完了したら、設定をコミットします。

    content_copy zoom_out_map
    [edit]
    user@R1# commit
    

結果

設定モードから、show interfacesshow protocolsshow policy-options、およびshow routing-optionsのコマンドを発行して設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の手順を繰り返して設定を修正します。

content_copy zoom_out_map
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;
        }
    }
}
content_copy zoom_out_map
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;
    }
}
content_copy zoom_out_map
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;
    }
}
content_copy zoom_out_map
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 エクスポート ポリシーが期待通りに機能していることを確認してください。

アクション
content_copy zoom_out_map
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
content_copy zoom_out_map
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
content_copy zoom_out_map
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
content_copy zoom_out_map
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
content_copy zoom_out_map
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 のエクスポート ポリシーが期待通りに機能していることを確認してください。

アクション
content_copy zoom_out_map
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
content_copy zoom_out_map
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
content_copy zoom_out_map
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ルートを注入するポリシーを作成する方法を示します。

要件

開始する前に、以下を実行します。

概要

この例では、 injectpolicy1 と呼ばれるルーティング・ポリシーと injectterm1と呼ばれるルーティング・タームを作成します。ポリシーは、BGPルーティング・テーブルにOSPFルートを注入します。

トポロジー

設定

ルーティング・ポリシーの設定

CLIクイック構成

この例を素早く設定するには、以下のコマンドをコピーしてテキスト・ファイルに貼り付け、改行を削除し、ネットワーク・コンフィギュレーションに合わせて必要な詳細を変更し、[edit]階層レベルのCLIにコマンドをコピー&ペーストし、コンフィギュレーション・モードからcommitを入力してください。

content_copy zoom_out_map
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ルートをインジェクションするには:

  1. ポリシー・タームを作成します。

    content_copy zoom_out_map
    [edit policy-options policy-statement injectpolicy1]
    user@host# set term injectterm1
    
  2. マッチ・コンディションにOSPFを指定します。

    content_copy zoom_out_map
    [edit policy-options policy-statement injectpolicy1 term injectterm1]
    user@host# set from protocol ospf
    
  3. OSPFエリアからのルートをマッチ条件として指定します。

    content_copy zoom_out_map
    [edit policy-options policy-statement injectpolicy1 term injectterm1]
    user@host# set from area 0.0.0.1
    
  4. 前の条件にマッチした場合に、ルートを受け入れることを指定します。

    content_copy zoom_out_map
    [edit policy-options policy-statement injectpolicy1 term injectterm1]
    user@host# set then accept
    
  5. BGPにルーティング・ポリシーを適用します。

    content_copy zoom_out_map
    [edit]
    user@host# set protocols bgp export injectpolicy1
    
結果

コンフィギュレーション・モードからshow policy-optionsshow protocols bgp というコマンドを入力し、コンフィギュレーションを確認します。出力結果に意図した設定内容が表示されない場合は、この例の手順を繰り返して設定を修正します。

content_copy zoom_out_map
user@host# show policy-options
policy-statement injectpolicy1 {
    term injectterm1 {
        from {
            protocol ospf;
            area 0.0.0.1;
        }
        then accept;
    }
}
content_copy zoom_out_map
user@host# show protocols bgp
export injectpolicy1;

デバイスの設定が完了したら、設定モードから commit を入力します。

ルーティング・ポリシーのトレース設定

CLIクイック構成

この例を素早く設定するには、以下のコマンドをコピーしてテキスト・ファイルに貼り付け、改行を削除し、ネットワーク・コンフィギュレーションに合わせて必要な詳細を変更し、[edit]階層レベルのCLIにコマンドをコピー&ペーストし、コンフィギュレーション・モードからcommitを入力してください。

content_copy zoom_out_map
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エディタの使用を参照してください。

  1. ポリシーにトレース・アクションを含めます。

    content_copy zoom_out_map
    [edit policy-options policy-statement injectpolicy1 term injectterm1]
    user@host# then trace
    
  2. 出力するトレース・ファイルを設定します。

    content_copy zoom_out_map
    [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を確認します。出力結果に意図した設定内容が表示されない場合は、この例の手順を繰り返して設定を修正します。

content_copy zoom_out_map
user@host# show policy-options
policy-statement injectpolicy1 {
    term injectterm1 {
        then {
            trace;
        }
    }
}
content_copy zoom_out_map
user@host# show routing-options
traceoptions {
    file ospf-bgp-policy-log size 5m files 5;
    flag policy;
}

デバイスの設定が完了したら、設定モードから commit を入力します。

検証

設定が正常に機能していることを確認します。

期待されるBGPルートが存在することの検証

目的

エクスポート・ポリシーの効果を確認します。

アクション

動作モードからshow routeコマンドを入力します。

トラブルシューティング

show logコマンドを使用してルーティング・ポリシーのアクションを調査

問題点

ルーティング・テーブルに予期せぬルートが含まれているか、或いはルーティング・テーブルからルートが欠落しています。

ソリューション

この例のようにポリシー・トレースを設定すると,ルーティング・ポリシーの問題点を診断するためにというコマshow log ospf-bgp-policy-logンドを実行することができます。このというコマshow log ospf-bgp-policy-logンドは、というinjectpolicy1ポリシー・タームが解析して作用するルートに関する情報を表示します。

BGPルート広告を制御するためのルーティング・ポリシーの設定

すべてのルーティング・プロトコルは、Junos OSルーティング・テーブルを使用して、学習したルートを保存し、プロトコル・パケットの中でどのルートをアドバタイズすべきかを決定します。ルーティング・ポリシーは、ルーティング・プロトコルがルーティング・テーブルに格納するルート、およびルーティング・テーブルから取得するルートを制御することができます。ルーティング・ポリシーについては、「ルーティング・ポリシー、ファイアウォール・フィルタ、およびトラフィック・ポリサー・ユーザーガイド」を参照してください。

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メントを含めます:

content_copy zoom_out_map
import [ policy-names ];

このステートメントを含めることができる階層レベルの一覧は、このステートメントのステートメント概要のセクションを参照してください。

複数のポリシーを指定した場合は、指定した最初から最後の順序で評価され、最初に一致したフィルタがルートに適用されます。一致しない場合,BGPはBGPルーティング・デバイスから学習したルートだけをルーティング・テーブルに配置します。

ルーティング・テーブルからBGPにエクスポートされるルートへのポリシーの適用

ルーティング・テーブルから BGP にエクスポートされるルートにポリシーを適用するには,評価された1つ以上のポリシーの名前を列挙したステートexportメントを含めます:

content_copy zoom_out_map
export [ policy-names ];

このステートメントを含めることができる階層レベルの一覧は、このステートメントのステートメント概要のセクションを参照してください。

複数のポリシーを指定した場合は、指定した最初から最後の順序で評価され、最初に一致したフィルタがルートに適用されます。フィルタに一致するルートがない場合,ルーティング・テーブルは,BGPから学習したルートだけをBGPにエクスポートします。

BGPが非アクティブなルートを告知する設定

デフォルトでは、BGPはアップデート・メッセージから受け取ったルート情報をJunos OSのルーティング・テーブルに格納し、ルーティング・テーブルはアクティブなルートのみをBGPにエクスポートし、BGPはそれをピアにアドバタイズします。Junos OSがアクティブなルートとして選択しなかった場合でも、BGPによって学習された最良のルートをBGPへとルーティング・テーブルにエクスポートさせるには、次のステートadvertise-inactiveメントを含めます:

content_copy zoom_out_map

このステートメントを含めることができる階層レベルの一覧は、このステートメントのステートメント概要のセクションを参照してください。

内部ピアに最適な外部ルートを告知する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メントを含めます:

content_copy zoom_out_map
注:

このステートadvertise-externalメントは、グループとネイバーレベルの両方でサポートされています。ネイバーレベルでステートメントを設定する場合、グループ内のすべてのネイバーに設定する必要があります。そうでない場合は、グループは自動的に別のグループに分割されます。

このステートメントを設定できる階層レベルの完全なリストについては、このステートメントに関するステートメント要約セクションを参照してください。

BGPがルート選択プロセスでMED値を評価する地点に到達した際においてのみ,最適な外部パスを広告するように設定する場合は,以下のステートconditionalメントを含みます:

content_copy zoom_out_map
advertise-external {
    conditional;
}

BGPがルーティング・テーブルとルートを交換する頻度の設定

BGPはアップデート・メッセージから受け取ったルート情報をルーティング・テーブルに格納し、ルーティング・テーブルからアクティブなルートをBGPにエクスポートします。そして、BGPはエクスポートされたルートをピアに広告します。デフォルトでは,BGPとルーティング・テーブル間のルート情報の交換は,ルートを受信した直後に行われます。このように、ルート情報を即座に交換すると、ネットワークの到達性情報が不安定になる可能性があります。これを防ぐために、BGPとルーティング・テーブルがルート情報を交換するまでの時間を遅らせることができます。

BGPとルーティング・テーブルがルート情報を交換する頻度を設定する場合は、以下のステートout-delayメントを含めます:

content_copy zoom_out_map
out-delay seconds;

デフォルトでは,ルーティング・テーブルにはBGPから学習したルート情報の一部が保持されています。ルーティング・テーブルがこの情報をすべて保持するか、或いはまったく保持しないようにするには、このステートkeepメントを含めます:

content_copy zoom_out_map
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というステートメントを含めます。

content_copy zoom_out_map
注:

コンフィグレーションにこのas-overrideというステートメントが含まれる場合、ルート抑止のデフォルト動作は無効になります。

コンフィグレーションにこのadvertise-peer-asというステートメントを含めると,BGPはこのチェックに関係なくルートをアドバタイズします。

デフォルトの動作に戻すには、コンフィギュレーションにこのno-advertise-peer-asというステートメントを含めます:

content_copy zoom_out_map

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エクスポートポリシーの設定もサポートしています。以下のように、アクティブまたは非アクティブなルートのいずれかを次のようにマッチすることができます。

content_copy zoom_out_map
policy-options {
    policy-statement name{
        from state (active|inactive);
    }
}

この修飾子は、エクスポートポリシーのコンテキストで使用される場合にのみマッチします。非アクティブなルートを広告できるプロトコルによってルートがアドバタイズされる場合、state inactiveadvertise-inactiveadvertise-externalステートメントの結果としてアドバタイズされたルートに一致します。

例えば、以下の設定は、ユーザー定義コミュニティーとのadvertise-external設定によりアドバタイズされたルートをマークするために、内部ピアに対するBGPへのBGPエクスポートポリシーとして使用できます。そのコミュニティーは、受信ルーターで使用し、転送テーブルからそのルートをフィルターして除外することができます。そういったメカニズムを使うことで、送信者によって転送用に使用されないアドバタイズパスが転送ループにつながるのではないかという懸念に対応できます。

content_copy zoom_out_map
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は、サンプルのネットワークを示しています。

図 2: 外部アドバタイズに対するBGPトポロジー外部アドバタイズに対するBGPトポロジー

CLIクイック構成は、図 2でのすべてのデバイスの設定を示しています。

セクション#d103e166__d103e344は、デバイスR2の手順を説明します。

設定

CLIクイック構成

この例をすばやく設定するには、次のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク構成に合わせて必要な詳細を変更し、[edit]階層レベルのCLIにコマンドをコピー&ペーストしてください。

デバイスR1

content_copy zoom_out_map
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

content_copy zoom_out_map
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

content_copy zoom_out_map
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 を設定するには:

  1. デバイスインターフェイスを設定します。

    content_copy zoom_out_map
    [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
    
  2. OSPFまたは別の内部ゲートウェイプロトコル(IGP)を設定します。

    content_copy zoom_out_map
    [edit protocols ospf area 0.0.0.0]
    user@R2# set interface fe-1/2/1.0
    user@R2# set interface lo0.0 passive
    
  3. デバイスR1へのEBGP接続を設定します。

    content_copy zoom_out_map
    [edit protocols bgp group ext]
    user@R2# set type external
    user@R2# set peer-as 100
    user@R2# set neighbor 10.0.0.1
    
  4. デバイスR3へのIBGP接続を設定します。

    content_copy zoom_out_map
    [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
    
  5. IBGPグループピアリングセッションにadvertise-externalステートメントを追加します。

    content_copy zoom_out_map
    [edit protocols bgp group int]
    user@R2# set advertise-external
    
  6. 自律システム(AS)番号とルーターIDを設定します。

    content_copy zoom_out_map
    [edit routing-options ]
    user@R2# set router-id 192.168.0.2
    user@R2# set autonomous-system 200
    
結果

設定モードから、show interfacesshow protocolsshow policy-options、およびshow routing-options のコマンドを入力して設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の手順を繰り返して設定を修正します。

content_copy zoom_out_map
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;
        }
    }
}
content_copy zoom_out_map
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;
        }
    }
}
content_copy zoom_out_map
user@R2# show routing-options
router-id 192.168.0.2;
autonomous-system 200;

デバイスの設定が完了したら、設定モードから commit を入力します。

検証

設定が正常に機能していることを確認します。

BGPアクティブパスの検証

目的

デバイスR2では、172.16.6.0/24プレフィックスがルーティングテーブルに存在することを確認します。

アクション
content_copy zoom_out_map
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に対してアドバタイズされていることを確認します。

アクション
content_copy zoom_out_map
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のルーティングテーブルに存在することを確認します。

アクション
content_copy zoom_out_map
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オプションがどのように機能するかをご覧ください。

アクション
  1. デバイスR2で、conditionalオプションを追加します。

    content_copy zoom_out_map
    [edit  protocols bgp group int]
    user@R2# set advertise-external conditional
    user@R2# commit
    
  2. デバイスR2では、172.16.6.0/24ルートがデバイスR3に対してアドバタイズされているかどうかを確認します。

    content_copy zoom_out_map
    user@R2> show route advertising-protocol bgp 192.168.0.3
    
    

    予想通り、ルートはもうアドバタイズされなくなります。この結果が出るまでには数秒かかる場合があります。

  3. デバイスR3で、then local-preferenceポリシーアクションを無効にします。

    content_copy zoom_out_map
    [edit policy-options policy-statement send-static term 1]
    user@R3# deactivate logical-systems R3 then local-preference 
    user@R3# commit
    
  4. デバイスR2で、2つのパスのローカルプリファレンスが等しいことを確認します。

    content_copy zoom_out_map
    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
  5. デバイスR2で、ステートas-path-ignoreメントを追加します。

    content_copy zoom_out_map
    [edit protocols bgp]
    user@R2# set path-selection as-path-ignore 
    user@R2# commit
    
  6. デバイスR2では、172.16.6.0/24ルートがデバイスR3に対してアドバタイズされているかどうかを確認します。

    content_copy zoom_out_map
    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は、サンプルのネットワークを示しています。

図 3: BGPプレフィックスベースのアウトバウンド・ルート・フィルタリングBGPプレフィックスベースのアウトバウンド・ルート・フィルタリング

設定

CLIクイック構成

この例をすばやく設定するには、次のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク構成に合わせて必要な詳細を変更し、[edit]階層レベルのCLIにコマンドをコピー&ペーストしてください。

PE1

content_copy zoom_out_map
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からのルート・フィルターを受信し、受信したフィルターを使用してアウトバウンド・ルート・フィルタリングを実行するように設定するためには:

  1. ローカルの自律システムを設定します。

    content_copy zoom_out_map
    [edit routing-options]
    user@PE1# set autonomous-system 65500
    
  2. デバイスCE1との外部ピアリングを設定します。

    content_copy zoom_out_map
    [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
    
  3. ルーターPE1 がデバイス CE1 からの IPv4 ルート・フィルターを受信し、受信したフィルターを使用してアウトバウンド・ルート・フィルタリングを実行するように設定します。

    content_copy zoom_out_map
    [edit protocols bgp group cisco-peers]
    user@PE1# set outbound-route-filter prefix-based accept inet
    
  4. (オプション)アウトバウンド・ルート・フィルタにベンダ固有の互換コード130を使用し,コード・タイプ128を使用するルーティング・デバイスとの相互運用性を可能にします。

    IANA標準コードは 3、標準コードタイプは64となります。

    content_copy zoom_out_map
    [edit protocols bgp group cisco-peers]
    user@PE1# set outbound-route-filter bgp-orf-cisco-mode
    
結果

設定モードから、show protocols および show routing-options コマンドを入力して設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の手順を繰り返して設定を修正します。

content_copy zoom_out_map
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;
}
content_copy zoom_out_map
user@PE1# show routing-options
autonomous-system 65500;

デバイスの設定が完了したら、設定モードから commit を入力します。

検証

設定が正常に機能していることを確認します。

アウトバウンド・ルート・フィルタの検証

目的

デバイスCE1から受信したプレフィックスベースのアウトバウンド・ルート・フィルタの情報を表示します。

アクション

動作モードからshow bgp neighbor orf detailコマンドを入力します。

content_copy zoom_out_map
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コマンドを入力します。

content_copy zoom_out_map
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シリーズ・ルーターのデフォルト・ルーティング・ポリシーは次のとおりです:

content_copy zoom_out_map
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というコマンドを使用すると、デフォルト・ポリシーを表示することができます。

content_copy zoom_out_map
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 ルートは転送テーブルにインストールされません。

content_copy zoom_out_map
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;
}
content_copy zoom_out_map
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にコマンドをコピー&ペーストしてください。

content_copy zoom_out_map
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 ルートを転送テーブルにインストールするには、次の手順に従います:

  1. 転送テーブルにインストールするプレフィックス一覧を設定します。

    content_copy zoom_out_map
    [edit policy-options prefix-list install-bgp]
    user@host# set 66.0.0.1/32
    
  2. ルーティングポリシーを設定し、プレフィックスリストを条件として適用します。

    content_copy zoom_out_map
    [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
    
  3. ルーティングポリシーを転送テーブルに適用します。

    content_copy zoom_out_map
    [edit routing-options forwarding-table]
    user@host# set export override-ptx-series-default
    
結果

設定モードから、show policy-options および show routing-options コマンドを入力して設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の手順を繰り返して設定を修正します。

content_copy zoom_out_map
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;
        }
    }
}
content_copy zoom_out_map
user@host# show routing-options
forwarding-table {
    export override-ptx-series-default;
}

デバイスの設定が完了したら、設定モードから commit を入力します。

検証

設定が正常に機能していることを確認します。

その選択したルートが転送テーブルにインストールされていることを確認

目的

設定されたポリシーが、デフォルトのポリシーに上書きされていることを確認してください。

アクション

動作モードからshow route forwarding-tableコマンドを入力します。

content_copy zoom_out_map
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ルーティング・テーブルにインポートされます。また、特定のルートのみをインポートする必要がある場合は、条件に基づいて相手ルーティング・デバイスからルートをエクスポートするように規定することも可能です。

ルートのエクスポートの条件は、以下のものがあります:

  • ルートが学習されたピア

  • ルートが学習されたインターフェイス

  • その他の必須属性

たとえば、以下のように表示されます。

content_copy zoom_out_map
[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ンドの出力に表示されているアウトバウンド・ルートに適用されます。

図 4: BGPインポートおよびエクスポート・ポリシーBGPインポートおよびエクスポート・ポリシー

プレフィックスの条件付きインストールを有効にするには、プレフィックスのエクスポートが行われるデバイスにエクスポート・ポリシーを設定する必要があります。エクスポート・ポリシーは各ルートを評価し,というステートfromメントに基づくすべてのマッチ条件を満たすことを確認します。また、というステートconditionメントの下に定義されたルートの存在も検索します(というステートfromメントの下に設定されたルートも検索します)。

ポリシーで定義した必須条件すべてに合致しない場合,またはというステートconditionメントで定義したルートがルーティング・テーブルに存在しない場合,そのルートはBGPピアにエクスポートされません。このように、条件付きエクスポート・ポリシーは、ピアのルーティング・テーブルにインストールしたい目的のルートまたはプレフィックスに関して、ルートをマッチングさせます。

エクスポート・ポリシーを使用して、プレフィックスの条件付きインストールを設定するには:

  1. プレフィックスをチェックするというステートconditionメントを作成します。

    content_copy zoom_out_map
    [edit]
    policy-options {
        condition condition-name {
            if-route-exists address table table-name;
        }
    }
    
  2. というステートconditionメントを使用して、新しく作成した条件を含むエクスポート・ポリシーを作成します。

    content_copy zoom_out_map
    [edit]
    policy-options {
        policy-statement policy-name {
            term 1 {
                from {
                    protocols bgp;
                    condition condition-name;
                }
                then {
                    accept;
                }
            }
        }
    }
    
  3. 選択したプレフィックスのみをルーティング・テーブルからエクスポートすることを要求するエクスポート・ポリシーをデバイスに適用します。

    content_copy zoom_out_map
    [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 この例で使用されているトポロジーを示しています。

図 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のエクスポートポリシーで満たされています:

content_copy zoom_out_map
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のインポートポリシーで満たされています:

content_copy zoom_out_map
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にコマンドをコピー&ペーストしてください。

ルーターインターネット

content_copy zoom_out_map
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

content_copy zoom_out_map
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

content_copy zoom_out_map
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 エディタを使用する」を参照してください。

プレフィックスの条件付きインストールを設定するには:

  1. 3つのルーター間のリンクを形成するルーターインターフェイスを設定します。

    content_copy zoom_out_map
    Router Internet
    [edit interfaces]
    user@Internet# set fe-0/1/3 unit 0 family inet address 10.0.89.14/30 
    
    content_copy zoom_out_map
    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  
    
    content_copy zoom_out_map
    Router South
    [edit interfaces]
    user@South# set fe-0/1/2 unit 0 family inet address 10.0.78.13/30 
    
  2. ルーターインターネットで5つのループバックインターフェイスアドレスを設定して、ルーターSouthのルーティングテーブルにインポートされるインターネットから学習するBGPルートをエミュレートし、ルーターIDとして設定する追加アドレス(192.168.9.1/32)を設定します。

    content_copy zoom_out_map
    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でループバックインターフェイスアドレスを設定します。

    content_copy zoom_out_map
    Router North
    [edit interfaces lo0 unit 0 family inet]
    user@North# set address 192.168.8.1/32
    
    content_copy zoom_out_map
    Router South
    [edit interfaces lo0 unit 0 family inet]
    user@South# set address 192.168.7.1/32
    
  3. ルーターNorthで、ルーターSouthにアドバタイズされる静的デフォルトルートを設定します。

    content_copy zoom_out_map
    [edit routing-options]
    user@North# set static route 0/0 reject
    
  4. ルーターNorthのルーティングテーブルからプレフィックスをエクスポートする条件を定義します。

    content_copy zoom_out_map
    [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
    
  5. ルーターインターネットとNorthで、それぞれエクスポートポリシー(into-bgpconditional-export-bgp)を定義し、BGPにルートをアドバタイズします。

    注:

    エクスポートポリシーで、条件prefix_11(ステップで設定4)を参照する必要があります。

    content_copy zoom_out_map
    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 
    
    content_copy zoom_out_map
    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
    
  6. ルーターSouthで、インポートポリシー(import-selected-routes)を定義して、ルーターNorthによってアドバタイズされたルートの一部をルーティングテーブルにインポートします。

    content_copy zoom_out_map
    [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
    
  7. 3つのルーターすべてでBGPを設定し、自律システム間でプレフィックスのフローを有効にします。

    注:

    プレフィックスアドバタイズメントが行われるように、定義したインポートおよびエクスポートポリシーをそれぞれ、対応するBGPグループに適用してください。

    content_copy zoom_out_map
    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 
    
    content_copy zoom_out_map
    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  
    
    content_copy zoom_out_map
    [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
    
    content_copy zoom_out_map
    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
    
  8. 3つすべてのルーターに、機器のルーターIDと自律システム番号を設定します。

    注:

    この例では、ルーターIDがルーターのlo0.0インターフェイスで設定されたIPアドレスに基づいて設定されています。

    content_copy zoom_out_map
    Router Internet
    [edit routing options]
    user@Internet# set router-id 192.168.9.1
    user@Internet# set autonomous-system 65300
    
    content_copy zoom_out_map
    Router North
    [edit routing options]
    user@North# set router-id 192.168.8.1
    user@North# set autonomous-system 65200
    
    content_copy zoom_out_map
    Router South
    [edit routing options]
    user@South# set router-id 192.168.7.1
    user@South# set autonomous-system 65100
    

結果

設定モードから、show interfacesshow protocols bgpshow policy-options、およびshow routing-optionsのコマンドを発行して設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の手順を繰り返して設定を修正します。

デバイスインターネット

content_copy zoom_out_map
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;
        }
    }
}
content_copy zoom_out_map
user@Internet# show protocols bgp
group toNorth {
    local-address 10.0.89.14;
    export into-bgp;
    peer-as 65200;
    neighbor 10.0.89.13;
}
content_copy zoom_out_map
user@Internet# show policy-options
policy-statement into-bgp {
    term 1 {
        from interface lo0.0;
        then accept;
    }
}
content_copy zoom_out_map
user@Internet# show routing-options
router-id 192.168.9.1;
autonomous-system 65300;

デバイスNorth

content_copy zoom_out_map
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;
        }
    }
}
content_copy zoom_out_map
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;
}
content_copy zoom_out_map
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;
    }
}
content_copy zoom_out_map
user@North# show routing-options
static {
    route 0.0.0.0/0 reject;
}
router-id 192.168.8.1;
autonomous-system 65200;

デバイスSouth

content_copy zoom_out_map
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;
        }
    }
}
content_copy zoom_out_map
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;
    }
}
content_copy zoom_out_map
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;
    }
}
content_copy zoom_out_map
user@South# show routing-options
router-id 192.168.7.1;
autonomous-system 65100;

デバイスの設定が完了したら、設定モードcommitからを入力します。

検証

設定が正常に機能していることを確認します。

BGPの検証

目的

3つのルーター間でBGPセッションが確立されたことを確認します。

アクション

オペレーショナルモードから、show bgp neighbor neighbor-addressコマンドを実行します。

  1. ルーターインターネットでBGPセッションをチェックして、ルーターNorthがネイバーであることを確認します。

    content_copy zoom_out_map
    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
  2. ルーターNorthでBGPセッションをチェックして、ルーターインターネットがネイバーであることを確認します。

    content_copy zoom_out_map
    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によって受信されていることを確認します。

アクション

  1. ルーターインターネットでのオペレーショナルモードから、show route advertising-protocol bgp neighbor-addressコマンドを実行します。

    content_copy zoom_out_map
    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にアドバタイズすることを確認します。

  2. ルーターNorthでの運用モードから、コマshow route receive-protocol bgp neighbor-addressンドを実行します。

    content_copy zoom_out_map
    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でアドバタイズされていることを確認します。

アクション
  1. ルーターNorthでの運用モードから、コマshow route 0/0 exactンドを実行します。

    content_copy zoom_out_map
    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)の存在を検証します。

  2. ルーターNorthでの運用モードから、コマshow route advertising-protocol bgp neighbor-addressンドを実行します。

    content_copy zoom_out_map
    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コマンドを実行します。

content_copy zoom_out_map
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ルートの送信を停止することを確認します。

アクション
  1. ループバックインターフェイスで172.16.11.1/32アドレスを無効にすることにより、デバイスインターネットが172.16.11.1/3ルートの送信を停止する原因となります。

    content_copy zoom_out_map
    [edit interfaces lo0 unit 0 family inet]
    user@Internet# deactivate address 172.16.11.1/32
    user@Internet# commit
    
  2. ルーターNorthでの運用モードから、コマshow route advertising-protocol bgp neighbor-addressンドを実行します。

    content_copy zoom_out_map
    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ルートが存在しない場合に予想される動作です。

  3. デバイスインターネットのループバックインターフェイスで、172.16.11.1/32アドレスを再有効化します。

    content_copy zoom_out_map
    [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オプションを使用します。

  • インポートポリシーを無効にします。

  1. オペレーショナルモードから、コマshow route receive-protocol bgp neighbor-address hiddenンドを実行して、非表示ルートを表示します。

    content_copy zoom_out_map
    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)によって非表示となっているルートの存在を確認します。

  2. [edit protocols bgp group group-name]層レベルでステートdeactivate importメントを設定して、BGPインポートポリシーを無効にします。

    content_copy zoom_out_map
    [edit protocols bgp group toNorth]
    user@South# deactivate import
    user@South# commit
    
  3. インポートポリシーを無効にした後、オペレーショshow route receive-protocol bgp neighbor-addressナルモードコマンドを実行して、ルートをチェックします。

    content_copy zoom_out_map
    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)の存在を確認します。

  4. BGPインポートポリシーを有効にし、階[edit protocols bgp group group-name]層レベルでそれぞれとステートkeep noneメントactivate importを設定することにより、ルーティングテーブルから非表示ルートを削除します。

    content_copy zoom_out_map
    [edit protocols bgp group toNorth]
    user@South# activate import
    user@South# set keep none
    user@South# commit
    
  5. オペレーショナルモードからshow route receive-protocol bgp neighbor-address hiddenコマンドを実行し、インポートポリシーを有効にし、keep noneステートメントを設定した後、ルートをチェックします。

    content_copy zoom_out_map
    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

受信

すべてのルートの受信を拒否します。

アドバタイズ

すべてのルートのアドバタイズを拒否します。

footer-navigation