STPってなに
はじめに
最近、Cisco機器を使用したDHCPの設定を学習する中で、設定手順の中に「PCを直接接続するインターフェースにPortFast設定をする」という項目がありました。
理由には、「CiscoスイッチはデフォルトでSTPが有効になっているから」と記載がありましたが、ここで出てきたSTPというものは何者なんでしょうか。
今回はSTPについてまとめてみました。
STPとは
STP(Spanning Tree Protocol) は、スイッチ間のネットワークでループが発生するのを防ぐために使われるプロトコルです。
上のネットワーク図のように、スイッチを複数台接続してネットワークを構築すると冗長化のためにループ状の接続がされることがあります。このとき、何も制御がされていないと、ある端末がブロードキャスト(例:ARP要求)を送信した時、スイッチが全ポートにブロードキャストを転送し、そのフレームがループ内を回り続けてしまいます。これをブロードキャストストームと呼び、ネットワーク全体の通信を妨げてしまいます。
STPは、こうしたループを自動的に検出して、不要なポートを一時的にブロックすることでループを防ぐという仕組みを持っています。
例えば
山手線を想像してみてください。山手線は環状線で、線路が一周していますよね。
例えば山手線に乗った電車で、運転手が倒れてしまい一生降りられなくなってしまったら...
延々と電車が山手線を回り続け、他の電車も衝突を避けるために回り続けないといけません。
そんな時に、自動で電車が停止する緊急停止の信号が発信されたら問題に対処できますよね。
これこそがSTPの働きです。
STPとPortFastの関係
通常、STPが有効なポートはスイッチに接続されてから数十秒間通信をブロックした状態で待機します。これはループが起きていないか安全確認をするためです。
しかし、PCやサーバーなどループを起こさない終端機器が接続されるポートでは、この待機時間がかえって問題になることがあります。それが今回記事を書くきっかけとなったDHCPです。
DHCPを使っている環境では、PCがネットワークに接続してすぐにIPアドレスを取得したいのに、
STPの待機時間が原因でDHCP通信がうまくいかないトラブルが発生します。
そこで、PortFastを有効にすると、そのポートはすぐに通信可能な状態(Forwarding)になり、STPの遷移時間をスキップできます。
Switch(config)# interface GigabitEthernet0/1
Switch(config-if)# spanning-tree portfast
このように実行することで、STPを有効化できます。
さいごに
今回はSTPについて解説しました。今まで実機でシュミレーションを行う際、ケーブルをポートに挿してから認識されるまでの時間が長いと感じる場面が何度もありました。今回の記事を通じて、一つ疑問が解決できました。
Discussion