Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

BGP エラーメッセージ

BGP 更新メッセージのエラー処理について説明します。

BGP メッセージは、いずれかのメッセージ属性の形式に誤りがある場合に、形式が間違っていると見なされます。BGP セッションに参加しているルーターが不正な更新メッセージを受信すると、デフォルトでセッション全体がリセットされます。有効なルートを持つ更新メッセージも影響を受けるため、これは望ましくありません。この望ましくない動作を回避するには、BGP 更新メッセージのエラー処理を変更する必要があります。

BGP 更新メッセージのエラー処理を構成するにはbgp-error-tolerance 、、、 [edit protocols bgp]また[edit protocols bgp group group-name][edit protocols bgp group group-name neighbor address]階層レベルでステートメントを構成します。

属性に属性タイプフィールドの値と競合する属性フラグが含まれている場合、属性フラグは正しい値にリセットされ、更新メッセージが処理されます。属性フラグの拡張長さビットの値は変更されません。この値は、属性の長さが1オクテットであるか、2つであるかを定義しています。そのため、属性フラグの値は、BGP 更新パケットの解析方法に影響を及ぼします。

注:

Path 属性値に対して明示的な指定はありません。

メッセージに含まれている属性の値に応じて、不正な更新メッセージがケース単位で処理されます。重要度の高い BGP 更新メッセージを処理するには、以下の3つの方法があります。

  1. Notification message approach— 不正な形式のメッセージ エラーはローカルでログに記録され、エラー コード更新メッセージがピアの管理に送信され、メッセージ セッションBGPがリセットされます。

    このアプローチは、以下の場合に選択されます。

    • BGP 更新メッセージには、MP リーチ属性または MP ~ 到達不能属性が含まれています。

    • 属性長と属性長フィールドの値が一致していないため、NLRI フィールドまたは BGP update メッセージを正しく解析することはできません。

  2. Treat-as-withdraw approach—不正な更新メッセージ内のすべてのルートは、ステートメントが設定されていない限り非表示ルートとして扱います。この場合、ルートは keep none 破棄されます。このkeep noneステートメントがない場合は、非表示の不正ルートの数が制限で構成されています。これは、ルートが廃棄され、それ以上の不正なルートが非表示になるのを防止するときに使用できます。Junos OS は、不正なルート制限に達したときに、新たに受信した不正ルートを削除します。

  3. Attribute discard approach—更新メッセージの不正な形式の属性は破棄されます。ただし、メッセージは処理されます。破棄する属性がルートの選択やインストールに影響を与える場合は、このアプローチを使用しないことをお勧めします。

    注:

    Update メッセージで複数の属性が指定されている場合は、1つ前の属性のすべてのオカレンスが破棄され、メッセージが処理されます。

BGP 更新メッセージは、以下の属性についてスキャンされ、これらの属性の値に基づいて不適切な形式として扱われます。

  • The origin attribute:当てはめ手に入るアプローチで処理されます。

  • The AS path attribute:当てはめ手に入るアプローチで処理されます。

  • The AS 4 path attribute—属性破棄アプローチで処理されます。属性に属性の種類コードと競合する属性フラグが存在する場合、Junos OS はその属性フラグを正しい値にリセットします。更新メッセージは継続して処理されます。

    Junos OS では、属性フラグの拡張長さビットの値は変更されません。このビットは、属性の長さが1オクテットまたは2オクテットかどうかを定義します。このフラグの値は、BGP パケットの解析方法に影響を及ぼします。Path 属性にはこの値が明示的に指定されているわけではありません。

  • The aggregator attribute—属性破棄アプローチで処理されます。

  • The aggregator 4 attribute—属性破棄アプローチで処理されます。

  • The next-hop attribute:当てはめ手に入るアプローチで処理されます。

  • The multiple exit discriminator attribute:当てはめ手に入るアプローチで処理されます。

  • The local preference attribute:当てはめ手に入るアプローチで処理されます。

  • The atomic aggregate attribute—属性破棄アプローチで処理されます。

  • The community attribute:当てはめ手に入るアプローチで処理されます。

  • The extended community attribute:当てはめ手に入るアプローチで処理されます。

  • The originator attribute:当てはめ手に入るアプローチで処理されます。

  • The cluster attribute:当てはめ手に入るアプローチで処理されます。

  • The PMSI attribute:当てはめ手に入るアプローチで処理されます。

  • The MP reach attribute—通知メッセージ アプローチで処理されます。

  • The MP unreach attribute—通知メッセージ アプローチで処理されます。

  • The attribute set attribute:当てはめ手に入るアプローチで処理されます。

  • The AIGP attribute:当てはめ手に入るアプローチで処理されます。

  • Unknown attribute— BGP フラグが、これがオプションの属性かどうかを示していない場合、この不正な形式の属性は通知メッセージ アプローチによって処理されます。

