続・CatalystでSTP

STPでの、各ポートの役割決定アルゴリズム。役割は3つある。

【role 1】 root port

各スイッチにおいて、rootブリッジに一番近いポート。ルートブリッジ自身にはrootポートは存在しない。この「近い」はコストとしての距離であり、たとえ直接ルートブリッジに接続しているポートであってもそれが10Mで、もう一方の他のスイッチに接続している100Mのポートがあれば、それがroot portになる。(コストはデフォルトで10M=100、100M=19である場合。)ルートブリッジに直接接続されていてもroot portにならない場合があるわけだ。

下図でいうと、RPは、SW-Bの0, SW-Cの1となる。

【ルートポート】
SW-A: なし
SW-B: 0
SW-C: 1



pty:1
+----+(0)    link-1: 10M
|SW-A+--------------+
+--+-+              |
(1)|  link-3        |
   |100M            |
(0)|                |(0)
+--+-+        (1)+--+-+
|SW-B+-----------+SW-C|
+----+(1) 100M   +----+
pty:100  link-2  pty:100
...
【role 2】 designated port
各リンクで、最上位のBPDUを送信できるポート。(ルートブリッジのポートはすべてdesignated portとなる。)DPは、スイッチごとではなく、リンク(セグメント)ごとに選出される。

上図では、以下のようになる。

【Designated port】
link1: SW-A-0
link2: SW-C-1
link3: SW-A-1


【role3】 blocking port
root portでも designated portでもないポートで使用不可になる。これはblockingという役割を持つというよりも、「何の役割もないポート」「いらないポート」である。だから使用不可にするのだ。

以上を総合すると、各スイッチの各ポートの役割は以下のようになる。

SW-A-0:DP
SW-A-1:DP

SW-B-0:RP
SW-B-1:Blocking

SW-C-0:Blocking
SW-C-1:RP

最上位BPDU決定要因

1. 最小ルートブリッジID  ルートブリッジの持つブリッジID
2. ルートブリッジに至る最小パスコスト
3. 最小送信ブリッジID  各スイッチが持つブリッジID
4. 最小ポートプライオリティ  ポートのプライオリティ値
5. 最小ポートID  スイッチの持つポート番号

ルートブリッジIDが非常に重要になる。MACは変更できないからpriorityになるのか。priorityのほうがコストよりも優先されるから。

portfast, uplinkfast, backbonefast

portfastはわかった。uplinkfast, backbonefastがよくわからない。

uplinkfast....直接リンクの障害発生時、BPを即座にRPに変更する機能。
root bridgeにならないようにプライオリティが49153に変更され、ポートのパス・コストに3000が加わる。

なるほど、収束が早くなるのはわかる。しかし、逆に疑問なのは、どうして通常のSTPで即BPをRPに切り替えないのか、という事だ。まず考えられるのは、ルートブリッジにならないようにしていることから、ルートブリッジだった場合にこの動作が不具合を起こすことだ。

ルートブリッジではすべてのポートがdesignated portであり、ルートポートは存在しない。そしてblocking portも存在しない。そのため、不具合を起こすというよりも、この機能は不要ということになる。

BPが即座にRPに切り替わるとMACテーブルの情報との不整合を起こす、とある。
そのためuplinkfast有効時にはその更新を促すダミーパケットが送信されるらしい。しかしこれも、どうして普段からやらないのかという疑問がわく。

backbonefastは、間接リンクダウン発生時、max-ageを無視することで収束を高速化するものらしい。uplinkfastよりさらに情報が少ない。

察するに。

これらの機能は旧STP、802.1DのSTPの収束の遅さを改善するための苦肉の策であり、現在はRSTPなどの新プロトコルを使用するようになっているため、もうobsoleteなのであろう。そしてこのことは試験対策としては重要な意味を持つ。
おそらくそんな旧式のしかもCISCO独自のその場しのぎの技術を、深く問う事はないと予想される。この辺はこういう機能がありますよ、こんなとき使えますよ、程度把握していればよい。それよりもRSTPなどのほうをみっちり覚えるべきだ。

・・・というほどRSTPはSTPと変わらなかった。
RPでもDPでもないポートをすべてBPにするのではなく、一つはAlternatePortとしておく。例の三角形のトポロジであればルートの向かい側のリンクの、DPでないほうがAPになる。

この状態でAPでないポートがリンクダウンすると、瞬時にAPがforwardingになる。
・・・でも、これが効果を発揮するのはAPのあるポートが落ちたときだけだね。・・・その他のリンクが落ちてもどこかのポートがつながっているからいいのか・・・。STPだとあそこが落ちるとあのスイッチは隔絶されてしまうね、50秒も。

monitor session もできない。port securityもよくわからない。やっぱり29502台は必須だったな。もう遅い。落ちたら買いますよ。

スイッチは面白いね。ルータより面白い。なぜなら、スイッチはポジティブな装置だからだ。ルータはネガティブで意地悪な装置だ。ネットワーカーに嫌な奴が多いのはきっとそのせいだ。今後L3スイッチが普及していけばネットワーカーも少しはポジティブになってくるかもしれない。

2950が来た。configモードで do show が使える。すごい。なんか外観も今までのシスコとちょっと違う。これはまだまだ現役稼動できる機器だ。これが2万は安かったな。

自分のポートをクロスでつないでみると、デフォルトでトランクになる。
2924のポートとつなぐと、accessになる。こっちのデフォルトはaccessだ。
VLANを同期させようとVTPドメインを設定した。同期しない。そっかトランクリンクがないのか。トランクにする。まだ同期しない。2924にエラーメッセージが出ている。2950はislをサポートせず、2924はデフォルトislになっているためだ。2924のポートのencapをdot1qにする。・・・まだ同期しない。あれ?そうだ、VTPのインターバルは5分とけっこう長い。そこで2524で新しくvlanを作ってapplyした。ようやく同期した。2924でvtp modeを設定するのは vlan databaseモードなことを忘れていた。