CiscoのPortFastとは?

PortFastとは,シスコのSTP (Spanning Tree Protocol)における拡張機能のことです。

PortFastが設定がされているポートは,接続された場合にすぐにリンクアップすることができます。接続されたポートはSTPの計算を行う必要がないため,すぐにリンクアップさせても問題は生じません。

では,もう少し詳しく解説しましょう。

まずはSTPを理解する

STPは,冗長化されたネットワークにおいて,ループを防ぐために使われる技術です。ネットワーク内にループがあるかどうかを判断し,冗長なリンクをブロックすることで防ぎます。

STPはSTA(Spanning Tree Algorithm)というアルゴリズムで動いています。冗長なリンクを見るけるために,STAはルートブリッジと呼ばれる参照ポイントを選びます。そして,参照ポイントまでのすべての有効なパスを見つけます。

もし,冗長なパスを見つけたら,最適な転送パスを決定し,その他のポートをブロックします。この方法によって,ネットワーク内の冗長リンクを処理することができます。

STAを実行する際に,スパニングツリーは,ポートの状態を以下の5つの中のどれかに設定します。

Blocked スイッチにループができることを防ぐため,全てのポートはBlockedモードから始まります。
Listen 続いて,BlockedモードからListen状態に移行します。ルートブリッジへの他のパスがないかどうかを確認する時間です。この状態になると,ポートはデータ転送の準備が整ったことになりますが,本当にループが作られないかどうか,少し時間をかけて調べます。
Learn この状態では,リスニングプロセスで得た情報をスイッチのアドレステーブルに書き込みます。まだデータを転送できる状態ではありません。
Forward この状態になると,データの送受信が可能になっていることを示します。
Disabled 様々な理由によってスイッチがポートをディセーブルにしていることを示します。例えば,ハードウェア障害や,ネイティブVLANの消失,管理者によってディセーブルされている,などがあります。

ポートの状態移行にかかる時間

ポートが上記のモードにそれぞれ移行するためにかかる時間は,デフォルトでは以下の通りになっています。

・BlockingからListening:20秒
・ListeningからLearning:15秒
・LearningからForwarding:15秒

それで,ポートがデータ転送の準備が整う状態になるまでに,50秒程度かかってしまうことになります。

これでは,何らかの障害でポートダウンしてしまった場合,復旧するまでにかかる時間が長すぎて,アプリケーションやプロトコルによっては,サービスが完全にダウンしてしまうこともあるでしょう。

そこで時間を短縮できるのがPortFast

そこで,PortFastの技術が活かされます。

PortFastは,ListeningとLearningの状態をスキップし,すぐにForwarding状態にします。

こうすることで,ワークステーションやサーバーは,いち早くオンラインになることができます。

STPは,ポートがForwarding状態になったとしても依然として有効ですが,このPortFast機能は,スイッチからサーバー機器に直接つながっているポートでのみ有効にされるべきです。つまり,ループが絶対に生じないと保証されている環境でのみ利用しましょう。

スイッチやハブとつながっているポートをPortFastにしてはなりません。

以上,CiscoのPortFast機能についての説明でした。

コメント