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

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

アンケートの所要時間はおよそ 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

マルチプロトコルBGPを理解する

マルチプロトコルBGP(MP-BGP)は、BGP の拡張機能で、BGP が複数のネットワーク層やアドレスファミリーのルーティング情報を伝送できるようにします。MP-BGP は、マルチキャストルーティングに使用するユニキャストルートを、ユニキャストIP転送に使用するルートとは別に、転送することができます。

MP-BGP を有効にするためには、ステートfamily inetメントを含めることで、ユニキャスト IPv4 以外のアドレスファミリーのネットワーク層到達可能性情報(NLRI)を伝送するように、BGP を設定する必要があります。

content_copy zoom_out_map
family inet {
    (any | flow | labeled-unicast | multicast | unicast) {
        accepted-prefix-limit {
            maximum number;
            teardown <percentage> <idle-timeout (forever | minutes)>;
            drop-excess <percentage>;
            hide-excess <percentage>;}
}
        <loops number>;
        prefix-limit {
            maximum number;
            teardown <percentage> <idle-timeout (forever | minutes)>;
            drop-excess <percentage>;
            hide-excess <percentage>;}
 }
        rib-group group-name;
        topology name {
            community {
                target identifier;
            }
        }
    }
}

MP-BGP が IPv6 アドレスファミリーのために、NLRI を伝送できるようにするには、ステートfamily inet6メントを使用します:

content_copy zoom_out_map
family inet6 {
    (any | labeled-unicast | multicast | unicast) {
        accepted-prefix-limit {
            maximum number;
            teardown <percentage> <idle-timeout (forever | minutes)>;
            drop-excess <percentage>;
            hide-excess <percentage>;}
}
        <loops number>;
        prefix-limit {
            maximum number;
            teardown <percentage> <idle-timeout (forever | minutes)>;
            drop-excess <percentage>;
            hide-excess <percentage>;}
 }
        rib-group group-name;
    }
}

ルーターのみで、MP-BGP が IPv4 アドレスファミリーのためのレイヤ 3 仮想プライベートネットワーク(VPN)NLRI を伝送できるようにするには、family inet-vpnステートメントを使用します。

content_copy zoom_out_map
family inet-vpn {
    (any | flow | multicast | unicast) {
        accepted-prefix-limit {
            maximum number;
            teardown <percentage> <idle-timeout (forever | minutes)>;
            drop-excess <percentage>;
            hide-excess <percentage>;}
}
        <loops number>;
        prefix-limit {
            maximum number;
            teardown <percentage> <idle-timeout (forever | minutes)>;
            drop-excess <percentage>;
            hide-excess <percentage>;}
}
        rib-group group-name;
    }
}

ルーターのみで、MP-BGP が IPv6 アドレスファミリーのためのレイヤ 3 VPN NLRI を伝送できるようにするには、ステートfamily inet6-vpnメントを使用します。

content_copy zoom_out_map
family inet6-vpn {
    (any | multicast | unicast) {
        accepted-prefix-limit {
            maximum number;
            teardown <percentage> <idle-timeout (forever | minutes)>;
            drop-excess <percentage>;
            hide-excess <percentage>;}
}
        <loops number>;
        prefix-limit {
            maximum number;
            teardown <percentage> <idle-timeout (forever | minutes)>;
            drop-excess <percentage>;
            hide-excess <percentage>;}}
        rib-group group-name;
    }
}

ルーターのみで、MP-BGP が IPv4 アドレスファミリーのためのマルチキャスト VPN NLRI を伝送できるようにし、VPN シグネリングを有効にするには、family inet-mvpnステートメントを使用します。

content_copy zoom_out_map
family inet-mvpn {
    signaling {
        accepted-prefix-limit {
            maximum number;
            teardown <percentage> <idle-timeout (forever | minutes)>;
            drop-excess <percentage>;
            hide-excess <percentage>;}}
        <loops number>;
        prefix-limit {
            maximum number;
            teardown <percentage> <idle-timeout (forever | minutes)>;
            drop-excess <percentage>;
            hide-excess <percentage>;}}
    }
}

MP-BGP が、IPv6 アドレスファミリーのためのマルチキャスト VPN NLRI を伝送できるようにし、VPN シグネリングを有効にするには、family inet6-mvpnステートメントを使用します。

content_copy zoom_out_map
family inet6-mvpn {
    signaling {
        accepted-prefix-limit {
            maximum number;
            teardown <percentage> <idle-timeout (forever | minutes)>;
            drop-excess <percentage>;
            hide-excess <percentage>;}}
        <loops number>;
        prefix-limit {
            maximum number;
            teardown <percentage> <idle-timeout <forever | minutes>;
            drop-excess <percentage>;
            hide-excess <percentage>;}}
    }
}

マルチプロトコル BGP ベースのマルチキャスト VPN の詳細については、Junos OS マルチキャストプロトコルユーザ・ガイドラインを参照してください。

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

注:

その[edit protocols bgp family]階層レベルで指定されたアドレスファミリーを変更した場合、ルーティング・デバイスの現在の BGP セッションはすべて削除され、その後、再確立されます。

Junos OS Release 9.6 以降では、特定の BGP アドレスファミリーに対してループ値を指定することができます。

デフォルトでは、BGP ピアは、ユニキャスト転送の目的で使用するユニキャストルートのみを伝送します。BGP ピアが、マルチキャストルートのみを伝送するように設定するには、multicastオプションを指定します。BGP ピアが、ユニキャストとマルチキャストの両方のルートを伝送するように設定するには、anyオプションを指定します。

MP-BGP が設定されている場合、BGP は、異なるルーティングテーブルに MP-BGP ルートをインストールします。各ルーティングテーブルは、プロトコルファミリーまたはアドレスファミリーインジケーター(AFI)と、それに続くアドレスファミリー識別子(SAFI)によって識別されます。

次のリストは、可能なすべての AFI と SAFI の組み合わせを示しています。

  • AFI=1、SAFI=1、IPv4 ユニキャスト

  • AFI=1、SAFI=2、IPv4 マルチキャスト

  • AFI=1、SAFI=128、L3VPN IPv4 ユニキャスト

  • AFI=1、SAFI=129、L3VPN IPv4 マルチキャスト

  • AFI=2、SAFI=1、IPv6 ユニキャスト

  • AFI=2、SAFI=2、IPv6 マルチキャスト

  • AFI=25、SAFI=65、BGP-VPLS/BGP-L2VPN

  • AFI=2、SAFI=128、L3VPN IPv6 ユニキャスト

  • AFI=2、SAFI=129、L3VPN IPv6 マルチキャスト

  • AFI=1、SAFI=132、RT-Constrain

  • AFI=1、SAFI=133、フローの仕様

  • AFI=1、SAFI=134、フローの仕様

  • AFI=3、SAFI=128、CLNS VPN

  • AFI=1、SAFI=5、NG-MVPN IPv4

  • AFI=2、SAFI=5、NG-MVPN IPv6

  • AFI=1、SAFI=66、MDT-SAFI

  • AFI=1、SAFI=4、ラベル付き IPv4

  • AFI=2、SAFI=4、ラベル付き IPv6 (6PE)

inet.2 ルーティングテーブルにインストールされたルートは、マルチキャストソースへのルートであることを示す SAFI を使用しているため、MP-BGP ピアにのみエクスポートすることができます。inet.0 ルーティング テーブルにインストールされたルートは、標準 の BGP ピアにのみエクスポートできます。

inet.2 のルーティングテーブルは、inet.0 にあるルートのサブセットである必要があります。というのも、ユニキャストトラフィックを送信できないマルチキャストソースへのルートがあるという可能性は低いからです。inet.2 ルーティング テーブルには、マルチキャストのリバースパス転送チェックに使用されるユニキャストルートと、MP-BGP によって NLRI マルチキャストアップデートから学習した追加の到達可能性情報が格納されています。inet.2 のルーティングテーブルは、( anyに NLRI を設定することで)MP-BGP を設定した場合、自動的に作成されます。

MP-BGP を有効にすると、次のことが可能になります。

BGPピアセッションで受信するプレフィックス数の制限について

BGP ピアセッションで受信するプレフィックスの数を制限し、注入されたプレフィックスの数が設定された制限値を超えた場合に、レート制限メッセージを記録することができます。また、プレフィックス数が制限を超えた場合、ピアリングを解消することができます。

BGP セッションで受信できるプレフィックス数に制限を設定するには、ステートprefix-limitメントを含めます。

content_copy zoom_out_map
prefix-limit {
    maximum number;
    teardown <percentage> <idle-timeout (forever | minutes)>;
    drop-excess <percentage>;
    hide-excess <percentage>;
}

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

このmaximum numberでは、1~4,294,967,295 の範囲で値を指定します。指定された最大プレフィックス数を超えた場合、システムログメッセージが送信されます。

そのステートteardownメントを含む場合、最大プレフィックス数を超えた時点でセッションは破棄されます。パーセンテージを指定した場合、プレフィックス数が指定された最大限の割合を超えた場合、メッセージが記録されます。セッションが中断された後、(ステートidle-timeoutメントを除く)短い時間で再確立されます。そのidle-timeoutステートメントを含める場合、指定された時間、または永久にセッションを停止することができます。このforeverを指定した場合、セッションは、clear bgp neighborコマンド出した後にのみ再確立されます。drop-excess <percentage>オプションを含めると、プレフィックス数の最大に達した時点で、過剰なルートが削除されます。パーセントを指定した場合、プレフィックス数が最大数のパーセント値を超えると、ルートが記録されます。hide-excess <percentage>オプションを含めると、プレフィックス数の最大に達した時点で、過剰なルートが非表示となります。パーセントを指定した場合、プレフィックス数が最大数のパーセント値を超えると、ルートが記録されます。割合が変更された場合は、自動的に経路が再評価されます。アクティブなルートが指定されたパーセントを下回ると、それらのルートは非表示のままとなります。

注:

Junos OS Release 9.2 以降では、BGP ピア セッションで受け入れ可能なプレフィックス数に制限を設定することもできます。詳細については、BGP ピアセッションで受け入れるプレフィックス数の制限についてを参照してください。

BGP ピアセッションで受け入れるプレフィックス数の制限について

Junos OS Release 9.2 以降では、BGP ピア セッションで受け入れ可能なプレフィックス数を制限することができます。その指定した制限を超えた場合、システムログメッセージが送信されます。また、指定したプレフィックス数の上限を超えた場合に、BGP セッションをリセットするように指定することもできます。

BGP ピア セッションで受け入れ可能なプレフィックス数に制限を設定するには、accepted-prefix-limitのステートメントを含めます:

content_copy zoom_out_map
accepted-prefix-limit {
    maximum number;
    teardown <percentage> <idle-timeout (forever | minutes)>;
    drop <percentage>;
    hide <percentage>;
}

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

このmaximum numberでは、1~4,294,967,295 の範囲で値を指定します。

受け入れたプレフィックスの数が設定した制限を超えた場合、BGP ピア セッションをリセットするためのteardownステートメントを使用します。また、受け入れたプレフィックスの数が、その上限のパーセンテージを超えた場合は、システムログメッセージを送信するために、1 から 100 までのパーセント値を含めることができます。デフォルトでは、リセットされた BGP セッションは短時間で再確立されます。指定した期間に BGP セッションを再確立しないようにするためのidle-timeoutステートメントを使用します。タイムアウトの値は、1 分から 2400 分まで設定できます。そのforeverオプションを含めると、そのclear bgp neighborコマンドを発行するまで BGP セッションが再確立されません。ステートdrop-excess <percentage>メントを含めてパーセンテージを指定すると、プレフィックス数がパーセンテージを超えた場合に、超過したルートを停止します。その記hide-excess <percentage>述を含み、パーセンテージを指定すると、プレフィックス数がパーセンテージを超えた場合、超過した経路を非表示にすることができます。割合が変更された場合は、自動的に経路が再評価されます。

注:

ノンストップアクティブルーティング(NSR)が有効で、バックアップのルーティングエンジンに切り替えた場合、停止した BGP ピアは自動的に再起動されます。そのステートidle-timeout foreverメントが設定されていても、ピアは再起動されます。

注:

その代わりに、BGP ピア セッションで受信できる(受け入れるのではなく)プレフィックスの数の制限を設定することもできます。詳細については、BGPピアセッションで受信するプレフィックス数の制限についてを参照してください。

BGP ルーティングテーブルグループの設定

BGP セッションが、ユニキャストまたはマルチキャスト NLRI を受信すると、適切なテーブル(ユニキャストにはinet.0またはinet6.0、マルチキャストにはinet.2または inet6.2)にルートをインストールします。ユニキャストプレフィックスを、ユニキャストテーブルとマルチキャストテーブルの両方に追加するには、BGP ルーティングテーブルグループを設定することができます。これは、マルチキャスト NLRI ネゴシエーションを実行できない場合に有効です。

BGP のルーティングテーブルグループを設定するには、ステートrib-groupメントを使用します:

content_copy zoom_out_map
rib-group group-name;

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

他の AS にある PE ルーティングデバイスへのルートの解決

ラベル付きルートを、ルート解決のためのinet.3ルーティングテーブルに配置することができます。次に、これらのルートは、リモート PE が別の自律システム(AS)にまたがって配置されている場合、プロバイダエッジ(PE)のルーティングデバイスの接続のために解決されます。PE ルーティングデバイスが、VPN ルーティングおよび転送(VRF)のルーティングインスタンスにルートをインストールするためには、ネクストホップが、inet.3のテーブルに格納されているルートに解決する必要があります。

そのinet.3のルーティングテーブルにルートを解決するには、そのresolve-vpnのステートメントを使用します:

content_copy zoom_out_map
resolve-vpn group-name;

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

ラベル付きルート、およびラベルなしルートの許可

単一セッションで、ラベル付きルートとラベルなしルートの両方を交換することができます。ラベル付きルートは、inet.3 または inet.6.3 ルーティングテーブルに配置され、ラベル付きユニキャストルートおよびラベルなしユニキャストルートの両方を、ルーティングデバイスによって送信または受信することができます。

ラベル付きルートとラベルなしルートの両方を交換できるようにするには、ribのステーメントを使用します。

content_copy zoom_out_map
rib  (inet.3 | inet6.3);

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

例:IPv4トランスポート上のIPv6 BGPルートの設定

この例では、両方のサイドにIPv4インターフェイスが設定されているIPv4接続上で、IPv6とIPv4の両方のプレフィックスをエクスポートする方法を示します。

要件

この例を構成する前に、デバイスの初期化以上の特別な構成は必要ありません。

概要

IPv6のBGPプレフィックスをエクスポートする際には、以下の点に注意してください。

  • BGPは、のIPv4にマッピングされたIPv6プレフィックスを使ってネクストホップのプレフィックスを導き出します。例えば、IPv4のネクストホッププレフィックス10.19.1.1は、IPv6のネクストホッププレフィックス::ffff:10.19.1.1に変換されます。

    注:

    IPv6 BGPプレフィックスをエクスポートするには、IPv4にマッピングされたIPv6ネクストホップへのアクティブなルートがある必要があります。

  • リンク上にIPv6接続を設定する必要があります。接続は、IPv6トンネルまたはデュアルスタックの設定のいずれかである必要があります。この例では、デュアルスタッキングを使用しています。

  • IPv4にマッピングされたIPv6のプレフィックスを設定する際には、96ビットより長いマスクを使用します。

  • 通常のIPv6プレフィックスを使用したい場合は、スタティックルートを設定します。この例では、スタティックルートを使用しています。

図 1サンプルのトポロジーを示しています。

図 1: IPv4トランスポート上のIPv6 BGPルートを設定するトポロジーIPv4トランスポート上のIPv6 BGPルートを設定するトポロジー

設定

CLIクイック構成

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

デバイスR1

