LN Switch 技術 ~ 冗長化手法と最新技術 ~ Version.0c 安藤 雅人
Ethernet におけるループ発生の発生と弊害 リンクやノードの故障の影響を防ぐ為に イーサネットスイッチを冗長を持たせて接続すると ループ部分ができてしまう 何故ループが駄目か? ()FB(Forwarding ata Base=MC 学習テーブル ) が狂う ユニキャスト通信が出来なくなる () フレームが増殖する 帯域が圧迫されるアプリケーションへの悪影響 ( システムダウンする場合もある ) 絶対にループは発生させてはならない!( 一瞬でも ) 冗長を組みながら ループを防止する方法を最新技術を交え紹介
正常時のスイッチ網の FB 学習状況 通常時の学習 データデータ 端末 MC: 送り元 送り先 B-Cast 3 4 MC: を送り元としたブロードキャストパケットによるスイッチの学習 端末 B MC:B 端末 MC: B 3 B 4 MC:B を送り元としたブロードキャストパケットによるスイッチの学習 端末 B MC:B B B 送り先 送り元 データ B-Cast B データ 3
ループ発生時の FB ループ発生時の学習 データデータ 端末 MC: 送り元送り先 B-Cast?? 3 4?? ループがあるネットワークでは スイッチにて学習されている内容は時間とともに変化する 狂った FB となる これは C スイッチの FB 学習機構に負荷を与える事にもなる 端末 B MC:B 端末 MC: 瞬間的なループであっても FB が狂い 通信不能は発生する! 3 4 狂った FB ではユニキャストフレームを正常に送り届ける事は出来ない マルチキャスト ブロードキャスト アンノウンユニキャストは FB を参照しないで転送する為届くことは届く MC:B 端末 B 送り先 送り元 データ B データ 4
5 ループによる帯域圧迫 MC: MC:B ループによる増殖と帯域圧迫 3 4 ループ発生時において マルチキャスト ブロードキャストと言ったトラフィックは 消えることがなく延々とループ内を流れ続け 帯域を圧迫する MC: MC:B 3 4 ループ内に回り続けるマルチキャスト ブロードキャストトラフィックはノードの分岐点で毎回コピーされて送出される為 直接ループしていない箇所においても 帯域は圧迫される 端末端末端末端末 端末端末端末端末 端末端末端末端末 B 端末端末端末端末 B B-Cast データデータデータデータ送り元送り元送り元送り元送り先送り先送り先送り先データデータデータデータフレームの増殖は 帯域の圧迫だけでなく 受信した装置のプロセスに悪影響を与える場合がある
ループが発生したら何をすべきか?( 手動の場合 ) () ループを構成している部分のリンクを切断したり スイッチの転送を止める 端末 B MC: 端末 3 4 MC:B ループを発生させている部分を抜く ()FBの内容を一度フラッシュフラッシュする ( フラッシュしなければ FBのエージアウトを待つか 内容が上書きされるのを待たなければ正常な通信が行えない ) MC: 端末 3 4 狂った FB の内容が残っていると フレーム転送が正常に行えない 端末 B MC:B 何もしなければ FB のエージアウトは 5 分で geout するのが一般的 ( 設定によって変更可能な物が多い ) 6
イーサネット網における冗長方式の分類 ネットワーク冗長 (STP ファミリ P VPLS リング型冗長など ) ネットワークとして 冗長性を確保する 爆撃やテロなどに対しても比較的強い 大阪 東京 千葉 名古屋 神奈川 ノード冗長化 = メッシュトポロジー ( ベンダ独自のもの ) コアのスイッチの冗長化 ( 二重化 ) 装置の信頼性 伝送路の信頼性を補う為に主に用いられる ノード内完全冗長 + リンクアグリゲーション装置内部を完全に冗長化し 冗長単位で交換可能とする 伝送路はリンクアグリゲーションなどで冗長性を確保 7
冗長なネットワークでのループを防止する三つの機構. ループフリーな論理トポロジーを維持する機構 STP をはじめとする 様々な論理ネットワーク維持機構. ループが発生した場合ループを検出し 論理トポロジーに働きかける機構 ループの検出を行い 網のトポロジーに働きかける機構 3. ループしたフレームを検出し フレームを破棄する機構 TTL を利用したフレーム破棄 フィルタリング 8
Spanning Tree Protocol ループフリーな論理トポロジーを維持する機構 9
STP(Spanning Tree Protocol) IEEE 80. ループフリーな論理トポロジーを維持する機構の一つ IEEE 80. 標準 中心となるスイッチはルートブリッジと呼ばれそこから木のように枝分かれしていくので Spanning Tree ( 広がる木 ) と呼ばれる 木は 枝分かれはするが 一度分かれた枝が先で再度くっつく事は ( 普通 ) ないので ループが発生するようなトポロジーとならない 利用中のリンクが断したり ノードが停止したら 論理トポロジーを自動的に再構成 Spanning Tree ルートブリッジ スイッチ 物理リンク Spanning Tree Spanning Tree の再構成 ルートブリッジ ブリッジ = スイッチ スイッチ 故障 論理的に切れている部分 (Block) ブリッジ = スイッチ 0
STP でのトポロジーの構築 ルートブリッジの選択 トポロジーの中に 台だけ存在出来る ルートブリッジを中心に木構造を作るのが Spanning Tree Protocol oot Bridge 3 4 5 BI( ブリッジ識別子 ) の数字は簡略化した表現とした ルートブリッジの選択とブリッジ識別子 ブリッジはそれぞれ固有のブリッジ識別子を持ちその値のもっとも小さいものがルートブリッジになる ブリッジ識別子は オクテットのブリッジ優先度とブリッジ MC アドレス (6 オクテット ) をつなげたものになる ブリッジ識別子 ブリッジ優先度 ( バイト ) ブリッジ MC アドレス (6 オクテット ) ブリッジ優先度はデフォルトでは 3768(0x8000) となっています
STP でのトポロジーの構築 ( リンクコスト ) リンクコスト スイッチには様々な速度 (0M 00M G 0G 等 ) のポートが存在する ポートの速度に応じてリンクのコストを付ける Bridge IとともにSpanning Treeのトポロジー決定の重要な要素の一つ 網内でポリシーをそろえる事が重要 ( ポリシーが揃っていないと障害時の切り分け作業が大変 ) かつては リンクコスト =000/ 速度 (Mps) とされていたが メディアの高速化に伴い IEEE80.[IEEE98a] では推奨コストを変更している (6bit ショート法 ) さらに IEEE80.tでは さらなる高速化に対応した推奨コストを提示している (3bitロング法) 80.tでは Link ggregationを組む場合には 速度によるリンクコスト /Link ggregationのコストとなる GbE(Gbps) のコストを 0.000 とすると 本の GbE で組まれた Link ggregation のリンクコストは 0.000 となる
STP でのトポロジーの構築 ( リンクコスト表 ) リンクコストの推奨値 データレート 4Mbps 0Mbps 6Mbps 00Mbps Gbps 0Gbps 00Gbps Tbps 0Tbps IEEE 80. 98a( ショート法 ) 推奨リンクコスト範囲 ( 推奨値 ) 00~000(50) 50~600(00) 40~400(6) 0~60(9) 3~0(4) ~5() IEEE80.t( ロング法 ) 推奨リンクコスト範囲 ( 推奨値 ) 00.000-0.000.000(.000.000) 0.000-.000.000(00.000).000-00.000(0.000) 00-0.000(.000) 0-.000(00) -00(0) -0() 3
STP でのトポロジーの構築 コスト計算 リンクコストを入れてみる oot Bridge LC:9 LC:4 Gbps LC:4 LC:00 00Mbps 0Mbps LC:00 LC:9 3 4 LC:9 リンク -X(00Mbps) LC:9 LC:9 5 LC:9 LC:9 リンク -Y(00Mbps) スイッチにてリンクパスコスト ( ルートブリッジへの最短距離 ) と方向を計算 LC:4 LC:9 oot Bridge LC:4 B: Cost:4 3 LC:9 5 B: Cost:0 LC:9 LC:00 LC:00 LC:9 B: Cost:3 4 LC:9 B: Cost:9 LC:9 LC:9 B: Cost:3 4
STP BPU BPU(Bridge Protocol ata Unit) Spanning Tree の作成維持管理を行う スイッチ ( ブリッジ ) 間で通常 秒間隔で送信 交換される 二種類の BPU Configuration BPU(Hello パケットとも呼ばれる ) Topology Change Notification BPU Configuration BPU( トポロジー構築に使用 ) Protocol I=0000h Protocol Version I=00h BPU Type=00000000b Flags Topology Change Notification BPU ( トポロジー変更時に使用 ) Protocol I=0000h Protocol Version I=00h BPU Type=0000000b 宛先 MC 0:80:C:00:00:00 LLC TYPE SP,SSP 0x4 oot I oot Path Cost Bridge I Port I Message ge Max ge Hello Time Forward elay 8 4 8 発信するスイッチが知りえる最もブリッジ I が小さいスイッチの I (oot Bridge と思われるブリッジ I) oot Bridge までの Path コスト Flag には Topology Change Flag と Topology Change cknowledgement Flag の二種類が定義されている 5
STP での BPU の交換 Spanning Tree の構築は Configuration BPU の交換によって行われる 各スイッチは 自身が知っている最も条件のいいルートへのコストを BPU を使って広報する 自身が知っているよりもより条件の良いコストを示す BPU を受け取ったら受け取ったポートのコストを足して自身が採用するとともに 他のスイッチへその情報を広報する LC:4 LC:9 oot Bridge LC:4 B: Cost:0 B: Cost:4 LC:00 3 LC:9 リンク -X 5 B: Cost:0 LC:9 LC:00 B:3 Cost:0 B: Cost:00 3 B: Cost:3 4 LC:9 LC:9 B:4 Cost:0 B: Cost:9 LC:9 LC:9 B:5 Cost:0 B: Cost:9 3 B: Cost:3 リンク -Y 6
STPでのトポロジーの構築 ( ポートの役割の決定 ) ルートポート (oot Port) スイッチからルートブリッジに到達するのに利用出来るポートをつだけにする事によりループを防ぐと言う方法をSTPは取っているが このポートの事をルートポートと言う スイッチの中で最もルートブリッジに少ないパスコスト ( リンクコストの合計 ) で行けるポートがルートポートとなる スイッチが受信したBPUにその受け取ったポートのコストを足した結果スイッチの中で一番コストが小さくなったポートが一つルートポートとして選択される ポート a から受け取った oot Path Cost(9) に受け取ったポートのコスト (00) を足した条件が一番優れた条件 ( 値が小さい ) なので ルートポートにしよう oot Bridge LC:9 スイッチ主体で考えるのがルートポート! LC:9 BPU oot Path Cost=9+(00) LC:9 LC:00 a LC:00 b c LC:9 スイッチ LC:00 BPU:oot Path Cost=9+9+(00) BPU oot Path Cost =9+9+9+(00) 7
STPでのトポロジーの構築 ( ポートの役割の決定 ) 代表ポート (esignated Port) リンクからルートブリッジに到達するのに利用出来るポートをつだけにする事によりループを防ぐと言う方法をSTPは取っているが このポートの事を代表ポートと言う ルートブリッジのポートは全て代表ポートとなる ( ルートブリッジ以外の代表ポートを持つブリッジを代表ブリッジ =esignated Bridgeと呼ぶ ) リンクに流れているBPUをそのポートにて観察しそのブリッジが持っているコストより優れたものが流れていない場合に そのリンクからルートブリッジに到達するのにそのポートが一番有利な条件と考え そのポートを代表ポートとする 他のスイッチが広報しているルートブリッジまでの距離 (oot Path Cost) よりも自分が広報しているコストの方が小さいからLink Network の代表ポートになろう! ルートまでのコスト : BPU oot Path Cost= Link Network リンクネットワーク主体で考えるのが代表ポート! BPU oot Path Cost=0 ルートまでのコスト :0 ルートまでのコスト :9 BPU oot Path Cost=9 8
STP でのトポロジーの構築 ( ポートの役割の決定 ) ルートポートでも代表ポートでもないポートはブロッキング状態 ( 非転送 ) になる oot Bridge B: Cost:0 LC:9 B: Cost:4 3 B: Cost:3 4 B: Cost:9 リンク -X LOOP FEE ルートポート (oot Port) 代表ポート (esignated Port) ブロックポート (Block Port) ルートポートと代表ポートだけがフォワーディング状態 ( 転送 ) になる フォワーディング状態にあるポートとリンクだけを繋ぐとループのない木構造になっている oot Bridge LC:4 LC:00 LC:4 LC:00 LC:9 3 4 LC:9 LC:9 LC:9 LC:9 リンク -X 5 B: Cost:3 リンク -Y 5 リンク -Y LC:9 9
STP でのトポロジー構築 ポート識別子 ブリッジ内のポートはそれぞれシャーシ内で固有のポート識別子を持つ ポート識別子は オクテットのポート優先度とオクテットポート番号をつなげたものになる 代表ポートの選択がパスコストの比較だけではつかなかった時にこの数値が低い方のポートが代表ポートになる ポート識別子 (Port-I) ポート優先度 ( バイト ) ポート番号 ( オクテット ) ポート優先度はデフォルトでは 8(0x80) となっている Port-I: ルートブリッジ Port-I:0 代表ポートの選択でパスコストが同じ場合 ( 同シャーシの場合など )Port- Iが小さいほうが 代表ポートとなる 0
STP でのトポロジー再構築 障害発生の場合 スイッチはルートポートの断を検出すると Spanning Treeの再計算を開始する ここでの計算の方法は通常のSTP 構築と同じ 断発生 LC:4 LC:9 oot Bridge B: Cost:0 LC:9 LC:4 LC:00 LC:00 B: Cost:4 3 B: Cost:3 LC:9 リンク -X LC:9 5 LC:9 B: Cost:3 ルートポート (oot Port) 代表ポート (esignated Port) LC:9 4 B: Cost:9 LC:9 リンク -Y ブロックポート (Block Port)
STP での FB フラッシュ ( 消しこみ ) の必要性 MC: oot Bridge 冗長パス 何故トポロジー変更中に Flag=TCN の BPU を oot Bridge が送信して FB の内容の消しこみを行う必要があるのか? STP のトポロジー変更が発生した後で FB に以前学習した内容が残っていると 正常な通信が出来ない FB の中身を消せば通信出来るようになる MC: MC: oot Bridge oot Bridge アクティブ アクティブ
STP での FB フラッシュ STP 構築以外に網全体の FB をフラッシュする為の機構が必要となる トポロジーの変更を検出したスイッチは ルートポートより Topology Change Notification BPU(TCN BPU) を送出する 代表ポートは TCN-BPU を受け取ると BPU の Flag=TCack(Topology Change cknowledgement) を設定し送り返し TCN-BPU を受信した事を通知し さらに上位のスイッチに TCN-BPU を送信する B: Cost:0 oot Bridge LC:9 LC:00 6BPU(Flag=TCack) LC:00 5TCN BPU LC:9 B: Cost:57 3 B: Cost:57 トポロジー変更メッセージ TCN BPU 4 B: Cost:9 LC:9 LC:9 LC:9 リンク -X LC:9 BPU(Flag=TCack) 5 LC:9 B: Cost:38 3TCN BPU リンク -Y 4BPU(Flag=TCack) ルートポート (oot Port) 代表ポート (esignated Port) ブロックポート (Block Port) 3
STP での FB フラッシュ TCN BPU を受信した ルートブリッジは 一定期の間 送信する Configuration BPU を Flag=TC(Topology Change) として送信し 全てのスイッチにトポロジー変更が発生した事を通知する Flag=TC の BPU を受信したスイッチはフラグが設定されている期間中 FB の中身をより短い時間で ge Out するようにする ging Time( 一般には 5 分 ) を Forward elay(efault=5 秒 ) に変更する事により 速やかに FB を忘れさせる LC:9 B: Cost:0 oot Bridge LC:9 LC:00 LC:00 BPU(Flag=TC) LC:9 B: Cost:57 3 B: Cost:57 4 B: Cost:9 LC:9 LC:9 リンク -X LC:9 5 LC:9 B: Cost:38 リンク -Y ルートポート (oot Port) 代表ポート (esignated Port) ブロックポート (Block Port) 4
STP でのポート状態 STP でブロッキングポートが ルートポートや 代表ポートに変更されたとしてもすぐに転送状態 (Forwarding) とはならない ループ防止 無駄なフラッディングを防ぐ ルートポートであるとか代表ポートであるとかいったポートの役割とは別に ポートにはいくつかの状態がある ISBLE 状態 シャットダウンされているか 電源の入ってない状態 ( このポートは使えない ) BLOCKING 状態 データフレームの転送を行わない ルートポートや代表ポートになっていないポートはこの状態に落ち着く BPUの送信は行わないが BPUの受信は行っており その処理も行われる ; 電源投入時は全てのポートがこの状態 LISTENING 状態 データフレームの転送は行わない BPUの受信を行う状態 必要であればBPUの送信も行う Spanning Treeを構築中のスイッチはこの状態にある 5
STP でのポート状態 LENING 状態 転送を始める前は FB の内容が空である為そのまま転送をはじめるとフラッディングが多発する これをおさえる為 転送を開始する前に流れているフレームから FB の内容の学習を行う FOWING 状態 通常の転送状態 利用可能? BPU 処理 MC 学習 データ転送 ISBLE 状態 BLOCKING 状態 ( 受信のみ ) LISTENING 状態 LENING 状態 FOWING 状態 6
STP でのポート状態 STP ポート状態遷移 LISTENING BPUをMax ge(efault 0 秒 ) 受 Forward elay(efault 5 秒 ) の間け取らないかBPUによってPか LISTENINGの状態が経過した場合 Pになる可能性が示された時 BPUによってBLOCKINGであるべきと判断された時 BLOCKING BPU によって BLOCKING であるべきと判断された時 LENING BPU によって BLOCKING であるべきと判断された時 Forward elay(efault 5 秒 ) の間 LENING の状態が経過した場合 FOWING P や P としてフレームの転送を開始 7
STP でのポート状態 トポロジー変更により BLOCKING 状態であったポートがルートポート (P) や代表ポート (P) に変更され 転送状態になるにはForward elay x 待たなくてはならない スイッチの起動時やポートをリンクアップさせてすぐの状態も同様 ( スイッチにPCに付けてすぐに通信出来ないのはこれが原因の事もある ) BPU によって P か P になる可能性が示された時 LISTENING P か P になれるかも? 知れないが他のスイッチが流す BPU をもう少し観察しよう Forward elay(efault 5 秒 ) の間 LISTENING の状態が経過 BLOCKING 自分より P や P になるに相応しいものがいる事を示す BPU は受信しなかったから FOWING 状態になる準備をしよう LENING efault 30 秒待ち Forward elay(efault 5 秒 ) の間 LENING の状態が経過 P や P としてフレームの転送を開始 FOWING 8
STP でのポート状態 上位のブリッジから BPU を MX ge 時間受け取らなかった場合は結果的に MX ge + (Forward elay x ) 待たなくては転送を開始出来ない BPU を Max ge (efault 0 秒 ) 受け取らない BLOCKING efault 50 秒待ち LISTENING Forward elay(efault 5 秒 ) の間 LISTENING の状態が経過 自分より P になるに相応しいものがいる事を示す BPU は受信しなかったから FOWING 状態になる準備をしよう Forward elay(efault 5 秒 ) の間 LENING の状態が経過 P になれるかも? 知れないが他のスイッチが流す BPU をもう少し観察しよう LENING P や P としてフレームの転送を開始 FOWING 9
STP パラメータの確認 パラメータ Hello time 説明 BPU の送信間隔 efault 値 ( 設定可能範囲 ) 秒 (-0) Forward elay LISTENNING や LENING に使う時間 5 秒 (4-30) MX ge BPU がタイムアウトする時間 0 秒 (6-40) Bridge Priority Port Cost Port Priority スイッチの優先度 小さいほど ルートブリッジになりやすい そのポートのコストを示します 小さいほど選択されやすくなる ポート間でパスコストが同じだった場合に比較される値 小さいほど選択されやすくなる 3768(0-65535) 速度に応じて設定 6(0-55) 30
STP のまとめ 通常 STP が止まるのは LISTENING!LENING!FOWING にかかる Forward elay x =efault 30 秒の時間 ただし 最悪の場合 MX ge + Forward elay x =efault 50 秒の時間止まる Forward elay と MX ge を設定変更する事も可能 それでも 4 秒 (6+4x) を切る事は出来ない パラメータはルートブリッジに設定されたものが採用される 他のスイッチはルートブリッジが流す BPU に記述されたパラメータを採用する STP は特に何も設定しなくても動作するが最低限ルートブリッジとバックアップでルートブリッジになる装置がネットワークの適切な位置で適切な性能のスイッチになるように設計されなくてはならない STP のパラメータはむやみに変更しない ( 障害時の解析が大変になる ) 変更する時はきちっと設計を行い 全てのスイッチが同じポリシーで動作するようにする事 STP のメリット 標準的なプロトコルであり 異ベンダ機器の相互接続が可能になっている 物理トポロジーを選ばない STP のデメリット 標準の STP は切り替えに時間がかかる トポロジー全体の事を考えて オペレーションを行わなくてはならない PC などをつなげる場合も Forward elay x の時間待たされる 3
STP の拡張 (Port fast) スイッチにPCなどを接続した後 LISTENING!LENING!FOWINGと状態変化する時間 ( 通常 30 秒 ) 待たなくてはならないのは使いにくい スイッチが接続される可能性のないポートに関しては 事前に設定しておくことにより いきなり FOWINGになるようにしておく BPUをポートで受信した場合はポートをブロッキング状態にする Ciscoで実装しているが多くのスイッチで同様の効果を得る設定は出来る LISTENING!LENING!FOWING と待つと efault 30 秒かかる HCP に失敗したりする スイッチが接続されない事が分かっているのなら いきなり FOWING にしても問題ない ( すぐ使える ) 3
STP の拡張 (Uplink fast) CiscoによるSTPの拡張 アクティブなリンクが断となった場合に バックアップのリンクにすぐ切り替わる機能 ( LISTENING!LENING!FOWINGの状態変化にかかる時間をとばす ) エッジに設置したスイッチが上位のスイッチに 本のリンクで接続されている場合にエッジに設定出来る 上位のスイッチのFB 構築を支援する為 Uplink fastでエッジスイッチが切り替わりを発生させた場合に エッジスイッチは自身がFB 内に学習済みのアドレスを送り元アドレスとする マルチキャストフレームを新しくアクティブにしたリンクに流す oot Bridge スイッチ スイッチ エッジスイッチ a ブロックポート (Block Port) UP Link Fast に設定 スイッチ スイッチ エッジスイッチ a 自身の FB の内容を上位のスイッチに教えるようなマルチキャストフレームを送信 LISTENING,LE NING を経ずにいきなり転送を開始する 33
apid Spanning Tree Protocol ループフリーな論理トポロジーを維持する機構 (STP 高速化 ) 34
STP(apid Spanning Tree Protocol)80.w IEEE 80.w 標準 STPの切り替わり動作を高速化する為に作られた (30 秒や50 秒かかるのは遅い ) 構築される論理木構造はSTPと同じ ( 同じパラメータを使う ) Max ge Forward elayのパラメータはbpuを受信しないポートを代表ポートとする場合か あるいはSTPと混在して使う時のみ有効 80.wは80.の上位互換性がある Point-to-Pointの接続が基本 BPUの交換にHandshake 方式の導入 ポートの役割の種類の追加 Handshake 方式 Proposal BPU( 私の条件はこうです ) Proposal BPU( 私の条件はこうです ) 条件の比較 (Synchronization) oot Port になった Port だけが greement を出す greement BPU( 分かりましたあなたを上位と認めます ) Bridge Priority: Bridge Priority: oot Bridge 35
STP におけるポートの役割 (Port ole) ポートの役割 ルートポート (oot Port) 代表ポート (esignated Port) 説明 oot ブリッジへ最も少ないコストで到達出来る経路を提供するポート STP と同じ リンクから oot ブリッジへ最も少ないコストで到達出来る経路を提供するポート STP と同じ 定常状態 Forwarding Forwarding アルタネートポート (lternate Port) ルートポートに変わる二番目に少ないコストでルー Blocking トブリッジに到達出来るルートブリッジへの経路を提供するポート Next oot Port バックアップポート (Backup Port) ディスエーブルドポート (isabled Port) 指定ポートが提供するリンクへの経路に変わるリンクへの経路を提供するポート Next esignated Port 故障しているか シャットダウンされているポート STP と同じ Blocking isabled 36
STP で使用される BPU STP-BPU BPU ver として定義 Hello 間隔ごとにスイッチ間で交換 (3Hello time で過去の情報は無効になる ) Flag の部分を拡張 Topology Change Notification BPU は使わない (STP とのインターワークでのみ利用 ) STP BPU Protocol I=0000h Protocol Version I=0h () BPU Type=0000 000b () Flags oot I oot Path Cost Bridge I Port I Message ge Max ge Hello Time Forward elay 8 4 8 FLG を大きく拡張 Bit 位置 Flagの意味 0 Topology Change Proposal -3 Port ole 00 Unknown Port 0 lternate or Backup Port 0 oot Port esignated Port 4 Learning 5 Forwarding 6 greement 7 Topology Change ck 37
STP でのトポロジー構築 STPにおける Handshake Proposal oot=3 Cost=0 ole=p 3 oot Bridge 3 greement oot= ole=p LC:9 接続 LC:9 Proposal oot= Cost=0 ole=p oot Bridge 条件比較 (Synchronization) 番のスイッチを oot ブリッジと認め ポートを oot ポートにしました! oot Bridge 二つのスイッチが接続されると ポートを代表ポートとし状態を非転送 ( ブロッキング ) にした上で双方のスイッチが自身が oot Bridge であり 当該ポートが代表ポート (P) であるとする Proposal BPU を送信する Proposal BPU を受信すると 自身の持つ oot 情報及びコストと比較し 相手が勝る場合 相手を代表ポート (P) と認める Proposal BPU を受信したポートを oot ポート (P) として転送状態にし その他のポートをブロック状態にする 相手に greement BPU を送信する 自身が勝る場合 相手から greement BPU を受け取ると代表ポートとしてすぐに転送を開始する 38
STP でのトポロジー構築 STP による論理トポロジーの構築 () ブリッジ 4 の追加 ()Proposal の交換 oot Bridge oot Bridge LC:9 LC:0 LC:9 Proposal oot= Cost=0 ole=p LC:0 Proposal oot=4 Cost=0 ole=p 3 4 LC: oot Bridge 3 4 LC: oot Bridge (3)Synchronization とgreement oot Bridge Proposal oot= Cost=9 ole=p Proposal oot=4 Cost=0 ole=p LC:9 LC:0 greement oot= ole=p ルートポート (oot Port) ブロッキング 3 LC: 4 Proposal を送信して Forwarddelay x の時間 greement がないので P になる oot Port でないので greement は出さない 代表ポート (esignated Port) アルタネートポート (Block Port) Proposal 交換中のポートがブロッキング ( 非転送状態 ) である事に注意 39
STP でのトポロジー構築 STP による論理トポロジーの構築 ( 続き ) (4) ブリッジ の追加 (5) oot Bridge LC:9 LC:0 Proposal oot= Cost=0 ole=p 3 4 LC: (6) oot Bridge LC:9 3 4 LC: LC:0 Proposal oot= Cost=9 ole=p LC:9 接続 Proposal oot= Cost=9 ole=p LC:9 Proposal oot= Cost=0 ole=p oot Bridge oot Bridge LC:9 oot Bridge LC:0 3 4 LC: greement oot= ole=p LC:9 greement 送信中はそのスイッチの他のポートがブロッキング ( 非転送状態 ) である事に注意 oot Bridge 40
STP でのトポロジー構築 STP による論理トポロジーの構築 ( 続き ) (7) greement oot= ole=p (9) 完成 Proposal を送信して Forwarddelay x の時間 greement がないので P になる LC:9 LC:0 3 4 greement oot= ole=p LC: LC:9 oot Bridge LC:9 LC:0 3 LC: 4 LC:9 oot Bridge oot Port でないので greement は出さない Proposal oot= Cost=4 ole=p Proposal oot= Cost=39 ole=p (8) LC:9 LC:0 3 4 LC: LC:9 oot Bridge 4
STP での障害回復 ( アルタネートポート ) 障害発生の場合 ( アルタネートポートがあるとき ) () 障害発生 LC:9 LC: LC:0 3 4 断発生 アルタネートポートは二番目に oot ブリッジに近いポート ルートポート断を検出するとすぐに転送状態に切り替える (STP では LISTENNING->LENING->FOWING と言う状態変化を経なくては切り替えられなかった ) LC:9 oot Bridge () すぐにアルタネートポートを転送状態にする LC:9 LC:0 LC: 3 4 LC:9 oot Bridge 4
STP での障害回復 障害発生の場合 () 障害発生 Topology Change LC:9 LC: 断発生 LC:0 3 4 oot Bridge LC:9 スイッチ はルートポートの断を検出すると トポロジー変更があった事を示す BPU を送信する ()Proposal Proposal oot= Cost=4 ole=p LC:9 3 LC: 4 oot Bridge LC:9 (3)greement greement oot= ole=p LC:9 3 LC: 4 LC:9 oot Bridge スイッチ 3 は TCN を受信後 ただちに Handshake を開始 Handshake 完了で 新トポロジー完成 43
STP のまとめ トポロジー変更 LISTENNING->LENING->FOWING のステートを Handshake を導入したことによりはぶけるので STP よりも高速 トポロジー変更に伴う FB のフラッシュ STP では Topology Change Notification BPU は使わない そのかわり Topology Change Flag を立てた BPU を使って 他のスイッチにトポロジー変更が発生した事を教える Topology Change Flag を立てた BPU を受信したスイッチは他のポートに Topology Change Flag を立てた BPU を送信するともに FB のフラッシュを行う 80. との接続 Proposal を投げて greement を返してこなければ (Forward elay x の時間 ) 80. の動作をする 44
MSTP(Multiple Spanning Tree Protocol)80.s STPで複数のトポロジー ( インスタンス ) を扱いたいと言う要求に答える為に登場 IEEE 80.s 標準 80.sは80.の上位互換性がある STP 80.wと連携して使われる VLNごとに別々のSTPのインスタンスを動作させる方法 (PVSTなど) もあるがVLN 数が増えるとそれなりに負荷が大きくなるので MSTPでは複数のインスタンスを一つのBPUで扱えるようにしている VLN: VLN: 負荷分散などの為に VLN ごとに経路を変えたい事がある 45
MSTP MSTPには80. 互換の親玉になる 個のInternal Spanning Tree(IST) と多数の Multiple Spanning Tree Instance(MSTI) がある 個々のVLNはIST( すべてのVLNがマッピングされている ) と任意のMSTIインスタンスつにマッピングされ それらのインスタンスの挙動に同期した挙動を行う MSTIごとに BPU(MSTPのBPUはversion3) にM-recordと呼ばれるレコードが追加される 個のBPUに多数のM-recordが搭載される為 インスタンスが増えてもBPUは増えない egionと呼ばれる概念がありmstiはリージョン内に閉じ込められるが ISTは egionをまたいで存在する IST は egion 間を跨ぐ egion MSTI は egion 内だけで終始する egion egion IST: インスタンス 0 MST: インスタンス -5 46
STP ファミリ以外の冗長化プロトコルノード冗長化 ( メッシュトポロジー ) ESP VSP FVP GVP 47
ノード冗長化プロトコル ( メッシュトポロジー ) ネットワークコアにあるスイッチを二重化し コアに接続されるエッジ側のスイッチはコアに二重帰属する構成が基本 Edge-Core トポロジーとも呼ばれる 標準的なプロトコルはない ベンダ独自の実装 ESP : Extreme VSP : Foundry FVP : Force0 GVP( 仮称 ) : 日立製作所コアの 台だけを転送状態にしておく Master Backup コア (Master のみフレームの転送を行う ) エッジ上位のスイッチの切り替わりを検知する事により FB をフラッシュし高速な切り替わりに対応する 48
ノード冗長化プロトコルの大規模化 大規模な冗長を組む場合は スイッチのペアごとに独立したのノード冗長化のインスタンスを作成し そのペアを通過するVLNはそのインスタンスの挙動に同期して動作をするようにする STPと比較して スイッチやリンクの障害がネットワーク全体のトポロジーの再構成に引き起こさない ( トポロジー変更が局所に閉じる ) と言うメリットがある リンク数は多くなりがち インスタンス ある程度の実績あり インスタンス B インスタンス C 49
ノード冗長化プロトコル (ESP) ESP(Extreme Standby outer Protocol) Extreme 社が開発した ノード冗長化プロトコル レイヤー とレイヤー 3 の冗長機能の両方の機能を提供している 冗長機能を必要とするスイッチに ESP 機能を持たせ 冗長を持たせている Master スイッチ : データの送受信を行っているSW Slave スイッチ : データの送受信を行わず 予備状態となっているSW(Standbyとも言う ) マスタvlan: ESPを管理するvlan マスタvlanのみESPのアルゴリズムを計算し 他の vlanはマスタvlanの動作に同期してmaster Slaveの選択を行う事が出来る Master 通信経路 Slave ESP を動作させるスイッチ ( ペア ) 50
ノード冗長化プロトコル (ESP) ESP マスターの選択 ESP を動作させるスイッチでは 定期的に制御フレーム (ESP hello packet) を交換し どのスイッチが最も Master にふさわしいかを判断している ESP マスターを決定する要素 ctive Port 数 スイッチの優先度 (Priority) トラッキング情報 (pingなど) システムMCアドレス ( 大きい番号のものが優先 ) これらの要素をタイブレークルールで比較していく ( 比較順は変更可能 ) 相手スイッチがMasterに遷移したと言う通知を受けた時 自身がMasterであったら 即座にSlaveへ状態遷移する ) ctive Port 数が 3 です優先度 0 です MC XXX です Master(0) ctive Port 数は同点だけど 優先度が高いから Master になろう ctive Port 数が 3 です優先度 です MC YYY です Slave() ctive Port 数は同点だけど 優先度が低いから Slave になろう 5
ノード冗長化プロトコル (ESP) リンク障害による切り替え Master(0) B Slave() フレームは Master となっているスイッチ を経由して流れている ctive port 数 3:3 同点 Priority 数 0: 0 の勝ち ( スイッチ がマスター ) 3 B B Master(0) Slave() Slave(0) Master() 障害 障害切り替え スイッチ を経由する通信経路で障害が発生 勝負前 ESP の機構により Master/Slave の切り替えが発生し フレームの流れる経路も変わる ctive port 数 :3 3 の勝ち ( スイッチ B がマスター ) 5
ノード冗長化プロトコル (ESP) ノード停止による切り替え Master(0) B Slave() フレームは Master となっているスイッチ を経由して流れている ctive port 数 3:3 同点 Priority 値 0: 0の勝ち ( スイッチ がマスター ) 障害 スイッチ が停止 B Slave() 3 Slave(0) B Master() Time Out により Master になる スイッチ B で hello packet が未受信となってあらかじめ設定した時間を越えると Slave スイッチは Master スイッチに障害が発生したと認識して Master となる 53
ノード冗長化プロトコル (ESP) Priority 変更による切り替え Master(0) B Slave() フレームは Master となっているスイッチ を経由して流れている ctive port 数 3:3 同点 Priority 値 0: 0 の勝ち ( スイッチ がマスター ) 3 Master(0) B Slave() (0) Slave(0) 切り替え B Master(0) スイッチ B に系を切り替える為に Priority 値を から 0 に変更する 勝負前 ESP の機構により Master/Slave の切り替えが発生し フレームの流れる経路も変わる ctive port 数 3:3 同点 Priority 値 0:0 0 の勝ち ( スイッチ B がマスター ) 54
ノード冗長化プロトコル (ESP WE) Master(0) B ESP の Master を経由してトラフィックが流れると当然その経路に従った FB の学習がなされる B Slave() B B Slave() Master(0) B B ESP の Priority などを変更して Master/Slave の関係が入れ替わった場合に そのままでは 古い FB の内容に従ってフレームの転送が行われる為 フレームが結果的に転送不能となる 3 ESP の切り替えを感知 B Slave() ESP Hello Master(0) B ESP の切り替えを感知 B FB の矛盾状態を防ぐ為 両端のスイッチは 上位のスイッチが Master/Slave の関係を変更した事を ESP Hello の内容変更を見る事により FB の内容を Flush する ( 消す ) これにより再度学習が行われ 正常な通信が行えるようになる 55
ノード冗長化プロトコル (VSP) VSP( Virtual Switch edundancy Protocol ) Foundry Networks 社が開発した ノード冗長化プロトコル レイヤー とレイヤー 3 の冗長機能の両方の機能を提供している 冗長機能を必要とするスイッチに VSP 機能を持たせ 冗長を持たせている Master スイッチ : データの送受信を行っているSW Backup スイッチ : データの送受信を行わず 予備状態となっているSW Topology Group: 複数のVLNをグループ化し Masterを共有する機能 VSP ware な装置は 系が切り替わり Master となったスイッチが送信する TC packets を受信すると FB をフラッシュするのではなく Backup 側に書き換える Master 通信経路 VSP ware VSP ware Backup VSP を動作させるスイッチ ( ペア ) 56
ノード冗長化プロトコル (VSP) VSP の priority(3-55 efault 00) の高い方が Master となる ポートがダウンすると priority が減る Priority x( 利用可能 Link 数 / 設定 Link 数 ) Tracking port により 特定のリンクの own により priority 値を制御可能 VSP Hello を使って priority 情報を交換 (efault 秒間隔 ) ctive 決定後は Hello は Master からのみ送信 Backup 側のスイッチは Master から ead interval 時間 Hello を受信しないと Hello packet を送信しはじめ さらに Hold-down interval 時間自分より priority の高い Hello を受けとらなければ Master となる 50*(3/3)=50 0*(3/3)=0 Master Backup 50*(/3)=00 0*(3/3)=0 Backup Master 設定 Priority=50 設定 Priority=0 設定 Priority=50 設定 Priority=0 57
ノード冗長化プロトコル (FVP) FVP( Force0 VLN edundancy Protocol ) Force0 社が開発した レイヤー ノード冗長化プロトコル 冗長機能を必要とするスイッチにFVP 機能を持たせ 冗長を持たせている Master スイッチ : データの送受信を行っているSW Standby スイッチ : データの送受信を行わず 予備状態となっているSW FVP omain: 複数のVLNをグループ化し Masterを共有する機能 FVP ware な装置は コアスイッチより flush address message を受信すると FB をフラッシュする Master 通信経路 FVP ware FVP ware Backup FVP を動作させるスイッチ ( ペア ) 58
ノード冗長化プロトコル (FVP) ポート数 priority 制御ポートの MC アドレス ( 低い方が有利 ) の順でタイブレークルールで比較し 勝った方が Master となる priority(-55 ただし 55 は強制 Slave) は高い方が Master となりやすい FVP Hello を使って priority 情報を交換 (efault 秒間隔 ) 通常は Master-Standby 間に張られた Core Link を使って Hello のやり取りを行う Core Link が断になった場合はアクセスリンク上のコントロール VLN を使って Hello のやり取りを行う (ual Master を防ぐ為 ) Standby 側のスイッチは Master から Message ge Timer 時間 Hello を受信しないと 遷移プロセスに移る Port=3 Priority=00 Port=3 Priority=50 Port= Priority=00 Port=3 Priority=50 Master Backup Backup Master 59
ノード冗長化プロトコル (FVP) ブロードキャストが帯域を無駄使いする事を防止 Master から port block message を受信すると該当する VLN の Standby 側のポートをブロックする ( これによって余計なブロードキャストが回りこまずに 帯域を有効活用出来る ) Broadcast VLN- Master- Backup-B S Backup- Master-B Unicast S VLN-B Broadcast VLN- Master- Backup-B S Backup- Master-B Unicast S VLN-B VLN- のブロードキャストによる帯域圧迫の影響を VLN-B が影響を受ける Port block message を受信する事により VLN- のトラフィックは S 側に転送されなくなる FVP はスイッチの対向でも使用出来る! VLN-B は VLN- の影響を受けない Core switch VLN 00(primary) VLN 00(redundant) VLN 00(redundant) ccess switch VLN 00(primary) 60
ノード冗長化プロトコル (GSP) GSP( GS4000 Switch edundant Protocol = 仮称 ) ( 株 ) 日立製作所が開発した ノード冗長化プロトコル 冗長機能を必要とするスイッチに GSP 機能を持たせ 冗長を持たせている Master スイッチ : データの送受信を行っているSW Backup スイッチ : データの送受信を行わず 予備状態となっているSW VLN Group: 複数のVLNをグループ化し 制御する機能 マスターの切り替えが発生すると 新マスタは全隣接スイッチに GSP Flush equest を送信する GSP ware な装置はそれを受信すると FB をフラッシュする Master 通信経路 GSP ware GSP ware 親間直結リンク Backup GSP を動作させるスイッチ ( ペア ) 6
ノード冗長化プロトコル (GSP) GSP マスターの選択 GSP を動作させているスイッチでは 定期的に制御フレーム (GSP dvertise) を交換し どのスイッチが最も Master にふさわしいかを判断している GSP マスターを決定する要素 ctive Port 数 スイッチの優先度 (Priority) 装置 MC( 大きい番号のものが優先 ) これらの要素をタイブレークルールで比較していく ( 比較順は変更可能 ) デュアルマスター防止策 切り替え時のデュアルマスターの可能性 ( デュアルマスターはループになる ) を排除する為の機構を持っている ( 瞬間ループも FB が狂うので絶対に駄目!) () マスターになろうとするスイッチはまず マスター待ち状態になる ( ブロック状態のまま ) () バックアップになろうとするスイッチはすぐにバックアップになり バックアップになった事を GSP dvertise を使って広報 (3) マスター待ちのスイッチは相手側のスイッチがバックアップになった事を示す GSP dvertise を受信すると マスターとして動作しはじめる GSP dvertise を規定回数受信しないと (-55 efault=3) で相手不定状態になる オプション指定時は 相手不定状態と親間直結リンク断条件組み合わせでバックアップスイッチはマスターとして動作しはじめる 6