こんにちは!ネットワークの世界へようこそ。インフラエンジニアの主筆ライターとして、日々国内外のネットワークの波を追いかけている私です。
ネットワークの学習を進めていると、必ずぶ壁にぶつかるのが「ループ」の問題ですよね。L2(レイヤー2)スイッチの世界では、冗長化のためにケーブルを二重に繋ぐと、パケットが永遠にぐるぐる回り続ける「ブロードキャストストーム」という恐怖の現象が起きてしまいます。それを防ぐための救世主がSTP(Spanning Tree Protocol)です。
今回は、そのSTPの進化系であり、大規模ネットワークの救世主であるMSTP(Multiple Spanning Tree Protocol:IEEE 802.1s)について、インスタンス管理とVLANマッピングの仕組みに焦点を当てて、じっくりと紐解いていきましょう!
難しい用語やパケットの細かいルールはいったん脇に置いて、身近な例えから一歩ずつ理解していきましょうね。
—
1. なぜMSTPが必要なの? 郵便配達に例えて考えてみよう
まずは、これまでのSTPの歴史を少しだけ振り返ってみましょう。
一番最初のオリジナルであるSTPや、その進化版であるRSTP(Rapid STP)は、ネットワーク全体で「たった1つの木(ツリー)」しか作ることができませんでした。
これを身近な例えで言うなら、「会社宛ての郵便物が何万通あっても、社内の通路は全フロア合わせて常に1本しか使ってはいけないルール」のようなものです。
これでは、ある部署(VLAN 10)の通信のためにメインの通路が使われているとき、別の部署(VLAN 20)の超急ぎの書類まで同じ通路の順番待ちをさせられてしまいます。空いている別の通路があるのに、ルールだから使えない……これではあまりにも不効率で、ネットワークのリソースがもったいないですよね。
そこで登場したのが、今回主役のMSTPです!
MSTPは、複数のVLANをグループ化して、それぞれのグループごとに独立した「お仕事のルート(インスタンス)」を作ることができます。先ほどの例えなら、「総務宛ての郵便はこの通路、開発宛ての郵便はあっちの裏通路、といったように、部署ごとに専用の高速道路を割り当てる」ようなものです。
これにより、ネットワークの回線をムダなく使い切りつつ、万が一の障害時にも自動で迂回できるスマートな環境が作れるようになります。
—
2. MSTPの核心:「リージョン」と「VLANマッピング」の仕組み
MSTPを実際に設定・運用するときに、絶対に押さえておかなければならないキーワードが2つあります。それが「MSTリージョン(Region)」と「VLANマッピング」です。
一歩ずつ、中身を覗いてみましょう!
MSTリージョン:お互いに話し合える「同じチーム」の範囲
会社組織を想像してみてください。日本支社とアメリカ支社では、働くルールや文化が少し違いますよね。
ネットワークの世界も同じで、世界中のスイッチすべてを1つの巨大なルールで縛るのは大変です。そこで、「このグループのスイッチたちは、同じルールでお互いにスパニングツリーを計算し合おうね」と定めたエリアのことをMSTリージョンと呼びます。
同じリージョンに所属するスイッチ同士は、以下の3つの設定(指紋のようなもの)が完全に一致していなければなりません。
1. リージョン名(Configuration Name)
2. リビジョン番号(Revision Number)
3. VLANとインスタンスの割り当て表(VLAN-to-Instance Mapping Table)
この3つがガッチリ合致して初めて、「おっ、仲間だな!」と認識し合えるわけです。
VLANマッピング:どのVLANをどのグループに所属させるか?
MSTPでは、ネットワーク上に最大65,000個以上あるかもしれないVLANを、そのまま個別にツリー計算するとスイッチのCPUがパンクしてしまいます。
そこで、「似たような性質のVLANをまとめて、いくつかの『インスタンス(グループ)』に整理整頓する」というアプローチを取ります。これがVLANマッピングです。
例えば、次のようにグループ分け(マッピング)をします。
- インスタンス 1(MSTI 1): 社内PC用の VLAN 10, 20, 30 をまとめるグループ
- インスタンス 2(MSTI 2): IP電話やWeb会議などの音声・映像用の VLAN 40, 50 をまとめるグループ
- インスタンス 0(CIST): すべてのベースとなる大元(デフォルト)のグループ
こうすることで、スイッチは個別のVLANではなく「インスタンス単位」でツリーの計算を行えばよくなり、CPUの負担を劇的に軽くすることができるのです。
—
3. 実務で使える!CiscoスイッチでのMSTP設定サンプル
それでは、実際に現場でどのように設定するのか、Cisco IOSをベースにしたサンプルコードを見ていきましょう。
難しそうに見えるかもしれませんが、一つひとつの意味を噛み砕けば怖くありませんよ!
! 1. グローバルコンフィギュレーションモードに入り、STPのモードをMSTPに変更します
Switch(config)# spanning-tree mode mst
! 2. MSTコンフィギュレーションモードへ移行し、リージョンの基本設定を行います
Switch(config-mst)# name TOKYO-HQ-REGION ! すべてのスイッチで「完全に同一」にするリージョン名
Switch(config-mst)# revision 1 ! 設定変更したら必ず数値を上げるリビジョン番号
! 3. VLANマッピングの定義(どのVLANをどのインスタンスに所属させるか)
Switch(config-mst)# instance 1 vlan 10,20,30 ! VLAN 10, 20, 30 を インスタンス1 に所属させる
Switch(config-mst)# instance 2 vlan 40,50 ! VLAN 40, 50 を インスタンス2 に所属させる
! 4. 設定を反映させます(設定内容の確認は "show pending" で事前に行うのがプロの技です)
Switch(config-mst)# exit
! 5. 各インスタンスごとのプライマリ(優先的にルートブリッジにする)スイッチを指定します
Switch(config)# spanning-tree mst 1 root primary ! インスタンス1の親機にする
Switch(config)# spanning-tree mst 2 root primary ! インスタンス2の親機にする
💡 実務でのワンポイントアドバイス
現場でMSTPを構築するときに一番多いトラブルが、「スイッチ間でリージョン名やVLANマッピングの文字が1文字でも違っていて、別々のリージョンと誤認されてしまう現象」です。
例えば、片方のスイッチで TOKYO-HQ-REGION と打ったついでに、もう片方でうっかり Tokyo-HQ-Region と大文字・小文字を間違えてしまうと、それだけで通信断を引き起こす原因になります。設定を投入した後は、必ず以下のコマンドで状態を確認するクセをつけましょう!
Switch# show spanning-tree mst configuration
このコマンドで、パズルのピースのようにすべてのスイッチの「指紋(ダイジェスト値)」が完全に一致しているかを確認するのが、インフラエンジニアのルーティンワークです。
—
4. おわりに
いかがでしたでしょうか?
MSTPのインスタンス管理とVLANマッピングについて、少し身近に感じられるようになったのではないでしょうか。
- 複数のVLANをグループ化(マッピング)して、負荷を賢く分散させる。
- 同じルールを共有する仲間同士のエリアを「リージョン」と呼ぶ。
この2つのエッセンスさえ掴んでおけば、どんなに大規模なキャンパスネットワークの設計書を見ても、パニックになることはありません。一歩ずつ、確実に知識を積み重ねていきましょう。
それでは、また次回のネットワークの深淵でお会いしましょう!
コメント