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 リリース 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 ルーティングテーブルは、MP-BGP を設定すると(NLRI を any に設定することで)自動的に作成されます。

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 リリース 9.2 以降では、BGPピア セッションで受け入れ可能なプレフィックス数に制限を設定することもできます。詳細については、「 BGPピアセッションで受け入れるプレフィックス数の制限」を参照してください。

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

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

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

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

最大numberの場合は、1〜 4,294,967,295の範囲 の値を指定します。

受け入れたプレフィックスの数が設定された制限を超えた場合に、BGPピアセッションをリセットするためのteardownステートメントを含めます。また、受け入れたプレフィックスの数が上限のパーセンテージを超えた場合に、システムログメッセージを送信するために、1 から 100 までの パーセント値 を含めることもできます。デフォルトでは、リセットされたBGPセッションは短時間で再確立されます。指定した期間にBGPセッションを再確立しないようにするためのidle-timeoutステートメントを含めます。タイムアウトの値は、1 分から 2400 分まで  設定できます。clear bgp neighborコマンドを発行するまでBGPセッションが再確立されないようにするforeverオプションを含めます。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のネクストホッププレフィックスは、IPv6のネクストホッププレフィックス::ffff:10.19.1.1に変換 10.19.1.1

    注:

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

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

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

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

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

図1:IPv4トランスポートTopology for Configuring IPv6 BGP Routes over IPv4 Transport上のIPv6 BGPルートを設定するためのトポロジー

設定

CLIクイックコンフィグレーション

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

デバイスR1

デバイスR2

デバイスR3

デバイスR1の設定

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

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

デバイスR1を設定するには:

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

  2. EBGPを設定します。

  3. BGPがIPv4ユニキャストルートとIPv6ユニキャストルートを伝送できるようにします。

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

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

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

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

結果

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

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

検証

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

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

目的

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

アクション

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

意味

出力に inet6-ユニキャスト が多数出現していることは、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 を設定します。

注:

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

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

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

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

要件

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

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

  • すべてのデバイスで実行されている Junos OS リリース 16.1 以降

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

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

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

概要

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

注:

inet6 ユニキャスト、inet6 マルチキャスト、inet6ラベル付きユニキャストアドレスファミリーには、これらのアドレスファミリーをIPv6 BGPセッション上でアドバタイズする機能がすでにあるため、この機能を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ルートのアドバタイズ Network topology diagram with three routers labeled R1 R2 and R3 connected linearly. R1 is in AS 64497 connected to R2 via interface ge-0/0/0 with IPv6 140.1.1.1/126. R2 and R3 in AS 64496. R2 connects to R3 via ge-0/0/1 with IPv6 150.1.1.1/126. Loopback addresses: R1 1::1/128 R2 1::2/128 R3 1::3/128.

設定

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-optionsshow policy-options コマンドを入力して設定を確認します。出力に意図した設定が表示されない場合は、この例の手順を繰り返して設定を修正します。

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

検証

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

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

目的

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

アクション

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

意味

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

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

目的

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

アクション

運用モードから、ルーター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 リリース 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ルートを受信すると、BGPは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でトンネルの状態が利用可能な場合のトンネルイングレス処理 Data packet path in a network device through ingress, fabric, and egress stages in a Packet Forwarding Engine architecture, highlighting IPv4/IPv6 processing.
図4:トンネルの状態が異なるPFEData packet flow through network device with PFEs, showing ingress, anchor, and egress stages, transitioning from IPv4 to IPv6 headers.上にある場合のトンネルイングレス処理
  1. IPv6 ヘッダー内に IPv4 トラフィックをカプセル化します。

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

  2. 内部パケットヘッダーにハッシュベースのトラフィックロードバランシングを使用します。

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

トンネルイグレス

トンネルイグレスは、顧客構内機器からネットワーク側にトラフィックを転送します。
図5:同じPFEData packet path through a network device: ingress, processing, and egress in PFE architecture with IPv6 and IPv4 handling.でトンネルの状態が利用可能な場合のトンネルイグレス処理
図6:リモートPFEでトンネル状態が利用可能な場合のトンネルイグレス処理Data packet path through network device with PFEs; transitions from IPv6 to IPv4 via ingress, fabric, anchor, and egress stages.
  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 リリース 17.3R1 の統合型 ISSU をサポートしていません。

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

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

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

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

  4. BGPを設定します。

IPv6 ネクストホップアドレスを持つ IPv4 ルートを配信するように BGP を設定するには、以下を行います。

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

    例えば、以下の属性で first_tunnel 動的トンネルを設定します。

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

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

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

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

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