content_copy zoom_out_map
set interfaces fe-1/2/0 unit 1 family inet address 192.168.10.1/24
set interfaces fe-1/2/0 unit 1 family inet6 address ::ffff:192.168.10.1/120
set interfaces lo0 unit 1 family inet address 10.10.10.1/32
set protocols bgp group ext type external
set protocols bgp group ext family inet unicast
set protocols bgp group ext family inet6 unicast
set protocols bgp group ext export send-direct
set protocols bgp group ext export send-static
set protocols bgp group ext peer-as 200
set protocols bgp group ext neighbor 192.168.10.10
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 term 1 from protocol static
set policy-options policy-statement send-static term 1 then accept
set routing-options rib inet6.0 static route ::ffff:192.168.20.0/120 next-hop ::ffff:192.168.10.10
set routing-options static route 192.168.20.0/24 next-hop 192.168.10.10
set routing-options autonomous-system 100

デバイスR2

content_copy zoom_out_map
set interfaces fe-1/2/0 unit 2 family inet address 192.168.10.10/24
set interfaces fe-1/2/0 unit 2 family inet6 address ::ffff:192.168.10.10/120
set interfaces fe-1/2/1 unit 3 family inet address 192.168.20.21/24
set interfaces fe-1/2/1 unit 3 family inet6 address ::ffff:192.168.20.21/120
set interfaces lo0 unit 2 family inet address 10.10.0.1/32
set protocols bgp group ext type external
set protocols bgp group ext family inet unicast
set protocols bgp group ext family inet6 unicast
set protocols bgp group ext export send-direct
set protocols bgp group ext export send-static
set protocols bgp group ext neighbor 192.168.10.1 peer-as 100
set protocols bgp group ext neighbor 192.168.20.1 peer-as 300
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 term 1 from protocol static
set policy-options policy-statement send-static term 1 then accept
set routing-options autonomous-system 200

デバイスR3

content_copy zoom_out_map
set interfaces fe-1/2/0 unit 4 family inet address 192.168.20.1/24
set interfaces fe-1/2/0 unit 4 family inet6 address ::ffff:192.168.20.1/120
set interfaces lo0 unit 3 family inet address 10.10.20.1/32
set protocols bgp group ext type external
set protocols bgp group ext family inet unicast
set protocols bgp group ext family inet6 unicast
set protocols bgp group ext export send-direct
set protocols bgp group ext export send-static
set protocols bgp group ext peer-as 200
set protocols bgp group ext neighbor 192.168.20.21
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 term 1 from protocol static
set policy-options policy-statement send-static term 1 then accept
set routing-options rib inet6.0 static route ::ffff:192.168.10.0/120 next-hop ::ffff:192.168.20.21
set routing-options static route 192.168.10.0/24 next-hop 192.168.20.21
set routing-options autonomous-system 300

デバイスR1の設定

ステップバイステップでの手順

次の例では、設定階層のいくつかのレベルに移動する必要があります。CLIのナビゲーションについては、Junos OS CLIユーザーガイド設定モードでCLIエディターを使用する を参照してください。

