Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

BGP の TCP アクセス制限

TCP による BGP のセキュリティオプションについて

ルーティングプロトコルの中では、BGP はトランスポートプロトコルとして TCP を使用する場合にユニークです。BGP ピアは、ルーティングデバイス間の手動設定によって確立され、ポート179で TCP セッションを作成します。BGP 対応デバイスは、キープアライブメッセージを定期的に送信して接続を維持します。

時間の経過とともに、BGP はインターネット上で主要なドメイン間ルーティングプロトコルになっています。ただし、安定性とセキュリティの保証は限られています。BGP のセキュリティオプションを設定するには、適切なセキュリティ対策と許容できるコストのバランスを取る必要があります。他の方法よりも優れた方法である方法はありません。各ネットワーク管理者は、使用するネットワークのニーズを満たすセキュリティ対策を設定する必要があります。

BGP がトランスポート プロトコルとして TCP を使用する場合に関連するセキュリティー問題の詳細については、 RFC 4272, BGP Security Vulnerabilities Analysisを参照してください。

例:指定された BGP ピア以外のポートへの TCP アクセスをブロックするようにフィルターを構成する

この例では、指定されたプロトコルおよびピアを除くすべてのリクエスト者から179ポート179へのすべてのTCP接続をブロックする、標準のステートレスファイアウォールフィルタを設定する方法BGP示しています。

要件

この例を設定する前に、デバイス初期化以外に特別な設定は必要ありません。

概要

この例では、指定されたプロトコル ピアを除くすべてのリクエスト者から179をポートしようとするすべてのTCP接続をブロックするステートレスファイアウォールBGPします。

ステートレス ファイアウォール フィルタは、デバイス A およびデバイス B 上の直接接続されたインターフェイスからのすべてのパケットを宛先ポート番号 filter_bgp179 179 に一致します。

Topology

図 1は、この例で使用されているトポロジを示しています。デバイス C がデバイス E への TCP 接続を試行します。デバイス E は接続の試行をブロックします。この例では、デバイス E の構成を示しています。

図 1: BGP ピアセッションを使用する一般的なネットワークBGP ピアセッションを使用する一般的なネットワーク

構成

CLI クイック構成

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

デバイス C

デバイス E

デバイス E の構成

順を追った手順

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

デバイスEをステートレスファイアウォールフィルタで設定し、指定したプロトコルとピアを除くすべてのリクエスト者から179をポート179にしようとするすべてのTCP接続をブロックBGPするには、次の手順に示します。

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

  2. BGP を構成します。

  3. 自律システム番号を設定します。

  4. 指定されたピアからのポート179へのTCP接続の試行を受け入れるフィルター条件BGPします。

  5. 他の送信元からのパケットを拒否する他のフィルター条件を定義します。

  6. ループバックインターフェイスにファイアウォールフィルターを適用します。

結果

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

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

検証

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

フィルタが設定されていることの確認

目的

フィルターがshow firewall filterコマンドの出力に表示されていることを確認します。

アクション

TCP 接続の確認

目的

TCP 接続を検証します。

アクション

動作モードから、デバイス show system connections extensive C およびデバイス E で コマンドを実行します。

デバイス C の出力は、TCP 接続を確立しようとしていることを示しています。デバイスEの出力は、デバイス A およびデバイスBとの接続が確立されている唯一の方法を示しています。

インターフェイスでのトラフィックの監視

目的

コマンドを使用して、TCP 接続を確立するインターフェイス上のトラフィックと、TCP 接続を確立していないインターフェイス上のトラフィック monitor traffic を比較します。

アクション

動作モードから、デバイスEインターフェイス上で、デバイスBおよびデバイスCへの monitor traffic デバイスEインターフェイスで コマンドを実行します。次のサンプル出力では、最初の例では確認( )メッセージ ack が受信されたと確認します。次の例では、メッセージ ack は受信されません。

例:プレフィックスリストに基づいてポートへの TCP アクセスを制限するためのフィルタの設定

この例では、許可された BGP ピアを含むプリフィックスソースのリストを指定することで、ルーティングエンジン宛ての特定の TCP およびインターネット制御メッセージプロトコル (ICMP) トラフィックを制限する標準のステートレスファイアウォールフィルターを構成する方法を示します。

要件

この例を設定する前に、デバイス初期化以外に特別な設定を行う必要はありません。

概要

この例では、指定されたプレフィックスを持つBGPピアを除くすべてのリクエスト者から179をポートしようとするすべてのTCP接続をブロックするステートレスファイアウォールフィルタを作成します。

Topology

、 、 の送信元プレフィックス リストを作成し、許可される送信元プレフィックスのリストをBGP plist_bgp179 します。

ステートレス ファイアウォール フィルタは、送信元プレフィックス リストから宛先ポート番号 filter_bgp179plist_bgp179 179 のすべてのパケットを一致します。

構成

CLI クイック構成

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

フィルターを構成

順を追った手順

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

