クイックダウンロード:
スイッチングループは、ネットワークをダウンさせる最も速い方法の一つです。STPだけでは、必ずしもそれを防ぐのに十分ではありません。
-
たった1本のケーブルの接続ミスが、たとえエンタープライズグレードのハードウェアであっても、数秒以内にすべてのスイッチポートを飽和させるブロードキャストストームを引き起こす可能性がある。
-
STPは冗長な経路をブロックすることでループを防ぎますが、設定ミスやSTPタイマーの変更によって予期せずループが再形成される可能性があります。
-
スイッチのCPU使用率、ポートエラー率、およびSTPトポロジーの変化を監視することで、潜在的なループ状態を早期に警告できます。
-
すべてのスイッチでSTP、ポートファスト、BPDUガードを設定し、未使用のアクセスポートを無効化して定期的に監査を行い、スイッチのCPU、インターフェースエラー、STPトポロジーの変更をベースラインとして継続的に監視することで、発生しつつあるループを迅速に検出して封じ込めます。
スイッチングループとは、ネットワークスイッチが相互に接続されている際に、ネットワークトラフィックが送信元から宛先まで到達するために必要なホップを経由せず、無限にループしてしまう状態を指します。
スイッチングループは、ネットワーク管理者にとって悩みの種です。ネットワーク全体をダウンさせる可能性があり、問題の原因を特定するのも困難です。幸いなことに、スイッチングループを防止するためのプロトコルが存在します。この記事では、スイッチングループの原因、発生源の特定方法、および発生を防止する方法について説明します。
スイッチング入門
スイッチングループとは何か、そしてそれがどのように発生するのかを理解するには、ネットワークスイッチングの基本的な知識が必要です。
ネットワークスイッチは、ローカルエリアネットワーク(LAN)の基盤となる機器です。スイッチはOSI参照モデルのレイヤ2で動作し、MACアドレスに基づいてトラフィックの転送を行います。MACアドレスは、デバイス上のネットワークインターフェースにエンコードされた固有のハードウェアアドレスです。16進数形式で記述され、値は00:00:00:00:00:00からFF:FF:FF:FF:FF:FFまでの範囲です。
MACアドレスは基本的に人名のようなものです。めったに変更されることはなく、個々のデバイスを識別するために使用できます。スイッチやネットワーク機器には、ネットワーク上のすべてのデバイスを識別するために使用される特別な予約済みMACアドレスもあります。現実世界で例えるなら、一人ひとりの名前を呼ぶのではなく、グループに向かって「みんな」と言うようなものです。ネットワークでは、「みんな」はブロードキャストMACアドレスであり、FF:FF:FF:FF:FF:FFです。
スイッチは、接続されているすべてのデバイスのMACアドレスを学習し、送信元のデバイスから受信したトラフィックを、宛先MACアドレスに基づいて、そのトラフィックが宛先となっているデバイスにのみ転送することで機能します。これにより、不要なトラフィックやブロードキャストが最小限に抑えられ、ネットワーク帯域幅が節約され、パフォーマンスが向上します。
いくつか特殊なケースがあります。スイッチがブロードキャストまたはマルチキャストMACアドレス宛てのトラフィックを受信すると、受信したポートを除くすべてのポートからブロードキャストアドレス宛てにトラフィックをフラッディングします。また、スイッチが認識していないMACアドレス宛てのトラフィックを受信すると、受信したポートを除くすべてのポートからブロードキャストアドレス宛てにトラフィックをフラッディングします。
ループが発生する仕組み
通常の動作時、スイッチはトラフィックをある宛先から別の宛先へとホップごとに転送します。しかし、スイッチがループを形成するような接続方法で接続されている場合、ネットワークトラフィックはこのループに閉じ込められ、宛先に到達できなくなる可能性があります。
さらに、スイッチはデフォルトでブロードキャストフレームとマルチキャストフレームをすべてのポートから転送する性質上、無限ループするブロードキャストストームが発生する可能性があります。その結果、ループ内のトラフィック量が増大し続け、ループ経路上のすべてのスイッチの処理能力を超えてしまうため、ネットワーク障害が発生します。
ループは、誰かが誤ってイーサネットケーブルを同じスイッチの2つのポートに物理的に接続してしまうことで発生する可能性があります(適切なケーブル管理が役立ちます!)。また、冗長性を確保するためにスイッチを2つのアップリンク経由で別のスイッチに意図的に接続した場合でも、ループを論理的に防止する適切な設定が行われていないと、ループが発生する可能性があります。
図1は、スイッチAとスイッチB間のループの例を示しています。通常の状態では、ループが存在しないため、ブロードキャストはループ状に流れません。しかし、スイッチAとスイッチB間にループが発生すると、ブロードキャストトラフィックが循環・複製を繰り返し、最終的にスイッチが過負荷状態になるため、ブロードキャストストームが発生します。

