このページの内容
スパニング ツリー プロトコルの BPDU 保護
スパニングツリーインスタンスインターフェイスのBPDU保護について
ACXシリーズルーター、MXシリーズルーター、PTXシリーズルーター、EXシリーズスイッチ、QFXシリーズスイッチは、スパニングツリープロトコルをサポートしており、ブリッジされたネットワーク全体のツリートポロジー(スパニングツリー)を作成することで、ネットワーク内のループを防ぎます。すべてのスパニングツリープロトコルは、ブリッジプロトコルデータユニット(BPDU)と呼ばれる特殊なタイプのフレームを使用して相互に通信します。
スパニングツリープロトコル(STP)ファミリーは、レイヤー2ブリッジネットワークで起こりうるループを遮断するように設計されています。ループ防止により、ネットワークを役に立たなくする可能性のある有害なブロードキャストストームを回避できます。ブリッジ上のSTPプロセスは、BPDUを交換して、LANトポロジーの決定、ルートブリッジの決定、一部のポートでの転送の停止などを行います。しかしながら、誤動作をするユーザーアプリケーションやデバイスがSTPプロトコルの動作を妨害し、ネットワークの問題を引き起こす可能性があります。
BPDUブロックは、誤動作をするユーザーアプリケーションやデバイス、または脅威からSTPトポロジーを保護する機能です。BPDUを受信することを想定していないインターフェイスでBPDUガードを有効にする必要があります。
インターフェイスがエッジポートに設定されている場合、転送状態に直接移行します。このようなポートはエンドデバイスに接続されており、BPDUを受信することは想定されていません。そのため、ループを回避するには、bpdu-block-on-edgeを有効にしてエッジポートを保護する必要があります。
STPをサポートするルーターとスイッチでは、BPDU保護を設定して、予期すべきではないインターフェイス(例えば、他のブリッジが存在しないネットワークエッジ上のLANインターフェイス)で受信したBPDUを無視することができます。保護されたインターフェイスでBPDUを受信すると、インターフェイスは無効になり、フレームの転送が停止されます。デフォルトでは、すべてのBPDUがすべてのインターフェイスで受け入れられ、処理されます。
BPDU保護は、いくつかの方法で実現できます。デフォルトでは、bpdu-blockがインターフェイスで有効になっている場合、BPDUを受信すると、インターフェイスは無効になり、すべてのトラフィック転送がインターフェイス上で停止します。ただし、インターフェイスを無効にしたくなく、そのインターフェイスをSTP計算に参加させたくない場合は、アクションドロップを設定することができます。アクションドロップを設定すると、インターフェイスは稼働したままになり、トラフィックは流れ続けます。ただし、BPDUは削除されます。
エッジポートはアクションドロップをサポートしていません。BPDU-block-on-edgeは、エッジポートがBPDUを受信した場合、インターフェイスを無効にします。インターフェイスを復旧するには、エラーをクリアする必要があります。
BPDU保護は、以下のカプセル化タイプのインターフェイスに設定できます。
-
イーサネットブリッジ
-
イーサネットVPLS
-
拡張vlanブリッジ
-
vlan-vpls
-
vlanブリッジ
-
拡張vlan-vpls
BPDU 保護は、個々のインターフェイスまたはブリッジのすべてのエッジ ポートに設定できます。
set protocols (mstp|rstp|vstp)階層下のbpdu-block-on-edgeコマンドを使用して、エッジポートとして設定されているインターフェイスでBPDU保護を有効にします。ポートをエッジポートとして設定していない場合でも、set protocols layer2-control階層下のbpdu-blockコマンドを使用して、インターフェイス上でBPDU保護を設定できます。また、bpdu-blockコマンドを使用して、スパニングツリーに設定されたインターフェイスでBPDU保護を設定することもできます。
関連項目
STP、RSTPおよびMSTPのBPDU保護について
ネットワークは、異なる目標を達成するために複数のプロトコルを同時に使用することが多く、場合によっては、これらのプロトコルが互いに競合することもあります。そのようなケースの 1 つは、ネットワーク上でスパニングツリープロトコルがアクティブな場合で、ブリッジプロトコルデータユニット(BPDU)と呼ばれる特殊なタイプのスイッチングフレームが、PC などの他のデバイスで生成された BPDU と競合する可能性があります。さまざまな種類のBPDUには互換性がありませんが、BPDUを使用してネットワーク停止を引き起こす他のデバイスによって認識することはできます。BPDUを認識するデバイスは、互換性のないBPDUを拾わないように保護する必要があります。
さまざまな種類のBPDU
スパニングツリープロトコル(STP)、ラピッドスパニングツリープロトコル(RSTP)、VLANスパニングツリープロトコル(VSTP)、マルチプルスパニングツリープロトコル(MSTP)などのスパニングツリープロトコルは、独自のBPDUを生成します。これらのピアSTPアプリケーションは、BPDUを使用して通信し、最終的にBPDUの交換によって、どのインターフェイスがトラフィックをブロックし、どのインターフェイスがルートポートになるかが決まります。ルートポートと指定ポートはトラフィックを転送します。代替ポートとバックアップ ポートがトラフィックをブロックします。
個々のスパニングツリーインスタンスインターフェイスのBPDU保護の設定
1つ以上のスパニングツリーインスタンスインターフェイスにBPDU保護を設定するには、 bpdu-block ステートメントを含めます。
bpdu-block { interface interface-name; disable-timeout seconds; }
オプションのdisable-timeout seconds文も含める場合、間隔が0でない限り、指定された時間間隔が経過すると、保護されたインターフェイスが自動的にクリアされます。
ブリッジ間の情報交換に使用される BPDU について
レイヤー 2 ブリッジ環境では、スパニング ツリー プロトコルは、ブリッジ プロトコル データ ユニット(BPDU)と呼ばれるデータ フレームを使用して、ブリッジ間で情報を交換します。
ピアシステム上のスパニングツリープロトコルは、ポートロール、ブリッジID、ルートパスコストに関する情報を含むBPDUを交換します。各ルーターまたはスイッチで、スパニングツリープロトコルはこの情報を使用してルートブリッジを選択し、各スイッチのルートポートを識別し、各物理LANセグメントの指定ポートを識別し、特定の冗長リンクをプルーニングしてループフリーのツリートポロジーを作成します。その結果、ツリー トポロジーにより、任意の 2 つのエンド ステーション間に単一のアクティブなレイヤー 2 データ パスが提供されます。
スパニングツリープロトコルの議論では、 bridge と switch という用語はしばしば同じ意味で使用されます。
BPDUの送信は、MXシリーズ5Gユニバーサルルーティングプラットフォーム上のレイヤー2制御プロトコルプロセス(l2cpd)によって制御されます。
l2cpd プロセスに代わる定期パケットの送信は、デフォルトではパケット転送エンジンで実行するように設定されている定期パケット管理(PPM)によって実行されます。パケット転送エンジンのppmdプロセスは、l2cpdが利用できない場合でもBPDUが送信されるようにし、統合型ISSU(統合型インサービスソフトウェアアップグレード)中もリモート隣接関係の有効性を維持します。ただし、分散 PPM(ppmd)プロセスをパケット転送エンジンではなくルーティングエンジンで実行する場合は、パケット転送エンジンで ppmd プロセスを無効にすることができます。
冗長ルーティングエンジン(同じルーターにインストールされている2つのルーティングエンジン)を搭載したルーターとスイッチでは、ノンストップブリッジングを設定できます。ノンストップブリッジングにより、ルーターは、レイヤー2制御プロトコル(L2CP)情報を失うことなく、プライマリルーティングエンジンからバックアップルーティングエンジンに切り替えることができます。ノンストップブリッジングは、グレースフルルーティングエンジンスイッチオーバー(GRES)と同じインフラストラクチャを使用して、インターフェイスとカーネル情報を保持します。ただし、ノンストップブリッジングは、バックアップルーティングエンジンでl2cpdプロセスを実行することで、L2CP情報も保存します。
ノンストップブリッジングを使用するには、まずGRESを有効にする必要があります。
ノンストップブリッジングは、以下のレイヤー2制御プロトコルでサポートされています。
-
スパニングツリープロトコル(STP)
-
ラピッドスパニングツリープロトコル(RSTP)
-
マルチプルスパニングツリープロトコル(MSTP)
EVPN-VXLANのBPDU保護について
EVPN-VXLANデータセンターファブリックには、スプリットホライズンや指定フォワーダー、非指定フォワーダー選出など、イーサネットループ防止メカニズムが多数組み込まれています。新しいIP EVPNファブリックが導入される一部の既存のデータセンター環境では、xSTPの計算ミスによるネットワーク停止を回避するために、リーフとサーバーのインターフェイスでBPDU保護を設定する必要がある場合があります。サーバーとリーフインターフェイス間のケーブル配線が正しくないと、または2つ以上のESI-LAGインターフェイス間のバックドアレイヤー2リンクが誤って計算され、イーサネットループが発生する可能性があります。BPDU 保護がなければ、BPDU が認識されず、VXLAN インターフェイス上で不明なレイヤー 2 パケットとしてフラッディングされる可能性があります。BPDU保護では、EVPN-VXLAN環境のエッジポートでBPDUを受信すると、エッジポートが無効になり、すべてのトラフィックの転送が停止されます。また、BPDU保護を設定して、BPDUトラフィックをドロップしますが、スパニングツリープロトコルを設定することなく、その他のすべてのトラフィックをインターフェイス上で転送させることもできます。
ポートシャットダウンモードでのBPDU保護のためのインターフェイスの設定
スイッチのエッジインターフェイスにBPDU保護を設定するには:
スイッチがエンドデバイスに接続されていることを確認します。
BPDUドロップモードでのBPDU保護のためのインターフェイスの設定
特定のアクセススイッチでは、互換性のないBPDUパケットに遭遇してもスイッチ上のインターフェイスがシャットダウンされないようにしたい場合があります。代わりに、互換性のないBPDUパケットのみをドロップし、残りのトラフィックを通過させます。このようなインターフェイスにはスパニングツリープロトコルが設定されていない必要があります。これにより、インターフェイスを通過するパケットがSTPの設定ミスや結果としてのネットワーク停止を引き起こすことはありません。
インターフェイスの BPDU 保護を設定して、互換性のない BPDU パケットのみをドロップし、残りのトラフィックの通過を許可し、インターフェイスのステータスをアップとして維持するには:
BPDU保護を設定しているスイッチがピアデバイスに接続されていることを確認します。
エッジ インターフェイスの BPDU 保護の設定
スパニングツリートポロジーでは、スイッチがアクセススイッチの場合、そのスイッチのインターフェイスは、他のスイッチに接続されていないPC、サーバー、ルーター、ハブなどのエンドデバイスに接続されます。これらのインターフェイスはエンドデバイスに直接接続するため、エッジインターフェイスとして設定します。
エッジ インターフェイスとして設定されたインターフェイスは、ネットワーク ループを作成できないため、すぐに転送状態に移行する可能性があります。スイッチは、エンド ステーションからの通信がないことを認識して、エッジ ポートを検出します。エッジポートはエンドデバイスに接続されているため、ループを回避するためにエッジポートにBPDU保護を設定することが不可欠です。エッジインターフェイスでBPDU保護が有効になっている場合、ae BPDUに遭遇するとインターフェイスがシャットダウンし、トラフィックがインターフェイスを通過できなくなります。 clear error bpdu interface interface-name 動作モードコマンドを発行することで、インターフェイスを再度有効にできます。 clear error bpdu interface interface-name コマンドはインターフェイスを再有効化するだけですが、BPDU設定を明示的に削除しない限り、インターフェイスのBPDU設定は存在し続けます。
スイッチのエッジインターフェイスにBPDU保護を設定するには:
スイッチがエンドデバイスに接続されていることを確認します。
例:インターフェイス上のBPDUを600秒間ブロックする
次の例では、集合型イーサネットを使用したフルブリッジ構成で使用した場合、インターフェイス ae0 のBPDUを10分間(600秒)ブロックしてから、インターフェイスを再度有効にします。
[edit protocols layer2-control]
bpdu-block {
interface ae0;
disable-timeout 600;
}
関連項目
例:インターフェイスでの BPDU 保護の設定
この例では、拡張レイヤー 2 ソフトウェア(ELS)設定スタイルをサポートしていない EXシリーズ スイッチに Junos OS を使用します。ELSの詳細については、 拡張レイヤー2ソフトウェアCLIの使用を参照してください。
BPDU 保護が有効になると、互換性のない BPDU が発生するとインターフェイスがシャットダウンするか BPDU パケットをドロップするため、スパニングツリープロトコルによって生成された BPDU がスイッチに到達できなくなります。インターフェイスがBPDUパケットをドロップするように設定されている場合、互換性のないBPDUを除くすべてのトラフィックがインターフェイスを通過できます。
BPDUドロップ機能は、スパニングツリープロトコルが設定されていないインターフェイスでのみ指定できます。
この例では、2台のPCに接続するSTPスイッチのダウンストリームインターフェイスでBPDU保護を設定します。
要件
この例では、以下のハードウェアおよびソフトウェアコンポーネントを使用しています。
-
RSTPトポロジー内の1つのEXシリーズスイッチ
-
スパニングツリートポロジーにない1台のEXシリーズスイッチ
-
EXシリーズスイッチ向け Junos OSリリース9.1以降
スイッチ 2 のインターフェイスに BPDU 保護を設定する前に、以下が完了していることを確認してください。
-
スイッチ1でRSTPが動作していることを確認しました。
-
スイッチ 2 で RSTP を無効または有効化しています(実装する予定の設定によって異なります)。
BPDUシャットダウン機能を有効にする場合は、オプションでインターフェイス上のスパニングツリープロトコルを無効にできます。
デフォルトでは、すべてのEXシリーズスイッチでRSTPが有効になっています。
概要とトポロジー
この例では、インターフェイスでBPDU保護を設定する方法について説明します。
図1 は、この例のトポロジーを示しています。スイッチ 1 とスイッチ 2 はトランク インターフェイスを介して接続されています。スイッチ1はRSTP用に設定されていますが、スイッチ2には最初のシナリオでスパニングツリープロトコルが設定されていますが、2番目のシナリオではスパニングツリープロトコルが設定されていません。
最初のシナリオでは、この例では、スイッチ 2 インターフェイス ge-0/0/5.0 および ge-0/0/6.0 インターフェイスで、デフォルトのスパニングツリープロトコル(RSTP)が無効になっていない場合に、これらのインターフェイスでダウンストリーム BPDU 保護を設定します。BPDU 保護が有効な場合、 shutdown ステートメントはデフォルトで有効になり、ラップトップによって生成された BPDU がスイッチ 2 にアクセスしようとすると、スイッチ インターフェイスがシャットダウンします。
2つ目のシナリオでは、この例では、スイッチ2インターフェイス ge-0/0/5.0 および ge-0/0/6.0 インターフェイスにスパニングツリープロトコルが設定されていない場合に、これらのインターフェイスでダウンストリームBPDU保護を設定します。 drop ステートメントで BPDU 保護が有効になっている場合、スイッチ インターフェイスは BPDU のみをドロップしますが、残りのトラフィックを通過させ、ラップトップによって生成された BPDU がスイッチ 2 にアクセスしようとすると、up としてステータスが維持されます。
スパニングツリーのあるスイッチに接続されたスパニングツリーのないインターフェイスでBPDU保護を設定する場合は、 すべての インターフェイスでBPDU保護を設定しないように注意してください。そうすると、スパニングツリーを持つスイッチからBPDUを受信するはずだったスイッチインターフェイス(トランクインターフェイスなど)でBPDUが受信できなくなる可能性があります。
トポロジー
表 1 は、BPDU 保護用に設定されるコンポーネントを示しています。
|
プロパティ |
設定 |
|---|---|
|
スイッチ1(ディストリビューションレイヤー) |
スイッチ1は、トランクインターフェイスを介してスイッチ2に接続されています。スイッチ1はRSTP用に設定されています。 |
|
スイッチ2(アクセスレイヤー) |
スイッチ2には、ラップトップに接続された2つのダウンストリームアクセスポートがあります。
|
設定
インターフェイスにBPDU保護を設定するには:
手順
CLIクイックコンフィグレーション
これは、デフォルトのBPDUブロック(アクション: shutdown)の設定を説明する最初のシナリオです。スイッチ 2 で BPDU 保護を迅速に設定するには、以下のコマンドをコピーしてスイッチの端末ウィンドウに貼り付けます。
[edit] user@switch# set protocols layer2-control bpdu-block interface ge-0/0/5 [edit] user@switch# set protocols layer2-control bpdu-block interface ge-0/0/6
ステップバイステップの手順
shutdownステートメントのBPDU保護を設定するには:
-
スイッチ2のダウンストリームインターフェイスge-0/0/5でBPDUブロック(アクション:
shutdown)を設定します。[edit protocols] user@switch# set layer2-control bpdu-block interface ge-0/0/5
-
スイッチ2のダウンストリームインターフェイスge-0/0/6でBPDUブロック(アクション:
shutdown)を設定します。[edit protocols] user@switch# set layer2-control bpdu-block interface ge-0/0/6
結果
設定の結果を確認します。
user@switch> show protocols layer2-control
bpdu-block {
interface ge-0/0/5;
interface ge-0/0/6;
}
手順
CLIクイックコンフィグレーション
これは、 drop ステートメントの設定を説明する 2 番目のシナリオです。 drop ステートメントのスイッチ 2 の BPDU 保護を迅速に構成するには、以下のコマンドをコピーしてスイッチの端末ウィンドウに貼り付けます。
[edit] user@switch# set protocols layer2-control bpdu-block interface ge-0/0/5 drop user@switch# set protocols layer2-control bpdu-block interface ge-0/0/6 drop
インターフェイスでxSTPが有効になっている場合、BPDUドロップアクションを設定する前に、xSTPを無効にする必要があります。 delete protocols rstp、 set protocols rstp disable、または set protocols rstp interface all disable コマンドを使用することで、RSTPをグローバルに無効にすることができます。
ステップバイステップの手順
dropステートメントのBPDU保護を設定するには:
-
スイッチ 2 のダウンストリーム インターフェイス ge-0/0/5 で BPDU
dropステートメントを設定します。[edit protocols layer2-control] user@switch# set bpdu-block interface ge-0/0/50 drop
-
スイッチ2のダウンストリームインターフェイスge-0/0/6でBPDU
dropステートメントを設定します。[edit protocols layer2-control] user@switch# set bpdu-block interface ge-0/0/6 drop
結果
設定の結果を確認します。
user@switch> show configuration protocols layer2-control
bpdu-block {
interface ge-0/0/5;
interface ge-0/0/6;
}