CatalystのSTP・BPDUの吐き方

Ciscoは言わずと知れたネットワーク業界の巨人であり、先走った結果として標準に沿わなかった機能が多々ある。そのひとつがSTP。といってもShielded Twisted PairではなくSpanning Tree Protocolのほう。

CiscoはSTP/RSTP/MSTPの3種類に対応しているが、MSTP以外のSTP/RSTPはいずれもIEEEの規格には準拠しておらず、VLAN単位で動作するPVST(Per VLAN Spanning Tree)が実装されている。

しかし、Cisco曰くPVじゃないSTPとも互換性があるという。というわけで実験してみた。機材はどこのご家庭にもあるCatalyst3750である。

実験方法

  1. rstpを有効化する
  2. VLANを適当に4つ作成する(10,20,30,40)
  3. SVIを適当に2つ作成する(vlan1(1.1.1.11/24), vlan10(10.10.10.1/24))
  4. キャプる

実験

switchport mode trunkのみ設定したInterfaceでのキャプチャ

  • PVSTのBPDU
    全VLAN(1,10,20,30,40)で送出される。VLAN1はタグ無しで送出されるが、BPDUフレーム内にVLAN IDが含まれているためタグが無くともどのVLANのBPDUか判別ができる。
  • StandardなBPDU
    当然のことながら規格上タグなんざ関係ないのでタグなしで送出される。宛先MACアドレスはPVST(Cisco)ではなくStandard準拠なMulticastアドレス。
  • おまけ・VLAN1のARP
    タグ無しで送出される。デフォルトでNative VLANは1に設定されているため。

switchport mode trunk+allowed vlan 10,20,30を設定したInterfaceでのキャプチャ

  • PVSTのBPDU
    allowedしたVLAN(10,20,30)で送出される。
  • StandardなBPDU
    送出されない。

結果

たしかに規格準拠なBPDUは吐くが、VLAN1に紐づいて送出される。よって、Cisco以外のStandardSTP対応機器とSTPでそれっぽく動かしたい場合はVLAN1が必須。

ただし、実際の現場ではPVSTでない機器と接続する場合はSTPではない方法で冗長を確保することが多い気がする。Flexlink的なやつとか。

コメント

タイトルとURLをコピーしました