本サイトはPRが含まれています。
ポン先生
さて、STPで覚える事はまだまだたくさんあるよ。今日はSTPのModeについて勉強しよう。
STPのMode?一旦何のコトかしら?
チャーチルさん
この記事ではSTPの動作Modeについて勉強します。企業のネットワークのように複数のVLAN(セグメント)がある環境では特に知っておくべき内容となっています。
他のSTP関連の記事を読んでいる事が前提となります。
HAL校長
目次
ツリーの数とSTP Mode
- CST → 単一STPトポロジー
- PVST → VLAN毎にSTPトポロジー + ISL
- PVST+ → VLAN毎にSTPトポロジー + IEEE802.1Q
- MSTP → 複数のトポロジーを集約
CST → 単一STPトポロジー
まずは基本的なSTP構成のおさらいです。
上記構成ではスイッチCにブロッキングポートが作られ、PCはスイッチC→スイッチAを経由して通信します。VLANはVLAN1のみ存在しています。
うん、これは特に問題無いね。
チャーチルさん
ポン先生
では次のような構成ではどうかな?
今度は複数のVLANがある構成です。各VLAN毎に端末がありますが先程と同様スイッチC⇔スイッチB間のポートがブロッキングポートなので全ての通信がスイッチA経由となります。
元々STPにはVLANの概念が無く、どのVLANかに関わらず共通のSTPステータスが決定します。このようにネットワーク全体で1つのSTPトポロジーを持つような仕組みをCST(Common Spanning Tree)と言います。
ポン先生
STPは正式にはIEEE802.1Dという名前の規格だよ。IEEEとは電気通信系の学会の名前で規格の標準化などをやっているんだ。
PVST → VLAN毎にSTPトポロジー + ISL
CSTはVLANに関係無くSTPの状態が決まる仕組みであり非常にシンプルです。一方、どんなにVLANや端末が増えてもスイッチA向けポートに全トラフィック集中、スイッチB向けポートはトラフィック0であり、トラフィックを分散させるといったことはできません。
そこで「VLAN毎に異なるSTPトポロジーを構成する仕組み」ができました。これがPVST(Per-VLAN Spanning Tree)です。PVSTではVLAN毎に異なるスイッチをルートブリッジする、VLAN毎に異なるポートをブロッキングにする、といった事が可能です。
上記ではVLAN1~4に対して、奇数VLANはスイッチがルートブリッジ、偶数VLANはスイッチBがルートブリッジとなっています。スイッチC側もVLANによってブロッキングポートが異なります。よってスイッチC配下のPCもVLANによってスイッチA経由かスイッチB経由か分かれます。
PVSTを使えばVLAN毎の負荷分散可能で全て解決・・・と思いきやPVSTではtrunkプロトコルとしてISLしか利用できないという制約があります。
trunkについてはこちらを参照
ISLとはCisco独自のtrunkプロトコルです。当然Cisco機器でしか使えず、他メーカスイッチとの接続でも利用できません。一般的にはIEEE802.1Qというtrunkプロトコルが広く利用されます。マイナープロトコルを強制されるということで、PVSTは使い勝手が悪いプロトコルです。
PVST+ → VLAN毎にSTPトポロジー + IEEE802.1Q
「ISLの利用必須」というPVSTの弱点を補うため、PVST+(Per-VLAN Spanning Tree Plus)というプロトコルが開発されました。PVST+は「VLAN単位でのSTP制御」と「trunkプロトコルとしてIEEE802.1Qを利用可」の良いとこ取りをした仕組みです。
相当古いCatalystでなければデフォルトでPVST+が有効になっています。
※そもそもPVSTは利用できなくなっておりCiscoとしてもPVST+が標準という位置付けになっています。
MSTP → 複数のトポロジーを集約
一方、PVST(PVST+)の登場によって新たな課題も生まれました。VLAN毎にSTPのトポロジーを作るということはVLAN毎にBPDUの送信が必要になります。ネットワークの規模が大きくなればその分VLAN数も多くなるためスイッチ間のトラフィック量も増加します。
そうしたデメリット解消のためMSTP(Multiple Spanning Tree Protocol)というプロトコルが開発されました。MSTPはインスタンスというグループでVLANを集約しSTPのやり取りを効率化するプロトコルです。
- ルートブリッジ、ブロッキングポート等のSTPステータスはVLAN単位ではなく、インスタンス単位で決まる
- インスタンス単位でBPDUを送信するためスイッチ間トラフィックを削減できる
具体例として以下のネットワークで考えてみましょう。
上記構成では1から100までの計100個のVLANがあります。ここでは
・奇数VLAN:インスタンス1というグループでまとめる
・偶数VLAN:インスタンス2というグループでまとめる
という設定をしています。例えばVLAN1、3、5は全て同じスイッチがルートブリッジ、同じポートがブロッキングポートといった具合です。
PVST+であれば100VLAN分のBPDUのやり取りが必要ですがMSTP導入により2インスタンス分になり、トラフィック量やスイッチが処理するデータ量が1/50に圧縮されました。これがMSTPによる最大のメリットです。
MSTPは「各VLANのSTP設計が共通」という点を利用して効率化する仕組みです。逆に言えばVLAN毎に設計がバラバラなのであればMSTPのメリットは活かせません。一般的には上記のような物理構成でコアスイッチ2台(≒ルートブリッジの候補が2台)というケースが当てはまることは多いですが、特殊な環境・構成ではMSTPのメリットが活かしきれない事もあるので覚えておきましょう。
また、PVST+と比べて設定量が増えます。独特の概念や設定項目もあるので難易度も上がるので勉強も必要になります。
ポン先生
一般的な頻度としてはMSTPを使っている拠点は少ないかな。昔よりスイッチの性能も上がっているのでそこまでBPDUの量を気にする必要も無くなってきたし、そもそも大規模なネットワークでないとMSTP導入のメリットは少ないかな。
ネットワークエンジニアを目指すならCCNAを取得しよう!
CCNAとはCisco社のメーカ認定資格です。CCNAの取得はネットワークエンジニアの基本的な知識やCisco製品の理解の証明になります。
特定メーカの資格で役に立つの?実際には他メーカの機種も扱うんじゃないの?
チャーチルさん
ポン先生
確かに業務上Cisco以外の機器を扱うことはあるだろうけど、最初にCiscoを勉強しておくと他の機器も理解しやすくなるんだ。
Ciscoは数あるネットワーク機器メーカの内の1社ですがディファクトスタンダードと言われています。つまり業界標準として位置付けられており、他メーカ機種でもCiscoのコマンドライン等を参考にしている事が多いです。そのため初見の機器でもCiscoと設定方法が似ており、「大体は分かる」なんてケースも多々あります。ネットワークエンジニアとしてはCiscoの学習はむしろ必須と言えるレベルでしょう。
また、Ciscoの資格と言っても独自仕様や製品の話だけでなく、ネットワークの一般的な知識も必要です。Cisco製品と言えベースはネットワークの標準規格に基づいて設計されており、CCNA取得でネットワークの一般的な知識も習得可能です。
上記理由からCCNAは非常におすすめの資格です。ネットワークエンジニアとして本格的に活躍したいのであれば是非チェックすべきでしょう。
【CCNAとは】難しい?勉強は?Cisco資格の登竜門 基本解説
まとめ
-
CST:一つのSTPトポロジー(VLAN毎の制御不可)
-
PVST:VLAN毎のSTPトポロジー(Cisco独自のISL利用必須が難点)
-
PVST+:VLAN毎のSTPトポロジー( IEEE802.1Q利用可に拡張)
-
MSTP:複数VLANをインスタンスで集約(インスタンス単位のSTPトポロジー)
今回はSTPのmodeについてまとめました。具体的には、このネットワークにはSTPトポロジーが何個ありますか?という話です。企業ネットワークでは、ある程度の規模であれば冗長化しますし複数VLANが当たり前です。なので今どきCSTをわざわざ適応するという事も無いのですが、現在当たり前となっている技術の特徴やメリット・デメリットを理解するために、昔の技術をも知っておくのも悪くないでしょう。