Device R1を設定するには:

  1. IPv4アドレスとIPv6アドレスの両方を含むインターフェースを設定します。

    content_copy zoom_out_map
    [edit interfaces]
    user@R1# set fe-1/2/0 unit 1 family inet address 192.168.10.1/24
    user@R1# set fe-1/2/0 unit 1 family inet6 address ::ffff:192.168.10.1/120
    user@R1# set lo0 unit 1 family inet address 10.10.10.1/32
    
  2. EBGPを設定します。

    content_copy zoom_out_map
    [edit protocols bgp group ext]
    user@R1# set type external
    user@R1# set export send-direct
    user@R1# set export send-static
    user@R1# set peer-as 200
    user@R1# set neighbor 192.168.10.10
    
  3. BGPを有効にしてIPv4ユニキャストとIPv6ユニキャストルートを伝送します。

    content_copy zoom_out_map
    [edit protocols bgp group ext]
    user@R1# set family inet unicast
    user@R1# set family inet6 unicast
    

    IPv4ユニキャストルートは、デフォルトで有効になっています。ただし、他のNLRIアドレスファミリを設定する場合、IPv4ユニキャストは明示的に設定する必要があります。

  4. ルーティングポリシーを設定します。

    content_copy zoom_out_map
    [edit 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 term 1 from protocol static
    user@R1# set policy-statement send-static term 1 then accept
    
  5. いくつかのスタティックルートを設定します。

    content_copy zoom_out_map
    [edit routing-options]
    user@R1# set rib inet6.0 static route ::ffff:192.168.20.0/120 next-hop ::ffff:192.168.10.10
    user@R1# set static route 192.168.20.0/24 next-hop 192.168.10.10
    
  6. 自律システム(AS)番号を設定します。

    content_copy zoom_out_map
    [edit routing-options]
    user@R1# set autonomous-system 100
    
結果

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

content_copy zoom_out_map
user@R1# show interfaces
fe-1/2/0 {
    unit 1 {
        family inet {
            address 192.168.10.1/24;
        }
        family inet6 {
            address ::ffff:192.168.10.1/120;
        }
    }
}
lo0 {
    unit 1 {
        family inet {
            address 10.10.10.1/32;
        }
    }
}
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 {
    term 1 {
        from protocol static;
        then accept;
    }
}
content_copy zoom_out_map
user@R1# show protocols
bgp {
    group ext {
        type external;
        family inet {
            unicast;
        }
        family inet6 {
            unicast;
        }
        export [ send-direct send-static ];
        peer-as 200;
        neighbor 192.168.10.10;
    }
}
content_copy zoom_out_map
user@R1# show routing-options
rib inet6.0 {
    static {
        route ::ffff:192.168.20.0/120 next-hop ::ffff:192.168.10.10;
    }
}
static {
    route 192.168.20.0/24 next-hop 192.168.10.10;
}
autonomous-system 100;

デバイスの設定が完了したら、設定モードから commit を入力します。デバイスR2とデバイスR3の設定を繰り返し、必要に応じてインターフェイス名とIPアドレスを変更します。

検証

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

ネイバーステータスの確認

目的

BGPがIPv6のユニキャストルートを伝送できるようになっていることを確認します。

アクション

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

content_copy zoom_out_map
user@R2> show bgp neighbor 
Peer: 192.168.10.1+179 AS 100  Local: 192.168.10.10+54226 AS 200  
  Type: External    State: Established    Flags: <Sync>
  Last State: OpenConfirm   Last Event: RecvKeepAlive
  Last Error: None
  Export: [ send-direct send-static ] 
  Options: <Preference AddressFamily PeerAS Refresh>
  Address families configured: inet-unicast inet6-unicast
  Holdtime: 90 Preference: 170
  Number of flaps: 0
  Peer ID: 10.10.10.1      Local ID: 10.10.0.1         Active Holdtime: 90
  Keepalive Interval: 30         Peer index: 0   
  BFD: disabled, down
  Local Interface: fe-1/2/0.2                       
  NLRI for restart configured on peer: inet-unicast inet6-unicast
  NLRI advertised by peer: inet-unicast inet6-unicast
  NLRI for this session: inet-unicast inet6-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 inet6-unicast
  NLRI of received end-of-rib markers: inet-unicast inet6-unicast
  NLRI of all end-of-rib markers sent: inet-unicast inet6-unicast
  Peer supports 4 byte AS extension (peer-as 100)
  Peer does not support Addpath
  Table inet.0 Bit: 10000
    RIB State: BGP restart is complete
    Send state: in sync
    Active prefixes:              1
    Received prefixes:            3
    Accepted prefixes:            2
    Suppressed due to damping:    0
    Advertised prefixes:          4
  Table inet6.0 Bit: 20000
    RIB State: BGP restart is complete
    Send state: in sync
    Active prefixes:              0
    Received prefixes:            1
    Accepted prefixes:            1
    Suppressed due to damping:    0
    Advertised prefixes:          2
  Last traffic (seconds): Received 24   Sent 12   Checked 60  
  Input messages:  Total 132    Updates 6       Refreshes 0     Octets 2700
  Output messages: Total 133    Updates 3       Refreshes 0     Octets 2772
  Output Queue[0]: 0
  Output Queue[1]: 0

Peer: 192.168.20.1+179 AS 300  Local: 192.168.20.21+54706 AS 200  
  Type: External    State: Established    Flags: <Sync>
  Last State: OpenConfirm   Last Event: RecvKeepAlive
  Last Error: None
  Export: [ send-direct send-static ] 
  Options: <Preference AddressFamily PeerAS Refresh>
  Address families configured: inet-unicast inet6-unicast
  Holdtime: 90 Preference: 170
  Number of flaps: 0
  Peer ID: 10.10.20.1      Local ID: 10.10.0.1         Active Holdtime: 90
  Keepalive Interval: 30         Peer index: 1   
  BFD: disabled, down
  Local Interface: fe-1/2/1.3                       
  NLRI for restart configured on peer: inet-unicast inet6-unicast
  NLRI advertised by peer: inet-unicast inet6-unicast
  NLRI for this session: inet-unicast inet6-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 inet6-unicast
  NLRI of received end-of-rib markers: inet-unicast inet6-unicast
  NLRI of all end-of-rib markers sent: inet-unicast inet6-unicast
  Peer supports 4 byte AS extension (peer-as 300)
  Peer does not support Addpath
  Table inet.0 Bit: 10000
    RIB State: BGP restart is complete
    Send state: in sync
    Active prefixes:              1
    Received prefixes:            3
    Accepted prefixes:            2
    Suppressed due to damping:    0
    Advertised prefixes:          4
  Table inet6.0 Bit: 20000
    RIB State: BGP restart is complete
    Send state: in sync
    Active prefixes:              0
    Received prefixes:            1
    Accepted prefixes:            1
    Suppressed due to damping:    0
    Advertised prefixes:          2
  Last traffic (seconds): Received 1    Sent 15   Checked 75  
  Input messages:  Total 133    Updates 6       Refreshes 0     Octets 2719
  Output messages: Total 131    Updates 3       Refreshes 0     Octets 2734
  Output Queue[0]: 0
  Output Queue[1]: 0
意味

出力にinet6-unicastが多数出現していることは、BGPがIPv6ユニキャストルートを伝送できるようになっていることを示しています。

ルーティングテーブルのチェック

目的

デバイスR2のinet6.0ルーティングテーブルにBGPルートがあることを確認します。

アクション

動作モードからshow route protocol bgp inet6.0コマンドを入力します。

content_copy zoom_out_map
user@R2> show route protocol bgp table inet6.0
inet6.0: 7 destinations, 10 routes (7 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

::ffff:192.168.10.0/120  [BGP/170] 01:03:49, localpref 100, from 192.168.20.1
                      AS path: 300 I
                    > to ::ffff:192.168.20.21 via fe-1/2/1.3
::ffff:192.168.20.0/120  [BGP/170] 01:03:53, localpref 100, from 192.168.10.1
                      AS path: 100 I
                    > to ::ffff:192.168.10.10 via fe-1/2/0.2

BGP IPv6セッション上でのIPv4ルートのアドバタイズの概要

IPv6ネットワークでは、BGPは通常、BGPピア間のIPv6セッション上で、IPv6ネットワーク層の到達可能性情報を告知します。以前のリリースでは、Junos OSは、inet6ユニキャスト、inet6マルチキャスト、またはinet6のラベル付きユニキャストのアドレスファミリーのみの交換に対応していました。この機能は、すべてのBGP アドレスファミリーの交換を可能にします。コアにIPv6が含まれるデュアルスタック環境において、この機能は、BGPがIPv6のBGPセッション上でIPv4のネクストホップを持つIPv4ユニキャストの到達可能性を告知することを可能にします。

この機能は、両方のエンドポイントでIPv4が設定されているBGP IPv6セッションのみに対応しています。そのlocal-ipv4-addressには、IBGPまたはマルチホップEBGPセッション向けの、ループバックアドレスまたは任意のipv4アドレスを指定できますBGPコンフェデレーションに属していないシングルホップの外部BGPスピーカーの場合、設定されたローカルIPv4アドレスが直接接続されていないと、BGPセッションが閉じられて待機状態になり、エラーが発生してshow bgp neighborコマンドの出力に表示されます。

IPv6セッション上でIPv4ルートのアドバタイズを有効にするには、次のようにlocal-ipv4-addressを設定します。

content_copy zoom_out_map
[edit protocols bgp family inet unicast] 
local-ipv4-address local ipv4 address;
注:

BGPは、inet6ユニキャスト、inet6マルチキャスト、inet6ラベル付きユニキャストのアドレスファミリーを、IPv6 BGPセッション上でアドバタイズする機能をすでに有しているため、それをアドレスファミリーには設定することはできません。

設定された local-ipv4-address は、BGPがセルフネクストホップでルートをアドバタイズする場合のみに使用されます。IBGPがEBGPピアから学習したルートをアドバタイズしたり、ルートリフレクターがそのクライアントにBGPルートをアドバタイズする場合、BGPはルートのネクストホップを変更せず、設定されたを無視しlocal-ipv4-address、元のIPv4ネクストホップを使用します。

例:IPv6 BGPセッション上での IPv4ルートのアドバタイズ

この例では、IPv6 BGPセッション上で、IPv4ルートをアドバタイズする方法を説明しています。コアにIPv6があるデュアルスタック環境では、リモートのIPv4ホストへの到達を必要とします。従って、BGPは、IPv4をIPv4ネクストホップで、BGPセッション上のBGPピアにアドバタイズします。その場合、IPv6の送信元と宛先のアドレスを使用します。この機能は、BGPが、IPv6 BGPセッション上で、IPv4ネクストホップを使用して、IPv4ユニキャストの到着可能性をアドバタイズすることを可能にします。

要件

この例では、以下のハードウェアとソフトウェアのコンポーネントを使用しています。

  • デュアルスタッキング機能を備えた3つのルーター

  • すべてのデバイスで、Junos OS Release 16.1以降が作動していること

IPv6 BGPセッション上でのIPv4アドバタイズメントを有効にする前に、以下を実行してください。

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

  2. すべてのデバイスで、デュアルスタッキングを設定します。

概要

リリース16.1以降、Junos OSは、BGPがIPv6 BGPセッション上で、IPv4ネクストホップを使用し、IPv4ユニキャストの到達可能性をアドバタイズすることを可能にします。以前のJunos OSリリースで、BGPは、IPv6 BGPセッション上で、inet6ユニキャスト、inet6マルチキャスト、およびinet6ラベル付きユニキャストアドレスファミリーのみをアドバイタイズできました。この機能は、BGPがIPv6セッション上で、すべてのBGPアドレスファミリーを交換することを可能にします。BGPを有効にして、BGPピアにIPv4ネクストホップをIPv6セッション上で使用し、IPv4ルートをアドバタイズすることができます。設定された local-ipv4-address は、BGPがセルフネクストホップでルートをアドバタイズする場合のみに使用されます。

注:

BGPは、inet6ユニキャスト、inet6マルチキャスト、inet6ラベル付きユニキャストのアドレスファミリーを、IPv6 BGPセッション上でアドバタイズする機能をすでに有しているため、それをアドレスファミリーには設定することはできません。

トポロジー

図 2では、IPv6外部BGPセッションは、ルーターR1とR2の間で作動しています。IPv6 IBGPセッションは、ルーターR2とルーターR3の間で確立されています。IPv4スタティックルートは、R1のBGPに再配送されています。IPv6 BGPセッション上で、IPv4ルートを再配送するには、新たな機能を、[edit protocols bgp address family]の階層レベルのすべてのルーター上で有効にしなければなりません。

図 2: IPv6 BGPセッション上での IPv4ルートのアドバタイズIPv6 BGPセッション上での IPv4ルートのアドバタイズ

設定

CLIクイック構成

この例を迅速に設定するには、以下のコマンドをコピーして、テキストファイルに貼り付け、改行を削除し、ネットワーク設定に一致させる必要がある詳細情報を変更し、コマンドを [edit] 階層レベルでCLIにコピーアンドペーストして、設定モードから commit を入力します。

ルーター R1

content_copy zoom_out_map
set interfaces ge-0/0/0 unit 0 description R1->R2
set interfaces ge-0/0/0 unit 0 family inet address 140.1.1.1/24
set interfaces ge-0/0/0 unit 0 family inet6 address ::140.1.1.1/126
set interfaces lo0 unit 0 family inet6 address 1::1/128
set routing-options static route 11.1.1.1/32 discard
set routing-options static route 11.1.1.2/32 discard
set routing-options autonomous-system 64497
set protocols bgp group ebgp-v6 type external
set protocols bgp group ebgp-v6 export p1
set protocols bgp group ebgp-v6 peer-as 64496
set protocols bgp group ebgp-v6 neighbor ::140.1.1.2 description R2
set protocols bgp group ebgp-v6 neighbor ::140.1.1.2 family inet unicast local-ipv4-address 140.1.1.1
set policy-options policy-statement p1 from protocol static
set policy-options policy-statement p1 then accept

ルーターR2

content_copy zoom_out_map
set interfaces ge-0/0/0 unit 0 description R2->R1
set interfaces ge-0/0/0 unit 0 family inet address 140.1.1.2/24
set interfaces ge-0/0/0 unit 0 family inet6 address ::140.1.1.2/126
set interfaces ge-0/0/1 unit 0 description R2->R3
set interfaces ge-0/0/1 unit 0 family inet address 150.1.1.1/24
set interfaces ge-0/0/1 unit 0 family inet6 address ::150.1.1.1/126
set interfaces lo0 unit 0 family inet6 address 1::2/128
set routing-options autonomous-system 64496
set protocols bgp group ibgp-v6 type internal
set protocols bgp group ibgp-v6 export change-nh
set protocols bgp group ibgp-v6 neighbor ::150.1.1.2 description R3
set protocols bgp group ibgp-v6 neighbor ::150.1.1.2 family inet unicast local-ipv4-address 150.1.1.1
set protocols bgp group ebgp-v6 type external
set protocols bgp group ebgp-v6 peer-as 64497
set protocols bgp group ebgp-v6 neighbor ::140.1.1.1 description R1
set protocols bgp group ebgp-v6 neighbor ::140.1.1.1 family inet unicast local-ipv4-address 140.1.1.2
set policy-options policy-statement change-nh from protocol bgp
set policy-options policy-statement change-nh then next-hop self
set policy-options policy-statement change-nh then accept

ルータ R3

content_copy zoom_out_map
set interfaces ge-0/0/0 unit 0 description R3->R2
set interfaces ge-0/0/0 unit 0 family inet address 150.1.1.2/24
set interfaces ge-0/0/0 unit 0 family inet6 address ::150.1.1.2/126
set interfaces lo0 unit 0 family inet6 address 1::3/128
set routing-options autonomous-system 64496
set protocols bgp group ibgp-v6 type internal
set protocols bgp group ibgp-v6 neighbor ::150.1.1.1 description R2
set protocols bgp group ibgp-v6 neighbor ::150.1.1.1 family inet unicast local-ipv4-address 150.1.1.2

ルーターR1の設定

ステップバイステップでの手順

次の例では、設定階層内のさまざまなレベルに移動する必要があります。CLI のナビゲーションについては、CLIユーザー・ガイドコンフィギュレーション・モードでのCLIエディタの使用を参照してください。

ルータ R1 の設定を行う。

注:

適切なインターフェイス名、アドレス、およびその他のパラメーターを変更した後、他のルーターに対してこの手順を繰り返します。

  1. インターフェイスにIPv4とIPv6のアドレスを設定します。

    content_copy zoom_out_map
    [edit interfaces]
    user@R1# set ge-0/0/0 unit 0 description R1->R2
    user@R1# set ge-0/0/0 unit 0 family inet address 140.1.1.1/24
    user@R1# set ge-0/0/0 unit 0 family inet6 address ::140.1.1.1/126
    
  2. ループバックアドレスを設定します。

    content_copy zoom_out_map
    [edit interfaces]
    user@R1# set lo0 unit 0 family inet6 address 1::1/128
    
  3. アドバタイズの必要があるIPv4スタティックルートを設定します。

    content_copy zoom_out_map
    [edit routing-options]
    user@R1# set static route 11.1.1.1/32 discard
    user@R1# set static route 11.1.1.2/32 discard
    
  4. BGP ホストの自律システムを設定します。

    content_copy zoom_out_map
    [edit routing-options]
    user@R1# set autonomous-system 64497
    
  5. 外部エッジルーターに EBGP を設定します。

    content_copy zoom_out_map
    [edit protocols]
    user@R1# set bgp group ebgp-v6 type external
    user@R1# set bgp group ebgp-v6 peer-as 64496
    user@R1# set bgp group ebgp-v6 neighbor ::140.1.1.2 description R2
    
  6. 機能を有効にして、BGP IPv6セッション上でIPv4アドレス140.1.1.1をアドバタイズします。

    content_copy zoom_out_map
    [edit protocols]
    user@R1# set bgp group ebgp-v6 neighbor ::140.1.1.2 family inet unicast local-ipv4-address 140.1.1.1
    
  7. ポリシーp1を定義して、すべてのスタティックルートを受信します。

    content_copy zoom_out_map
    [edit policy-options]
    user@R1# set policy-statement p1 from protocol static
    user@R1# set policy-statement p1 then accept
    
  8. ポリシーp1をEBGPグループのebgp-v6に適用します。

    content_copy zoom_out_map
    [edit protocols]
    user@R1# set bgp group ebgp-v6 export p1
    

結果

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

content_copy zoom_out_map
[edit] 
user@R1# show interfaces
ge-0/0/0 {
    unit 0 {
        description R1->R2;
        family inet {
            address 140.1.1.1/24;
        }
        family inet6 {
            address ::140.1.1.1/126;
        }
    }
    lo0 {
        unit 0 {
            family inet {
                address 1::1/128;
            }
        }
    }
}
content_copy zoom_out_map
[edit] 
user@R1# show protocols
bgp {
    group ebgp-v6 {
        type external;
        export p1;
        peer-as 64496;
        neighbor ::140.1.1.2 {
            description R2;
            family inet {
                unicast {
                    local-ipv4-address 140.1.1.1;
                }
            }
        }
    }
}
content_copy zoom_out_map
[edit] 
user@R1# show routing-options
static {
    route 11.1.1.1/32 discard;
    route 11.1.1.2/32 discard;
}
autonomous-system 64497;
content_copy zoom_out_map
[edit] 
user@R1# show policy-options
policy-statement p1 {
    from {
        protocol static;
    }
    then accept;
}

デバイスの設定が完了したら、設定をコミットします。

content_copy zoom_out_map
user@R1# commit

検証

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

BGPセッションが稼働していることを確認

目的

設定したインターフェイスでBGPが作動し、また、各ネイバーアドレスでBGPセッションがアクティブになっていることを確認します。

アクション

運用モードから、ルーターR1のshow bgp summaryコマンドを実行します。

content_copy zoom_out_map
user@R1> show bgp summary
Groups: 1 Peers: 1 Down peers: 0
Table          Tot Paths  Act Paths Suppressed    History Damp State    Pending
inet.0               
                       0          0          0          0          0          0
Peer                     AS      InPkt     OutPkt    OutQ   Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped...
::140.1.1.2             64496       4140       4158       0       0  1d 7:10:36 0/0/0/0              0/0/0/0
意味

BGPセッションが起動・作動し、BGPピアリングが確立されています。

IPv4アドレスがアドバタイズされていることを確認

目的

設定したIPv4アドレスが、設定したBGPネイバーにルーターR1によってアドバタイズされていることを確認します。

アクション

運用モードから、ルーターR1のshow route advertising-protocol bgp ::150.1.1.2コマンドを実行します。

content_copy zoom_out_map
user@R1> show route advertising-protocol bgp ::150.1.1.2
inet.0: 48 destinations, 48 routes (48 active, 0 holddown, 0 hidden)
  Prefix		  Nexthop	       MED     Lclpref    AS path
* 11.1.1.1/32       Self                         64497        64497 I
* 11.1.1.2/32       Self                         64497        64497 I
意味

IPv4スタティックルートは、BGPネイバールーターR2にアドバタイズされています。

BGPネイバールーターR2がアドバタイズされたIPv4アドレスを受信していることを確認

目的

ルーターR2が、ルーターR1によりIPv6上でBGPネイバーにアドバタイズされているIPv4アドレスを受信していることを確認します。

アクション
content_copy zoom_out_map
user@R2> show route receive-protocol bgp ::140.1.1.1
inet.0: 48 destinations, 48 routes (48 active, 0 holddown, 0 hidden)
  Prefix		  Nexthop	       MED     Lclpref    AS path
* 11.1.1.1/32        140.1.1.1                               64497 I
* 11.1.1.2/32        140.1.1.1                               64497 I

iso.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)

inet6.0: 9 destinations, 10 routes (9 active, 0 holddown, 0 hidden)
意味

ルーターR2のルーティングテーブルでのスタティックIPv4ルートの存在は、それが、ルーターR1からアドバタイズされたIPv4ルートを受信していることを示しています。

IPv6 をネクストホップとする IPv4 ルートの BGP への再配分を理解する

主に IPv6 トラフィックを伝送するネットワークでは、必要に応じて IPv4 ルートをルーティングする必要があります。例えば、インターネットサービスプロバイダが、IPv6 のみのネットワークを構築しているが、まだ IPv4 のトラフィックをルーティングする顧客がいる場合などです。この場合、そのような顧客に対応するために、IPv4 のトラフィックを IPv6 のネットワーク上に転送する必要があります。RFC 5549 の IPv6 のネクストホップで IPv4 ネットワーク層の到達可能性に関する情報を告知で説明するように、IPv4 トラフィックは、カスタマー構内設備(CPE)デバイスから IPv4-over-IPv6 のゲートウェイにトンネルリンクされます。これらのゲートウェイは、エニーキャストアドレスを介して CPE デバイスに通知されます。ゲートウェイデバイスは、リモート CPE デバイスへの動的 IPv4-over-IPv6 トンネルを作成し、トラフィックを誘導するために、IPv4 の集合経路を告知します。

注:

動的 IPv4-over-IPv6 トンネル機能は、Junos OS Release 17.3R1 の統合型 ISSU をサポートしていません。

プログラム可能なインターフェイスを搭載したルートリフレクタ(RR)は、IBGP を介してゲートウェイルーターに接続され、IPv6 アドレスをネクストホップとするルートをホストします。これらの RR は、トンネル情報をネットワークに注入するために、IPv4 /32 アドレスを告知します。ゲートウェイルーターは、通信回線を介して利用可能な顧客プロバイダー・エッジへの動的 IPv4-over-IPv6 トンネルを作成します。また、ゲートウェイルーターは、トラフィックを誘導するために、IPv4 の集合経路を告知します。そして、RR はトンネル送信元ルートを ISP に告知します。RR がトンネルルートを削除すると、BGP もルートを断つのでトンネルが削除され、CPE は到達できないようにされます。また、ゲートウェイ・ルーターは、すべての集合経路が削除された場合、IPv4 の集合型ルートと IPv6 トンネル送信元ルートを切断します。ゲートウェイルーターは、アンカーのパケット転送エンジンのラインカードがダウンした場合、ルート切断を送信するため、他のゲートウェイルーターにトラフィックをリダイレクトします。

IPv6 をネクストホップとする IPv4 ルートをサポートするために、次の拡張機能が導入されます:

BGP ネクストホップ符号化

BGP では、IPv6 ネクストホップで IPv4 ルートを送信するために使用されるネクストホップ符号化機能が搭載されます。リモートピアでこの機能が利用できない場合、BGP はこの符号化機能に基づいてピアをグループ化し、符号化機能のない BGP ファミリーをネゴシエートされたネットワーク層到達可能性情報(NLRI)リストから削除します。Junos OS では、inet.0 などの解決テーブルは 1つしか使用できません。IPv6 のネクストホップを持つ IPv4 の BGP ルートを許可するために、BGP は新しい解決ツリーを作成します。この機能により、Junos OS のルーティングテーブルに複数の解決ツリーを持たせることができます。

RFC 5549 の IPv6 のネクストホップで IPv4 ネットワーク層の到達可能性に関する情報を告知の他に、RFC 5512で規定されている新しいカプセル化コミュニティである、BGP カプセル化後続アドレスファミリー識別子(SAFI)と BGP トンネル・カプセル化属性を導入し、ネクストホップアドレスのアドレスファミリーを決定します。カプセル化コミュニティは、イングレスノードが作成する必要があるトンネルタイプを示しています。BGP は、IPv6 のネクストホップアドレスと V4oV6 のカプセル化コミュニティーを持つ IPv4 ルートを受信すると、IPv4-over-IPv6 の動的トンネルを作成します。BGP が、カプセル化コミュニティーのないルートを受信した場合、V4oV6 トンネルを作成せずに BGP ルートを解決します。

新しい拡張カプセル化をサポートするために、[edit policy-statement policy name term then]の階層レベルで、新しいポリシーアクションdynamic-tunnel-attributes dyan-attributeを利用できます。

トンネルローカライゼーション

動的トンネルインフラストラクチャーは、トンネルローカリゼーションによって強化され、より多くのトンネルをサポートします。アンカーに障害が発生した場合、トラフィックを処理するための回復力を提供するために、トンネルをローカライズする必要があります。1台以上のシャーシが互いにバックアップを取り、ルーティングプロトコルプロセス(rpd)によって、障害ポイントからバックアップシャーシへとトラフィックを誘導します。シャーシは、個々のループバックアドレスではなく、これらの集合型プレフィックスのみをネットワークに告知します。

トンネル処理

IPv6 トンネル上の IPv4 では、トンネルアンカーリングとともに、動的トンネルインフラストラクチャーを使用して、必要なシャーシに幅広く対応しています。トンネルの状態はパケット転送エンジンに限定され、他のパケット転送エンジンがトンネルアンカーにトラフィックを誘導します。

トンネルイングレス

トンネルイングレスまたはトンネルのカプセル化により、ネットワークトラフィックをお客様サイトに転送します。トラフィックがシャーシに入るパケット転送エンジンに、トンネル状態が存在する場合、ルーティングプロトコルプロセス(rpd)は、IPv6 トンネル上の IPv4 ルートを再分配するために、次の手順に従います。
図 3: 同じ PFE でトンネルの状態が利用可能な場合のトンネルイングレス処理同じ PFE でトンネルの状態が利用可能な場合のトンネルイングレス処理
図 4: トンネルの状態が、異なるPFEに存在する場合のトンネルイングレス処理トンネルの状態が、異なるPFEに存在する場合のトンネルイングレス処理
  1. IPv6 ヘッダー内に IPv4 トラフィックをカプセル化します。

    カプセル化の前に、最大伝送単位(MTU)の適用を実行します。DF-bitカプセル化されたパケットのサイズがトンネルの MTU を超え、IPv4 パケットのが設定されていない場合、パケットはフラグメント化され、これらのフラグメントがカプセル化されます。

  2. 内部パケット・ヘッダーに、ハッシュベースのトラフィック負荷分散を使用します。

  3. 宛先 IPv6 アドレスにトラフィックを転送します。IPv6 のアドレスは、IPv6 ヘッダーから取得します。

トンネルイグレス

トンネルイグレスは、カスタマー構内機器からネットワーク側にトラフィックを転送します。
図 5: 同じ PFE でトンネルの状態が利用可能な場合のトンネルイグレス処理同じ PFE でトンネルの状態が利用可能な場合のトンネルイグレス処理
図 6: リモート PFE でトンネル状態が利用可能な場合のトンネルイグレス処理リモート PFE でトンネル状態が利用可能な場合のトンネルイグレス処理
  1. IPv6 パケット内に存在する IPv4 パケットを、カプセル化解除します。

  2. なりすまし防止チェックを行い、IPv6 と IPv4 のペアがトンネルの設定に使用された情報と一致していることを確認します。

  3. カプセル化解除されたパケットの IPv4 ヘッダーから IPv4 の宛先アドレスを検索し、指定された IPv4 アドレスにパケットを転送します。

トンネル負荷分散とアンカーパケット転送エンジンの障害処理

パケット転送エンジンの障害は、パケット転送エンジンに固定されたトンネルトラフィックの空値ルートフィルタリングを避けるために、迅速に対応する必要があります。トンネルのローカライズでは、BGP 広告を使用してグローバルに障害を修復します。トンネルのトラフィックは、障害ポイントから、同一のトンネルの状態を持つ他のバックアップ シャーシに迂回されます。トラフィックの負荷分散のために、シャーシは、それぞれのプレフィックスセットに対して異なる複数の出口識別子(MED)値を告知するように設定され、4 分の 1 のトンネルのトラフィックだけが各シャーシを通過するようになっています。CPE のトラフィックも同様に、各シャーシに同じエニーキャストアドレスのセットを設定し、各シャーシに向けて 4 分の 1 のトラフィックだけを誘導することで処理されます。

アンカーパケット転送エンジンは、トンネルのすべての処理を行う単一のエンティティです。アンカーのパケット転送エンジの選択は、静的プロビジョニングによって行われ、パケット転送エンジン の物理インターフェイスに関連付けられています。1 つのパケット転送エンジンがダウンした場合、デーモンは、ラインカード上のすべてのパケット転送エンジンがダウンしたことをマークし、この情報を、ルーティングプロトコルプロセスのルーティングプロトコルプロセスやその他のデーモンに通知します。ルーティングプロトコルのプロセスは、故障したパケット転送エンジンに固定されているプレフィックスと、故障したパケット転送エンジンに割り当てられた IPv6 アドレスの BGP 切断を送信します。これらの広告は、他のバックアップシャーシにトラフィックを迂回させます。故障したパケット転送エンジンが再び起動した場合、シャーシはパケット転送エンジンをとマークし、ルーティングプロトコルのプロセスを更新upします。ルーティングプロトコルプロセスは、BGP の更新をピアにトリガーして、特定のパケット転送エンジンに固定されたトンネルが、トラフィックのルーティングに利用できるようになることを示します。このプロセスは、大規模なトンネル設定では数分かかることがあります。そのため、トラフィックを元のシャーシに戻す際に、トラフィックの損失を最小限に抑えられるように、システムにAckメカニズムが組み込まれています。

トンネルのループバックストリーム統計情報

動的トンネルのインフラストラクチャーでは、パケット転送エンジンのループバックストリームを使用して、カプセル化後のパケットをループします。このループバックストリームの帯域幅は限られているため、トンネルループバックストリームのパフォーマンスを監視する必要があります。

ループバックストリームの統計情報を監視するには、運用コマンドshow pfe statistics traffic detailを使用して、転送レート、ドロップパケットレート、バイトレートなどの集合型ループバックストリームの統計情報を表示します。

IPv6 ネクストホップアドレスを持つ IPv4 ルートを再分配するための BGP の設定

リリース 17.3R1 以降、Junos OS デバイスは、通常は IPv4 トラフィックを転送できない IPv6 専用ネットワーク上で、IPv4 トラフィックを転送できるようになっています。RFC 5549 で説明されているように、IPv4 トラフィックは CPE デバイスから IPv4-over-IPv6 ゲートウェイにトンネリングされます。これらのゲートウェイは、エニーキャストアドレスを介して CPE デバイスに通知されます。ゲートウェイデバイスは、通信回線を介して利用可能なカスタマー構内機器への動的 IPv4-over-IPv6 トンネルを作成し、トラフィックを誘導するために、IPv4 集約ルートを告知します。プログラム可能なインターフェイスを持つルートリフレクターは、ネットワークにトンネル情報を注入します。ルートリフレクターは、IBGP を介してゲートウェイルーターに接続されており、ゲートウェイルーターは、IPv6 アドレスをネクストホップとして、ホストルートの IPv4 アドレスを告知します。

注:

動的 IPv4-over-IPv6 トンネル機能は、Junos OS Release 17.3R1 の統合型 ISSU をサポートしていません。

IPv6 のネクストホップアドレスを持つ IPv4 ルートを配信するための BGP の設定を始める前に、以下のことを実行します。

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

  2. OSPF、またはその他の IGP プロトコルを設定します。

  3. MPLS と LDP を設定します。

  4. BGP を設定します。

BGP を設定して、IPv6 のネクストホップアドレスを持つ IPv4 ルートを配信するには、次の手順に従います。

  1. IPv6 ピアを持つ BGP グループが、IPv6 セッション上で、IPv4 アドレスファミリーをルーティングするための拡張ネクストホップ符号化オプションを設定します。
    content_copy zoom_out_map
    [edit protocols bgp family inet unicast]
    user@host# set extended-nexthop
    
  2. 動的な IPv4-over-IPv6 トンネルを設定し、その属性を定義することで、IPv6 のみのネットワーク上で IPv4 トラフィックを転送します。IPv4 トラフィックは、CPE デバイスから IPv4-over-IPv6 ゲートウェイにトンネリンされます。
    content_copy zoom_out_map
    [edit routing-options]
    user@host# set dynamic-tunnels
    
  3. トンネルの属性を設定します。
    content_copy zoom_out_map
    [edit routing-options dynamic-tunnels tunnel-attributes]
    user@host# set tunnel-attributes name
    user@host# set dynamic-tunnel-source-prefix dynamic-tunnel-source-prefix
    user@host# set dynamic-tunnel-type V4oV6
    user@host# set dynamic-tunnel-mtu dynamic-tunnel-mtu
    user@host# set dynamic-tunnel-anchor-pfe dynamic-tunnel-anchor-pfe
    user@host# set dynamic-tunnel-anti-spoof (off | on)
    

    例えば、次のような属性を持つ動的トンネルfirst_tunnel、を設定します。

    content_copy zoom_out_map
    [edit routing-options dynamic-tunnels tunnel-attributes]
    user@host# set tunnel-attributes first_tunnel
    user@host# set dynamic-tunnel-source-prefix 10.1.1.0
    user@host# set dynamic-tunnel-type V4oV6
    user@host# set dynamic-tunnel-mtu 300
    user@host# set dynamic-tunnel-anchor-pfe pfe-1/2/0
    user@host# set dynamic-tunnel-anti-spoof on
    
  4. 設定した動的トンネル属性プロファイルを、プレフィックスリストまたはルートフィルタに関連づけるためのポリシーを定義します。
    content_copy zoom_out_map
    [edit policy-options policy-statement policy-name from then]
    user@host# set dynamic-tunnel-attributes name
    

    例えば、dynamic_tunnel_policyポリシーを定義し、動的トンネルfirst_tunnel属性を特定のルート2.2.2.2/32へと向かうトラフィックヘッディングにのみ関連付けます。

    content_copy zoom_out_map
    [edit policy-options policy-statement dynamic_tunnel_policy from route-filter 2.2.2.2/32 exact then]
    user@host# set dynamic-tunnel-attributes first_tunnel
    
  5. 定義したポリシーをエクスポートします。
    content_copy zoom_out_map
    [edit routing options]
    user@host# set forwarding-table export policy-name
    

    たとえば、設定されたdynamic_tunnel_policyポリシーをエクスポートします。

    content_copy zoom_out_map
    [edit routing options]
    user@host# set forwarding-table export dynamic_tunnel_policy
    

レイヤー 2 VPN と VPLS シグナリングの有効化

BGP でレイヤ 2 VPN および VPLS の NLRI メッセージを伝達できるようにすることができます。

VPN と VPLS のシグナルを有効にするには、family ステートメントを含めます。

content_copy zoom_out_map
family {
    l2vpn {
        signaling {
            prefix-limit {
                maximum number;
                teardown <percentage> <idle-timeout (forever | minutes)>;
                drop-excess <percentage>;
                hide-excess <percentage>;            }
        }
    }
}

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

プレフィックスの最大数を設定するには、ステートprefix-limitメントを含めます。

content_copy zoom_out_map
prefix-limit {
    maximum number;
    teardown <percentage> <idle-timeout (forever | minutes)>;
    drop-excess <percentage>;
    hide-excess <percentage>;}

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

最大プレフィックス数を設定すると、その数に達したときにメッセージが記録されます。ステートteardownメントを含む場合、最大プレフィックス数に達した時点でセッションは破棄されます。パーセンテージを指定した場合、プレフィックス数がそのパーセンテージに達するとメッセージが記録されます。一度壊したセッションは、短時間で再確立されます。指定された時間、または永遠にセッションを停止させるためにidle-timeoutステートメントを含めます。を指定した場合foreverclear bgp neighborコマンドを使用した後にのみセッションが再確立されます。ステートdrop-excess <percentage>メントを含めてパーセンテージを指定すると、プレフィックス数がパーセンテージを超えた場合に、超過したルートを停止します。その記hide-excess <percentage>述を含み、パーセンテージを指定すると、プレフィックス数がパーセンテージを超えた場合、超過した経路を非表示にすることができます。割合が変更された場合は、自動的に経路が再評価されます。

トラフィック フィルタリングのための BGP フロー ルートの理解

フロールートとは、IP パケットの一致条件の集計ということです。フロールートはインプット転送テーブルフィルター(暗黙的)としてインストールされており、フロー仕様ネットワーク層到達性情報(NLRI)メッセージを使用してネットワークを介して伝送され、フロールーティングテーブルにインストールされますinstance-name.inetflow.0。特定の一致条件が満たされた場合のみ、パケットがフロー ルートを通過できます。

フロールートとファイアウォールフィルターは、そのコンポーネントに基づいてパケットフィルタリングし、一致したパケットに対してアクションを実行するというというものと似ています。フロールートでは、ファイアウォール フィルタと同様にトラフィック フィルタリングとレート制限機能を提供します。さらに、異なる自律システム間でフロー ルートを伝播できます。

フロー ルートは、フロー指定 NLRI メッセージを通じて BGP によって伝播されます。BGP がこれらの NLRI を伝播できるようにする必要があります。

Junos OS リリース 15.1 以降、既存の inet フローと inetvpn フローファミリーに対するノンストップ アクティブ ルーティング(NSR)サポートを拡張し、draft-ietf-idr-bgp-flowspec-oid-01 に従って BGP flowspec のルート検証を拡張するための変更が実装されます。この拡張機能の一部として、2 つの新しいステートメントが導入されます。enforce-first-asno-install を参照してください。

注:

Junos OS リリース 16.1以降、IPv6 のサポートは、IPv6 と VPN-IPv6 のパケットのトラフィックフローの仕様ルールの伝播を許可する BGP フローの仕様に拡張されます。BGP フロー仕様は、ノンストップ アクティブ ルーティング(NSR)時、分散型サービス妨害攻略を軽減するためにトラフィック フィルタリング ルールの調整を自動化します。

Junos OS リリース 16.1R1 以降、BGP フロー仕様はトラフィック マーク extended-community フィルタリング アクションをサポートします。IPv4 トラフィックについては、Junos OS は、転送する IPv4 パケットの DiffServ コード ポイント(DSCP)ビットを拡張したコミュニティーの対応する値に変更します。IPv6 パケットについては、Junos OS は転送する IPv6 パケットの フィーtraffic classルドの最初の 6 ビットを拡張したコミュニティーの対応する値に変更します。

Junos OS リリース 17.1R1 以降、第 3 世代 FPC (PTX5000 の FPC3-PTX-U2 と FPC3-PTX-U3、PTX300 の FPC3-SFF-PTX-U0 と FPC3-SFF-PTX-U1)を搭載した PTX シリーズでは、BGP がフロー指定ネットワーク層到達可能性情報(NLRI)メッセージを伝送できます。BGPの一部としてファイアウォールフィルタ情報を伝搬させることで、サービス拒否(DOS)攻撃に対するファイアウォールフィルタを自律システム間で動的に伝搬させることができます。

Junos OS リリース 17.2R1 以降、BGP は、第 3 世代 FPC が搭載されている PTX1000 ルーターにフロー指定ネットワーク層到達可能性情報(NLRI)メッセージを伝送できます。BGPの一部としてファイアウォールフィルタ情報を伝搬させることで、サービス拒否(DOS)攻撃に対するファイアウォールフィルタを自律システム間で動的に伝搬させることができます。

cRPD リリース 20.3R1 以降、BGP フローの仕様 NLRIに よって伝播されたフロー ルートとポリシングルールは、cRPD 環境の Linux Netfilter フレームワークから Linux にダウンロードされます。

フロー ルートの一致条件

フロー ルートでその ステートthenメントでアクションが行われる前に、パケットが一致する条件を指定します。この from ステートメントの条件は、実行するアクションに一致する必要があります。一致が発生するためにはパケットが項内のすべての条件に一致する必要があるため、一致条件を指定する順序は重要ではありません。

一致条件を設定するには、 の階[edit routing-options flow]層レベルに ステートmatchメントを含めます。

表 1 はフロー ルート一致条件を記述します。

zoom_out_map
表 1: フロー ルート一致条件

一致条件

説明

destination prefix prefix-offset number

IP 宛先アドレス フィールドです。

モーenhanced-ipドに設定されている拡張 MPC を搭載した Junos デバイスでのみ利用可能な オprefix-offsetプション フィールドを使用して、Junos OS が IPv6 プレフィックスの一致を開始する前にスキップしなければならないビットの数を指定できます。

destination-port number

TCP またはユーザ- データ プロトコル(UDP)宛先ポート フィールドです。同じ条件に portおよびdestination-port 一致条件を両方指定することはできません。

数値の代わりに、以下のテキスト (ポート番号も記載されています)のいずれかを指定します。afssunrpcsyslogtacacs-dstalktftptimedwhoxdmcpzephyr-cltzephyr-hmekloginekshellfingerftpftp-datahttpimapkerberos-seckloginkpasswdkrb-propkrbupdatekshellldapmobileip-agentmobilip-mnmsdpnetbios-dgmnetbios-nsnetbios-ssnnntpntalkntppop3pptpprinterradacctradiusriprkinitsmtpsnmpsnmptrapsnppsocksssh (1483)、 (bgp179)、 (512)、 (68)、 (67bootps)、 (514)cmd、 (2401)、 (67)、 (53)、 (2domain105)dhcp、 (2106)、 (512)、 (79exec)、 (21)、 (20)、 (80)、 (443)、 (113)、 (143)、 (88)、 (543)、 (761)、 (754)、 (760)、 (544https)、 (389)、 (513)、 (434)、 (435)、 (639)、 (138)、 (137)、 (139)、 (2049)、 (119)、 (518)、 (123)、 biff(110)、 (1723)、 (515)、 bootpc(1813)、 (1812)、 (520)、 (2108)、 (25)、 (161)、 (162)、 (44nfsd4)、 (1cvspserver080)、 (22)、 (111)、 (514)、 (65)、 (517)、 (23)、 (69)、 (525)、 (513)、 (177)、 (2103)、または  (2104)。telnetidentlogin

dscp number

差別化されたサービス コード ポイント(DSCP)です。DiffServ プロトコルは、IP ヘッダーでサービス タイプ(ToS)バイトを使用します。このバイトが最上位の 6 ビットが DSCP を形成します。

DSCPを 16 進または 10 進形式で指定できます。

flow-label numeric-expression

フロー ラベル値に一致します。このフィールドの値の範囲は 0~1048575 です。

この一致条件は、 モードに設定されている拡張 MPC の Junos デバイスでのみサポenhanced-ipートされます。この一致条件は IPv4 ではサポートされていません。

fragment type

フラグメント タイプ フィールドです。キーワードは、それらが関連するフラグメント タイプによってグループ化されます。

  • dont-fragment

    注:

    このオプションは IPv6 ではサポートされていません。

  • first-fragment

  • is-fragment

  • last-fragment

  • not-a-fragment

この一致条件は、enhanced-ip モードに設定されている拡張 MPC の Junos OS デバイスでのみサポートされます。

icmp-code numbericmp6-code icmp6-code-value;

ICMP コード フィールドです。この値またはキーワードは、icmp-type より固有の情報を提供します。値の意味は関連する icmp-type値に依存するため、 と一緒icmp-typeに を指定する必要がありますicmp-code

数値の代わりに、以下のテキストシノニム(フィールド値も記載されています)のいずれかを指定します。キーワードは、それらが関連するICMPタイプによってグループ化されます。

  • parameter-problem:ip-header-bad (0)、required-option-missing (1)

  • redirect:redirect-for-host (1)、 redirect-for-network(0)、 redirect-for-tos-and-host(3)、 redirect-for-tos-and-net(2)

  • time-exceeded:ttl-eq-zero-during-reassembly (1)、 ttl-eq-zero-during-transit(0)

  • unreachable:communication-prohibited-by-filtering (13)、destination-host-prohibited (10)、destination-host-unknown (7)、destination-network-prohibited (9)、destination-network-unknown (6)、 fragmentation-needed(4)、 (host-precedence-violation14)、 (1host-unreachable)、 (12host-unreachable-for-TOS)、 (0)、network-unreachable (11)、network-unreachable-for-TOS (3)、 (port-unreachable15)、 (precedence-cutoff-in-effect2)、 (8)protocol-unreachable、 (5)source-host-isolatedsource-route-failed

icmp-type number icmp6-type icmp6-type-value

ICMP パケット タイプ フィールドです。通常、protocol 一致ステートメントと合わせてこの一致を指定して、ポートで使用されているプロトコルを決定します。

数値の代わりに、以下のテキストシノニム(フィールド値も記載されています)のいずれかを指定します。echo-reply (0), echo-request (8), info-reply (16), info-request (15), mask-request (17), mask-reply (18), parameter-problem (12), redirect (5), router-advertisement (9), router-solicit (10), source-quench (4), time-exceeded (11), timestamp (13), timestamp-reply (14), または unreachable (3).

packet-length number

総 IP パケット長です。

port number

TCP または UDP 送信元または宛先ポート フィールドです。同じ項に port および destination-port または source-port 一致条件を両方指定することはできません。

数値の代わりに、destination-port の下に記載されているテキスト同義語の1つを指定します。

protocol number

IP プロトコル フィールドです。数値の代わりに、以下のテキストシノニム(フィールド値も記載されています)のいずれかを指定します。ah, egp (8)、 esp(50)、 (gre47)、 (1icmp)、 (2)igmp、 (4)、ipip (41)、ipv6 (89)、 ospf(103)、 pim(46)、 (6rsvp)、または (tcp17)。udp 

この一致条件は、 モードに設定されている拡張 MPC を搭載した Junos デバイスでのみ IPv6 に対してサポenhanced-ipートされます。

source prefixprefix-offset number

IP 送信元アドレス フィールドです。

モーenhanced-ipドに設定されている拡張 MPC を搭載した Junos デバイスでのみ利用可能な オprefix-offsetプション フィールドを使用して、Junos OS が IPv6 プレフィックスの一致を開始する前にスキップしなければならないビットの数を指定できます。

source-port number

TCP または UDP 送信元ポート フィールドです。同じ項に portおよび source-port一致条件を指定することはできません。

数値 フィールドの代わりに、 の下に記載されているテキスト シノニムの 1 つを指定しますdestination-port

tcp-flag type

TCP ヘッダー フォーマットです。

フロー ルートのアクション

パケットがフロー ルートで設定した条件に一致した場合の動作を指定することができます。アクションを設定するには、[edit routing-options flow] 階層レベルで then ステートメントを含めます。

表 2 は、フロー ルート アクションを記述します。

表 2: フロー ルート アクション変更機能

アクションまたはアクション変更機能

説明

アクション

accept

パケットを受け取ります。これはデフォルトです。

discard

インターネット 制御メッセージ プロトコル(ICMP)メッセージを送信することなく、気付かれることなくパケットを無効にします。

community

ルート内のコミュニティーを指定したコミュニティーに置き換えます。

mark value

このフローに一致するトラフィックに対して DSCP 値を設定します。0~63 からの値を指定します。このアクションは、 モードに設定されている拡張 MPC を搭載した Junos デバイスでのみサポenhanced-ipートされます。

next term

評価のための次の一致条件に続きます。

routing-instance extended-community

パケットが転送されるルーティング インスタンスを指定します。

rate-limit bits-per-second

フロー ルートの帯域幅を制限します。ビット単位(bps)で制限を表現します。Junos OS リリース 16.1R4 以降、レート制限範囲は [0~1000000000000] です。

sample

フロー ルートのトラフィックをサンプルします。

フロー ルートの検証

Junos OS は、検証手順を使用して検証された場合のみ、フロー ルートをフロー ルーティング テーブルにインストールします。ルーティング エンジンは、フロー ルーティング テーブルにルートをインストールする前に検証します。

BGPネットワーク層到達性情報(NLRI)メッセージを使用して受信したフロー ルートは、フロー プライマリ インスタンス ルーティング テーブル instance.inetflow.0 にインストールされる前に検証されます。検証手順は、draft-ietf-idr-flow-spec-09.txt(フローの仕様ルールの普及)に記載します。BGP NLRI メッセージを使用したフロー ルートの検証プロセスをバイパスし、独自となる特定のインポート ポリシーを使用することができます。

検証操作をトレースするには、 階[edit routing-options flow]層レベルに ステートvalidationメントを含めます。

BGP フロー指定アルゴリズム バージョン 7 以降のサポート

デフォルトでは、Junos OS は BGP フローの仕様のバージョン 6 で定義された項順序アルゴリズムを使用します。Junos OS リリース 10.0 以降では、最初に BGP フローの仕様のバージョン 7 で定義され、RFC 5575(フロー指定ルートの伝播)によってサポートされている項順序アルゴリズムに従うようにルーターを設定することができます。

ベストプラクティス:

BGP フローの仕様ドラフトのバージョン 7 で最初に定義された項順序アルゴリズムを使用するように Junos OS を設定することをお勧めします。また、ルーターに設定されたすべてのルーティング インスタンスで同じ項順序アルゴリズムを使用するように Junos OSを設定することをお勧めします。

最初にインターネット ドラフトのバージョン 7 で定義されたフロー指定アルゴリズムを使用するように BGP を設定するには、[edit routing-options flow term-order] 階層レベルに standard ステートメントを含めます。

バージョン 6 で定義された項順序アルゴリズムを使用するように戻すには、[edit routing-options flow term-order] 階層レベルに legacy 階 ステートメントを含めます。

注:

設定した項目順序にはローカルな意味しかありません。つまり、項順序はリモート BGP ピアに送信されたフロー ルートで伝播されず、その項式順序は独自の項順序設定によって完全に決定されます。そのため、リモート ピアの項順序設定を認識しない場合、順序依存型アクション next term を設定する場合に注意する必要があります。ローカル はリモート ピアで設定next termされた 設定とは異なる場合next termがあります。

注:

Junos OS Evolved では、 はアクションの最終項として表示することはnext termできません。設定した一致条件なしで next term がアクションとして指定されるフィルター項はサポートされていません。

Junos OS リリース 16.1 以降、特定のインターフェイスで受信したトラフィflowspecックにフィルターを適用しないオプションがあります。これらの特定のインターフェイスで受信したパケットを受信する flowspec フィルタの先頭に新しい項が追加されます。新しい項は、フロー指定フィルターの一部として転送テーブル フィルターにアタッチされた項の除外リストを作成する変数です。

特定のインターフェイスで受信するトラフィックに フィルflowspecターが適用されないようにするには、まず、 階[edit interfaces]層レベルでファミリー フィルinetター グループ ステートgroup-idメントを含めることでそのインターフェイスgroup-id上で を設定し、 階[edit routing-options]層レベルに ステートflow interface-group group-id excludeメントを含めることでインターフェイス グループに フィルflowspecターをアタッチします。set routing-options flow interface-group group-id ステートメントでルーティング インスタンスごとに 1 つの group-id を設定できます。

例:BGP によるフロー指定ルートの伝送の有効化

この例では、BGP がフロー指定のネットワーク層到達性情報(NLRI)のメッセージを伝送できるようにする方法を示しています。

要件

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

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

  • 内部ゲートウェイプロトコル(IGP)を設定します。

  • BGP を設定します。

  • ルーティングテーブルから、ルート(ダイレクトルートもしくは IGP ルート)をエクスポートするルーティングポリシーを設定します。

概要

BGPの一部としてファイアウォールフィルタ情報を伝搬させることで、サービス拒否(DOS)攻撃に対するファイアウォールフィルタを自律システム間で動的に伝搬させることができます。フロー ルートはフロー指定 NLRI にカプセル化され、フィルターに類似する情報を共有しながらネットワークや VPN(仮想プライベート ネットワーク)を通じて伝送されます。フロー ルートは、パケットに対する整合条件とその結果のアクションの集合体です。ファイアウォール フィルターと同様に、トラフィックのフィルタリングとレート制限の機能を提供します。ユニキャスト フロー ルートは、デフォルト インスタンス、VRF(VPN ルーティングと転送)インスタンス、および仮想ルーター インスタンスでサポートされています。

インポートとエクスポートに関するポリシーは、ほかの BGP ファミリーに適用する場合と同様に、 inet flow ファミリー またはファミリー inet-vpn flow の NLRI に適用して、受け入れまたはアドバタイズするフロー ルートに影響を与えることができます。唯一の違いは、フロー ポリシーの設定に from ステートrib inetflow.0メントを含める必要があることです。このステートメントにより、フロー ルートにポリシーが適用されるようになります。ただし、then reject または then accept ステートメントのみがあり、from ステートメントがないポリシーは例外となります。そして、ポリシーは IP ユニキャストと IP フローを含むすべてのルートに影響します。

フロー ルート フィルターは、まずルーターに静的に設定され、整合条件のセットとそれに続くアクションが設定されます。family inet flowそして、この BGP 対応デバイスとピアの間には、 に加えて family inet unicast(または )family inet-vpn flowが設定されます。

デフォルトでは、静的に設定されたフロー ルート(ファイアウォール フィルター)は、 family inet flowまたは の family inet-vpn flowNLRI をサポートする他の BGP 対応デバイスにアドバタイズされます。

受信側の BGP 対応デバイスは、ファイアウォール フィルターをフロー ルーティング テーブル にインストールする前に、検証処理を行いますinstance-name.inetflow.0。検証手順は RFC 5575 に規定されており、Dissemination of Flow Specification Rules にも記載されています。

受信側の BGP 対応デバイスは、次の条件を満たせばフロー ルートを受け入れます。

  • フロー ルートの起点は、ルートに埋め込まれている宛先アドレスのベスト マッチ ユニキャスト ルートの起点と一致します。

  • フロー ルートの宛先アドレスと比較した場合、異なるネクストホップの自律システムからアクティブなルートを受信している特定のユニキャスト ルートは存在しません。

最初の基準は、フロー ルートに埋め込まれた宛先アドレスに対してユニキャスト転送で使用されるネクストホップによってフィルターがアドバタイズされていることを保証するものです。例えば、フロー ルートに 10.1.1.1、proto=6、port=80 と指定した場合、受信側の BGP 対応デバイスはユニキャスト ルーティング テーブルの中から宛先プレフィックス 10.1.1.1/32 に一致する、より具体的なユニキャスト ルートを選択することになります。10.1/16 と 10.1.1/24 を含むユニキャスト ルーティング テーブルでは、後者が比較対象のユニキャスト ルートとして選択されます。アクティブなユニキャスト ルートエントリーのみが考慮されます。これは、最良のユニキャスト ルートの発信元からアドバタイズされれば、フロー ルートは有効であるという概念に従ったものです。

2 つ目の基準は、あるアドレス ブロックが異なるエンティティに割り当てられている場合に対応するものです。集約ルートであるベストマッチのユニキャスト ルートに解決されるフローは、異なるネクストホップの自律システムにルーティングされているより具体的なルートをカバーしない場合にのみ受け入れられます。

BGP NLRI メッセージを使用したフロー ルートの検証プロセスをバイパスし、独自となる特定のインポート ポリシーを使用することができます。BGP がフロー 指定 NLRI メッセージを伝送する場合、 階[edit protocols bgp group group-name family inet flow]層レベルの ステートno-validateメントは、ポリシーでパケットを受け入れた後のフロー ルート検証手順を省略します。インポート ポリシーは、宛先アドレスとコミュニティ、ネクストホップ、AS パスなどのパス属性でマッチングするように設定することができます。パケットがフロー ルートで設定した条件に一致した場合の動作を指定することができます。アクションを設定するには、 階[edit routing-options flow]層レベルでステートメントを含めます。フロー指定 NLRI タイプには、RFC5575 で定義された宛先プレフィックス、ソース プレフィックス、 プロトコル、ポートなどのコンポーネントが含まれます。インポート ポリシーでは、フロー仕様の NLRI に含まれるパス属性と宛先アドレスを使って、受信ルートをフィルタリングできます。インポート ポリシーは、RFC5575 の他のコンポーネントをフィルタリングすることはできません。

フロー仕様は、IPv4 ユニキャスト フィルタリングと VPN ユニキャスト フィルタリングの最も一般的なアプリケーションに対応するために必要なプロトコル拡張を定義しています。同じメカニズムを再利用し、新しい一致基準を追加することで、他の BGP アドレス ファミリー(例えば、IPv6 ユニキャスト)に対して同様のフィルタリングを行うことができます。

フロー ルートが テーinetflow.0ブルにインストールされると、カーネル内のファイアウォール フィルターのリストにも追加されます。

ルーターのみで、VPN でフロー指定 NLRI メッセージがサポートされています。VPN は、NLRI のルート ターゲット拡張コミュニティとインポート ポリシーを比較します。一致した場合、VPN はパケット トラフィックのフィルタリングとレート制限のためにフロー ルートを使用し始めることができます。受信したフロー ルートはフロー ルーティング テーブル instance-name.inetflow.0 にインストールされます。また、フロー ルートは、VPN ネットワーク全体に伝送し、VPN 間で共有することができます。マルチプロトコル BGP(MP-BGP)で inet-vpn アドレス ファミリーのフロー指定 NLRI を伝送できるようにするには、[edit protocols bgp group group-name family inet-vpn] 階層レベルに flow ステートメントを記述します。VPN フロー ルートは、デフォルトのインスタンスのみサポートされます。inet-vpnファミリー の VPN に設定されたフロー ルートは自動的に検証されないため、 階[edit protocols bgp group group-name family inet-vpn]層レベルでは ステートno-validateメントはサポートされません。フロールートが単一AS内のデバイス間でローカルに設定されている場合、検証は必要ありません。

インポートとエクスポートのポリシーは、他の BGP ファミリーにインポートとエクスポートのポリシーを適用する方法と同様に、 family inet flowまたは の family inet-vpn flowNLRI に適用して、受け入れまたは広告されるフロー ルートに影響を与えることができます。唯一の違いは、フロー ポリシーの設定に from rib inetflow.0 ステートメントが含まれていなければならないことです。このステートメントにより、フロー ルートにポリシーが適用されるようになります。ただし、then reject または then accept ステートメントのみがあり、from ステートメントがないポリシーは例外となります。そして、ポリシーは IP ユニキャストと IP フローを含むすべてのルートに影響します。

この例では、次のエクスポート ポリシーを設定する方法を示しています。

  • ルート フィルターで指定されたフロー ルートの広告を許可するポリシー。10.13/16 ブロックがカバーするフロー ルートのみを広告します。このポリシーは、ユニキャスト ルートには影響しません。

  • すべてのユニキャストおよびフロー ルートをネイバーにアドバタイズすることを許可するポリシーです。

  • すべてのルート(ユニキャストまたはフロー)をネイバーにアドバタイズすることを禁止するポリシーです。

トポロジー

設定

スタティック フロー ルートの設定

CLIクイック構成

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

content_copy zoom_out_map
set routing-options flow route block-10.131.1.1 match destination 10.131.1.1/32 
set routing-options flow route block-10.131.1.1 match protocol icmp 
set routing-options flow route block-10.131.1.1 match icmp-type echo-request 
set routing-options flow route block-10.131.1.1 then discard 
set routing-options flow term-order standard
ステップバイステップでの手順

次の例では、設定階層内のさまざまなレベルに移動する必要があります。CLIのナビゲーションについては、Junos OS CLIユーザーガイド設定モードでCLIエディターを使用する を参照してください。

BGP ピアセッションを設定する

  1. 整合条件を設定します。

    content_copy zoom_out_map
    [edit routing-options flow route block-10.131.1.1]
    user@host# set match destination 10.131.1.1/32 
    user@host# set match protocol icmp 
    user@host# set match icmp-type echo-request 
    
  2. アクションを設定します。

    content_copy zoom_out_map
    [edit routing-options flow route block-10.131.1.1]
    user@host# set then discard 
    
  3. (推奨)フロー指定アルゴリズムでは、スタンダードベースの項順を設定します。

    content_copy zoom_out_map
    [edit routing-options flow]
    user@host# set term-order standard
    

    flowspec RFC ドラフト第 6 版で規定されているデフォルトの項順序アルゴリズムでは、整合条件の特定度が低い項が、整合条件の特定度が高い項よりも常に先に評価されます。これにより、より具体的な整合条件を持つ項が評価されることはありません。RFC 5575 第 7 版では、より具体的な整合条件をより具体的でない整合条件より先に評価するようにアルゴリズムを修正しました。下方互換性のために、新しいアルゴリズムの方がより理にかなっているにもかかわらず、Junos OS ではデフォルトの動作が変更されていません。新しいアルゴリズムを使用するには、構成に ステートterm-order standardメントを含めます。このステートメントは、Junos OS Release 10.0 以降でサポートされています。

結果

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

content_copy zoom_out_map
[edit]
user@host# show routing-options
flow {
    term-order standard;
    route block-10.131.1.1 {
        match {
            destination 10.131.1.1/32;
            protocol icmp;
            icmp-type echo-request;
        }
        then discard;
    }
}

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

ルート フィルターで指定されたフロー ルートを広告する

CLIクイック構成

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

content_copy zoom_out_map
set protocols bgp group core family inet unicast 
set protocols bgp group core family inet flow 
set protocols bgp group core export p1 
set protocols bgp group core peer-as 65000 
set protocols bgp group core neighbor 10.12.99.5
set policy-options policy-statement p1 term a from rib inetflow.0 
set policy-options policy-statement p1 term a from route-filter 10.13.0.0/16 orlonger 
set policy-options policy-statement p1 term a then accept 
set policy-options policy-statement p1 term b then reject
set routing-options autonomous-system 65001
ステップバイステップでの手順

次の例では、設定階層内のさまざまなレベルに移動する必要があります。CLIのナビゲーションについては、Junos OS CLIユーザーガイド設定モードでCLIエディターを使用する を参照してください。

BGP ピアセッションを設定する

  1. BGP グループを設定します。

    content_copy zoom_out_map
    [edit protocols bgp group core]
    user@host# set family inet unicast 
    user@host# set family inet flow 
    user@host# set export p1 
    user@host# set peer-as 65000 
    user@host# set neighbor 10.12.99.5
    
  2. フロー ポリシーを設定します。

    content_copy zoom_out_map
    [edit policy-options policy-statement p1]
    user@host# set term a from rib inetflow.0 
    user@host# set term a from route-filter 10.13.0.0/16 orlonger 
    user@host# set term a then accept 
    user@host# set term b then reject
    
  3. ローカル自律システム(AS)番号を設定します。

    content_copy zoom_out_map
    [edit routing-options]
    user@host# set autonomous-system 65001
    
結果

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

content_copy zoom_out_map
[edit]
user@host# show protocols
bgp {
    group core {
        family inet {
            unicast;
            flow;
        }
        export p1;
        peer-as 65000;
        neighbor 10.12.99.5;
    }
}
content_copy zoom_out_map
[edit]
user@host# show policy-options
policy-statement p1 {
    term a {
        from {
            rib inetflow.0;
            route-filter 10.13.0.0/16 orlonger;
        }
        then accept;
    }
    term b {
        then reject;
    }
}
content_copy zoom_out_map
[edit]
user@host# show routing-options
autonomous-system 65001;

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

ユニキャストとフローの全ルートを広告

CLIクイック構成

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

content_copy zoom_out_map
set protocols bgp group core family inet unicast 
set protocols bgp group core family inet flow 
set protocols bgp group core export p1 
set protocols bgp group core peer-as 65000 
set protocols bgp group core neighbor 10.12.99.5
set policy-options policy-statement p1 term a then accept
set routing-options autonomous-system 65001
ステップバイステップでの手順

次の例では、設定階層内のさまざまなレベルに移動する必要があります。CLIのナビゲーションについては、Junos OS CLIユーザーガイド設定モードでCLIエディターを使用する を参照してください。

BGP ピアセッションを設定する

  1. BGP グループを設定します。

    content_copy zoom_out_map
    [edit protocols bgp group core]
    user@host# set family inet unicast 
    user@host# set family inet flow 
    user@host# set export p1 
    user@host# set peer-as 65000 
    user@host# set neighbor 10.12.99.5
    
  2. フロー ポリシーを設定します。

    content_copy zoom_out_map
    [edit policy-options policy-statement p1]
    user@host# set term a then accept
    
  3. ローカル自律システム(AS)番号を設定します。

    content_copy zoom_out_map
    [edit routing-options]
    user@host# set autonomous-system 65001
    
結果

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

content_copy zoom_out_map
[edit]
user@host# show protocols
bgp {
    group core {
        family inet {
            unicast;
            flow;
        }
        export p1;
        peer-as 65000;
        neighbor 10.12.99.5;
    }
}
content_copy zoom_out_map
[edit]
user@host# show policy-options
policy-statement p1 {
    term a {
        prefix-list inetflow;
        }
        then accept;
    }
}
content_copy zoom_out_map
[edit]
user@host# show routing-options
autonomous-system 65001;

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