BGP を有効にして、レイヤー 2 VPN および VPLS NLRI メッセージを伝送できます。

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

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

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

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

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

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

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

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

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

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)中の分散型サービス拒否攻撃を軽減するために、トラフィックフィルタリングルールの調整を自動化します。

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

Junos OSリリース17.1R1以降、BGPは、第3世代FPC(PTX5000のFPC3-PTX-U2とFPC3-PTX-U3、PTX3000のFPC3-SFF-PTX-U0とFPC3-SFF-PTX-U1)を搭載したPTXシリーズルーターでフロー指定ネットワーク層到達可能性情報(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オプション フィールドを使用して、IPv6 プレフィックスの一致を開始する前にスキップJunos OS必要があるビット数を指定できます。

destination-port number

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

数値の代わりに、次のテキスト同義語(ポート番号も記載されています)のいずれかを指定できます: afs (1483)、 bgp (179)、 biff (512)、 bootpc (68)、 bootps (67)、 cmd (514)、 cvspserver (2401)、 dhcp (67)、 domain (53)、 eklogin (2105)、 ekshell (2106)、 exec (512)、 finger (79)、 ftp (21)、 ftp-data (20)、 http (80)、 https (443)、 ident (113)、 imap (143)、 kerberos-sec (88)、 klogin (543)、 kpasswd (761)、 krb-prop (754)、 krbupdate (760)、 kshell (544)、 ldap (389)、 login (513)、 mobileip-agent (434)、 mobilip-mn (435)、 msdp (639)、 netbios-dgm (138)、 netbios-ns (137)、 netbios-ssn (139)、 nfsd (2049)、 nntp (119)、 ntalk (518)、 ntp (123)、 pop3 (110)、 pptp (1723)、 printer (515)、 radacct (1813)、 radius (1812)、 rip (520)、 rkinit (2108)、 smtp (25)、 snmp (161)、 snmptrap (162)、 snpp (444)、 socks (1080)、 ssh (22)、 sunrpc (111)、 syslog (514)、 tacacs-ds (65)、 talk (517)、 telnet (23)、 tftp (69)、 timed (525)、 who (513)、 xdmcp (177)、 zephyr-clt (2103)、または zephyr-hm (2104)。

dscp number

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

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

flow-label numeric-expression

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

この一致条件は、 enhanced-ip モードに設定されている拡張 MPC を搭載したJunosデバイスでのみサポートされます。この一致条件は 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-codeと一緒にicmp-typeを指定する必要があります。

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

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

  • リダイレクト: 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)

  • 到達不能: 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-violation (14)、 host-unreachable (1)、 host-unreachable-for-TOS (12)、 network-unreachable (0)、 network-unreachable-for-TOS (11)、 port-unreachable (3)、 precedence-cutoff-in-effect (15)、 protocol-unreachable (2)、 source-host-isolated (8)、 source-route-failed (5)

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

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

数値の代わりに、 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)、 gre (47)、 icmp (1)、 igmp (2)、 ipip (4)、 ipv6 (41)、 ospf (89)、 pim (103)、 rsvp (46)、 tcp (6)、または udp (17)のいずれかのテキスト同義語を指定できます。

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

source prefixprefix-offset number

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

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

source-port number

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

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

tcp-flag type

TCP ヘッダー形式です。

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

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

表2は 、フロールートアクションを示しています。

表2:フロールートアクション修飾子

アクションまたはアクション 修飾子

説明

アクション

accept

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

discard

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

community

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

マーク value

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

next term

評価のための次の一致条件に進みます。

routing-instance extended-community

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

rate-limit bits-per-second

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

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

  • ルーティングテーブルからBGPにルート(直接ルートやIGPルートなど)をエクスポートするルーティングポリシーを設定します。

概要

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

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

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

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

受信側のBGP対応デバイスは、ファイアウォールフィルターをフロールーティングテーブル instance-name.inetflow.0に取り付ける前に検証処理を行います。検証手順は、RFC 5575、 フロー仕様ルールの普及に記載されています。

受信側の 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 タイプには、RFC 5575 で定義されている宛先プレフィックス、ソース プレフィックス、プロトコル、ポートなどのコンポーネントが含まれます。インポート ポリシーでは、フロー仕様 NLRI 内のパス属性と宛先アドレスを使用して、受信ルートをフィルタリングできます。インポート ポリシーは、RFC 5575 の他のコンポーネントをフィルタリングすることはできません。

フロー仕様は、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に設定されたフロールートは自動的に検証されないため、no-validateステートメントは[edit protocols bgp group group-name family inet-vpn]階層レベルではサポートされません。フロールートが単一AS内のデバイス間でローカルに設定されている場合、検証は必要ありません。

