スパニングツリーの設定 - Catalyst

Catalystでスパニングツリーを設定するコマンドの使い方について説明したページです。スパニングツリーの動作や意味については「スパニングツリー」をご参照下さい。

 殆どのCatalystではPVST+がデフォルトで有効になっており、設定をしなくてもスパニングツリーを構成出来ます。この場合は、自動的にルートブリッジやブロッキングが決定されます。

 MSTP等、他のスパニングツリーに設定した後に元に戻すには以下の設定を行います。

【PVST+の設定】
Switch# configure terminal
Switch(config)# spanning-tree mode pvst

 ルートブリッジやブロッキングを設計した通りに設定する事も可能です。以下の図を例に説明します。

スパニングツリーの設定1

 スイッチAではルートブリッジにするため以下の設定を行います。

【ルートブリッジの設定】
Switch(config)# spanning-tree vlan 1-4094 root primary

 1から4094を指定しているのは全てのVLANのルートブリッジになるためです。使えるVLANが64個までの場合は1-64等と指定します。

 primaryを指定する事で優先度が24576や8192等に設定されます。通常、優先度は24576や8192より高いのがデフォルトですが、小さな数字が割り当てられているスイッチがある場合はそれより小さい値が自動的に割り当てられます。又、spanning-tree vlan 1-4094 priority 4096等、個別に優先度を設定する事も出来ます。

 primary部分をsecondaryと設定すると優先度が28672や16384に設定されるため、primaryに設定されたCatalystがダウンした場合にルートブリッジになる可能性が高くなります。スター型のネットワーク構成でコアスイッチを冗長化している場合、一方をprimary、他方をsecondaryにするのがお奨めです。

 スイッチCではgi1/0/2をブロッキングにするため以下のコマンドでコストの設定を行います。

【コストの設定】
Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# spanning-tree cost 6
Switch(config-if)# exit

 上記ではコストを6に設定しています。

 上記によりスイッチCはスイッチBよりルートブリッジからのコストが多くなります。ルートブリッジと接続されたインターフェースはブロッキングにならないため、スイッチCのGi1/0/2がブロッキングになります。

スパニングツリーの確認

 設定後はshow spanning-treeコマンドで状態を確認出来ます。

【スパニングツリーの状態確認】
Switch# show spanning-tree


VLAN0010
  Spanning tree enabled protocol ieee
  Root ID    Priority    24577
             Address     ffff.1111.ffff
             Cost        8
             Port        1 (GigabitEthernet1/0/1)
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
			 
  Bridge ID  Priority    32778  (priority 32768 sys-id-ext 10)
             Address     1111.ffff.1111
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time 300

Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Gi1/0/1          Root FWD 8         128.1    P2p
Gi1/0/2          Back BLK 14        128.12   P2p

 赤字部分でどのスイッチがルートブリッジになっているかMacアドレスで確認出来ます。自身がルートブリッジの場合は、その下にThis bridge is the rootと表示されます。

 黄色の部分はFWDがフォワーディングのインターフェース、BLKがブロッキングのインターフェースを示しています。

 上記は全てのVLANに対して出力されます。例えばVLANが20個あると20個分出力されます。show spanning-treee vlan "vlan番号"と入力すると、指定したVLANに関する情報だけ出力されます。

PVST+でVLAN毎に通信経路を変える場合

 VLAN毎に経路を変えたい場合の設定方法について以下の図を例に説明します。

スパニングツリーの設定2

 赤で示したスパニングツリーの構成と緑で示したスパニングツリーの構成をそれぞれ設定します。

 赤で示したスパニングツリー構成にするため、スイッチAではVLAN10〜20にルートブリッジの設定を行います。

【スイッチAのルートブリッジの設定】
Switch(config)# spanning-tree vlan 10-20 root primary

 緑で示したスパニングツリー構成にするため、スイッチBではVLAN21〜30にルートブリッジの設定を行います。

【スイッチBのルートブリッジの設定】
Switch(config)# spanning-tree vlan 21-30 root primary

 つまり、ルートブリッジにしたいスイッチでVLANを指定してprimaryの設定を行います。10-20ではなく10,20とカンマで区切ると指定したVLANだけに対する設定になります。

 赤で示したスパニングツリー構成にするため、スイッチCではVLAN10〜20でgi1/0/2がブロッキングになるようコストの設定を行います。

【スイッチCでのコストの設定】
Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# spanning-tree vlan 10-20 cost 6
Switch(config-if)# exit

 緑で示したスパニングツリー構成にするため、スイッチAではVLAN21〜30でgi1/0/2がブロッキングになるようコストの設定を行います。

