ネットワークスペシャリスト - SE娘の剣 -

ネットワークスペシャリストの試験対策サイト(by 左門至峰の株式会社エスエスコンサルティング)です。ネットワークスペシャリスト試験の 勉強方法、合格体験談、合格のコツ、過去問解説、基礎知識などの情報を掲載します。試験対策セミナー・研修も行っております。 ネットワークスペシャリスト試験対策・勉強なら左門至峰の最も詳しい過去問解説「ネスペ」シリーズ(技術評論社)で!!

スパニングツリープロトコル(STP)

1.スパニングツリープロトコル(STP)

1.STPの必要性

そもそも、なぜSTPが必要なのか?
女性笑顔
分かります。
機器間でBPDU(Bridge Protocol Data Unit)をやりとりすることで、ループを防ぐため。ループが発生すると、ネットワークが輻輳状態になって、通信ができないからです。
そのとおり。
でも、ループになっただけで、通信ができなくなるのか。その仕組みについて簡単に説明する。
その前に質問。

Q.ループが起こるのは、どんなフレームによるものか






A.(基本的には)ブロードキャスト
※宛先が不明なユニキャストであるUnknown Unicastでも同様の現象は起こる。なぜなら、スイッチは、宛先が不明なMACアドレスの場合、ブロードキャストと同様にすべてのポートからフラッディングするからである。しかし、普通にネットワークを組んだだけではUnknown Unicastがループすることはあまりない。どこかに宛先となる機器が存在するからである。

では、ブロードキャストフレームがループして輻輳する様子を説明する。

PC1からSW1の1番ポートにARPを送信したとします(図①)。
ARPのフレームはブロードキャストなので、フレームを受信したポート以外のすべてのポートにフレームが転送されます(図のポート2、3)。したがって、SW2とSW3にもこのブロードキャストフレームが届きます(図②、③)。

SW2は、受信した1番ポート以外のすべてのポートにフレームを転送するので、SW3にもフレームを届けます(図④)。SW3は、SW2から受信したフレーム(図④)をSW1に(図⑤)、SW1から受信したフレーム(図③)をSW2に転送します(図⑥)。SW2はSW3から受信したフレームをSW1に転送します(図には書いていませんが・・・)。

こうして、無限ループになるだけでなく、最初はたった1つだったフレームの数が、転送されるにつれてどんどん増えていくのです。こうなると、フレームが無限に流れ続けるブロードキャストストーム状態になり、通信ができなくなります。

loop



だが、LANの設計をするときに、あえてループを作ることが一般的である。なぜだろうか?
それは、ループ構成を組んで、STPを有効にしておけば、障害時にはそのループが迂回経路になるからだ。しかも、障害時には自動的にSTPの再計算が走って、迂回経路に自動切り替えしてくれるから便利である。
従来のCSTでは、切り替えのコンバージェンス(収束)に40秒ほどかかっていたが、RSTPなどでは、数秒で切り替わる。

STPの目的を整理すると次の2つになる。

■STPの目的
①ループの回避
②信頼性向上(冗長性の確保)

過去問では、スパニングツリーの機能を、「複数のブリッジ間で情報を交換し合い、ループ発生や障害時の迂回ルート決定を行う。(平成17年度 午前 問44)」、「BPDUと呼ばれる制御フレームをやり取りして通信のループを回避するプロトコル。(平成21年度 午後1問1)」と述べています。