インポートとエクスポートのポリシーは、他のBGPファミリにインポートとエクスポートのポリシーを適用する方法と同様に、 family inet flow または family inet-vpn flow NLRIに適用して、受け入れまたはアドバタイズされるフロールートに影響を与えることができます。唯一の違いは、フロー ポリシーの設定に 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リリース10.0以降でサポートされています。

結果

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

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

ルート フィルターで指定されたフロー ルートをアドバタイズする

CLIクイックコンフィグレーション

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

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

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

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

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

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

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

結果

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

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

すべてのユニキャストおよびフロー ルートを広告

CLIクイックコンフィグレーション

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

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

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

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

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

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

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

結果

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

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

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

CLIクイックコンフィグレーション

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

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

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

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

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

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

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

結果

設定モードから、 show protocolsshow policy-optionsshow routing-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.0show route table instance-name.inetflow.0のように、 instance-name がルーティングインスタンス名であるテーブルを指定することで、フロールートを表示することができます。また、 show route protocol flow コマンドを実行することで、複数のルーティングインスタンスにまたがってローカルに設定されたすべてのフロールートを表示することができます。

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

アクション

動作モードから、 show route table inetflow.0 コマンドを実行します。

意味

フロー ルートは、ファイアウォール フィルターの項を表します。フロー ルートを設定する際には、整合条件とアクションを指定します。match 属性では、送信元アドレス、宛先アドレス、およびポートやプロトコルなどの修飾子を一致させることができます。複数の一致条件を含む単一フロー ルートの場合、すべての一致条件はルートのプレフィックス フィールドにカプセル化されます。フロー ルートで show route コマンドを発行すると、ルートのプレフィックス フィールドにすべての整合条件が表示されます。 10.12.44.1,* は、整合条件が match destination 10.12.44.1/32であることを意味します。出力のプレフィックスが *,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フロールートNetwork topology diagram with two routers: R1 in AS 64496 and R2 in AS 64497. IPv6 link between R1's ge-1/1/4 and R2's ge-1/1/5 on subnet abcd::13:14:2:0/120. R2 has additional connection via ge-1/0/0.を伝送するための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 パケットが受け入れられたことを示しています。

BGPフロー仕様の設定 IPへのリダイレクト

BGPフロー仕様IPへのリダイレクト機能は、フロー仕様(FlowSpec)ルールに基づくトラフィックリダイレクトを可能にすることで、トラフィックエンジニアリング機能を強化します。この機能は、BGP Flow-Spec Internet draft: draft-ietf-idr-flowspec-redirect-ip-02.txt, Redirect to IP Actionで説明されているように、IPv4またはIPv6アドレスへのリダイレクトをサポートします。特に、サービスプロバイダ(SP)ネットワークにおけるDDoS緩和や、仮想化サービス環境(vSCG)におけるポリシーベースの転送に有益です。

ユースケース

  • DDoS緩和 – 分析と駆除のために、悪意のあるトラフィックをスクラビングセンターにリダイレクトします。

  • ポリシーベースの転送 – 定義済みのルールに基づいてトラフィックフローを特定の宛先に誘導することで、高度なトラフィック管理を可能にします。

トポロジー

  • 図8:既存のフロー Existing Flow
    • 攻撃が検出されると、FlowSpec redirect-to-VRFイングレスプロバイダーエッジ(PE) ルーターに適用されます。

    • ダーティVRFは、ヘッドエンドPE(HE-PE)に接続されたスクラバーにトラフィックをリダイレクトします。

    • トラフィックがクリーンアップされると、HE-PE はトラフィックを目的の宛先に転送します。

  • 図9:新しいフロー New Flow
    • redirect-to-VRFの代わりに、FlowSpec redirect-to-IP がイングレスPEの外部に面したインターフェイスに適用されます。

    • 悪意のあるトラフィックは、 HE-PEに直接転送されます。

    • その後、HE-PEはredirect-to-IPルールに基づいてトラフィックを スクラバー にリダイレクトします。

    • クリーニングされたトラフィックは、専用のダーティVRFを必要とせずに宛先に転送されます。

対象プラットフォーム

  • vMX、MXシリーズルーター

パフォーマンスと拡張目標

  • この機能は、トラフィックのリダイレクトを効果的に管理するために、1,000のFlowSpecルートをサポートすることを目的としています。

  1. BGPセッションでFlowSpecを有効にします。
  2. Redirect-to-IPのFlowSpecルールを設定します。
  3. ポリシーをインターフェイスに適用します。

