スイッチング
スパニングツリー
STP(Spanning Tree Protocol)
STP
・冗長構成のスイッチドネットワークでレイヤ2のループを防ぐために考え出された機能
・ブロッキングポートと呼ばれる(非指定ポートとも呼ばれる)ポートを選出する
・ブロッキングポートは、データフレームを転送しないことによりループを防ぐ
主なSTP
STPは大きく「STP」と「RSTP」と「MSTP」の3種類に分類される
STPの規格とインスタンス
・IEEE802.1d(IEEE標準) 全体で一つ(CST)
・PVST+(CISCO独自) VLANごとに一つ(PVST+)
RSTPの規格とインスタンス
・IEEE802.1w(IEEE標準) 全体で一つ(CST)
・Rapid PVST+(CISCO独自) VLANごとに一つ(PVST+)
MSTPの規格とインスタンス
・IEEE802.1s(IEEE標準) 複数のVLANで1つ(MST)
インスタンス
スパニングツリーはインスタンス(トポロジー)の構成方法により「CST」と「PVST+」と「MST」の3種類に分類される
CST(Common Spanning Tree)
・VLANの数に関係なく単一のインスタンスを構成する
・ルートブリッジやブロッキングポートを分けるなどの負荷分散が出来ない
PVST+(Per VLAN Spanning Tree Plus)
・VLANごとにインスタンスを構成するため、負荷分散などの設計を柔軟に行える
・VLANの数が多くなるとスイッチのCPUや帯域にかかる負荷が高くなってしまう
・CiscoスイッチでPVST+を実装する場合は、スパニングツリーモードを「pvst」または「rapid-pvst」にする
MST(Multiple Spanning Tree)
・複数のVLANを1つのグループにまとめてインスタンスを構成するため、負荷分散などの設計を柔軟に行える
・CiscoスイッチでMSTを実装する場合は、スパニングツリーモードを「mst」にする
スパニングツリーモードの設定
・(config)#spanning-tree mode pvst
PVST+(STP)を有効にする
・(config)#spanning-tree mode rapid-pvst
Rapid PVST+(RSTP)を有効にする
・(config)#spanning-tree mode mst
MSTを有効にする(MSTはRSTP上で動作するため、RSTPも有効になる)
STP各役割の選出
1.ルートブリッジ
選出場所:L2ネットワークに一つ
選出方法:最小ブリッジID
STPステート:ー
2.ルートポート(RP)
選出場所:各スイッチに一つ(ルートブリッジ以外)
選出方法:最小ルートパスコスト(ポート)→最小送信元BID→最小送信元ポートID
STPステート:フォワーディング
3.指定ポート(DP)
選出場所:各セグメントに一つ
選出方法:最小ルートパスコスト(スイッチ)→最小送信元BID→最小送信元ポートID
STPステート:フォワーディング
4.ブロッキングポート(BP) (非指定ポート:NDPとも呼ばれる)
選出場所:L2ループ毎に一つ
選出方法:RP、DPに選出されなかったポート全て
STPステート:ブロッキング
STPの便利な法則
・ルートブリッジのポートは全てDP
・RPの対向ポートは必ずDP
*リピータハブを利用する場合や、ケーブルの両端を自身のスイッチに接続するような特殊な場合を除く
STPの基本用語
・ブリッジID(BID)
ブリッジプライオリティ(デフォルト32768)+ MACアドレス
・ポートID
ポートプライオリティ(デフォルト128)+ ポート番号
・ポートパスコスト
ポートが動作している速度によって決められる値(速度が速いほどコストが低い)
・ルートパスコスト
ルートブリッジまでのポートパスコストの総和(ルートブリッジからのBPDU受信時にルートパスコストに加算される)
・BPDU
スパニングツリープロトコルを実装しているスイッチ間で情報を交換するために利用するフレーム(ルートブリッジのIDやルートブリッジ等が含まれている)
・セグメント
LANセグメント(コリジョンドメイン)
スパニングツリーの情報の確認
#show spanning-tree [vlan {VLAN番号} ]
ブリッジプライオリティ
・スイッチの優先度を表す値
・ルートブリッジの選出やポートの役割を選出する際に用いられ、プライオリティ値の小さいスイッチが優先される
ブリッジプライオリティの設定
・(config)#spanning-tree vlan {VLAN番号} {priority {プライオリティ値} }
プライオリティ値は0~61440から4096の倍数で指定。デフォルトは32768
・(config)#spanning-tree vlan {VLAN番号} {root primary}
現在のルートブリッジのプライオリティより小さい値にする(最小は4096)
・(config)#spanning-tree vlan {VLAN番号} {root secondary}
プライオリティを「28672」にする
ショートパスコストとロングパスコスト
・パスコストには、ショートパスコストとロングパスコストという2種類の方式がある
・ショートパスコストはSTPとRSTPのデフォルトのパスコストで、16ビットの範囲(1から65536の範囲)から指定できる方式
・ロングパスコストはMSTモードのデフォルトのパスコストで、32ビットの範囲(1から200,000,000の範囲)から指定できる方式
ポートパスコスト
・各ポートのコストを表す値で、ルートパスコストを算出する際に用いられる
・ポートが動作している速度によって自動的に決定されるが、手動で設定することもできる
・手動で設定したポートパスコストは他のスイッチに伝搬されることはなく、設定したスイッチ内部でのみ有効になる
ショートパスコスト
10Mbps 100
100Mbps 19
1000Mbps(1Gbps) 4
10000Mbps(10Gbps) 2
100000Mbps(100Gbps) 未対応
1000000Mbps(1Tbps) 未対応
ロングパスコスト
10Mbps 2000000
100Mbps 200000
1000Mbps(1Gbps) 20000
10000Mbps(10Gbps) 2000
100000Mbps(100Gbps) 200
1000000Mbps(1Tbps) 20
パスコスト方式の変更
・(config)#spanning-tree pathcost method short
ショートパスコスト方式に変更する(STPとRSTPのデフォルト)
・(config)#spanning-tree pathcost method long
ロングパスコスト方式に変更する(MSTのデフォルト)
ポートパスコストの設定
(config)#spanning-tree pathcost method [vlan {VLAN番号} ] cost {コスト}
ショートパスコストを使用している場合は1~65536、ロングパスコストを使用している場合は1~200000000から指定)
STPタイマー
・Hello Time 2秒 BPDUの送信間隔
・Max Age 20秒 BPDUの受信を待つ時間
・Forward Delay 15秒 リスニングとラーニングが使用する待機時間
STPのポート状態と収束
・ディセーブル
ネットワーク管理者によってシャットダウン、もしくは障害が発生しシステムによってシャットダウンされた状態
・ブロッキング
Max Age(デフォルト20秒)の間、BPDUを受信しなかったらリスニングへ移行
・リスニング
Forward Delay(デフォルト15秒)の後、ラーニングまたはブロッキングへ移行
・ラーニング
Forward Delay(デフォルト15秒)の後、フォワーディングへ移行
・フォワーディング
BPDU(Bridge Protocol Data Unit)に含まれる主な情報
・ルートID(ルートブリッジのブリッジID)
・ブリッジID(自身のブリッジID)
・パスコスト(ルートブリッジに至るまでのルートパスコスト)
・ポートID(自身のポートID)
・Helloタイム(BPDUの送信間隔)
ブリッジIDの形式
・STPのルートブリッジを選出するために用いられるID
・ブリッジプライオリティとMACアドレスで構成される
拡張システムIDを使用している場合のブリッジID
・プライオリティは4096の倍数で指定する
・拡張システムIDは12ビット(VLAN IDと同じ値)
・プライオリティ値は4ビット
STPの主な機能
・PortFast
スパニングツリーの計算をせず即座にデータの送受信を可能にする
・UplinkFast
直接的な障害の収束を早める
・BackboneFast
間接的な障害の収束を早める
・ルートガード
上位BPDUを受信したポートを使用不可にすることで想定外のスイッチがルートブリッジになってしまうことを防ぐ
・BPDUガード
BPDUを受信したポートを使用不可にすることでスイッチの誤接続を防ぐ
BPDUを受信するとerr-disabledにする
PortFastを有効にしたポートに設定することが多い
・BPDUフィルタリング
BPDUの送受信を止める
PortFastの設定で使用する主なコマンド
・(config)#spanning-tree portfast default
すべてのアクセスポートに一括でポートファストを有効化する
・(config-if)#spanning-tree portfast
インターフェースごとにポートファストを有効化する
・(config-if)#spanning-tree portfast trunk
トランクポートでポートファストを有効化する
PCを接続しているポートにPortFastを設定する理由
・PCはスパニングツリーに参加しないので「リスニング」と「ラーニング」のプロセスは必要ないため
・PCの電源オン/オフで発生するトポロジ変更通知を抑制するため
RSTP(Rapid STP)
RSTP
・STPの後継プロトコルで、STPにいくつかの機能を追加することで収束するまでの時間を短縮している
・用語や基本的な動作などはSTPと同じため、RSTPはSTPと互換性がある
STPとRSTPの主な違い
・ポートの状態(RSTPはディスカーディングを追加)
・ポートの役割(RSTPは代替ポートとバックアップポートを追加)
・収束までの時間(STPは最大50秒、RSTPは1~3秒)
RSTPのポートの状態
・ディスカーディング(Disccarding):MACアドレス学習をしない:データ転送をしない
・ラーニング(Learning):MACアドレス学習をする:データ転送をしない
・フォワーディング(Forwarding):MACアドレス学習をする:データ転送をする
RSTPポートの役割のまとめ
・ルートポート(Root Port)
各スイッチごとにルートブリッジへの最適なパスコストを持つポート(ルートブリッジ以外)
・指定ポート(Designated Port)
各セグメントごとにルートブリッジへの最適なパスコストを持つポート
・代替ポート(Alternate Port)
ルートポートの代替ポート(ルートポートの次に最適パスコストを持つポート)
・バックアップポート(Backup Port)
指定ポートの代替ポート
代替ポートとバックアップポート
・STPのブロッキングポート(ループを防ぐためのポート)に相当するポート
・代替ポートはルートポートの代替になるので、ルートポートがダウンしたときは即座にルートポートの代わりとして動作する
・バックアップポートは指定ポートのバックアップになるので、指定ポートがダウンしたときは即座に指定ポートの代わりとして動作する(ハブを利用したループ構成時に動作)
RSTPポートの選出
選出も基本的にSTPと同じ
1.最小ブリッジIDを持つスイッチが「ルートブリッジ」になる
2.スイッチの中で最小ルートパスコストを持つポートが「ルートポート」になる
3.ルートポートのルートパスコストを対向スイッチと比較して最小ルートパスコストを持つスイッチのポートが「指定ポート」になる
4.指定ポート以外のポートが「代替ポート」になる
RSTPのスイッチ間の接続
RSTPは、スイッチ間の接続を「シェアードリンク」と「ポイントツーポイントリンク」の2つに分類している
シェアードリンク
・スイッチ間にハブが入っている接続、またはスイッチのポートが半二重に設定されている場合もシェアードリンクに分類される
・シェアードリンクの場合はSTPタイマーを使った収束を行う
ポイントツーポイントリンク
・スイッチのポートが全二重に設定され、スイッチが1対1で接続されている場合
・ポイントツーポイントリンクの場合はSTPタイマーに依存しない高速収束を行う