スパニングツリーの設定 - Catalyst
Catalystでスパニングツリーを設定するコマンドの使い方について説明したページです。スパニングツリーの動作や意味については「スパニングツリー」をご参照下さい。
殆どのCatalystではPVST+がデフォルトで有効になっており、設定をしなくてもスパニングツリーを構成出来ます。この場合は、自動的にルートブリッジやブロッキングが決定されます。
MSTP等、他のスパニングツリーに設定した後に元に戻すには以下の設定を行います。
Switch# configure terminal Switch(config)# spanning-tree mode pvst
ルートブリッジやブロッキングを設計した通りに設定する事も可能です。以下の図を例に説明します。
スイッチ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毎に経路を変えたい場合の設定方法について以下の図を例に説明します。
赤で示したスパニングツリーの構成と緑で示したスパニングツリーの構成をそれぞれ設定します。
赤で示したスパニングツリー構成にするため、スイッチAではVLAN10〜20にルートブリッジの設定を行います。
Switch(config)# spanning-tree vlan 10-20 root primary
緑で示したスパニングツリー構成にするため、スイッチBではVLAN21〜30にルートブリッジの設定を行います。
Switch(config)# spanning-tree vlan 21-30 root primary
つまり、ルートブリッジにしたいスイッチでVLANを指定してprimaryの設定を行います。10-20ではなく10,20とカンマで区切ると指定したVLANだけに対する設定になります。
赤で示したスパニングツリー構成にするため、スイッチCではVLAN10〜20でgi1/0/2がブロッキングになるようコストの設定を行います。
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がブロッキングになるようコストの設定を行います。
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+の設定は以下の通りです。
Switch(config)# spanning-tree mode rapid-pvst
優先度やコストの設定はPVST+と同じです。又、show spanning-treeで参照出来る情報も殆ど同じです。
上記は広告ですが、自動でお奨めの商品やこのページに合った情報を提供してくれます。コーヒープレークになるような商品や情報が表示されている事を願っています。引き続き最後まで読んで頂けたらと思います。
以下の図のように赤で示したグループ、緑で示したグループと2つのグループを作成し、赤で示したグループではスイッチAがルートブリッジでスイッチCのgi1/0/2がブロッキング、緑で示したグループではスイッチBがルートブリッジでスイッチAのgi1/0/2がブロックングになる場合を例に設定します。尚、このグループをインスタンスと言い、図では赤のグループをインスタンス1、緑のグループをインスタンス2としています。
最初に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のルートブリッジにするため以下の設定を行います。
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を有効にするとロングパスコストが適用されます。
Switch(config)# interface gigabitethernet1/0/1 Switch(config-if)# spanning-tree mst 1 cost 30000 Switch(config-if)# exit
上記ではコスト30000に設定しています。
同様にインスタンス2でスイッチBをルートブリッジにするために以下の設定を行います。
Switch(config)# spanning-tree mst 2 root primary
インスタンス2に対してスイッチAでの設定は以下の通りになります。
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というのが表示されます。
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が混在している時に関係するインスタンスです。
MSTPで統一してリージョンを分けない場合は余り気にする必要はありませんが、意図した通信が出来ない場合はMST0でブロッキングされてないか確認も必要です。設定ミスでリージョンが分かれていたりVLANがインスタンスに割り当てられていない可能性があります。
スパニングツリーの無効化
スパニングツリーを無効化するためには以下のコマンドを使います。
Switch(config)# no spanning-tree vlan 1-4094
上では全てのVLANで無効化していますが、10-20等の一部範囲指定や10,20等カンマで指定する事で個別指定も可能です。
CatalystでPortFastの設定を有効にするとBPDUのやりとりを待たずにすぐにフォワーディングになります。このため、パソコンやサーバー等を接続したインターフェースですぐに通信出来るようにしたい場合等に使います。
PortFastは以下のコマンドで有効に出来ます。
Switch(config)# interface gigabitethernet1/0/1 Switch(config-if)# spanning-tree portfast Switch(config-if)# exit
PortFastを設定したインターフェースはすぐに通信可能になりますが、間違ってスイッチが接続されてBPDUを受信した場合、通常のスパニングツリー構成での起動が開始されます。
インターフェースでスパニングツリーを完全に無効にするにはBPDUフィルタリングを設定します。接続先のスイッチが管理外のためスパニングツリーの構成に含めたくない場合、若しくは同一のスパニングツリーとして構成出来ない場合等に使います。
Switch(config)# interface gigabitethernet1/0/1 Switch(config-if)# spanning-tree bpdufilter enable Switch(config-if)# exit
BPDUフィルタリングを有効にするとBPDUの送信も受信も行わなくなります。
管理者が設置したスイッチではなくユーザーが勝手に持ち込んだスイッチがルートブリッジになるとブロッキングポートが変わって予期しない通信経路になる可能性があります。
これを防ぐためにはルードガードの設定を行います。設定方法は以下の通りです。
Switch(config)# interface gigabitethernet1/0/1 Switch(config-if)# spanning-tree guard root
ルートガードの設定により、設定したインターフェースから受信したBPDUの優先度が高い場合、そのインターフェースはroot-inconsistentというステータスになり通信出来なくなります。
BPDUの優先度が低くなると自動的にスパニングツリー構成に組み入れられます。
CatalystではPVST+、Rapid PVST+、MSTPのどれかを選択する事になります。PortFastやBPDUフィルタリング、ルートガードはオプションですが、エッジスイッチでは端末やサーバーと接続するインターフェースでPortFastは設定しておいた方が良いと思います。設計の考え方については応用編の「中規模ネットワークの構築 - 集中ルーティング型の論理設計」をご参照下さい。
- 応用編「スパニングツリー」
- 応用編「中規模ネットワークの構築 - 集中ルーティング型の論理設計」