広告 ユニキャストまたはフロー ルートなし

CLIクイック構成

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

content_copy zoom_out_map
set protocols bgp group core family inet unicast 
set protocols bgp group core family inet flow 
set protocols bgp group core export p1 
set protocols bgp group core peer-as 65000 
set protocols bgp group core neighbor 10.12.99.5
set policy-options policy-statement p1 term a then reject
set routing-options autonomous-system 65001
ステップバイステップでの手順

次の例では、設定階層内のさまざまなレベルに移動する必要があります。CLIのナビゲーションについては、Junos OS CLIユーザーガイド設定モードでCLIエディターを使用する を参照してください。

BGP ピアセッションを設定する

  1. BGP グループを設定します。

    content_copy zoom_out_map
    [edit protocols bgp group core]
    user@host# set family inet unicast 
    user@host# set family inet flow 
    user@host# set export p1 
    user@host# set peer-as 65000 
    user@host# set neighbor 10.12.99.5
    
  2. フロー ポリシーを設定します。

    content_copy zoom_out_map
    [edit policy-options policy-statement p1]
    user@host# set term a then reject
    
  3. ローカル自律システム(AS)番号を設定します。

    content_copy zoom_out_map
    [edit routing-options]
    user@host# set autonomous-system 65001
    
結果

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