フィルタを設定するには、次のようにします。

  1. プレフィックス リストを展開し、で定義されたプレフィックス グループで指 bgp179 BGP ピアプレフィックスを含める protocols bgp group <*> neighbor <*>

  2. 指定されたピアを除くすべてのリクエスト者からのTCP接続試行を拒否するBGPします。

  3. その他のフィルタ用語を定義して、すべてのパケットを受け入れます。

  4. ループバックインターフェイスにファイアウォールフィルターを適用します。

結果

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

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

検証

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

ループバックインターフェイスに適用されるファイアウォールフィルターの表示

目的

論理インターフェイスfilter_bgp179で、IPv4 lo0.0入力トラフィックにファイアウォールフィルターが適用されていることを確認します。

アクション

論理インターフェイス show interfaces statistics operational mode に コマンドを使用し lo0.0 、 オプションを含 detail にします。コマンド出力セクションのセクションで、フィールドには、入力方向の論理インターフェイスに適用されたステートレス ファイアウォール フィルターの名前 Protocol inetInput Filters が表示されます。

例:BGP の TCP セグメントサイズの制限

この例は、最大送信単位 (MTU) の検出を使用しているときに TCP セグメントのサイズを制限することで、インターネット制御メッセージプロトコル (ICMP) の脆弱性の問題を回避する方法を示しています。TCP パス上で MTU 検出を使用する方法の1つは、BGP パケットの断片化を回避する方法です。

要件

この例を設定する前に、デバイス初期化以外に特別な設定は必要ありません。

概要

TCP は、2つのピア間のセッション接続確立時に最大セグメントサイズ (MSS) 値をネゴシエートします。ネゴシエートされる MSS の値は主に、通信しているピアが直接接続されているインターフェースの最大送信単位 (MTU) に基づいています。しかし、TCP パケットが取得するパス上のリンク MTU の変動により、ネットワーク内の MSS 値内に存在する一部のパケットは、パケット サイズがリンクの MTU を超えた場合にフラグメント化される可能性があります。

TCP MSS 値を設定するには、 tcp-mss 1 ~ 4096 のセグメントサイズを含む文を含めます。

ルーターが SYN ビットと MSS オプションが設定された TCP パケットを受信し、パケットに指定されている mss オプションがtcp-mssステートメントで指定した mss 値よりも大きい場合、ルーターはパケットの mss 値を、< c により指定された最小値に置き換えます。2 >ステートメント。tcp-mss

構成された MSS の値は、送信者の最大セグメントサイズとして使用されます。送信者が BGP の近隣と通信する際に使用する TCP MSS 値は、送信者が BGP の近隣ノードから受け入れることができる TCP MSS の値と同じであることが前提となります。BGP の近隣からの MSS 値が設定されている MSS 値よりも小さい場合は、BGP の隣接ノードの MSS 値が送信側の最大セグメント・サイズとして使用されます。

この機能は、IPv4 と TCP over IPv6 で TCP を使用してサポートされています。

トポロジー図

図 2は、この例で使用されているトポロジを示しています。

図 2: BGP の TCP 最大セグメントサイズBGP の TCP 最大セグメントサイズ

構成

CLI クイック構成

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

R0

手順

順を追った手順

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

ルーター R0 を構成するには、次のように行います。

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

  2. この例では、内部ゲートウェイプロトコル (IGP) を設定します。 OSPF します。

  3. 1つまたは複数の BGP グループを構成します。

  4. パケットの断片化を防止するように MTU の検出を構成します。

  5. BGP 近隣ノードを構成します。これは、TCP MSS セットがグローバルに設定されているか、特に各隣接ノードのために使用されることになります。

    注:

    TCP MSS 近隣ノード設定は、グループ設定を上書きします。

  6. ローカル自律システムを構成します。

結果

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

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

検証

構成が正常に機能していることを確認するには、以下のコマンドを実行します。

  • show system connections extensive | find <neighbor-address>、ネゴシエートされた TCP MSS 値を確認します。

  • monitor traffic interfaceBGP トラフィックを監視し、設定された TCP MSS 値が TCP SYN パケットの MSS オプションとして使用されていることを確認します。

トラブルシューティング

MTU 検出による MSS 計算

たとえば、2つのルーティングデバイス (R1 と R2) が内部 BGP (IBGP) 接続を備えているとします。どちらのルーターでも、接続されたインターフェイスは IPv4 MTU として4034を持っています。

デバイス R1 の次のパケットキャプチャでは、ネゴシエーションされた MSS は3994です。MSS のshow system connections extensive情報では、2048に設定されています。

ソリューション

これは Junos OS との予想される動作です。MSS の値は、IP または IPv6 および TCP ヘッダーを差し引いた MTU 値と同じです。つまり、MSS の値は通常、MTU (IPv4 の場合) より40バイト未満で、60バイトは MTU (IPv6) よりも小さくなっています。この値はピア間でネゴシエートされます。この例では、4034-40 = 3994 になっています。Junos OS は、この値を 2 KB の倍数に丸めます。値は 3994/2048 * 2048 = 2048 です。そのため、 show system connections出力で同じ MSS 値を表示する必要はありません。

3994 / 2048 = 1.95

1.95 は1に丸められています。

1 * 2048 = 2048