ベンダー毎のMST挙動

 ■はじめに

アドベントカレンダー初参加。
ネットワークの基礎であるSTPに関して体験したことを記事にしたいと思います。
Cisco製とHP製の製品においてSTPのモードの一つであるMSTに関して挙動に差異が生じるといった私が現場で体験した話になります。

①STP(Spanning Tree Protocol)
STPは、スイッチで冗長化構成を取った際のスイッチドネットワークでのスイッチングループを防ぐためのIEEE802.1Dとして規格化されたプロトコル。

②MST(Mulitiple Spanning Tree Protocol)
MSTは、複数のVLANを「MSTインスタンス」と呼ばれるグループにまとめる機能や、ネットワーク上のスイッチングハブを「MSTリージョン」と呼ばれる範囲にまとめる機能があります。

上記①②の機能においてCisco製からHP製品に交換した際に挙動に差異が生じた内容になります。
体験した挙動差異の前にどのようなネットワーク構成だったのかを記載します。

・構成

・設定
※下位SWに関しては、インスタンス2の範囲のVLANは設定されていない状態

体験した挙動差異

構成変更前のCisco製品にてshow spanning-tree mstコマンドで挙動確認
MSTインスタンス2の挙動として、VLANが設定されていないため表示なし

構成変更後のHP製品にてshow spanning-tree mstコマンドで挙動確認
MSTインスタンス2の挙動として、ルートブリッジが自身に設定されていた。

■体験した挙動差異の原因

MSTの仕様(IEEE 802.1s)では、インスタンスに関連付けられたVLANが存在しない場合の動作を厳密には定義していないそうで各ベンダーはこの部分を独自に実装しているため、製品ごとに異なる挙動が発生します。

各ベンダーの挙動は以下となります。

・Cisco機器の動作
Cisco製品では、MSTインスタンスに関連付けられているVLANが存在しない場合でも、そのインスタンスに基づいてルートブリッジを計算します。
VLANが存在しなくても、上位スイッチがMSTの設定に基づいてルートブリッジとして選ばれるような動作をします。

・HP機器の動作
HP製品では、インスタンスに関連付けられたVLANが存在しない場合、そのインスタンスのルートブリッジの選出が異なる処理になることがあります。
この場合、インスタンス自体が無効化され、結果的に自身をルートブリッジとして扱うことがあるようです。

■まとめ

原因としては、MSTプロトコルの規格(IEEE 802.1s)では、VLANが存在しない場合の挙動を詳細には定めていないためHP製品では、インスタンスを有効化しないよう設計されているからといった原因でしたが初見では気づけない…

ベンダーごとの製品仕様で今回の事象が起きてしまうのは、どうしようもないと感じますが
下記が推奨される対応と感じています。

①インスタンス設計の明確化
全てのインスタンスに関連付けられるVLANを明確に設定し、どちらの製品でも同じ挙動をするように設計する。
VLANが不要なインスタンスを削除するか、全体で統一した設定を適用する。

②2.MST構成の再確認
MSTインスタンスとVLANの対応関係を確認し、製品間の不一致が発生しないように調整する。

③動作確認と検証
実環境または検証環境でCiscoとHPの動作を確認し、期待通りに動作するかをテストする。

どちらが正解かと聞かれればどちらも正解なような気がしますが…
(定義されてないみたいですし)
設計上MSTインスタンス2のVLANが下位SWに設定されていれば起きない事象です。

事前検証も含めて考えさせられる事象であったなと感じています。
以上となります。


コメント

このブログの人気の投稿

ProxmoxでLet's Encryptを使用した証明書セットアップをやってみた

AIと共に「考える」エンジニアに!

ルーティングって何で必要で、何してるの?を React Routerで理解する