content_copy zoom_out_map
[edit]
user@host# show protocols
bgp {
    group core {
        family inet {
            unicast;
            flow;
        }
        export p1;
        peer-as 65000;
        neighbor 10.12.99.5;
    }
}
content_copy zoom_out_map
[edit]
user@host# show policy-options
policy-statement p1 {
    term a {
        then reject;
    }
}
content_copy zoom_out_map
[edit]
user@host# show routing-options
autonomous-system 65001;

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

ルーティング テーブルにインストールされるフロー ルートの数を制限する

CLIクイック構成

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

content_copy zoom_out_map
set routing-options rib inetflow.0 maximum-prefixes 1000 
set routing-options rib inetflow.0 maximum-prefixes threshold 50
ステップバイステップでの手順

次の例では、設定階層内のさまざまなレベルに移動する必要があります。CLIのナビゲーションについては、Junos OS CLIユーザーガイド設定モードでCLIエディターを使用する を参照してください。

注:

ルート制限を適用すると、動的ルート プロトコルの動作が予測できなくなる可能性があります。例えば、一度上限に達してルートを拒否している場合、ルート数が上限以下になった後、BGP は必ずしも拒否したルートの再導入を試みないことがあります。この問題を解決するには、BGP セッションのクリアが必要な場合があります。

