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アップデートパケットの解析方法に影響します。

注:

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

不正な更新メッセージは、メッセージに含まれる属性の値に応じて、ケースバイケースで処理されます。不正な形式の BGP アップデート メッセージの処理方法は 3 種類あり、重大度の降順に記載されています。

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

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

    • BGP アップデート メッセージには、MP 到達属性または MP 到達解除属性が含まれています。

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

  2. - 不正な形式の更新メッセージ内のすべてのルートは、 ステートメントが設定されていない限り 、非表示ルートとして扱われ、その場合、ルートは破棄されます。Treat-as-withdraw approachkeep 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 パケットの解析方法に影響します。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アップデートメッセージに複数の不正な属性が含まれている場合、属性の1つによってトリガーされる最も重大なアプローチが続きます。

例:BGP アップデート メッセージのエラー処理の設定

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

要件

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

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

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

  • BGP を設定します。

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

概要

ルーティング・デバイスが不正な属性を持つ更新メッセージを受信すると、ルーターはセッションをリセットする必要があります。これは、RFC 4271、 A Border Gateway Protocol 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 エラー処理が有効になります。bgp-error-tolerance

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

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

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

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

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

セクション#d202e114__d202e305は、デバイス R1 の手順を説明します。

設定

CLIクイック構成

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

デバイスR0

デバイスR1

デバイスR2

手順

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

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

BGP エラー処理を設定するには:

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

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

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

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

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

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

  7. BGPエラートレランスを有効にします。

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

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

結果

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

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

検証

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

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

目的

BGPエラートレランスが有効になっていることを確認し、不正な形式のパス属性に関連するカウンターを表示します。

アクション
意味

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

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

非表示ルートの確認

目的

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

アクション
意味

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

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

非表示ルートのソースの検証

目的

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

アクション
意味

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

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