スイッチングループのトラブルシューティング
スイッチングループを防止するためのプロトコルは存在しますが、必ずしも実装されているとは限りません。実装されている場合でも、正しく実装されていないことがあります。そのため、ループの発生源を手動で追跡する方法を知っておくことは、管理者にとって重要なスキルです。下の図は、スイッチCとスイッチDの間にスイッチングループが発生したネットワークの基本的な例を示しています。この例では、2つの接続があります。

スイッチングループが発生している疑いがあり、ネットワークの一部または全部がダウンしている場合は、以下の手順に従ってトラブルシューティングを行い、原因を特定してください。
- DNSの問題やハードウェアの故障など、その他の障害発生原因を除外してください。
- ネットワークトポロジーに注意してください。単一のL2スイッチ、コアスイッチに接続された複数のL2スイッチなど。
- ネットワーク接続に影響を与えているループが発生しているネットワークスイッチング階層の最上位、例えば上の図のコアスイッチから調査を開始します。次に、ループの影響を受けている階層の最上位スイッチとして特定したスイッチにノートパソコンを接続します。
- コマンド ping (IP アドレス) -t を使用して、ネットワーク上のデバイスへの継続的な ping セッションを開始します。
- pingセッション時間に注意してください。ループが発生した場合、ブロードキャストストームがネットワークを圧倒するため、ping時間は劇的に増加するはずです。
- pingセッションを継続しながら、コアスイッチからアップリンクされている各スイッチを、またはアクセスレイヤースイッチから開始する場合は、アクセスレイヤースイッチから各デバイスを取り外してください。
- 各アップリンクが切断された後、30秒間pingセッションを監視し、時間が短縮され、通常のネットワーク接続が回復するかどうかを確認してください。
- ネットワーク接続が正常に戻れば、ループの原因を特定できたことになります。図2の場合、スイッチCへのアップリンクを切断すると、ループは解消され、ネットワーク接続が正常に戻ります。
- ループの原因を特定したら、それを切断してループを解消してください。