以下のフロー ルートを限定します。

  1. テーinetflow.0ブルに搭載されるプレフィックス数の上限を設定します。

    content_copy zoom_out_map
    [edit routing-options rib inetflow.0]
    user@host# set maximum-prefixes 1000 
    
  2. しきい値を 50 % に設定し、500 ルートがインストールされると、システム ログに警告が記録されます。

    content_copy zoom_out_map
    [edit routing-options rib inetflow.0]
    user@host# set maximum-prefixes threshold 50
    
結果

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

content_copy zoom_out_map
[edit]
user@host# show routing-options
rib inetflow.0 {
    maximum-prefixes 1000 threshold 50;
}

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

BGP ピアリング セッションで受信するプレフィックス数の制限について

CLIクイック構成

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

content_copy zoom_out_map
set protocols bgp group x1 neighbor 10.12.99.2 family inet flow prefix-limit maximum 1000 
set protocols bgp group x1 neighbor 10.12.99.2 family inet flow prefix-limit teardown 50
set protocols bgp group x1 neighbor 10.12.99.2 family inet flow prefix-limit drop-excess 50
set protocols bgp group x1 neighbor 10.12.99.2 family inet flow prefix-limit hide-excess 50
注:

teardown <percentage>drop-excess <percentage>hide-excess<percentage> ステートメント オプションのいずれかを一度に含めることができます。

ステップバイステップでの手順

次の例では、設定階層内のさまざまなレベルに移動する必要があります。CLIのナビゲーションについては、Junos OS CLIユーザーガイド設定モードでCLIエディターを使用する を参照してください。

特定のネイバーに対してプレフィックス制限を設定することで、どのピアがどれだけのフロー ルートをアドバタイズできるかをより予測しやすく制御できます。

以下のプレフィックス数を制限します。

  1. ネイバー 10.12.99.2 からの BGP ルートの上限を 1000 個に設定します。

    content_copy zoom_out_map
    [edit protocols bgp group x1]
    user@host# set neighbor 10.12.99.2 family inet flow prefix-limit maximum 1000 
    
  2. セッションまたはプレフィックスが上限に達した時、teardown <percentage>drop-excess <percentage> または hide-excess<percentage> ステートメント オプションのいずれかを実行するように近隣のセッションまたはプレフィックスを設定します。

    content_copy zoom_out_map
    [edit routing-options rib inetflow.0]
    user@host# set neighbor 10.12.99.2 family inet flow prefix-limit teardown 50
    set neighbor 10.12.99.2 family inet flow prefix-limit drop-excess 50
    set neighbor 10.12.99.2 family inet flow prefix-limit hide-excess 50
    

    ステートteardown <percentage>メントを指定してパーセンテージを指定すると、プレフィックス数がそのパーセンテージに達した場合にメッセージがログに記録されます。セッションがダウンした後、idle-timeout ステートメントを入れない限り、短時間でセッションが再確立されます。

    drop-excess <percentage> ステートメントを指定し、パーセンテージを指定すると、プレフィックス数がそのパーセンテージを超えた場合に余剰ルートを削除します。

    ステートhide-excess <percentage>メントを指定し、パーセンテージを指定すると、プレフィックス数がそのパーセンテージを超えた場合に余剰ルートを非表示にします。

結果

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

content_copy zoom_out_map
[edit]
user@host# show protocols
bgp {
    group x1 {
        neighbor 10.12.99.2 {
                flow {
                    prefix-limit {
                        maximum 1000;
                        teardown 50;
                        drop-excess <percentage>;
                        hide-excess <percentage>;
                    }
                }
            }
        }
    }
}

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

検証

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

NLRI の検証

目的

ネイバーに有効な NLRI を見ます。

アクション

オペレーショナルモードから、show bgp neighbor 10.12.99.5コマンドを実行します。出力された inet-flow を探します。

content_copy zoom_out_map
user@host> show bgp neighbor 10.12.99.5
Peer: 10.12.99.5+3792 AS 65000 Local: 10.12.99.6+179 AS 65002
Type: External State: Established Flags: <Sync>
Last State: OpenConfirm Last Event: RecvKeepAlive
Last Error: None
Export: [ direct ]
Options: <Preference HoldTime AddressFamily PeerAS Refresh>
Address families configured: inet-unicast inet-multicast inet-flow 
Holdtime: 90 Preference: 170
Number of flaps: 1
Error: 'Cease' Sent: 0 Recv: 1
Peer ID: 10.255.71.161 Local ID: 10.255.124.107 Active Holdtime: 90
Keepalive Interval: 30 Peer index: 0
Local Interface: e1-3/0/0.0
NLRI advertised by peer: inet-unicast inet-multicast inet-flow 
NLRI for this session: inet-unicast inet-multicast inet-flow
Peer supports Refresh capability (2)
Table inet.0 Bit: 10000
RIB State: BGP restart is complete
Send state: in sync
Active prefixes: 2
Received prefixes: 2
Suppressed due to damping: 0
Advertised prefixes: 3
Table inet.2 Bit: 20000
RIB State: BGP restart is complete
Send state: in sync
Active prefixes: 0
Received prefixes: 0
Suppressed due to damping: 0
Advertised prefixes: 0
Table inetflow.0 Bit: 30000
RIB State: BGP restart is complete
Send state: in sync
Active prefixes: 0
Received prefixes: 0
Suppressed due to damping: 0
Advertised prefixes: 0
Last traffic (seconds): Received 29 Sent 15 Checked 15
Input messages: Total 5549 Updates 2618 Refreshes 0 Octets 416486
Output messages: Total 2943 Updates 1 Refreshes 0 Octets 55995
Output Queue[0]: 0
Output Queue[1]: 0
Output Queue[2]: 0 

ルートの検証

目的

フロー ルートを見ます。サンプル出力では、BGP から学習したフロー ルートと、静的に設定したフロー ルートが表示されます。

ローカルに設定されたフロー ルート( 階[edit routing-options flow]層レベルで設定)の場合、ルートはフロー プロトコルによってインストールされます。そのため、 show route table inetflow.0や のように、 がルーティング インスタンス名instance-nameであるテーブルを指定することでshow route table instance-name.inetflow.0、フロー ルートを表示することができます。また、show route protocol flow コマンドを実行することで、複数のルーティング インスタンスにまたがってローカルに設定されたすべてのフロー ルートを表示することができます。

フロー ルートがローカルに設定されておらず、ルーターの BGP ピアから受信した場合、このフロー ルートは BGP によってルーティング テーブルにインストールされます。テーブルを指定してフロー ルートを表示するかshow route protocol bgp、 を実行してすべての BGP ルート(フローおよび非フロー)を表示することができます。

アクション

オペレーショナルモードから、show route table inetflow.0コマンドを実行します。

content_copy zoom_out_map
user@host> show route table inetflow.0
inetflow.0: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
 
100.100.100.100,*,proto=1,icmp-type=8/term:1            
                   *[BGP/170] 00:00:18, localpref 100, from 100.0.12.2
                      AS path: 2000 I, validation-state: unverified
                      Fictitious
200.200.200.200,*,proto=6,port=80/term:2            
                   *[BGP/170] 00:00:18, localpref 100, from 100.0.12.2
                      AS path: 2000 I, validation-state: unverified
                      Fictitious

content_copy zoom_out_map
user@host> show route table inetflow.0 extensive
inetflow.0: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden)
7.7.7.7,8.8.8.8/term:1 (1 entry, 1 announced)
TSI:
KRT in dfwd;
Action(s): accept,count      
        *Flow   Preference: 5
                Next hop type: Fictitious
                Address: 0x8d383a4
                Next-hop reference count: 3
                State: <Active>
                Local AS: 65000 
                Age: 9:50 
                Task: RT Flow
                Announcement bits (1): 0-Flow 
                AS path: I


content_copy zoom_out_map
user@host> show route hidden
inetflow.0: 2 destinations, 2 routes (0 active, 0 holddown, 2 hidden)
+ = Active Route, - = Last Active, * = Both
 
100.100.100.100,*,proto=1,icmp-type=8/term:N/A          
                    [BGP ] 00:00:17, localpref 100, from 100.0.12.2
                      AS path: 2000 I, validation-state: unverified
                      Fictitious
200.200.200.200,*,proto=6,port=80/term:N/A          
                    [BGP ] 00:00:17, localpref 100, from 100.0.12.2
                      AS path: 2000 I, validation-state: unverified
                      Fictitious



意味

フロー ルートは、ファイアウォール フィルターの項を表します。フロー ルートを設定する場合、整合条件とアクションを指定します。match 属性では、送信元アドレス、送信先アドレス、およびポートやプロトコルなどの修飾子を一致させることができます。複数の整合条件を含む単一フロー ルートの場合、すべての整合条件はルートのプレフィックス フィールドにカプセル化されます。match destination 10.12.44.1/32フロー ルートで コマshow routeンドを発行すると、ルートのプレフィックス フィールドにすべての整合条件が表示されます。 は、整合条件が であることを10.12.44.1,*意味します。出力中のプレフィックスが *,10.12.44.1 であった場合、整合条件は match source 10.12.44.1/32 であることを意味します。整合条件に送信元と送信先の両方が含まれる場合、アスタリスクはアドレスに置き換えられます。

