SlideShare a Scribd company logo
1 of 39
Download to read offline
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
STPとその仲間たち
〜 STP, RSTP, MSTPの概
要 〜
STPとその仲間たち
〜 STP, RSTP, MSTPの概
要 〜
木本雅彦 <kimoto@soum.co.jp>
<kimoto@ohnolab.org>
株式会社創夢 第三開発部 シニアプロジェクトマネージャ
初版:2004年10月作成、改定版:2015年2月作成
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
はじめに
インターネット屋はL3で考えがち
ネットワークエンジニアはL2でも考える
L2ネットワーキングという考えかたがある
L2での、VLAN、帯域制御、冗長性確保、etc.
今回はL2での冗長性確保の話
1/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
STPとは何か
IEEE 802.1D標準
スイッチ間のループを解消するプロトコル
冗長構成を作っておき、故障時に自動的に代替経路
に切り替える
ブリッジ間でBPDUパケットのやりとりを行う
単一のルートブリッジを頂点にした木(Spanning
Tree)を作る
ループの原因となるポートを発見したらブロックす
る
2/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
STPの基本動作(1)
3/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
STPの基本動作(1)の解説
ブロードキャストが伝播する範囲を単位として考える
「ブロードキャストドメイン」と呼ぶ
たとえば異なるVLAN間ではブロードキャストは伝播しないので、異なる
ブロードキャストドメインになる
ブロドーキャストドメインをまたぐ中継はL3で行う
ブロードキャストドメインをいかに制御するかが鍵になる
冗長性のために複数経路を作る
しかしループを発生させない
4/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
STPの基本動作(2)
5/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
STPの基本動作(2)の解説
STPがトポロジーを作るまでの動作
トポロジーの根(root bridge)を決める
最初にすべてのスイッチが自分がrootだと主張する
受信したメッセージと自分のbridge IDを比較する
6/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
STPの基本動作(3)
7/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
STPの基本動作(3)の解説
bridge IDが小さいほうをroot bridgeだと認識する
root bridgeを下流に広告する
ふたつのポートから同じrootの通知が来たら、IDが大き
いポートを「ブロッキング状態」にする
ブロッキング状態のポートは、パケットの送受信を行わな
い
8/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
BPDUパケットの構造
9/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
BPDUパケットの構造(2)
STPパケットはL2のパケットである
Etherヘッダに続いてBPDUが格納される
宛先はL2マルチキャスト
インテリジェントスイッチは、BPDUを中継してはいけない
ただのHUBはBPDUを中継しないといけない
たまに、ただのSW HUBが勘違いしてBPDUを中継し
ないことがあるので注意すること
10/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
ループ切断時の挙動(1)
11/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
ループ切断時の挙動(1)の解説
Bridge 1とBridge 0の間のリンクが切断された場合
トポロジーの再構築が起こる
Bridge 1は自分がrootだと宣言する(Bridge 0が見
えなくなるので)
Bridge 3は異なるroot bridgeの情報を受け取り混
乱する
12/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
ループ切断時の挙動(2)
13/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
ループ切断時の挙動(2)の解説
Bridge 3はIDが小さい方の情報(Bridge 0がroot)
を広告する
Bridge 1はBridge 0の存在を知る
Bridge 1はBridge 0がroot bridgeであると認識
する
14/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
STPは遅い
リンクが落ちた時
様子を見る時間 (max-age)
デフォルトで20秒
BPDUを聞く時間 (forward-delay)
デフォルトで15秒
学習する時間 (forward-delay)
デフォルトで15秒
復旧までに50秒かかる(デフォルト設定の場合)
15/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
RSTPによるSTPの問題の解決
IEEE 802.1w標準(2004年当時)
現在ではIEEE 802.1Dに含まれている
STPの状態遷移を高速化したもの
状態遷移時にhandshakeを行なう
切り替えは高速(数秒)で行なわれる
作られるSpanning TreeはSTPと同じ
下位互換性を持つ
16/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
RSTPでの状態遷移(1)
17/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
RSTPでの状態遷移(2)
18/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
RSTPでの状態遷移(2)の解説
リンク状態が変化すると、Bridge 1は下流のBridge
3に対して「Topology Change」を通知する
19/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
RSTPでの状態遷移(3)
20/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
RSTPでの状態遷移(4)
21/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
RSTPでの状態遷移(5)
22/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
RSTPでの状態遷移(5)の解説
Bridge 1とBridge 3との間で、Proposal,
Agreementのやりとりが行われる
Bridge 1のポートがRoot Port (そのリンクの中で中
継を行うポート)になる
23/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
RSTPでの状態遷移(6)
24/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
RSTPでの状態遷移(7)
25/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
RSTPでの状態遷移(8)
26/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
RSTPでの状態遷移(9)
27/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
RSTPでの状態遷移(9)の解説
proposal, agreementのhandshakeは下流に伝
播する
STPでは「確実に落ち着くまで待ってから通信可能にす
r」
RSTPでは「積極的に相互に確認して通信可能にす
る」
28/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
VLAN環境でのSTPの利用
VLAN環境下では、VLANごとにSTPのトポロジーを構
築する必要がある
タグ付きVLANでは物理トポロジーとSTPのトポロジー
が異なる可能性がある
VLANごとにroot bridgeが異なる可能性がある
物理リンクがダウンした時のトポロジー変化がVLANご
とに異なる可能性がある
物理リンクに異常がなくてもVLANの論理ポートだけ落
とす場合がある
29/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
VLAN環境でのSTPの利用
30/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
VLAN環境でのSTPの利用
VLANごとにBPDUを流す方法
VLANヘッダに続いてBPDUが格納される
CISCOのPVST+などの実装がある
簡単な方式ではある
パケットの流量が相対的に大きくなる
31/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
MSTP
32/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
MSTP
Multiple Spanning Tree Protocol
IEEE 802.1s
それまで定義されていなかったVLANとSTPの併用を定義した
複数のVLANの情報を「インスタンス」として束ねる。
BPDUは複数のVLANの情報をまとめてやりとりする
33/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
MSTPによる複数のスパニングツリー
34/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
MSTPによる複数のスパニングツリー(2)
VLANを束ねたインスタンスを複数共存させられる
インスタンスごとにトポロジーが異なる場合がある
35/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
MSTPによる負荷分散
36/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
実装状況
Linux
STPはkernl内実装
RSTP, MSTPはuserland実装
MSTPの実装は不十分
FreeBSD
STPとRSTPをif_bridge(4)にて実装している
NetBSD
STPをbridge(4)にて実装している
37/38
(c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6
まとめ
L2ネットワークでの冗長化を行うにはSTPを用いる
STPは状態遷移が遅いので現在ではRSTPを用いるの
がよい
VLANを駆使している環境ではMSTPを用いる
多くのL2スイッチ製品では、STP, RSTP, MSTPをサポ
ートしている
PC-UNIXでのSTPサポートは遅れている
製品も中身はLinuxなどなので、オープンソースのSTP実装が不十分
というのが正確
38/38

More Related Content

What's hot

「なにをどこまでやれば?」OWASP SAMMが導く開発セキュリティ強化戦略
「なにをどこまでやれば?」OWASP SAMMが導く開発セキュリティ強化戦略「なにをどこまでやれば?」OWASP SAMMが導く開発セキュリティ強化戦略
「なにをどこまでやれば?」OWASP SAMMが導く開発セキュリティ強化戦略
Riotaro OKADA
 
Anaconda navigatorのアップデートが終わらないときの対処方法メモ
Anaconda navigatorのアップデートが終わらないときの対処方法メモAnaconda navigatorのアップデートが終わらないときの対処方法メモ
Anaconda navigatorのアップデートが終わらないときの対処方法メモ
ayohe
 

What's hot (20)

NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門
 
TensorFlow XLAは、 中で何をやっているのか?
TensorFlow XLAは、 中で何をやっているのか?TensorFlow XLAは、 中で何をやっているのか?
TensorFlow XLAは、 中で何をやっているのか?
 
Sparkをノートブックにまとめちゃおう。Zeppelinでね!(Hadoopソースコードリーディング 第19回 発表資料)
Sparkをノートブックにまとめちゃおう。Zeppelinでね!(Hadoopソースコードリーディング 第19回 発表資料)Sparkをノートブックにまとめちゃおう。Zeppelinでね!(Hadoopソースコードリーディング 第19回 発表資料)
Sparkをノートブックにまとめちゃおう。Zeppelinでね!(Hadoopソースコードリーディング 第19回 発表資料)
 
Pcapngを読んでみる
Pcapngを読んでみるPcapngを読んでみる
Pcapngを読んでみる
 
Takalab 勉強会#01 - Kali Linux 環境構築
Takalab 勉強会#01 - Kali Linux 環境構築Takalab 勉強会#01 - Kali Linux 環境構築
Takalab 勉強会#01 - Kali Linux 環境構築
 
オブジェクト指向Fortranが拓く(はずだった)新しい世界
オブジェクト指向Fortranが拓く(はずだった)新しい世界オブジェクト指向Fortranが拓く(はずだった)新しい世界
オブジェクト指向Fortranが拓く(はずだった)新しい世界
 
WiredTigerを詳しく説明
WiredTigerを詳しく説明WiredTigerを詳しく説明
WiredTigerを詳しく説明
 
スーパーコンピュータとアプリケーションの性能
スーパーコンピュータとアプリケーションの性能スーパーコンピュータとアプリケーションの性能
スーパーコンピュータとアプリケーションの性能
 
[DLHacks]Comet ML -機械学習のためのGitHub-
[DLHacks]Comet ML -機械学習のためのGitHub-[DLHacks]Comet ML -機械学習のためのGitHub-
[DLHacks]Comet ML -機械学習のためのGitHub-
 
初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法
 
「なにをどこまでやれば?」OWASP SAMMが導く開発セキュリティ強化戦略
「なにをどこまでやれば?」OWASP SAMMが導く開発セキュリティ強化戦略「なにをどこまでやれば?」OWASP SAMMが導く開発セキュリティ強化戦略
「なにをどこまでやれば?」OWASP SAMMが導く開発セキュリティ強化戦略
 
PenTesterが知っている危ないAWS環境の共通点
PenTesterが知っている危ないAWS環境の共通点 PenTesterが知っている危ないAWS環境の共通点
PenTesterが知っている危ないAWS環境の共通点
 
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
Hokkaido.cap #osc11do Wiresharkを使いこなそう!Hokkaido.cap #osc11do Wiresharkを使いこなそう!
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
 
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
 
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
 
Anaconda navigatorのアップデートが終わらないときの対処方法メモ
Anaconda navigatorのアップデートが終わらないときの対処方法メモAnaconda navigatorのアップデートが終わらないときの対処方法メモ
Anaconda navigatorのアップデートが終わらないときの対処方法メモ
 
Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-
 
elixirを使ったゲームサーバ
elixirを使ったゲームサーバelixirを使ったゲームサーバ
elixirを使ったゲームサーバ
 
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
 
入門 シェル実装
入門 シェル実装入門 シェル実装
入門 シェル実装
 

STPとその仲間たち 〜 STP, RSTP, MSTPの概要 〜

  • 1. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 STPとその仲間たち 〜 STP, RSTP, MSTPの概 要 〜 STPとその仲間たち 〜 STP, RSTP, MSTPの概 要 〜 木本雅彦 <kimoto@soum.co.jp> <kimoto@ohnolab.org> 株式会社創夢 第三開発部 シニアプロジェクトマネージャ 初版:2004年10月作成、改定版:2015年2月作成
  • 2. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 はじめに インターネット屋はL3で考えがち ネットワークエンジニアはL2でも考える L2ネットワーキングという考えかたがある L2での、VLAN、帯域制御、冗長性確保、etc. 今回はL2での冗長性確保の話 1/38
  • 3. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 STPとは何か IEEE 802.1D標準 スイッチ間のループを解消するプロトコル 冗長構成を作っておき、故障時に自動的に代替経路 に切り替える ブリッジ間でBPDUパケットのやりとりを行う 単一のルートブリッジを頂点にした木(Spanning Tree)を作る ループの原因となるポートを発見したらブロックす る 2/38
  • 4. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 STPの基本動作(1) 3/38
  • 5. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 STPの基本動作(1)の解説 ブロードキャストが伝播する範囲を単位として考える 「ブロードキャストドメイン」と呼ぶ たとえば異なるVLAN間ではブロードキャストは伝播しないので、異なる ブロードキャストドメインになる ブロドーキャストドメインをまたぐ中継はL3で行う ブロードキャストドメインをいかに制御するかが鍵になる 冗長性のために複数経路を作る しかしループを発生させない 4/38
  • 6. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 STPの基本動作(2) 5/38
  • 7. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 STPの基本動作(2)の解説 STPがトポロジーを作るまでの動作 トポロジーの根(root bridge)を決める 最初にすべてのスイッチが自分がrootだと主張する 受信したメッセージと自分のbridge IDを比較する 6/38
  • 8. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 STPの基本動作(3) 7/38
  • 9. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 STPの基本動作(3)の解説 bridge IDが小さいほうをroot bridgeだと認識する root bridgeを下流に広告する ふたつのポートから同じrootの通知が来たら、IDが大き いポートを「ブロッキング状態」にする ブロッキング状態のポートは、パケットの送受信を行わな い 8/38
  • 10. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 BPDUパケットの構造 9/38
  • 11. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 BPDUパケットの構造(2) STPパケットはL2のパケットである Etherヘッダに続いてBPDUが格納される 宛先はL2マルチキャスト インテリジェントスイッチは、BPDUを中継してはいけない ただのHUBはBPDUを中継しないといけない たまに、ただのSW HUBが勘違いしてBPDUを中継し ないことがあるので注意すること 10/38
  • 12. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 ループ切断時の挙動(1) 11/38
  • 13. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 ループ切断時の挙動(1)の解説 Bridge 1とBridge 0の間のリンクが切断された場合 トポロジーの再構築が起こる Bridge 1は自分がrootだと宣言する(Bridge 0が見 えなくなるので) Bridge 3は異なるroot bridgeの情報を受け取り混 乱する 12/38
  • 14. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 ループ切断時の挙動(2) 13/38
  • 15. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 ループ切断時の挙動(2)の解説 Bridge 3はIDが小さい方の情報(Bridge 0がroot) を広告する Bridge 1はBridge 0の存在を知る Bridge 1はBridge 0がroot bridgeであると認識 する 14/38
  • 16. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 STPは遅い リンクが落ちた時 様子を見る時間 (max-age) デフォルトで20秒 BPDUを聞く時間 (forward-delay) デフォルトで15秒 学習する時間 (forward-delay) デフォルトで15秒 復旧までに50秒かかる(デフォルト設定の場合) 15/38
  • 17. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 RSTPによるSTPの問題の解決 IEEE 802.1w標準(2004年当時) 現在ではIEEE 802.1Dに含まれている STPの状態遷移を高速化したもの 状態遷移時にhandshakeを行なう 切り替えは高速(数秒)で行なわれる 作られるSpanning TreeはSTPと同じ 下位互換性を持つ 16/38
  • 18. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 RSTPでの状態遷移(1) 17/38
  • 19. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 RSTPでの状態遷移(2) 18/38
  • 20. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 RSTPでの状態遷移(2)の解説 リンク状態が変化すると、Bridge 1は下流のBridge 3に対して「Topology Change」を通知する 19/38
  • 21. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 RSTPでの状態遷移(3) 20/38
  • 22. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 RSTPでの状態遷移(4) 21/38
  • 23. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 RSTPでの状態遷移(5) 22/38
  • 24. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 RSTPでの状態遷移(5)の解説 Bridge 1とBridge 3との間で、Proposal, Agreementのやりとりが行われる Bridge 1のポートがRoot Port (そのリンクの中で中 継を行うポート)になる 23/38
  • 25. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 RSTPでの状態遷移(6) 24/38
  • 26. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 RSTPでの状態遷移(7) 25/38
  • 27. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 RSTPでの状態遷移(8) 26/38
  • 28. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 RSTPでの状態遷移(9) 27/38
  • 29. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 RSTPでの状態遷移(9)の解説 proposal, agreementのhandshakeは下流に伝 播する STPでは「確実に落ち着くまで待ってから通信可能にす r」 RSTPでは「積極的に相互に確認して通信可能にす る」 28/38
  • 30. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 VLAN環境でのSTPの利用 VLAN環境下では、VLANごとにSTPのトポロジーを構 築する必要がある タグ付きVLANでは物理トポロジーとSTPのトポロジー が異なる可能性がある VLANごとにroot bridgeが異なる可能性がある 物理リンクがダウンした時のトポロジー変化がVLANご とに異なる可能性がある 物理リンクに異常がなくてもVLANの論理ポートだけ落 とす場合がある 29/38
  • 31. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 VLAN環境でのSTPの利用 30/38
  • 32. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 VLAN環境でのSTPの利用 VLANごとにBPDUを流す方法 VLANヘッダに続いてBPDUが格納される CISCOのPVST+などの実装がある 簡単な方式ではある パケットの流量が相対的に大きくなる 31/38
  • 33. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 MSTP 32/38
  • 34. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 MSTP Multiple Spanning Tree Protocol IEEE 802.1s それまで定義されていなかったVLANとSTPの併用を定義した 複数のVLANの情報を「インスタンス」として束ねる。 BPDUは複数のVLANの情報をまとめてやりとりする 33/38
  • 35. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 MSTPによる複数のスパニングツリー 34/38
  • 36. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 MSTPによる複数のスパニングツリー(2) VLANを束ねたインスタンスを複数共存させられる インスタンスごとにトポロジーが異なる場合がある 35/38
  • 37. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 MSTPによる負荷分散 36/38
  • 38. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 実装状況 Linux STPはkernl内実装 RSTP, MSTPはuserland実装 MSTPの実装は不十分 FreeBSD STPとRSTPをif_bridge(4)にて実装している NetBSD STPをbridge(4)にて実装している 37/38
  • 39. (c) Masahiko KIMOTO, Ph.D. - http://www.earthlight.jp/ Powered by Rabbit 2.1.6 まとめ L2ネットワークでの冗長化を行うにはSTPを用いる STPは状態遷移が遅いので現在ではRSTPを用いるの がよい VLANを駆使している環境ではMSTPを用いる 多くのL2スイッチ製品では、STP, RSTP, MSTPをサポ ートしている PC-UNIXでのSTPサポートは遅れている 製品も中身はLinuxなどなので、オープンソースのSTP実装が不十分 というのが正確 38/38