【スイッチAでのコストの設定】
Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# spanning-tree vlan 21-30 cost 6
Switch(config-if)# exit

 つまり、色分けしたスパニングツリー構成のVLANを指定してブロッキングするインターフェースを持つスイッチのルートブリッジ側のインターフェースにでコストを大きくしています。10-20ではなく10,20等カンマで区切ると指定したVLANだけに対する設定になります。

 最初にPVST+を説明したコストの設定例ではspanning-tree cost 6とvlan指定していませんが、これはインターフェースとしてデフォルトのコスト設定になります。今回はトランクポートでVLAN単位に指定するため、vlan指定しています。

 VLAN毎に経路を変える方法は1つの経路の設定と殆ど同じで、VLANを指定して複数設定していくイメージです。

 設定後はshow spanning-treeコマンドで指定した通りのインターフェースがブロッキングになっている事を確認します。

 Rapid PVST+の設定は以下の通りです。

【Rapid PVST+の設定】
Switch(config)# spanning-tree mode rapid-pvst

 優先度やコストの設定はPVST+と同じです。又、show spanning-treeで参照出来る情報も殆ど同じです。

【スポンサーリンク】

 上記は広告ですが、自動でお奨めの商品やこのページに合った情報を提供してくれます。コーヒープレークになるような商品や情報が表示されている事を願っています。引き続き最後まで読んで頂けたらと思います。

 以下の図のように赤で示したグループ、緑で示したグループと2つのグループを作成し、赤で示したグループではスイッチAがルートブリッジでスイッチCのgi1/0/2がブロッキング、緑で示したグループではスイッチBがルートブリッジでスイッチAのgi1/0/2がブロックングになる場合を例に設定します。尚、このグループをインスタンスと言い、図では赤のグループをインスタンス1、緑のグループをインスタンス2としています。

スパニングツリーの設定3

 最初にMSTPを有効にするために以下のコマンドを全てのスイッチで設定します。

【MSTPの設定】
Switch(config)# spanning-tree mst configuration
Switch(config-mst)# instance 1 vlan 10-20
Switch(config-mst)# instance 2 vlan 30-40
Switch(config-mst)# name mst1
Switch(config-mst)# revision 1
Switch(config-mst)# exit
Switch(config)# spanning-tree mode mst

 赤字の部分はインスタンスの定義で、VLAN10〜20がインスタンス1、VLAN30〜40がインスタンス2と定義していますが、10,20等カンマで区切ると指定したVLANだけの設定になります。

 緑の文字では名前とリビジョン番号を定義しています。

 インスタンスの設定、名前、リビジョン番号が一致したスイッチの集合をリージョンと言い、MSTPを構成するスイッチで合わせる必要があります。一致していないとリージョンに組み込まれず、意図したMSTPを構成出来ません。緑の文字はこのリージョンに対して名前とバージョンを設定しています。

 実際にMSTPを有効にしているのは黄色の文字のコマンドです。

 スイッチAではインスタンス1のルートブリッジにするため以下の設定を行います。

【インスタンス1のルートブリッジの設定】
Switch(config)# spanning-tree mst 1 root primary

 1はMSTを定義した時にinstanceコマンドで指定したインスタンス番号です。インスタンスが複数ある時は-やカンマで連続した数字や個別の指定も可能です。

 primaryを指定する事で優先度が24576や8192等に設定されます。通常、優先度は24576や8192より高いのがデフォルトですが、小さな数字が割り当てられているスイッチがある場合はそれより小さい値が自動的に割り当てられます。又、spanning-tree mst 1 priority 4096等、個別に優先度を設定する事も出来ます。

 primary部分をsecondaryと設定すると優先度が28672や16384に設定されるため、primaryに設定されたCatalystがダウンした場合にルートブリッジになります。スター型のネットワーク構成でコアスイッチを冗長化している場合、一方をprimary、他方をsecondaryにするのがお奨めです。

 スイッチCはインスタンス1でgi1/0/2をブロッキングにするため以下のコマンドでコストの設定を行います。CatalystでMSTPを有効にするとロングパスコストが適用されます。

【インスタンス1でのコストの設定】
Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# spanning-tree mst 1 cost 30000
Switch(config-if)# exit

 上記ではコスト30000に設定しています。

 同様にインスタンス2でスイッチBをルートブリッジにするために以下の設定を行います。

【インスタンス2のルートブリッジの設定】
Switch(config)# spanning-tree mst 2 root primary

 インスタンス2に対してスイッチAでの設定は以下の通りになります。

