◆ STP - ポートタイプ
NX-OSでは、STPポートタイプとして 「エッジポート」「ネットワークポート」「標準ポート」 の3つを
定義しています。NX-OSのスパニングツリーポートはある一時点で、これらいずれか1つの状態になります。
STPポートタイプ |
説明 |
エッジポート
( edge ) |
ホストやルータなどが接続するポート。エッジポートはBlockingやLearningステートを経由することなく
直接Forwardingステートへ移行。Forwardingへの直接移行は独自機能のPortFastとして設定していた。
|
ネットワークポート
( network ) |
スイッチだけに接続されるポート。Bridge Assurance がグローバルにイネーブルになっている間に
ポートを"network"として設定するとそのポートで Bridge Assurance がイネーブルになる。Nexus同士
を接続するポートは、STPポートタイプを「ネットワークポート」として設定することが推奨。
|
標準ポート
( normal ) |
ホスト、スイッチに接続されるポート。標準スパニングツリーポートとして機能。デフォルトの設定。
NexusスイッチがCatalystスイッチに接続する場合はSTPポートタイプを「標準ポート」として設定する。
|
※ 上図の左下のNexusスイッチは当然ながらFEXではありません。FEXである場合、そもそもSTPの概念も適用されません。
◆ STP - Bridge Assurance
Bridge Assuranceを使用することでL2ループの原因となる問題の発生を防止できます。具体的には、単方向
リンク障害やスパニングツリーアルゴリズムを実行しなくなった場合でもデータのトラフィック転送を続けて
いるデバイスなどからネットワークを保護できます。この機能はRapid PVST+とMSTだけでサポートします。
このBridge Assuranceはデフォルトで有効化されている。なおBridge Assuranceをイネーブルにできるのは、
ポイントツーポイントリンクに接続されたSTPネットワークポートだけです。そしてBridge Assuranceは必ず
リンクの両端でイネーブルにする必要があります。Bridge Assuranceがイネーブル状態であると、すべての
networkポート(port type network)からBDPUがhellotタイムごとに送出されることになる。これがポイント。
◆ STP - ポートタイプの設定
◇ エッジポートの設定
@ インターフェースの指定
(config)# interface ethernet interface
A エッジポートの設定
(config-if)# spanning-tree port type edge
Nexus(config)# interface ethernet 1/1
Nexus(config-if)# spanning-tree port type edge
|
※ トランクポートでエッジポート(portfast)を有効化したい場合、spanning-tree port type edge trunk と設定(非推奨)。
◇ ネットワークポートの設定 ( Bridge Assuranceが自動的に実行される )
@ インターフェースの指定
(config)# interface ethernet interface
A ネットワークポートの設定
(config-if)# spanning-tree port type network
Nexus(config)# interface ethernet 1/5
Nexus(config-if)# spanning-tree port type network
|
◇ 標準ポートの設定 ( デフォルトの設定 )
@ インターフェースの指定
(config)# interface ethernet interface
A ネットワークポートの設定
(config-if)# spanning-tree port type normal
Nexus(config)# interface ethernet 1/10
Nexus(config-if)# spanning-tree port type normal
|
※ これらのコマンドはグローバルコンフィグモードで設定しポート全体に適用できますが、一般的にはポートごとに設定します。
⇒ switch(config)# spanning-tree port type edge default (全てのポートがエッジポートになる設定)
⇒ switch(config)# spanning-tree port type network default (全てのポートがネットワークポートになる設定)
以下のBPDUガード、BPDUフィルタリング、ループガード、ルートガードはデフォルトはディセーブルです。
◆ STP - ループ回避の設定 ( BPDUガード )
BPDUガードが有効化されたポートでBPDUを受信するとそのポートをシャットダウンします。以上のことから
全てのエッジポートでBPDUガードをイネーブルにすることが推奨とされています。全てのSTPのエッジポート
でBPDUガードをイネーブルにするためには、グローバルコンフィグモードで以下のコマンドを設定します。
◇ BPDUガード ( グローバルなイネーブル化 )
(config)# spanning-tree port type edge bpduguard default
BPDUガードは指定したインターフェースで有効化することもできます。その場合のコマンドは以下です。
◇ BPDUガード ( 指定インターフェースでのイネーブル化 )
(config-if)# spanning-tree bpduguard enable
◆ STP - ループ回避の設定 ( BPDUフィルタリング )
BPDUフィルタリングがイネーブルにされたエッジポートはBPDUを受信するとエッジポートとしての動作の
ステータスを失い、通常のSTP状態遷移を再開する。ただし、設定自体はエッジポートとしての設定を保持。
グローバルにイネーブルにした場合、動作中のエッジポートだけに適用される。コマンドは以下の通りです。
◇ BPDUフィルタリング ( グローバルなイネーブル化 )
(config)# spanning-tree port type edge bpdufilter default
BPDUフィルタリングは指定したI/Fで有効化できます。指定した該当ポートからBPDUは送受信されません。
◇ BPDUフィルタリング ( 指定インターフェースでのイネーブル化 )
(config-if)# spanning-tree bpdufilter enable
◆ STP - ループ回避の設定 ( ループガード )
ループガードは、標準ポート(port type normal)と、ネットワークポート(port type network)でグローバル
に有効化できます。ループ ガードは、単方向リンクを引き起こす可能性のある障害が原因で代替ポートまたは
ルートポートが指定ポートになるのを防ぐことのできる機能です。
◇ ループガード ( グローバルなイネーブル化 )
(config)# spanning-tree loopguard default
ループガードは指定したI/Fで有効化できます。I/Fで指定した場合、グローバルの設定が上書きされます。
◇ ループガード ( 指定インターフェースでのイネーブル化 )
(config-if)# spanning-tree guard loop
◆ STP - ループ回避の設定 ( ルートガード )
特定のポートでルートガードをイネーブルにすると、有効化されたそのポートはルートポートになることが
禁止されます。つまり、Root Primaryのスイッチポートに設定しておくと効果的な設定です。
◇ ルートガード ( 指定インターフェースでのイネーブル化 )
(config-if)# spanning-tree guard root
4つのループ回避の手法を紹介しましたが、実際によく使用されるのは「BPDUガードとルートガード」では
ないでしょうか。BPDUフィルタリングはNW構成によって実装方式を誤ると、逆にループが発生する可能性も
あります。ループガードはBridge Assuranceが有効である場合はそもそも必要のない設定ではないでしょうか。
※ ただし、NexusとCatalystスイッチ間で接続するポートでCatalystスイッチ側にループガードを入れるのは意味があります。
|