Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

マルチプロトコルBGP

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

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

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

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

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

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

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

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

マルチプロトコル 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メントを含めます。

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

この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のステートメントを含めます:

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

この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メントを使用します:

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

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

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

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

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

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

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

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

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

例: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

デバイスR2

デバイスR3

デバイスR1の設定

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

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

Device R1を設定するには:

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

  2. EBGPを設定します。

  3. BGPを有効にしてIPv4ユニキャストとIPv6ユニキャストルートを伝送します。

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

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

  5. いくつかのスタティックルートを設定します。

  6. 自律システム(AS)番号を設定します。

結果

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

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

検証

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

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

目的

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

対処

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

意味

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

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

目的

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

対処

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

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を設定します。

注:

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

ルーターR2

ルータ R3

ルーターR1の設定

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

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

ルータ R1 の設定を行う。

注:

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

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

  2. ループバックアドレスを設定します。

  3. アドバタイズの必要があるIPv4スタティックルートを設定します。

  4. BGP ホストの自律システムを設定します。

  5. 外部エッジルーターに EBGP を設定します。

  6. 機能を有効にして、BGP IPv6セッション上でIPv4アドレス140.1.1.1をアドバタイズします。

  7. ポリシーp1を定義して、すべてのスタティックルートを受信します。

  8. ポリシーp1をEBGPグループのebgp-v6に適用します。

結果

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

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

検証

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

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

目的

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

対処

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

意味

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

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

目的

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

対処

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

意味

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

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

目的

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

対処
意味

ルーター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 アドレスファミリーをルーティングするための拡張ネクストホップ符号化オプションを設定します。
  2. 動的な IPv4-over-IPv6 トンネルを設定し、その属性を定義することで、IPv6 のみのネットワーク上で IPv4 トラフィックを転送します。IPv4 トラフィックは、CPE デバイスから IPv4-over-IPv6 ゲートウェイにトンネリンされます。
  3. トンネルの属性を設定します。

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

  4. 設定した動的トンネル属性プロファイルを、プレフィックスリストまたはルートフィルタに関連づけるためのポリシーを定義します。

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

  5. 定義したポリシーをエクスポートします。

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

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

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

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

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

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

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

最大プレフィックス数を設定すると、その数に達したときにメッセージが記録されます。ステート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 はフロー ルート一致条件を記述します。

表 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)、 info-reply(8)、 timestamp(16)、unreachable (15)、 echo-request(17)、info-request (18)、 mask-request(12)、mask-reply (5)、  parameter-problem(9)、redirect (10)、router-advertisement (4)、router-solicit (11)、source-quench (13)、time-exceeded (14)、または timestamp-reply(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にコマンドをコピー&ペーストしてください。

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

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

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

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

  2. アクションを設定します。

  3. (推奨)フロー指定アルゴリズムでは、スタンダードベースの項順を設定します。

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

結果

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

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

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

CLIクイック構成

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

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

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

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

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

  2. フロー ポリシーを設定します。

  3. ローカル自律システム(AS)番号を設定します。

結果

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

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

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

CLIクイック構成

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

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

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

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

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

  2. フロー ポリシーを設定します。

  3. ローカル自律システム(AS)番号を設定します。

結果

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

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

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

CLIクイック構成

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

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

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

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

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

  2. フロー ポリシーを設定します。

  3. ローカル自律システム(AS)番号を設定します。

結果

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

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

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

CLIクイック構成

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

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

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

注:

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

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

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

  2. しきい値を 50 % に設定し、500 ルートがインストールされると、システム ログに警告が記録されます。

結果

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

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

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

CLIクイック構成

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

注:

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

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

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

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

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

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

  2. セッションまたはプレフィックスが上限に達した時、teardown <percentage>drop-excess <percentage> または hide-excess<percentage> ステートメント オプションのいずれかを実行するように近隣のセッションまたはプレフィックスを設定します。

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

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

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

結果

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

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

検証

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

NLRI の検証

目的

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

対処

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

ルートの検証

目的

フロー ルートを見ます。サンプル出力では、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コマンドを実行します。

意味

フロー ルートは、ファイアウォール フィルターの項を表します。フロー ルートを設定する場合、整合条件とアクションを指定します。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コマンドを実行します。

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

目的

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

対処

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

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

目的

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

対処

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

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

目的

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

対処

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

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

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

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

例: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

ルーターR2

ルーターR2の設定

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

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

ルーターR2を設定する。

注:

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

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

  2. IPv6ループバックアドレスを設定します。

  3. ルーター ID と AS(自律システム)番号を設定します。

  4. ルーターR1とルーターR2の間でEBGPピアリングセッションを設定します。

  5. スタティックルートとネクストホップを設定します。結果、ルートはルーティングテーブルに追加され、この例の機能を検証します。

  6. フロー仕様の条件を指定します。

  7. discard アクションを設定し、指定された一致条件に一致するパケットを破棄します。

  8. フロー仕様の条件を指定します。

  9. acceptアクションを設定し、指定された一致条件に一致するパケットを受信します。

  10. BGPのスタティックルート受信を可能にするポリシーを定義します。

結果

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

検証

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

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

目的

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

対処

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

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

意味

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

BGP サマリー情報の検証

目的

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

対処

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

意味

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

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

目的

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

対処

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

意味

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

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

目的

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

対処

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

意味

この出力は、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アドレスに送信します。

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

  2. スタティックIPv6フロー仕様ルートに対するIPへのリダイレクトアクションを設定します。

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

  3. 特定のBGPコミュニティーからトラフィックをフィルターするポリシーを定義します。

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

  4. BGPコミュニティーを設定、追加、または削除するポリシーを定義し、拡張コミュニティーを指定します。

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

  5. VRF.inet.0テーブルを使用するには、BGPを設定します。VRFフロー仕様ルートを解決するには、階層レベルのステートメントを含めます。

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

注:

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

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

  2. ネクストホップの属性に一致するポリシーを定義します。

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

  3. 従来のIPへのフロー仕様ネクストホップ属性リダイレクトアクションを使用して、BGPコミュニティーを設定、追加、または削除するポリシーを定義します。

    例えば、ポリシーp1を定義し、BGPコミュニティーredirnhを設定、追加、または削除し、DDoSトラフィックをネクストホップIPアドレス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 フィルターを有効にするには、[] 階層レベルで 設定ステートメントを追加する必要があります。dscp-mapping-classifieredit forwarding-options family (inet | inet6)

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

変更履歴

サポートされる機能は、使用しているプラットフォームとリリースによって決まります。 特定の機能がお使いのプラットフォームでサポートされているかどうかを確認するには、 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 のルート検証を拡張するための変更が実装されます。