検証コマンド:

この機能により、VRF ベースのセグメンテーションではなく、IP ベースのトラフィック処理を通じてリダイレクト プロセスが簡素化され、拡張性の向上、遅延の削減、効率的な DDoS 緩和が保証されます。

BGPフロー仕様アクション「Redirect to IP」を設定してDDoSトラフィックをフィルタリングする

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

注:

IPv6は、従来のredirect-to-Nexthopエンコーディングモードでのみサポートされます。IPv6の新しいredirect-to-IPエンコーディング形式はサポートされません。

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

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

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

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

  4. BGPを設定します。

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

  1. BGPフロー仕様インターネットドラフトdraft-ietf-idr-flowspec-redirect-ip-02.txt IPへの リダイレクト アクションに記載されているように、スタティック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テーブルを使用して、階層レベルのステートメントを含めてVRFフロー仕様ルートを解決するようにBGPを設定します。

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

注:

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

  1. インターネットドラフトdraft-ietf-idr-flowspec-redirect-ip-00.txtで指定されているレガシーフロー仕様のIPへのリダイレクトを設定する BGP、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 FlowSpec DSCPアクションのメリット

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

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

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

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

以下は、サービスプロバイダと企業顧客ネットワークとの間に確立されたBGPセッションのトポロジーです。

Network topology diagram showing customer devices connected to an enterprise via a service provider network with routers PE1, PE2, PE3, and CE1.

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

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

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

フロー ルート検証のポリシーの設定

フロー仕様を使用してネットワークを介してピアリング ポイントにフィルターを配布する場合、フロー仕様フィルターの形式はソースで検証されます。EBGP セッションを介した信号フロー ルートをピアに送信したい場合は、エッジ ルーターでフロー仕様フィルターを検証する必要があります。

ポリシーを使用して、フロー ルートのこの追加検証を実行できます。ポリシーは、フロー ルート一致条件をフィルタリングして、ソースから注入された不正な形式、サポートされていない、または望ましくないフロー ルートの許可を防止できます。また、フロー ルートがプロトコル セッションを偶発的または悪意を持ってブロックするのを防ぐこともできます。

ポリシーを使用して、次の目的で実行できます

  • 特定のフロー仕様の一致/アクション条件が存在するかを確認する

  • 無効または望ましくない一致条件をプログラミングすることを防ぎます。

フロー仕様の一致/アクション条件が存在するかどうかをチェックするポリシーの設定

ポリシーを設定して、特定のフロー一致/アクション条件がソースからアドバタイズされているかどうかを確認し、必要なアクションを実行できます。各フロー ルートには、一致条件とアクション条件があります。一致条件と一致が発生した場合に実行するアクションを指定する以下のステートメントを設定します。

set policy-options flowspec-attribute <> match condition <>

set policy-options flowspec-attribute < Flow Route action >

これらのポリシー設定は、フロー ルート内の完全一致または部分一致を探し、見つかった場合、ポリシーはフロー ルートと一致します。複数の一致条件を設定した場合、すべての条件が満たされた場合にのみ一致が発生します。

「反転」一致オプションを使用して、特定の一致条件を除外できます。例えば;以下の設定ステートメントでは、ポリシーは「TCPプロトコルなし」のフロールートを照合し、「DSCP値「x」と照合します。両方の一致が見つかった場合、ポリシーはフロー ルートを受け入れます。

フロー仕様一致属性をチェックするポリシーの設定

ポリシーを設定して、フロー ルートがフロー一致条件の特定の値に一致するかどうかをチェックできます。これにより、フロー ルートが偶発的または悪意を持ってプロトコル セッションをブロックするのを防ぐことができます。

属性の特定の値を指定する以下のステートメントを設定します。

set policy-options flowspec-attribute < match value >

IPv4に固有のフロースペクションポリシー一致属性は、IPv6フロールートに影響を与えず、その逆も同様です。

変更履歴テーブル

サポートされる機能は、使用しているプラットフォームとリリースによって決まります。 機能エクスプローラー を使用して、機能がお使いのプラットフォームでサポートされているかどうかを確認します。

リリース
説明
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以降、BGPは、第3世代FPC(PTX5000のFPC3-PTX-U2とFPC3-PTX-U3、PTX3000のFPC3-SFF-PTX-U0とFPC3-SFF-PTX-U1)を搭載したPTXシリーズルーターでフロー指定ネットワーク層到達可能性情報(NLRI)メッセージを伝送できます。
16.1R4
Junos OSリリース16.1R4以降、レート制限の範囲は[0〜10000000000000]です。
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 のルート検証を拡張するための変更が実装されます。