注:

BGP 更新メッセージに無効な属性が複数含まれている場合は、いずれかの属性によって発生する最も重要なアプローチに従います。

例:BGP 更新メッセージに対するエラー処理の設定

この例では、BGP のエラー処理を設定する方法を示します。

要件

開始する前に:

  • ルーターインターフェイスを構成します。

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

  • BGP を構成します。

  • ルーティングポリシーを構成します。

概要

ルーティングデバイスが不適切な属性を使用して更新メッセージを受信した場合、ルーターはセッションをリセットする必要があります。これは RFC 4271, A 境界ゲートウェイ プロトコル 4(BGP-4)で指定されています。セッションのリセットでは、問題のある属性を持つルートだけでなく、セッションを通して交換されたその他の有効なルートも影響を受けるようになります。さらに、この動作により、オプションの推移性属性がある場合に、潜在的なセキュリティ上の脆弱性が発生する可能性があります。不正な更新メッセージによるルーティングへの影響を最小限に抑えるために、Internet ドラフト draft-ietf-idr-error-handling-01.テキスト BGP UPDATE メッセージ の改訂エラー処理では、BGP 更新メッセージを不正な属性で処理する変更を指定します。この新しいエラー処理によって、確立されたセッションを維持し、有効なルートを交換して、誤った更新メッセージで伝達されたルートを削除することができます。

Topology

図 1は、デバイス R1 には、デバイス R0 との内部 BGP ピアリングセッションと、デバイス R2 との外部 BGP ピアリングセッションがあります。

図 1: BGP のエラー処理トポロジの例BGP のエラー処理トポロジの例

ネットワークが不安定になるような不正な更新メッセージから保護するために、デバイス R1 には以下のような BGP エラー処理が設定されています。

デフォルトでは、いずれかのメッセージ属性の形式に誤りがある場合、BGP メッセージは不正であると見なされます。BGP セッションに参加しているルーターが不正な更新メッセージを受信すると、セッション全体がリセットされます。このbgp-error-toleranceステートメントはこの現象をオーバーライドして、次の BGP エラー処理が有効になるようにします。

  • 致命的なエラーが発生した場合、Junos OS は [エラーコードアップデート] メッセージというタイトルの通知メッセージを送信し、BGP セッションをリセットします。MP_ {UN} リーチ属性のエラーは、致命的と見なされます。1つの BGP 更新に複数の MP_ {UN} の属性が存在することは、致命的なエラーと見なされます。Junos OS は、NLRI フィールドを解析できない場合、または BGP 更新が正しく行われなかった場合に BGP セッションをリセットします。BGP 更新パケットの解析に失敗した場合、属性の長さが属性値の長さと一致していない可能性があります。

  • 一部の致命的でないエラーに関しては、Junos OS は、形式の正しくない BGP update メッセージに含まれるすべてのルートをkeep noneウィズドルートとして処理し、それらを非表示としてインストールします (BGP is の構成に含まれている場合を除く)。Junos OS は、以下の属性のいずれかが関係する場合に、このエラー処理方法を使用します。発信元、AS_PATH、NEXT_HOP、MULTI_EXIT_DISC、LOCAL_PREF、発信者、クラスター、ATTRSET、PMSI、コミュニティー、および拡張コミュニティーです。また、必須の既知のパス属性が存在しない場合、Junos OS は BGP の更新を不正なものと見なします。これらの不正な非表示ルートのメモリ使用を制限するために、Junos OS は、不正な非表示ルートの最大数に達した後、新しい無効であった隠ルートのインストールを停止します。この例では、 malformed-route-limitステートメントを使用して最大数が5に設定されています。デフォルト値は1000です。オプションとして、属性の形式が不正なために非表示にしたルートを無制限に許可することもできます。これを行うにはno-malformed-route-limit 、ステートメントを含めます。

  • その他の致命的でないエラーの場合、Junos OS は不正なパス属性を破棄して、BGP update メッセージの処理を続行します。ルートの選択やインストールに影響を与える可能性のある path 属性に対して、このアプローチを使用することは安全ではありません。Junos OS は、以下の属性のいずれかが関係する場合に、このエラー処理方法を使用します。ATOMIC_AGGREGATE、アグリゲーター、AGGREGATOR4、AS4PATH があります。

