STP(Spanning Tree Protocol)は、イーサネットのネットワークでループを防止するために使用されるプロトコルです。STPは、ネットワークトポロジーを自動的に計算して、ループを含むリンクを無効にし、冗長性を維持することができます。
STPは、以下のような機能を提供します。
- ループの回避:STPは、ネットワーク内の複数のパスでループが発生しないようにします。STPは、各スイッチ間で最適なパスを選択し、他のパスをブロックすることで、スイッチ間でループを防止します。
- フェイルオーバー:STPは、ネットワーク内で障害が発生した場合、自動的にフェイルオーバーを行うことができます。障害が発生した場合、STPは、他のパスを使用してトラフィックをルーティングし、ネットワークの可用性を維持します。
- トラフィックの制御:STPは、スイッチ間のトラフィックを制御し、ネットワークのパフォーマンスを改善することができます。STPは、ブロックされたリンクを使用しないようにすることで、トラフィックを最適化します。
STPは、以下のステップで機能します。
- ルートブリッジの選択:STPは、ネットワーク内のすべてのスイッチの間で通信を制御するルートブリッジを選択します。ルートブリッジは、各スイッチの間で最適なパスを決定するために使用されます。
- ポートの状態の選択:STPは、各スイッチのポートを状態に分類します。ポートは、アクティブ、ブロッキング、およびリスニングの3つの状態に分類されます。アクティブなポートは通信を処理し、ブロックされたポートはトラフィックをブロックします。
- ポートの状態の更新:STPは、ネットワーク内の変更に応じてポートの状態を更新します。STPは、障害が発生した場合、他のパスを使用してトラフィックをルーティングすることで、ネットワークの可用性を維持します。
STPの使用
- ルートブリッジ:STPで通信を制御する中心的なスイッチです。ルートブリッジは、各スイッチの間で最適なパスを決定するために使用されます。
- ブロッキングポート:STPでブロックされたポートです。ブロッキングポートは、トラフィックをブロックし、ループを防止するために使用されます。
- リスニングポート:STPでリスニングされているポートです。リスニングポートは、ポート状態を更新する前に、ネットワークトラフィックを受信して処理するために使用されます。
- アクティブポート:STPでトラフィックを処理するポートです。アクティブポートは、ネットワークトラフィックを処理し、通信を実現します。
STPには、複数のバリエーションがあります。これらには、Rapid Spanning Tree Protocol(RSTP)、Multiple Spanning Tree Protocol(MSTP)、およびPer-VLAN Spanning Tree(PVST)が含まれます。これらのバリエーションは、STPを拡張するために使用され、ネットワークの規模や複雑性に対応するために設計されています。
STPは、ネットワークの可用性を高め、冗長性を維持するために非常に重要なプロトコルです。STPの適切な設定と管理は、ネットワークの安定性と信頼性に重要な役割を果たします。
ブロードキャストストーム
ブロードキャストストームとは、ネットワークにおいて大量のブロードキャストパケットが発生し、ネットワークトラフィックが過剰になる現象を指します。この状態になると、ネットワークが混雑し、通信速度が低下したり、ネットワークがダウンしたりする可能性があります。
ブロードキャストストームは、ネットワーク上のある1つのデバイスが不正なパケットを送信し、それが他のデバイスによってリピートされるという現象によって引き起こされます。これは、ネットワーク上のデバイスがあるパケットを受信すると、そのパケットをすべてのポートにリピートして送信するためです。
ブロードキャストストームは、以下のような原因によって引き起こされることがあります。
- ネットワークループ:ネットワーク上のある場所でループが発生すると、不正なパケットがループ内で永久に転送されることがあります。これは、ブロードキャストストームを引き起こす可能性があります。
- 不正なARPトラフィック:ARPは、IPアドレスとMACアドレスの対応関係を確立するためのプロトコルです。ARPリクエストはブロードキャストで送信され、ARP応答は送信元MACアドレスに送信されます。攻撃者が不正なARPリクエストを送信し、すべてのデバイスにARP応答を送信するように要求すると、ブロードキャストストームが発生する可能性があります。
- 不正なDHCPトラフィック:DHCPは、IPアドレス、サブネットマスク、デフォルトゲートウェイ、DNSサーバーなどのネットワーク情報をクライアントに提供するためのプロトコルです。攻撃者が不正なDHCPサーバを設定し、すべてのデバイスに情報を提供するように要求すると、ブロードキャストストームが発生する可能性があります。
ブロードキャストストームを防止するためには、以下のような対策を講じることが必要です。
- ネットワークループを防止する:スイッチングループが発生しないように、スイッチ間でSTP(Spanning Tree Protocol)を
- 実行することが重要です。STPは、スイッチ間のリンクの状態を監視し、ループを検出し、不必要なポートをブロックすることで、スイッチングループを防止します。
- 不正なARPトラフィックを防止する:不正なARPトラフィックを検出するために、ARP監視機能を有効にすることができます。また、ポートセキュリティ機能を使用して、MACアドレスを検証することもできます。
- 不正なDHCPトラフィックを防止する:DHCP snooping機能を使用して、不正なDHCPトラフィックを検出し、ブロックすることができます。
- VLANを使用する:VLANを使用することで、ブロードキャストトラフィックを制限し、ネットワークのセキュリティとパフォーマンスを向上させることができます。
- ポートの帯域幅を制限する:ポートの帯域幅を制限することで、一定期間内に送信されるパケット数を制限し、ブロードキャストストームを防止することができます。
- ブロードキャストストームは、ネットワークのパフォーマンスを低下させるだけでなく、ネットワークのダウンを引き起こす可能性があるため、早期に検出し、適切な対策を講じることが重要です。
STPの基本動作と設定
STP (Spanning Tree Protocol) は、スイッチングループを防止するために設計されたプロトコルで、以下のような基本動作をします。
- ルートブリッジの選出:スイッチ間でSTPを実行すると、各スイッチはブリッジID (BID) という識別子を持ちます。BIDは、プライオリティ値とMACアドレスから構成され、プライオリティ値が優先されます。STPでは、プライオリティ値が最も低いスイッチがルートブリッジとして選出されます。
- ルートパスの計算:ルートブリッジは、スイッチ間の最短経路を計算し、ルートパスと呼ばれる経路を決定します。ルートパス上にあるポートは、転送可能な状態になります。
- ブロックポートの設定:ルートパス以外のポートは、ブロックポートとして設定され、転送されたデータが失われることなく処理されるようになります。
- リンク障害時の再計算:リンクが障害を起こした場合、STPは再度計算を実行し、新しいルートパスを決定します。このとき、ブロックポートとなっていたポートが転送可能なポートに変わり、逆に転送可能だったポートがブロックポートに変わることもあります。
STPは、スイッチ間のリンクの状態を監視し、不必要なポートをブロックすることで、スイッチングループを防止します。これにより、ネットワークのパフォーマンスが改善され、ネットワークのダウンを引き起こすリスクが低減されます。
- ルートブリッジを設定する:スイッチ間でSTPを実行する場合、ルートブリッジを選出する必要があります。プライオリティ値を設定することで、ルートブリッジを指定することができます。プライオリティ値は、スイッチ間で競合する場合に優先される値で、デフォルト値は32768です。ルートブリッジにしたいスイッチのプライオリティ値を低く設定することで、ルートブリッジに選ばれる可能性が高くなります。
例えば、以下のコマンドでプライオリティ値を設定できます。
Switch(config)# spanning-tree vlan 1 priority 4096
2. ポートを設定する:STPでは、ブロックポートとして設定されたポートは、フレームを受信することができません。転送可能なポートに設定することで、フレームを受信し、転送することができます。以下のようにポートを設定できます。
Switch(config)# interface gigabitethernet0/1
Switch(config-if)# spanning-tree portfast
3. STPを有効にする:STPを有効にするには、以下のコマンドを使用します。
Switch(config)# spanning-tree mode <mode>
modeには、以下のような値を指定することができます。
- pvst:Per-VLAN Spanning Tree (デフォルト)
- rapid-pvst:Rapid Per-VLAN Spanning Tree
- mst:Multiple Spanning Tree
- 不要なポートをブロックする:STPは、不要なポートをブロックすることで、スイッチングループを防止します。ブロックポートの設定には、以下のコマンドを使用します。
Switch(config-if)# spanning-tree port type <type>
typeには、以下のような値を指定することができます。
- edge:ポートがエンドホストに接続されている場合に使用する
- network:ポートが他のスイッチに接続されている場合に使用する
STPを正しく設定することで、スイッチングループを防止し、ネットワークのパフォーマンスと可用性を向上させることができます。
PVST
PVST(Per-VLAN Spanning Tree)は、CiscoのプロプライエタリなSTP実装の1つで、VLANごとにSTPインスタンスを独立して実行することができます。これにより、ネットワーク内の各VLANが異なるトポロジーを持つことができ、STPの収束時間を短縮することができます。
PVSTは、IEEE 802.1D STPの標準に準拠しており、STPメッセージを送信することでループを防止します。PVSTは、ルートブリッジ選出プロセスを実行し、ルートブリッジは、VLANごとに独立して選択されます。
PVSTの設定には、以下の手順が必要です。
- PVSTを有効にする:以下のコマンドを使用して、PVSTを有効にします。
Switch(config)# spanning-tree mode pvst
2. VLANごとにPVSTインスタンスを設定する:以下のコマンドを使用して、VLANごとにPVSTインスタンスを設定します。
Switch(config)# spanning-tree vlan <vlan_id> root primary
このコマンドは、指定されたVLANのルートブリッジをこのスイッチに設定します。同じVLAN内の他のスイッチよりも優先度が高いことを示します。このコマンドは、ルートブリッジを手動で設定する場合にのみ使用されます。ルートブリッジを自動的に選択する場合は、このコマンドを実行する必要はありません。
- 不要なポートをブロックする:以下のコマンドを使用して、不要なポートをブロックします。
Switch(config-if)# spanning-tree port type <type>
typeには、以下のような値を指定することができます。
- edge:ポートがエンドホストに接続されている場合に使用する
- network:ポートが他のスイッチに接続されている場合に使用する
PVSTの設定により、VLANごとにSTPが実行されるため、STPの収束時間が短縮され、ネットワークの可用性が向上します。ただし、プロプライエタリな実装であるため、他のベンダーのネットワーク機器との互換性がない可能性があります。
RSTPの設定と説明
RSTP(Rapid Spanning Tree Protocol)は、STPの進化形であり、STPよりも高速な収束時間を実現します。RSTPは、IEEE 802.1w規格に基づいており、STPと互換性があります。
RSTPは、以下の2つの主要な機能を提供します。
- より高速な収束時間:RSTPは、STPのポート状態遷移を高速化し、スイッチ間のトポロジー変更をより迅速に検出することができます。これにより、ネットワークの可用性が向上します。
- ポートの役割の変更:RSTPは、ポートが役割を変更するための新しい状態を導入し、不要なポートをすぐに無効にすることができます。これにより、ネットワークの可用性が向上し、トポロジー変更の影響を最小限に抑えることができます。
RSTPの設定には、以下の手順が必要です。
- RSTPを有効にする:以下のコマンドを使用して、RSTPを有効にします。
Switch(config)# spanning-tree mode rapid-pvst
2.ルートブリッジを設定する:ルートブリッジは、以下のコマンドを使用して手動で設定することができます。
Switch(config)# spanning-tree vlan <vlan_id> root primary
このコマンドは、指定されたVLANのルートブリッジをこのスイッチに設定します。同じVLAN内の他のスイッチよりも優先度が高いことを示します。このコマンドを実行しない場合、RSTPは自動的にルートブリッジを選択します。
- 不要なポートをブロックする:以下のコマンドを使用して、不要なポートをブロックします。
Switch(config-if)# spanning-tree port type <type>
typeには、以下のような値を指定することができます。
- edge:ポートがエンドホストに接続されている場合に使用する
- network:ポートが他のスイッチに接続されている場合に使用する
RSTPは、STPよりも高速な収束時間を実現するため、ネットワークの可用性を向上させることができます。ただし、RSTPはSTPと互換性があり、他のベンダーのネットワーク機器との互換性もあります。
・上記を軽く理解した上で実機か或いはパケトレを触りつつ検証とかすれば多少理解が深まるかと思います。