【インスタンス2でのコストの設定】
Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# spanning-tree mst 2 cost 30000
Switch(config-if)# exit

 特に経路を分ける必要がない場合はインスタンスは1つで大丈夫です。又、3つ以上のインスタンスを設定する事も可能です。

 考え方は「PVST+でVLAN毎に通信経路を変える場合」と同じで2つの経路に分けるため、2つのルートブリッジとブロッキングにするためのコストの設定をしていますが、PVST+がVLAN単位に作成するのに対し、MSTPでは最初にインスタンスを作成してインスタンス単位で設定を行います。

MSTPの確認

 設定後はshow spanning-tree mstコマンドで状態を確認出来ます。show spanning-treeコマンドと殆ど同じ情報が表示されますがMSTPのため、MST1、2等と各インスタンス単位に表示されます。又、作成していないMST0というのが表示されます。

【MSTPの確認】
Switch# show spanning-tree mst


##### MST0    vlans mapped:   1
Bridge        address ffff.1111.ffff  priority      24576 (24576 sysid 0)
Root          this switch for the CIST
Operational   hello time 2 , forward delay 15, max age 20, txholdcount 6
Configured    hello time 2 , forward delay 15, max age 20, max hops    20

Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Gi1/0/1          Desg FWD 200000    128.1    P2p
Gi1/0/3          Desg FWD 200000    128.12   P2p


##### MST1    vlans mapped:   10-20
Bridge        address ffff.1111.ffff  priority      24577 (24576 sysid 1)
Root          this switch for MST1
Operational   hello time 2 , forward delay 15, max age 20, txholdcount 6
Configured    hello time 2 , forward delay 15, max age 20, max hops    20

Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Gi1/0/1          Desg FWD 200000    128.1    P2p
Gi1/0/3          Desg FWD 200000    128.12   P2p

 先にリージョンについて触れましたが、リージョンを複数接続して大きなスパニングツリーを構成する事も出来ます。MST0はリージョンが分かれている場合やSTPが混在している時に関係するインスタンスです。

スパニングツリーの設定4

 MSTPで統一してリージョンを分けない場合は余り気にする必要はありませんが、意図した通信が出来ない場合はMST0でブロッキングされてないか確認も必要です。設定ミスでリージョンが分かれていたりVLANがインスタンスに割り当てられていない可能性があります。

スパニングツリーの無効化

スパニングツリーを無効化するためには以下のコマンドを使います。

【スパニングツリー無効化の設定】
Switch(config)# no spanning-tree vlan 1-4094

 上では全てのVLANで無効化していますが、10-20等の一部範囲指定や10,20等カンマで指定する事で個別指定も可能です。

 CatalystでPortFastの設定を有効にするとBPDUのやりとりを待たずにすぐにフォワーディングになります。このため、パソコンやサーバー等を接続したインターフェースですぐに通信出来るようにしたい場合等に使います。

 PortFastは以下のコマンドで有効に出来ます。

【PortFastの設定】
Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# spanning-tree portfast
Switch(config-if)# exit

 PortFastを設定したインターフェースはすぐに通信可能になりますが、間違ってスイッチが接続されてBPDUを受信した場合、通常のスパニングツリー構成での起動が開始されます。

 インターフェースでスパニングツリーを完全に無効にするにはBPDUフィルタリングを設定します。接続先のスイッチが管理外のためスパニングツリーの構成に含めたくない場合、若しくは同一のスパニングツリーとして構成出来ない場合等に使います。

【BPDUフィルタリングの設定】
Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# spanning-tree bpdufilter enable
Switch(config-if)# exit

 BPDUフィルタリングを有効にするとBPDUの送信も受信も行わなくなります。

スパニングツリーの設定5

 管理者が設置したスイッチではなくユーザーが勝手に持ち込んだスイッチがルートブリッジになるとブロッキングポートが変わって予期しない通信経路になる可能性があります。

 これを防ぐためにはルードガードの設定を行います。設定方法は以下の通りです。

【ルートガードの設定】
Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# spanning-tree guard root

 ルートガードの設定により、設定したインターフェースから受信したBPDUの優先度が高い場合、そのインターフェースはroot-inconsistentというステータスになり通信出来なくなります。

スパニングツリーの設定6

 BPDUの優先度が低くなると自動的にスパニングツリー構成に組み入れられます。

 CatalystではPVST+、Rapid PVST+、MSTPのどれかを選択する事になります。PortFastやBPDUフィルタリング、ルートガードはオプションですが、エッジスイッチでは端末やサーバーと接続するインターフェースでPortFastは設定しておいた方が良いと思います。設計の考え方については応用編の「中規模ネットワークの構築 - 集中ルーティング型の論理設計」をご参照下さい。

  • このエントリーをはてなブックマークに追加