こんにちは!ネットワークの世界へようこそ。インフラ・ネットワークスペシャリストの私です。
毎日のように私たちが何気なく使っているインターネットや社内LANですが、その足元を支えるL2(レイヤー2)スイッチの世界は、実はとても繊細なバランスで成り立っています。中でも、ネットワークの「ループ(無限ループ)」を防ぐための守護神であるSTP(スパニングツリープロトコル)は、インフラエンジニアにとって切っても切れない重要技術です。
しかし、このSTP、時に「お節介」すぎたり、逆に「うっかりミス」や「物理的なケーブルの片方向故障」に足元をすくわれたりすることがあります。
今回は、そんなSTPの弱点を補い、現場のネットワークを鉄壁の要塞に変える5つのSTPセキュリティ・拡張機能について、身近な例えを交えながら一歩ずつ優しく紐解いていきましょう!
—
1. なぜSTPセキュリティ機能が必要なの?(郵便配達の例え)
突然ですが、オフィスのネットワークスイッチを「郵便物の仕分け所」だと想像してください。スイッチ同士はケーブルで繋がっており、みんなで協力して手紙(データ)をあちこちに届けています。
STPは、「手紙が仕分け所の中でぐるぐる回り続けて、世界中がパンクする(=ブロードキャストストーム)」を防ぐために、「普段は使わないでおく予備のルート(扉)」を自動的に見つけて塞ぐ役割を持っています。
ここで問題が発生します。
- もし、アルバイト(一般のパソコンや、事情を知らないハブ)が、勝手に別の仕分け所への扉を作ってしまったら?
- もし、部屋を繋ぐパイプ(ケーブル)の一方が壊れて、手紙が「片方向」しか進まなくなったら?
STPのデフォルトの機能だけでは、こうした「予期せぬ外部からの侵入」や「片方向だけの通信障害」を完全に防ぎきれません。そこで登場するのが、今回解説する5つのセキュリティ機能たちです。
—
2. 不正な侵入を防ぐ!「BPDUガード」と「BPDUフィルタ」
スイッチの世界では、お互いの状況を伝えるために「BPDU(Bridge Protocol Data Unit)」という合図(定期連絡のハガキのようなもの)を交換し合っています。この合図を使って「私がリーダー(ルートブリッジ)になるよ!」と主張し合うわけです。
BPDUガード(BPDU Guard)
- どんな機能?: 「エンドユーザー(PCやプリンターなど)を繋ぐポート」には、絶対にスイッチからの合図(BPDU)が来ないはずです。もしそこからBPDUが届いたら、「おいおい、勝手に別のスイッチを繋ぐなよ!」と怒って、そのポートを即座にシャットダウン(err-disabled状態)させます。
- 例え: 社員証を見せるべき通用口に、見知らぬ他人が「私は新しい警備員です」と合図を送ってきたら、即座にシャッターを下ろして閉じ込めるようなものです。
BPDUフィルタ(BPDU Filter)
- どんな機能?: 特定のポートで、合図(BPDU)の送受信を一切行わないようにします。「うちは一般のPCしか繋がないから、無駄な挨拶のハガキは送受信しなくていいよ」という設定です。
- 注意点: アクセスポート(端末接続用)で安易に有効にすると、万が一そこにスイッチが繋がったときにループを防げなくなるため、実務では次に紹介する「BPDUガード」とセット、あるいはポート単位の慎重な設計が求められます。
実設定サンプル(Cisco Catalystスイッチの例)
エッジポート(端末が繋がるポート)において、安全性を高めるためにBPDUガードを有効にする設定です。
! エッジポートとして使用するインターフェースコンフィギュレーションモードへ移動
interface GigabitEthernet0/1
description === PC Connection Port ===
switchport mode access
! このポートでSTP PortFastを有効にし、すぐにフォワーディング状態にする
spanning-tree portfast
! 万が一、このポートからBPDUを受信した場合にポートをシャットダウンさせる
spanning-tree bpduguard enable
—
3. 王座の乗っ取りを防ぐ!「ルートガード」
ルートガード(Root Guard)
- どんな機能?: ネットワーク全体の「ボス(ルートブリッジ)」の座を、他のスイッチに勝手に奪われないように守る機能です。
- なぜ必要?: 悪意のあるユーザーが、非常に強力な設定をした古いスイッチを持ち込み、「私が新しいボスだ!」と嘘の強力なBPDUを送りつけてきた場合、ネットワーク全体のトポロジーがめちゃくちゃになり、通信が麻痺してしまうことがあります。
- 例え: 社長室の椅子に、平社員がいきなり座って「今日から私が社長だ!」と宣言しても、ルートガードが効いていれば「いや、あなたにはその権限はありません」と、その人の発言権を剥奪(Root-Inconsistent状態に)して守ってくれます。
実設定サンプル
上流のコアスイッチやディストリビューションスイッチへ向かうポートではなく、本来ボスが存在してはならない下流・外部接続ポートにルートガードを適用します。
interface GigabitEthernet0/24
description === Connection to Partner Company Network ===
! 外部や下流からの優秀な(ボス気取りの)BPDUを受け付けないようにする
spanning-tree guard root
—
4. 見えない片思いを防ぐ!「ループガード」と「UDLD」
ネットワークのケーブルが「行きはよいよい、帰りはこわい(=片方向だけ断線している)」という状態になったとき、STPは大きな勘違いを起こします。
「あれ?最近相手からのハガキ(BPDU)が来なくなったな。もしかして、予備の扉を開けても大丈夫かな?」と勘違いし、本来塞ぐべき予備ルートを開けてしまい、結果として凶悪なL2ループが発生します。これを防ぐのが次の2つです。
ループガード(Loop Guard)
- どんな機能?: 「本来、常時相手から届くはずのBPDUが途絶えたとき」に、それを単なる「相手の故障によるルート変更」ではなく、「片方向通信の障害(ループの予兆)」と見なし、そのポートを安全のためブロック(Loop-Inconsistent状態)します。
UDLD(Uni-directional Link Detection)
- どんな機能?: Cisco独自の強力な機能で、光ファイバーなどの「送信線」と「受信線」が分かれている環境で真価を発揮します。機器間で定期的に「おーい、聞こえますかー?」「はい、聞こえますよ!」という専用の双方向確認パケットを送り合い、片方が聞こえなくなった瞬間にリンクを自ら遮断します。
- 例え: トランシーバーで話しているとき、「こちら親機、どうぞ」と言ったのに、子機からの「どうぞ」が一切返ってこなくなったとき、「あ、電波の片方が壊れたな」と察知して勝手に通信をストップするイメージです。
実設定サンプル(UDLDの設定例)
グローバル設定、またはインターフェース単位でUDLDを有効化します(アグレッシブモードでは、リンクの片方向性を検知するとポートをerr-disabledにします)。
! グローバルコンフィギュレーションモードでUDLDをアグレッシブモードで有効化
udld aggressive
! または、特定の物理インターフェースごとに有効化する場合
interface TenGigabitEthernet0/1
udld port aggressive
—
まとめ:現場で安全なL2ネットワークを築くために
今回は、L2スイッチングの世界を守る5つのSTPセキュリティ拡張機能を見てきました。
1. BPDUガード: エッジポートへの勝手なスイッチ接続を許さない!
2. BPDUフィルタ: 不要なBPDUの送受信をスリム化する!
3. ルートガード: ネットワークの「ボス」の座を不審者から守り抜く!
4. ループガード: 片方向障害によるSTPの勘違い(ループ)を未然に防ぐ!
5. UDLD: 物理・レイヤー1〜2レベルの片方向リンク障害を検知する!
教科書を読んでいるだけだと「覚えることが多くて大変だな…」と感じてしまうかもしれませんが、「もし自分の目の前でケーブルが片方だけ切れたら?」「もしユーザーが勝手にハブを持ち込んだら?」という現場のリアルなリスクを想像すると、これらの機能がどれほどありがたい存在であるかがスッと見えてくるはずです。
実際のインフラ構築現場では、これらのセキュリティ機能をデフォルトに近い形でベストプラクティスとしてテンプレート化し、適用することが求められます。ぜひ今日の解説を参考に、強固で美しいL2ネットワークをデザインしてみてくださいね。
それでは、また次のネットワークの深淵でお会いしましょう!
コメント