スイッチングループの防止
「予防は治療に勝る」という諺があるように、スイッチングループの原因を特定する方法を知っておくことは良いスキルですが、理想的には、ネットワーク管理者はスイッチングループの発生を防ぐプロトコルやテクノロジーを活用したいと考えるでしょう。
スパニングツリープロトコル
スイッチングループを防止するための標準的な手法は、スパニングツリープロトコル(STP)です。STPは、ブリッジプロトコルデータユニット(BPDU)と呼ばれる特殊なフレームを介して情報を交換するスイッチのグループを作成することで、ループのないトポロジーを構築・維持します。
ループが検出されると、スイッチはBPDUを介して相互に情報を共有し、最小コストパスメトリックに基づいて、ループに関与しているポートを選択してブロッキング状態にします。これにより、ネットワークをループフリーに保つために必要なリンクが論理的に無効化されます。
STPには、VLANごとのスパニングツリー(PVST)や高速PVSTなど、いくつかの異なるモードがあります。PVSTは通常、指定されたVLAN上でスパニングツリーを実行するデフォルト設定です。高速PVSTは基本的にPVSTと同じですが、収束時間が短縮されています。これらのモードの主な目的は同じで、スイッチングループを防止することです。
スイッチでSTPを設定する方法の例を以下に示します。
- スイッチのCLIから、イネーブルモードに入ります。
- 設定モードに入ります。
- スイッチ上でスパニングツリーをグローバルに有効にします。
ベストプラクティス
設定が完了すれば、スイッチはネットワークをループから保護します。ただし、最適な結果を得るためには、いくつかの追加のベストプラクティスに従うことをお勧めします。
まず、すべてのスイッチでSTPが有効になっていることを確認してください。そうすることで、ネットワーク全体でループが発生するのを防ぐことができます。
次に、STPを設定します。 ポートファストモード BPDUを送信すべきでないエンドポイント(ワークステーションやサーバーなど、基本的に他のスイッチ以外の機器)に接続するインターフェースでは、この設定が有効になります。これにより、ワークステーションに接続されたポートは、他のスイッチにアップリンクされていないと想定できるため、より早くアクティブになります。これは、コンピュータの再起動時などに発生するネットワーク接続の遅延を軽減するのに役立ちます。
ポートファストモードの設定方法は以下のとおりです。
- ポートファストを有効にするインターフェースを選択してください。
- 以下のコマンドでポートファストを有効にしてください。
さらに、スパニングツリーポートファストとして設定されているインターフェースには、BPDUガードを設定することをお勧めします。BPDUガードは、おそらく不正なスイッチからアップリンクされたBPDUフレームを検出し、ポートを無効にします。
最後に、使用されていないポートをシャットダウンし、新しいデバイスを接続するには管理者による操作が必要になるようにします。これにより、意図的または偶発的にループや不正なデバイスが接続されるのを防ぐことができます。
結論
スイッチングループはネットワーク全体をダウンさせる可能性があります。ネットワーク管理者にとって、スイッチングループが発生する仕組みを理解することは重要です。なぜなら、ループを理解することで、ネットワークトラフィックの流れをより深く把握し、ループのトラブルシューティングを行い、ストレスを回避できるからです。
ループの発生を防ぐことは常に目標とすべきです。スイッチ上でスパニングツリープロトコルを適切に設定することは、ループの発生を未然に防ぎ、ネットワーク全体の耐障害性を向上させるための標準的な手段です。
次のループの前に、レイヤー2のトポロジー情報を取得します。
LogicMonitorは、スイッチポートの状態、STPの状態、トポロジーの変化、帯域幅の使用状況を監視するため、ネットワークがダウンする前にループ状態を検出して対応できます。
よくあるご質問
スイッチングループとは何ですか?
レイヤ2ネットワークにおいて、2つのスイッチ間に複数のアクティブなパスが存在し、ループ防止メカニズムが実装されていない場合、スイッチングループが発生します。イーサネットフレームにはTTLメカニズムがなく、無限に循環するため、指数関数的に増加するブロードキャストストームが発生し、ネットワークがクラッシュします。
スパニングツリープロトコル(STP)とは何ですか?また、どのようにループを防ぐのですか?
STPは、冗長なレイヤ2パスを論理的にブロックすることで、スイッチングループを防止します。STPはルートブリッジを選出し、各スイッチの最短パスを計算します。ループが発生する可能性のあるポートはブロッキング状態になります。RSTPは、収束時間が短縮された最新バージョンです。
PortFastとは何ですか?また、どのような場合に使用すべきですか?
PortFastを使用すると、スイッチポートは通常のSTPリスニングおよびラーニングフェーズを経ることなく、即座に転送状態に移行できます。これはエンドデバイスに接続されたポートでのみ使用し、スイッチ間リンクでは決して使用しないでください。
アクティブなスイッチングループを検出して復旧するにはどうすればよいですか?
ループが発生している兆候としては、ネットワーク速度の急激な低下、スイッチのCPU使用率の上昇、全ポートへのブロードキャストトラフィックの集中などが挙げられます。ネットワークが回復するまで、疑わしいケーブルを外し、SNMPトラップ、MACアドレステーブルの不安定性ログ、トポロジーマップなどを使用してループの原因を特定してください。




