| ◆ 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
 
 
 
        
          ※ トランクポートでエッジポート(portfast)を有効化したい場合、spanning-tree port type edge trunk と設定(非推奨)。
            | Nexus(config)# interface ethernet 1/1
 Nexus(config-if)# spanning-tree port type edge
 
 
 |  ◇ ネットワークポートの設定 ( 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スイッチ側にループガードを入れるのは意味があります。
 
 
 |