■デメリット
STPによるデメリットもあります。それは、「PCを接続しても直ちに通信が可能な状態にならない(H21NW午後1問1設問3(3)」ことです。
STPが有効なSwitchingHUBにPCを接続しても、IEEE802.1Dによる通常のSTPの場合、BPDUのやりとりが行われるので、正常に接続されるまでに40秒ほどかかってしまう。

PC→HUB→STP有効のSW→DHCPサーバ

という構成の場合、PCがDHCPによるIPアドレスを要求しても、STP有効のSWがリンクアップされず、DHCPサーバからIPアドレスが取得できないという問題が発生することもある。

■ループ検知の仕組み
STPでは、BPDUフレームを送信することで、ループを検出します。
少し具体的に説明します。
まず、スイッチの中で、ルートブリッジと呼ばれる親の役割を果たすスイッチを1台決めます。
ルートブリッジがBPDUというフレームを流しますが、複数の経路からこのBPDUが届けば、ループが発生していることが検知できます。

2.STPの状態遷移

STPでは、ルートブリッジが2秒間隔でBPDUを送り続けています。BPDUはループ内の全てのスイッチに届きます。ブロッキングポートにも届きます。
BPDUが20秒間届かなくなると、ネットワークの状態に変化が発生したと判断し、STPを再計算します。(もちろん、この間は通信ができません。)

ネットワークスペシャリスト試験の過去問(H30秋NW午後Ⅰ問2)に「STPのポート状態がブロッキングから,リスニング,ラーニングを経て,フォワーディングに遷移した。」とありますように、STPの状態には以下の4つの状態があります。
・ブロッキング:データ転送をしない。BPDUの受信のみ(最大20秒)
・リスニング:STPの状態確認中(約15秒)
・ラーニング:STPの学習中(約15秒)
・フォワーディング:データ転送の実施
データを転送するのは、フォワーディング状態だけです。
ネットワークスペシャリストを目指す女性SEハテナ

ループが無い状態でもSTPの計算が走るんですね?
そうなんです。STPが有効になっているスイッチであれば、1ポートに接続しただけでもSTPの計算行われます。たとえば、PCを1台SWに接続した場合でも、STPの計算が行われます(もちろんループはありません。)
ですから、PCが使えるまでに、40秒ほどの時間がかかってしまいます。ですから、PCが接続するポートにはSTPを無効にする(PortFastの設定)を入れます。(以下に説明)

3.STPの無効化

試験に出ないので、参考程度に。
スイッチ全体で無効にする場合と、ポート単位で無効にする(というか、STPの計算をしない)(portfast)場合がある。上記で書いたような問題を回避するために、PCを接続するポートには、portfastを入れることがあります。

以下は、VLAN1でSTPを無効化する設定です。全てのVLANで無効化する場合は、vlan 1-4094とします。
Switch(config)#no spanning-tree vlan 1
Switch(config)#end

このときのスイッチのポートを見てもらうとわかりますが、ランプが高速に点滅しています。つまり、ループによってブロードキャストストームが発生しているのです。こうなると通信ができません。以下のコマンドで元に戻しておきましょう。

Switch(config)#spanning-tree vlan 1
Switch(config)#end

■参考
119通報のシステムトラブルは、STPの設定をしなかったためにループを起こしたことのようだ。「システム障害はなぜ二度起きたか」(日経BP社)は、「2011年1月、消防車や救急車の出動を支援する東京消防庁の情報システムがダウンし、119通報がつながりにくくなる事態が発生した。原因は一本のLANケーブルの誤接続によって通信の「ループ」が発生したこと。予備システムも機能せず、影響は約四時間半に及んだ」と述べられている。

4.STPの実際の動作

CiscoのCatalystでのSTPの動作を試してみましょう。
(1)STPの有効化
Catalystの場合、デフォルトでSTPが有効になっています。有効になった上で、以下の設定がなされています。
spanning-tree mode pvst ⇒pvst(per vlan spanning tree)は、VLAN単位でSTPを有効にするというモード

(2)状態確認
では、ループを作ります。
今回はシンプルに、2台の機器を2本のLANケーブルで接続します。

sh spanning-treeで確認しましょう。(※ルータの場合は show spanning-tree brief が見やすいです)
Switch#sh spanning-tree
VLAN0001
  Spanning tree enabled protocol ieee
  Root ID    Priority    32768
             Address     2c54.2d7e.b7b2
             Cost        19
             Port        1 (FastEthernet0/1)
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
  Bridge ID  Priority    32769  (priority 32768 sys-id-ext 1)
             Address     34bd.c859.bd00
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time  300 sec
Interface           Role Sts Cost      Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Fa0/1               Root FWD 19        128.1    P2p
Fa0/2               Altn BLK 19        128.2    P2p

ここで、ルートブリッジは、2c54.2d7e.b7b2のMACアドレスを持つ機器であることが分かります。今回の場合は、もう一台の機器を指しています。
また、Fa0/1がFWDですので通信がされていて、Fa0/2がBLKなので、ブロッキングされていることが分かります。

(3)切り替わり
この状態で、Fa0/1のケーブルを抜きます。
すると、通信経路がFa0/2に変わるはずです。
では、状態を順に確認しましょう。
①Fa0/2がListeningになりました。
Interface           Role Sts Cost      Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Fa0/2               Root LIS 19        128.2    P2p

②Fa0/2がLearningになりました。
Interface           Role Sts Cost      Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Fa0/2               Root LRN 19        128.2    P2p

③Fa0/2がFowardingになりました。同時に、スイッチ間の通信が再開されました。
Interface           Role Sts Cost      Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Fa0/2               Root FWD 19        128.2    P2p

5.STPの過去問

■平成17年度 午前 問44

スパニングツリーの機能を説明したものはどれか。
ア MACアドレスを見て、フレームを廃棄するか中継するかを決める。
イ 一定時間通信が行われていないMACアドレスを、MACアドレステーブルから消去する。
ウ 経路が複数存在する場合、アプリケーションやアドレスごとに経路を振り分けて、負荷を分散する。
エ 複数のブリッジ間で情報を交換し合い、ループ発生や障害時の迂回ルート決定を行う。






正解:エ

■H29秋NW午前Ⅱ

問5 スパニングツリープロトコルに関する記述のうち,適切なものはどれか。
ア OSI基本参照モデルにおけるネットワーク層のプロトコルである。
イ ブリッジ間に複数経路がある場合,同時にフレーム転送することを可能にするプロトコルである。
ウ ブロードキャストフレームを,ブリッジ間で転送しない利点がある。
エ ルートブリッジの決定には,ブリッジの優先順位とMACアドレスが使用される。






正解:エ

2.STP(2) ブロックされるポート(NDP)の決め方

▼ブロックポートの決め方
・ルートブリッジは、ネットワークの状態を自分を中心としたツリー構造として把握する。
・一定間隔でBPDU(Bridge Protocol Data Unit)パケットを交換する。ルートブリッジ以外は転送するだけ。RSTPでは全スイッチが相互に交換する仕組みとなり、高速な収束を可能にしている。
・最小のブリッジID(プライオリティ+MACアドレス)を持つ機器がルートブリッジ。デフォルトのプライオリティは32768
 [BID(8byte)]=[ プライオリティ(2byte)][ MACアドレス(6byte)] で構成されるため、MACアドレスよりもプライオリティが優先される。
・ステータスは ブロッキング(20秒)→リスニング(15秒)→ラーニング(15秒)→フォワーディング
 RSTP(802.1w)ではブロッキングやリスニングをまとめてディスカーディングとしている。
・ブロッキングポート(非指定ポート)の決め方。
 1)各スイッチで、ルートブリッジに最も近いポートがルートポート
 2)各セグメント(機器と機器をつないだ線)で、ルートブリッジに最も近いポートが指定ポート
 3)それ以外がブロック(非指定)ポートでブロックされる。

