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 group group-name neighbor address]階層レベルで[edit protocols bgp]設定[edit protocols bgp group group-name]します。

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

注:

パス属性の属性フラグ値の明示的な仕様はありません。

異常な更新メッセージは、メッセージに含まれる属性の値に応じて、ケースごとに処理されます。異常な BGP 更新メッセージを処理する方法は 3 種類あり、重大度は減少しています。

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

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

    • BGP 更新メッセージには、MP reach 属性または MP unreach 属性が含まれています。

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

  2. Treat-as-withdraw approach—不正な形式の更新メッセージ内のすべてのルートは、ステートメントが設定されていない限り keep none 、非表示ルートとして扱われ、その場合はルートが破棄されます。ステートメントがない keep none 場合は、非表示の異常ルートの数に制限が設定され、これを超えるとルートが破棄され、不正なルートが非表示にならないようにします。Junos OS は、異常なルート制限に達すると、新しく受信した不正なルートを削除します。

  3. Attribute discard approach更新メッセージ内の異常な属性は破棄されます。ただし、メッセージは処理されます。破棄する属性がルート選択またはインストールに影響する可能性がある場合は、このアプローチを使用することはお勧めできません。

    注:

    更新メッセージに属性が複数回表示された場合、最初以外の属性のすべてのオカレンスが破棄され、メッセージが処理されます。

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

  • The origin attribute—取り消し扱いアプローチで処理されます。

  • The AS path attribute—取り消し扱いアプローチで処理されます。

  • The AS 4 path attribute属性破棄アプローチで処理されます。属性タイプ コードと競合する属性フラグがある属性がある場合、Junos OS は属性フラグを正しい値にリセットします。更新メッセージは引き続き処理されます。

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

  • 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(Interior Gateway Protocol)を設定します。

  • BGP を設定します。

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

概要

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

トポロジ

図 1、デバイスR1は、デバイスR0との内部BGPピアリングセッション、およびデバイスR2との外部BGPピアリングセッションを持っています。

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

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

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

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

  • 一部の非エラーの場合、Junos OS は、不正な BGP 更新メッセージに含まれるすべてのルートを取り消されたルートとして扱い、BGP にステートメントが含まれていない場合 keep none は非表示としてインストールします。Junos OS では、以下のいずれかの属性が関係する場合に、このエラー処理アプローチを使用します。ORIGIN、AS_PATH、NEXT_HOP、MULTI_EXIT_DISC、LOCAL_PREF、ORIGINATOR、CLUSTER、ATTRSET、PMSI、コミュニティ、拡張コミュニティ。さらに、必須の既知のパス属性のいずれかが欠落している場合、Junos OS は BGP 更新を不正な形式として扱います。これらの不正な形式の非表示ルートのメモリ使用量を制限するために、Junos OS は、不正な形式の非表示ルートの最大数に達した後、新しい異常な非表示ルートのインストールを停止します。この例では、ステートメントを使用して malformed-route-limit 最大数が 5 に設定されています。デフォルト値は 1000 です。必要に応じて、異常な属性によって非表示になるルートを無制限に許可できます。これを行うには、ステートメントを no-malformed-route-limit 含めます。

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

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

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

このセクション #d100e116__d100e307 では、デバイス R1 の手順について説明します。

設定

CLI クイック設定

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

デバイス R0

デバイスR1

デバイスR2

手順

手順

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

BGP エラー処理を設定するには、次の手順にしたがっています。

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

  2. OSPF や IS-IS などの IGP(Interior Gateway Protocol)を設定します。

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

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

  5. EBGPセッションを設定します。

  6. IBGP セッションを設定します。

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

  8. (オプション)ログ間隔を設定します。

  9. (オプション)保存する非表示ルート数の制限を設定します。

結果

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

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

検証

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

BGP ネイバー セッションの確認

目的

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

対処
意味

[異常な属性] フィールドは、エラー許容度が有効になっていることを示しています。ログ間隔およびルート制限フィールドには、設定済みの値が表示されます。

属性カウンターは、EBGP 接続で、複数の異常な属性がデバイス R2 から受信したことを示しています。

非表示ルートのチェック

目的

非表示ルートに関する情報を表示し、非表示になっている理由を確認します。

対処
意味

不正な形式の非表示ルートは、ASパスフィールドに不正なAttrとしてマークされます。

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

非表示ルートの送信元の検証

目的

非表示ルートに関する情報を表示し、非表示になっている理由を確認します。

対処
意味

Junos OSは、コマンドの出力のASパスフィールドに、異常なAttrを show route receive-protocol bgp 10.10.10.2 detail hidden 表示します。

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