項順序は、ファイアウォール フィルターで評価される項(フロー ルート)の順序を示します。コマshow route extensiveンドは、各項目(ルート)に対するアクションを表示します。

フロー バリデーションの検証

目的

フロー ルート情報を表示します。

アクション

オペレーショナルモードから、show route flow validation detailコマンドを実行します。

content_copy zoom_out_map
user@host> show route flow validation detail
inet.0:
0.0.0.0/0
                Internal node: best match, inconsistent
10.0.0.0/8
                Internal node: no match, inconsistent
10.12.42.0/24
                Internal node: no match, consistent, next-as: 65003
                Active unicast route
                    Dependent flow destinations: 1
                    Origin: 10.255.124.106, Neighbor AS: 65003
10.12.42.1/32
                Flow destination (1 entries, 1 match origin)
                    Unicast best match: 10.12.42.0/24
                    Flags: Consistent
10.131.0.0/16
                Internal node: no match, consistent, next-as: 65001
                Active unicast route
                    Dependent flow destinations: 5000
                    Origin: 10.12.99.2, Neighbor AS: 65001
10.131.0.0/19
                Internal node: best match
10.131.0.0/20
                Internal node: best match
10.131.0.0/21

ファイアウォール フィルターの検証

目的

カーネルにインストールされているファイアウォール フィルターを表示します。

アクション

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

content_copy zoom_out_map
user@host> show firewall
Filter: __default_bpdu_filter__                                
Filter: __flowspec_default_inet__                               
Counters:
Name                                                Bytes              Packets
10.12.42.1,*                                            0                    0
196.1.28/23,*                                           0                    0
196.1.30/24,*                                           0                    0
196.1.31/24,*                                           0                    0
196.1.32/24,*                                           0                    0
196.1.56/21,*                                           0                    0
196.1.68/24,*                                           0                    0
196.1.69/24,*                                           0                    0
196.1.70/24,*                                           0                    0
196.1.75/24,*                                           0                    0
196.1.76/24,*                                           0                    0

許可されたフロー ルート数を超えた場合のシステム ロギングの確認

目的

フロー ルートの設置数に制限を設けた場合、ルーティング テーブルにインストールされるフロー ルートの数を制限する で説明したように、しきい値に達した時のシステム ログ メッセージを表示します。

アクション

オペレーショナルモードから、show log <message>コマンドを実行します。

content_copy zoom_out_map
user@host> show log message
Jul 12 08:19:01  host rpd[2748]: RPD_RT_MAXROUTES_WARN: Number of routes (1000) in 
table inetflow.0 exceeded warning threshold (50 percent of configured maximum 1000)

BGP ピアリング セッションで受信したプレフィックス数を超えた場合のシステム ロギングの検証

目的

フロー ルートの設置数に制限を設けた場合、BGP ピアリング セッションで受信するプレフィックス数の制限について で説明したように、しきい値に達した時のシステム ログ メッセージを表示します。

アクション

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

ステートteradown <percentage>メント オプションを指定した場合。

content_copy zoom_out_map
user@host> show log message
Jul 12 08:44:47  host rpd[2748]: 10.12.99.2 (External AS 65001): Shutting down peer due to 
exceeding configured maximum  prefix-limit(1000) for inet-flow nlri: 1001

ステートdrop-excess <percentage>メント オプションを指定した場合。

content_copy zoom_out_map
user@host> show log message
Jul 27 15:26:57  R1_re rpd[32443]: BGP_DROP_PREFIX_LIMIT_EXCEEDED: 1.1.1.2 (Internal
AS 1): Exceeded drop-excess maximum prefix-limit(4) for inet-unicast nlri: 5 (instance master)

ステートhide-excess <percentage>メント オプションを指定した場合。

content_copy zoom_out_map
user@host> show log message
Jul 27 15:26:57  R1_re rpd[32443]: BGP_HIDE_PREFIX_LIMIT_EXCEEDED: 1.1.1.2 (Internal
AS 1): Exceeded hide-excess maximum prefix-limit(4) for inet-unicast nlri: 5 (instance master)

例:IPv6フロー仕様ルートを伝送するためのBGP設定

この例では、トラフィックフィルタリング用にIPv6フロー仕様を設定する方法を説明します。BGPフロー仕様を使用して、サービス拒否攻撃を緩和を目的とする、ドメイン間とドメイン内のトラフィックフィルタリングルールの調整を自動化できます。

要件

この例では、以下のハードウェアとソフトウェアのコンポーネントを使用しています。

  • 2つのMXシリーズルーター

  • Junos OS リリース 16.1 以降

BGPを有効化して、IPv6フロー仕様ルートを伝送する前に以下を実行します。

  1. デバイスインターフェイスにIPアドレスを設定します。

  2. BGP を設定します。

  3. ルーティングテーブルからBGPにルート(スタティックルート、ダイレクトルート、もしくはIGPルートなど)をエクスポートするルーティングポリシーを設定します。

概要

フロー仕様は、サービス拒否攻撃からの保護機能を提供し、帯域幅を消費して送信元近くでそれを止めてしまう不良なトラフィックを制限します。Junos OSの初期リリースでは、フロー仕様ルールは、ネットワーク層の到達可能性に関する情報として、BGP上のIPv4に伝搬されました。Junos OSリリース16.1以降、フロー仕様機能はIPv6ファミリー上でサポートされ、IPv6およびIPv6 VPNのトラフィック仕様ルールの伝搬を可能にします。

トポロジー

図 7サンプルのトポロジーを示しています。ルーターR1とルーターR2は、異なる自律システムに属しています。IPv6フロー仕様は、ルーターR2上に設定されています。すべての着信トラフィックはフロー仕様条件に基づいてフィルタリングされ、トラフィックは指定されたアクションによって異なる方法で処理されます。この例では、フロー仕様条件に一致する、abcd::11:11:11:10/128へ向かうすべてのトラフィックは破棄されます。一方、abcd::11:11:11:30/128を宛先とする、フロー仕様条件に一致するトラフィックは受信されています。

図 7: IPv6フロールートを伝送するBGPの設定IPv6フロールートを伝送するBGPの設定

設定

CLIクイック構成

この例を迅速に設定するには、以下のコマンドをコピーして、テキストファイルに貼り付け、改行を削除し、ネットワーク設定に一致させる必要がある詳細情報を変更し、コマンドを [edit] 階層レベルでCLIにコピーアンドペーストして、設定モードから commit を入力します。

ルーター R1

content_copy zoom_out_map
set interfaces ge-1/1/4 unit 0 family inet6 address abcd::13:14:2:1/120
set interfaces lo0 unit 0 family inet6 address abcd::128:220:21:197/128
set routing-options router-id 128.220.21.197
set routing-options autonomous-system 64496
set protocols bgp group ebgp type external
set protocols bgp group ebgp family inet6 unicast
set protocols bgp group ebgp family inet6 flow
set protocols bgp group ebgp peer-as 64497
set protocols bgp group ebgp neighbor abcd::13:14:2:2

ルーターR2

content_copy zoom_out_map
set interfaces ge-1/0/0 unit 0 family inet6 address abcd::192:2:1:1/120
set interfaces ge-1/1/5 unit 0 family inet6 address abcd::13:14:2:2/120
set interfaces lo0 unit 0 family inet6 address abcd::128:220:41:229/128
set routing-options rib inet6.0 static route abcd::11:11:11:0/120 next-hop abcd::192:2:1:2
set routing-options rib inet6.0 flow route route-1 match destination abcd::11:11:11:10/128
set routing-options rib inet6.0 flow route route-1 match protocol tcp
set routing-options rib inet6.0 flow route route-1 match destination-port http
set routing-options rib inet6.0 flow route route-1 match source-port 65535
set routing-options rib inet6.0 flow route route-1 then discard
set routing-options rib inet6.0 flow route route-2 match destination abcd::11:11:11:30/128
set routing-options rib inet6.0 flow route route-2 match icmp6-type echo-request
set routing-options rib inet6.0 flow route route-2 match packet-length 100
set routing-options rib inet6.0 flow route route-2 match dscp 10
set routing-options rib inet6.0 flow route route-2 then accept
set routing-options router-id 128.220.41.229
set routing-options autonomous-system 64497
set protocols bgp group ebgp type external
set protocols bgp group ebgp family inet6 unicast
set protocols bgp group ebgp family inet6 flow
set protocols bgp group ebgp export redis
set protocols bgp group ebgp peer-as 64496
set protocols bgp group ebgp neighbor abcd::13:14:2:1
set policy-options policy-statement redis from protocol static
set policy-options policy-statement redis then accept

ルーターR2の設定

ステップバイステップでの手順

次の例では、設定階層内のさまざまなレベルに移動する必要があります。CLI のナビゲーションについては、CLIユーザー・ガイドコンフィギュレーション・モードでのCLIエディタの使用を参照してください。

ルーターR2を設定する。

注:

適切なインターフェイス名、アドレス、およびその他のパラメーターを変更した後、ルーターR1を対象にしたこの手順を繰り返します。

  1. インターフェイスにIPv6アドレスを設定します。

    content_copy zoom_out_map
    [edit interfaces]
    user@R2# set ge-1/0/0 unit 0 family inet6 address abcd::192:2:1:1/120
    user@R2# set ge-1/1/5 unit 0 family inet6 address abcd::13:14:2:2/120
    
  2. IPv6ループバックアドレスを設定します。

    content_copy zoom_out_map
    [edit interfaces]
    user@R2# set lo0 unit 0 family inet6 address abcd::128:220:41:229/128
    
  3. ルーター ID と AS(自律システム)番号を設定します。

    content_copy zoom_out_map
    [edit routing-options]
    user@R2# set router-id 128.220.41.229
    user@R2# set autonomous-system 64497
    
  4. ルーターR1とルーターR2の間でEBGPピアリングセッションを設定します。

    content_copy zoom_out_map
    [edit protocols]
    user@R2# set bgp group ebgp type external
    user@R2# set bgp group ebgp family inet6 unicast
    user@R2# set bgp group ebgp family inet6 flow
    user@R2# set bgp group ebgp export redis
    user@R2# set bgp group ebgp peer-as 64496
    user@R2# set bgp group ebgp neighbor abcd::13:14:2:1
    
  5. スタティックルートとネクストホップを設定します。結果、ルートはルーティングテーブルに追加され、この例の機能を検証します。

    content_copy zoom_out_map
    [edit routing-options]
    user@R2# set rib inet6.0 static route abcd::11:11:11:0/120 next-hop abcd::192:2:1:2
    
  6. フロー仕様の条件を指定します。

    content_copy zoom_out_map
    [edit routing-options]
    user@R2# set rib inet6.0 flow route route-1 match destination abcd::11:11:11:10/128
    user@R2# set rib inet6.0 flow route route-1 match protocol tcp
    user@R2# set rib inet6.0 flow route route-1 match destination-port http
    user@R2# set rib inet6.0 flow route route-1 match source-port 65535
    
  7. discard アクションを設定し、指定された一致条件に一致するパケットを破棄します。

    content_copy zoom_out_map
    [edit routing-options]
    user@R2# set rib inet6.0 flow route route-1 then discard
    
  8. フロー仕様の条件を指定します。

    content_copy zoom_out_map
    [edit routing-options]
    user@R2# set rib inet6.0 flow route route-2 match destination abcd::11:11:11:30/128
    user@R2# set rib inet6.0 flow route route-2 match icmp6-type echo-request
    user@R2# set rib inet6.0 flow route route-2 match packet-length 100
    user@R2# set rib inet6.0 flow route route-2 match dscp 10
    
  9. acceptアクションを設定し、指定された一致条件に一致するパケットを受信します。

    content_copy zoom_out_map
    [edit routing-options]
    user@R2# set rib inet6.0 flow route route-2 then accept
    
  10. BGPのスタティックルート受信を可能にするポリシーを定義します。

    content_copy zoom_out_map
    [edit policy-options]
    user@R2# set policy-statement redis from protocol static
    user@R2# set policy-statement redis then accept
    

結果

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

content_copy zoom_out_map
[edit]
user@R2# show interfaces
ge-1/0/0 {
    unit 0 {
        family inet6 {
            address abcd::192:2:1:1/120;
        }
    }
}
ge-1/1/5 {
    unit 0 {
        family inet6 {
            address abcd::13:14:2:2/120;
        }
    }
}
lo0 {
    unit 0 {
        family inet6 {
            address abcd::128:220:41:229/128;
        }
    }
}
content_copy zoom_out_map
[edit]
user@R2# show protocols
bgp {
    group ebgp {
        type external;
        family inet6 {
            unicast;
            flow;
        }
        export redis;
        peer-as 64496;
        neighbor abcd::13:14:2:1;
    }
}
content_copy zoom_out_map
[edit]
user@R2# show routing-options
rib inet6.0 {
    static {
        route abcd::11:11:11:0/120 next-hop abcd::192:2:1:2;
    }
    flow {
        route route-1 {
            match {
                destination abcd::11:11:11:10/128;
                protocol tcp;
                destination-port http;
                source-port 65535;
            }
            then discard;
        }
        route route-2 {
            match {
                destination abcd::11:11:11:30/128;
                icmp6-type echo-request;
                packet-length 100;
                dscp 10;
            }
            then accept;
        }
    }
}
router-id 128.220.41.229;
autonomous-system 64497;
content_copy zoom_out_map
[edit]
user@R2# show policy-options
policy-statement redis {
    from protocol static;
    then accept;
}

検証

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

inet6フローテーブルにおけるIPv6フロー仕様ルートの存在の検証

目的

ルーターR1とR2のinet6flowテーブルにルートを表示し、BGPがフロールートが学習したことを確認します。

アクション

運用モードから、ルーターR1のshow route table inet6flow.0 extensiveコマンドを実行します。

content_copy zoom_out_map
user@R1> show route table inet6flow.0 extensive
inet6flow.0: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden)
abcd::11:11:11:10/128,*,proto=6,dstport=80,srcport=65535/term:1 (1 entry, 1 announced)
TSI:
KRT in dfwd;
Action(s): discard,count
        *BGP    Preference: 170/-101
                Next hop type: Fictitious, Next hop index: 0
                Address: 0x9b24064
                Next-hop reference count: 2
                State:<Active Ext>
                Local AS:   64496 Peer AS:  64497
                Age: 20:55                 
                Validation State: unverified
                Task: BGP_64497.abcd::13:14:2:2
                Announcement bits (1): 0-Flow
                AS path: 64497 I 
                Communities: traffic-rate:64497:0  
                Accepted 
                Validation state: Accept, Originator: abcd::13:14:2:2, Nbr AS: 64497 
                Via: abcd::11:11:11:0/120, Active  
                Localpref: 100  
                Router ID: 128.220.41.229  
 
abcd::11:11:11:30/128,*,icmp6-type=128,len=100,dscp=10/term:2 (1 entry, 1 announced) 
TSI: 
KRT in dfwd; 
Action(s): accept,count  
        *BGP    Preference: 170/-101 
                Next hop type: Fictitious, Next hop index: 0  
                Address: 0x9b24064  
                Next-hop reference count: 2
                State:  <Active Ext> 
                Local AS:   64496 Peer AS:  64497 
                Age: 12:51 
                Validation State: unverified 
                Task: BGP_64497.abcd::13:14:2:2  
                Announcement bits (1): 0-Flow   
                AS path: 64497 I  
                Accepted 
                Validation state: Accept, Originator: abcd::13:14:2:2, Nbr AS: 64497 
                Via: abcd::11:11:11:0/120, Active 
                Localpref: 100 
                Router ID: 128.220.41.229

運用モードから、ルーターR2のshow route table inet6flow.0 extensiveコマンドを実行します。