※ややこしいが、実際には結構シンプル。ルートブリッジに最も遠いところがブロックされるだけ。

▼過去問にて
STPによる経路に関する出題があるので紹介する。

【H20NW午前 問44】
図は、レイヤ2スイッチによって、スパニングツリープロトコルを用いて構成されるLANを示す。各スイッチにブリッジプライオリティ設定値は等しく、パスコストは10Mビット/秒ポートに100、100Mビット/秒ポートに19が設定されている。PC1とPC2の通信に使用される経路はどれか。ここで、i,j,kはそれぞれ同じ数値を示す。


stp
本来は4択であるが、自分の言葉で解答を考えてほしい。






正解:スイッチA-C-Bを使用

※H20NW午後1問4には、SWのブリッジのプライオリティの決め方を問う問題があった。
ブロックされたポート(NDP)では、フレームの転送は行わない。
女性ハテナ 

NDPのつながっている両方をNDPとしてブロックしては?
どうせ、通信はしないんでしょ。
NDPはBPDUの受信をするが、送信もしない。BPDUを交換しないと、STPのトポロジー変更に対応できない。なので、両方NDPにするのではなく、片方は、BPDUを送信するDPにする。

▼過去問(平成25年NW午後Ⅱ問1)を解いてみよう

・L2SWとL3SWでは,  STP (Spanning Tree Protocol)が動作している。L3SW1をルートブリッジとするために,L3SW1のブリッジIDは〔 イ 〕の値となっている。






スパニングツリーは、言葉の通りツリー(tree)構造になっています。そのツリー構造の根(root)、つまり起点になるのがルートブリッジです。ルートブリッジとなるためにはブリッジIDがどのような値であるべきかを問われています。ルートブリッジとして選出されるのは、最小のブリッジIDを設定されたスイッチと決められています。

解答 イ:最小

3.MSTP(Multiple Spanning Tree Protocol)などの他のSTP

▼1.スパニングツリーの種類
・STP(Spanning Tree Protocol):IEEE 802.1Dで規定 ←Dは大文字が正式。
・PVST(Per VLAN Spaninng Tree) VLANごとのSpaninng Tree。※CiscoではPVST+
・RSTP(Rapid Spanning Tree):IEEE 802.1wで切り替えが速いSTP。現在はIEEE802.1Dに統合されている。CSTPの場合、トポロジー変更があったことをTCN(Topology Change Notification)BPDUで知らせ、そこから再計算をスタートさせる。RSTPではTCN BPDUをネットワーク全体に伝えることはせず、変更が必要なスイッチと直接やりとり(Handshake方式)を行うことで、高速化している。ただ、リンクダウンなどではなく、リンクアップや機器が追加された場合は、全体の再計算が必要なので、通常のSTPと同様の収束時間が必要。
・MSTP(Multiple Spanning Tree Protocol):このあと解説します。

▼2.MSTP(Multiple Spanning Tree Protocol)
IEEE802.1s。PVSTはVLANごとのSTP。しかし、VLANが増えてくると、それぞれでSTPを処理すると負荷が増える。そこで、VLANをまとめてインスタンスというグループを作り、そのグループでSTPを設定する。
※ただし、ネットワークスペシャリスト試験には出ないと思いますので、学習する必要はないでしょう。

ネットワークスペシャリスト試験の過去問(H24年NW午後Ⅱ問2)を見てみよう。

STPを調査したところ,今回設定したSTPは,ツリーをVLANごとに構成できないことが分かった。詳しく調べると,VLANごとにツリーを構成するためには.  IEEE802.1sで規定されているMSTP (Multiple spanning Tree Protocol)を使うことが必要であった。
MSTPは,複数のVLANをインスタンスと呼ばれるグループにまとめ,インスタンス単位でスパニングッリーの計算を行う。このとき,インスタンスごとにルートブリッジ及びブロッキングポートが決定され,インスタンス単位にツリーが構成される。