不正なパケットのトラブルシューティングを容易にするために、Junos OS は、不正なパス属性コード、フラグ、長さ、ピアとファミリに関する情報、および不適切な BGP 更新からの最初のプレフィックスをリストしたエラーをログに記録します。不正なパケットのロギングが短時間で大量の不正パケットを受信した場合、Junos OS パフォーマンスが低下する可能性があります。パフォーマンスへの影響を抑えるために、Junos OS はアルゴリズムを実装して、不正な更新をログに記録し、間隔に関するロギングを抑制し、概要をログに記録します。ロギング抑制タイマーが期限切れになると、ソフトウェアは、その期間中に受信した、異常な属性の総数をログに記録します。この例では、 malformed-update-log-interval文を使用してタイマーが10秒に設定されています。デフォルト値は300秒 (5 分) です。

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

このセクション../example/bgp-error-handling-example.html#configuration1421__bgp-error-handling-step-by-stepでは、デバイス R1 の手順について説明します。

構成

CLI クイック構成

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

デバイス R0

デバイス R1

デバイス R2

手順

順を追った手順

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

BGP エラー処理を設定するには、以下のようにします。

  1. ルーターのインターフェイスを構成します。

  2. OSPF や IS-IS など、内部ゲートウェイプロトコル (IGP) を設定します。

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

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

  5. EBGP セッションを構成します。

  6. IBGP セッションを構成します。

  7. BGP のエラー許容誤差を有効にします。

  8. ナログ間隔を構成します。

  9. ナ保存する非表示ルートの数の制限を構成します。

結果

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

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

検証

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

BGP の近隣セッションの確認

目的

BGP のエラー許容範囲が有効になっていることを確認し、不適切なパス属性に関連するカウンターを表示します。

アクション

「不正な属性」フィールドは、エラーの許容範囲が有効になっていることを示します。[ログ間隔とルート制限のフィールドには、設定した値が表示されます。

属性カウンターは、EBGP 接続において、デバイス R2 からいくつかの不正な属性を受信したことを示しています。

非表示ルートを確認する

目的

非表示ルートに関する情報を表示し、それらが非表示になっている理由をご確認ください。

アクション

不正な非表示のルートは、「AS path」フィールドで、"悪意のある" 形式としてマークされています。

clear bgp neighbor 10.10.10.2 malformed-routeコマンドを実行することで、非表示ルートを削除できます。

非表示ルートのソースの確認

目的

非表示ルートに関する情報を表示し、それらが非表示になっている理由をご確認ください。

アクション

Junos OS はshow route receive-protocol bgp 10.10.10.2 detail hidden 、コマンドの出力に [AS path] フィールドに「悪意のある形式」を表示します。

clear bgp neighbor 10.10.10.2 malformed-routeコマンドを実行することで、非表示ルートを削除できます。