content_copy zoom_out_map
user@R2> show route table inet6flow.0 extensive 
inet6flow.0: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden) 
abcd::11:11:11:10/128,*,proto=6,dstport=80,srcport=65535/term:1 (1 entry, 1 announced) 
TSI: 
KRT in dfwd;
Action(s): discard,count 
Page 0 idx 0, (group pe-v6 type External) Type 1 val 0xaec8850 (adv_entry) 
   Advertised metrics: 
     Nexthop: Self 
     AS path: [64497] 
     Communities: traffic-rate:64497:0 
Path abcd::11:11:11:10/128,*,proto=6,dstport=80,srcport=65535 Vector len 4.  Val: 0 
        *Flow   Preference: 5 
                Next hop type: Fictitious, Next hop index: 0 
                Address: 0x9b24064 
                Next-hop reference count: 3 
                State:  <Active> 
                Local AS:  64497
                Age: 14:21 
                Validation State: unverified
                Task: RT Flow
                Announcement bits (2): 0-Flow 1-BGP_RT_Background
                AS path: I
                Communities: traffic-rate:64497:0


abcd::11:11:11:30/128,*,proto=17,port=65535/term:2 (1 entry, 1 announced) 
TSI: 
KRT in dfwd; 
Action(s): accept,count 
Page 0 idx 0, (group pe-v6 type External) Type 1 val 0xaec8930 (adv_entry)
 Advertised metrics: 
  Nexthop: Self 
  AS path: [64497] 
  Communities: 
Path abcd::11:11:11:30/128,*,proto=17,port=65535 Vector len 4.  Val: 0 
*Flow   Preference: 5 
    Next hop type: Fictitious, Next hop index: 0 
    Address: 0x9b24064
    Next-hop reference count: 3 
    State: <Active> 
    Local AS:  64497 
    Age: 14:21 
    Validation State: unverified 
    Task: RT Flow 
    Announcement bits (2): 0-Flow 1-BGP_RT_Background 
    AS path: I 
意味

inet6flowテーブル内のabcd::11:11:11:10/128とabcd::11:11:11:30/128のルートの存在が、BGPがフロールートを学習したことを裏付けています。

BGP サマリー情報の検証

目的

BGP の設定が正しいことを確認します。

アクション

運用モードから、ルーターR1とR2のshow bgp summaryコマンドを実行します。

content_copy zoom_out_map
user@R1> show bgp summary

Groups: 1 Peers: 1 Down peers: 0
Table          Tot Paths  Act Paths Suppressed    History Damp State    Pending
inet6.0              
                       1          1          0          0          0          0
inet6flow.0          
                       2          2          0          0          0          0
Peer                     AS      InPkt     OutPkt    OutQ   Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped...
abcd::13:14:2:2        2000         58         58       0       2       19:48 Establ
  inet6.0: 1/1/1/0
  inet6flow.0: 2/2/2/0
user@R2> show bgp summary
 Groups: 1 Peers: 1 Down peers: 0
Table          Tot Paths  Act Paths Suppressed    History Damp State    Pending
inet6.0              
                       0          0          0          0          0          0
inet6flow.0          
                       0          0          0          0          0          0
Peer                     AS      InPkt     OutPkt    OutQ   Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped...
abcd::13:14:2:1         64496         51         52       0       0       23:03 Establ
  inet6.0: 0/0/0/0
  inet6flow.0: 0/0/0/0
意味

inet6.0 テーブルにBGPネイバーアドレスが含まれ、ピアリングセッションがBGPネイバーで確立されたことを確認します。

フロー バリデーションの検証

目的

フロー ルート情報を表示します。

アクション

運用モードから、ルーターR1のshow route flow validationコマンドを実行します。

content_copy zoom_out_map
user@R1> show route flow validation
inet6.0:
abcd::11:11:11:0/120
                Active unicast route
                    Dependent flow destinations: 2
                    Origin: abcd::13:14:2:2, Neighbor AS: 64497
abcd::11:11:11:10/128
                Flow destination (1 entries, 1 match origin, next-as)
                    Unicast best match: abcd::11:11:11:0/120
                    Flags: Consistent
abcd::11:11:11:30/128
                Flow destination (1 entries, 1 match origin, next-as)
                    Unicast best match: abcd::11:11:11:0/120
                    Flags: Consistent
意味

この出力は、inet6.0テーブル内のフロールートを表示します。

IPv6ルートのフロー仕様の検証

目的

指定されたフロー仕様ルートに基づいて、破棄、また受信されたパケット数を表示します。

アクション

運用モードから、ルーターR2のshow firewall filter_flowspec_default_inet6_コマンドを実行します。

content_copy zoom_out_map
user@R2> show firewall filter __flowspec_default_inet6__ 
Filter: __flowspec_default_inet6__                             
Counters:
Name                                                																Bytes              Packets
abcd::11:11:11:10/128,*,proto=6,dstport=80,srcport=65535            0                     0
abcd::11:11:11:30/128,*,proto=17,port=65535              			  6395472                88826
意味

この出力は、abcd::11:11:11:10/128を宛先とするパケットは破棄され、abcd::11:11:11:11:30/128のルートで 88826のパケットが受け付けられたことを示しています。

DDoSトラフィックをフィルターするための、BGPフロー仕様のIPへのリダイレクトアクションの設定

Junos OS Release18.4R1以降、IPへのリダイレクトアクションのインターネットドラフトdraft-ietf-idr-flowspec-redirect-ip-02.txtに記載されているBGPフロー仕様がサポートされています。IPへのリダイレクトアクションは、拡張BGPコミュニティーを使用して、DDoS攻撃緩和に対するトラフィックフィルタリングオプションをサービスプロバイダネットワークで提供しています。従来のフロー仕様のIPへのリダイレクトは、BGPネクストホップ属性を使用しています。Junos OSは、デフォルトで拡張コミュニティーを使用して、IPへのリダイレクトフロー仕様アクションをアドバタイズしています。この機能は、仮想サービスコントロールゲートウェイ(vSCG)でサービスチェイニングのサポートに必要です。IPへのリダイレクトアクションは、一致するフロー仕様トラフィックを、世界中で接続可能なアドレスに接続に迂回させることを可能にします。そのアドレスは、DDoSトラフィックをフィルターし、クリーンなトラフィックをエグレスデバイスに送信できるフィルタリングデバイスに接続することができます。

BGPフロー仕様ルートに対してのトラフィックをIPにリダイレクトする前に、以下を実行してください。

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

  2. OSPF、またはその他の IGP プロトコルを設定します。

  3. MPLS と LDP を設定します。

  4. BGP を設定します。

BGP拡張コミュニティーを使用して、IPへのリダイレクト機能を設定します。

  1. IPのリダイレクトアクションのBGPフロースペックインターネットドラフトdraft-ietf-idr-flowspec-redirect-ip-02.txtに記載されているとおり、スタティックIPv4フロー仕様ルートに対するIPへのリダイレクトのアクションを設定します。

    Junos OSは、デフォルトで拡張コミュニティーのIPへのリダイレクトを使用して、IPへのリダイレクトフロー仕様アクションをアドバタイズしています。イングレスデバイスは、DDoSトラフィックを検知し、それを指定したIPアドレスに送信します。

    content_copy zoom_out_map
    [edit routing-options flow route then]
    user@host# set redirect ipv4-address
    

    例えば、DDoSトラフィックをIPv4アドレス10.1.1.1にリダイレクトします。

    content_copy zoom_out_map
    [edit routing-options flow route then]
    user@host# set redirect 10.1.1.1.1
    
  2. スタティックIPv6フロー仕様ルートに対するIPへのリダイレクトアクションを設定します。
    content_copy zoom_out_map
    [edit routing-options flow route then]
    user@host# set redirect ipv6-address
    

    例えば、DDoSトラフィックをIPv6アドレス1002:db8::にリダイレクトします。

    content_copy zoom_out_map
    [edit routing-options flow route then]
    user@host# set redirect 2001:db8::
    
  3. 特定のBGPコミュニティーからトラフィックをフィルターするポリシーを定義します。
    content_copy zoom_out_map
    [edit policy-options]
    user@host# policy-statement policy-name
    user@host# from community community-ids
    user@host# community community-ids members extended-community-type:administrator:assigned number
    

    例えば、ポリシーp1を定義し、BGPコミュニティーのrediripからトラフィックをフィルターします。

    content_copy zoom_out_map
    [edit policy-options]
    user@host# policy-statement p1
    user@host# from community redirip
    user@host# community redirip members redirect-to-ip :10.1.1.1:0
    
  4. BGPコミュニティーを設定、追加、または削除するポリシーを定義し、拡張コミュニティーを指定します。
    content_copy zoom_out_map
    [edit policy-options]
    user@host# policy-statement policy-name
    user@host# then community set community-ids
    user@host# then community add community-ids 
    user@host# then community deletecommunity-ids
    user@host# community community-ids members extended-community-type:administrator:assigned number
    

    例えば、コミュニティーのreidiripと拡張コミュニティーを設定、追加、または削除するポリシーp1を定義し、IPアドレス10.1.1.1.へトラフィックをリダイレクトします。

    content_copy zoom_out_map
    [edit policy-options]
    user@host# policy-statement p1
    user@host# then community set redirip
    user@host# then community add redirip 
    user@host# then community deleteredirip
    user@host# community redirip members redirect-to-ip:10.1.1.1:0
    
  5. VRF.inet.0テーブルを使用するには、BGPを設定します。VRFフロー仕様ルートを解決するには、階層レベルのステートメントを含めます。
    content_copy zoom_out_map
    [edit protocols bgp neighbor family flow]
    user@host# set secondary-independent-resolution
    

ネクストホップ属性を使用して、従来のフロー仕様のIPへのリダイレクトの機能を設定します。

注:

BGP拡張コミュニティーと従来のネクストホップIPアドレスへのリダイレクトを一緒に使用して、IPアドレスへのトラフィックをリダイレクトするポリシーを設定することはできません。

  1. IPネクストホップへのトラフィックリダイレクトのためのBGPフロースペック拡張コミュニティーにあるインターネットドラフト、draft-ietf-idr-flowspec-redirect-ip-00.txtに記載されている従来のIPへのフロー仕様リダイレクトを設定し、階層レベルで含めます。

    content_copy zoom_out_map
    [edit group bgp-group neighbor bgp neighbor family inet flow]
    user@host# set legacy-redirect-ip-action
    
  2. ネクストホップの属性に一致するポリシーを定義します。

    content_copy zoom_out_map
    [edit policy options]
    user@host#policy statement policy_name
    user@host#from community community-name
    user@host#from next-hop ip-address
    

    例えば、ポリシーp1を定義して、ネクストホップIPアドレス10.1.1.1.にトラフィックをリダイレクトします。

    content_copy zoom_out_map
    [edit policy options]
    user@host#policy statement p1
    user@host#from community redirnh
    user@host#from next-hop 10.1.1.1
    
  3. 従来のIPへのフロー仕様ネクストホップ属性リダイレクトアクションを使用して、BGPコミュニティーを設定、追加、または削除するポリシーを定義します。

    content_copy zoom_out_map
    [edit policy-options]
    user@host# policy-statement policy_name
    user@host# then community set community-name
    user@host# then community add community-name
    user@host# then community delete community-name
    user@host# then next-hop next-hop-address
    

    例えば、ポリシーp1を定義し、BGPコミュニティーredirnhを設定、追加、または削除し、DDoSトラフィックをネクストホップIPアドレス10.1.1.1.にリダイレクトします。

    content_copy zoom_out_map
    [edit policy-options policy-statement p1]
    user@host# then community set redirnh
    user@host# then community add redirnh
    user@host# then community delete redirnh
    user@host# then next-hop 10.1.1.1
    

BGPフロー仕様DSCPアクションを使用したトラフィックの転送

BGP フロー仕様(FlowSpec)DSCP アクションを設定し、転送クラスと損失の優先度情報を使用して、ネットワーク全体でパケットを効果的に転送します。

パケットを転送するBGPフロースペックDSCPアクションの利点

  • COS ポリシーがトラフィックに正しく適用される目的の COS キューにトラフィックを転送します。

  • プロビジョニングされた DSCP 値に基づいて、ローカル転送動作(トンネルの選択など)に影響を与えます。

  • ネットワーク上のトラフィックを効果的に管理するのに役立ちます。

パケットがルーターに入ると、パケットはイングレスインターフェイスで適用された機能(ファイアウォール、COSなど)を通過します。イングレス インターフェイスで BGP FlowSpec フィルターを設定すると、DSCP アクションに基づいて、ルーティング インスタンスごとのパケットにフィルターが適用されます。DSCP アクションは、BGP フロースペック フィルターを介した DSCP コードの変更と共に、パケットを分類して書き換えます。転送クラスと損失の優先度情報に基づいて、パケットは正しい転送キューに配置されます。パケットは、特定の一致条件が満たされた場合のみフロー ルートを通過します。一致条件には、送信元と宛先の IP アドレス、送信元と宛先のポート、DSCP、プロトコル番号などがあります。転送クラスと損失の優先度情報は、リバース マッピング テーブルによって更新されます。

これは、サービスプロバイダと企業の顧客ネットワーク間で確立されたBGPセッションのトポロジーを示しています。

パケットを転送するBGPフロースペックDSCPアクションの利点

このトポロジーでは、BGP FlowSpec 用にサービスプロバイダとエンタープライズカスタマーネットワーク間で BGP セッションが設定されます。BGP FlowSpec フィルターは、PE1 ルーターと PE2 ルーターの両方に適用されます。これらのルーターに入るパケットは、BGP FlowSpec フィルターと DSCP アクションに基づいて書き換えられます。

デバイスでBGP FlowSpecフィルターを有効にするには、[edit forwarding-options family (inet | inet6)] 階層レベルで dscp-mapping-classifier 設定ステートメントを追加する必要があります。

content_copy zoom_out_map
forwarding-options {
    family inet {
        dscp-mapping-classifier ipv4-classifer;
    }              
    family inet6 {
        dscp-mapping-classifier ipv6-classifer;
    }              
}

以下のサービス クラス設定例は、DSCP コード ポイントを転送クラスと損失の優先度にマッピングしています。

content_copy zoom_out_map
class-of-service {
	classifiers {
		dscp dscp1 {
        		forwarding-class best-effort {
            		loss-priority low code-points 000000;
        		}
		}
      }
}

変更履歴

サポートされる機能は、使用しているプラットフォームとリリースによって決まります。 特定の機能がお使いのプラットフォームでサポートされているかどうかを確認するには、 Feature Explorer をご利用ください。

リリース
説明
20.3R1
cRPD リリース 20.3R1 以降、BGP フローの仕様 NLRIに よって伝播されたフロー ルートとポリシングルールは、cRPD 環境の Linux Netfilter フレームワークから Linux にダウンロードされます。
17.2R1
Junos OS リリース 17.2R1 以降、BGP は、第 3 世代 FPC が搭載されている PTX1000 ルーターにフロー指定ネットワーク層到達可能性情報(NLRI)メッセージを伝送できます。
17.1R1
Junos OS リリース 17.1R1 以降、第 3 世代 FPC (PTX5000 の FPC3-PTX-U2 と FPC3-PTX-U3、PTX300 の FPC3-SFF-PTX-U0 と FPC3-SFF-PTX-U1)を搭載した PTX シリーズでは、BGP がフロー指定ネットワーク層到達可能性情報(NLRI)メッセージを伝送できます。
16.1R4
Junos OS リリース 16.1R4 以降、レート制限範囲は [0~1000000000000] です。
16.1
Junos OS リリース 16.1以降、IPv6 のサポートは、IPv6 と VPN-IPv6 のパケットのトラフィックフローの仕様ルールの伝播を許可する BGP フローの仕様に拡張されます。
16.1
Junos OS リリース 16.1R1 以降、BGP フロー仕様はトラフィック マーク extended-community フィルタリング アクションをサポートします。
16.1
Junos OS リリース 16.1 以降、特定のインターフェイスで受信したトラフィflowspecックにフィルターを適用しないオプションがあります。
15.1
Junos OS リリース 15.1 以降、既存の inet フローと inetvpn フローファミリーに対するノンストップ アクティブ ルーティング(NSR)サポートを拡張し、draft-ietf-idr-bgp-flowspec-oid-01 に従って BGP flowspec のルート検証を拡張するための変更が実装されます。
footer-navigation