Loop Guard
STPはループに対して有効な技術であるが、輻輳や片方向リンクなどで、ループが発生する危険性がある。
Loop Guardはトポロジ内でRoot PortやAlternative PortがDesignated Portになることを防ぐことにより、ループを回避する。
non-Designated PortでBPDUが受信されず、Loop Guardが有効であった場合、Listening/Learning/Forwarding状態にならずに、そのポートはSTP loop-inconsistent Blocking状態になる。
Loop Guardはpoint-to-pointリンク上で動作し、Root Guardと同時には使用できない。Loop Guardを有効にするにはGlobal Configurationモードで以下のコマンドを設定する。
spanning-tree loopguard default
Unidirectional Link Detection
UDLDは片方向リンクを発見し、それを無効にする。Spanning Treeのループをはじめ、片方向リンクは複数の問題を抱えている。
UDLDはAuto Negotiationができないタスクを担う事ができる。
UDLDを動作するには、UDLDが有効にされたinterfaceからneighborに対してパケットを送信する。双方のリンクはUDLDをサポートしている必要がある。デフォルトでは、UDLDはcopper interfaceのローカルでは無効になっており、すべてのOptical Fiber Ethernet interfaceでは有効になっている。UDLDを有効にするには以下のコマンドである。
udld enable
Root Guard
Root Guardはネットワーク内のRoot Bridgeの情報を確定させることができる。
Root GuardはRoot Guardが設定されているportをDesignated Portとする。
Root Guardが有効にされたポートで優位なSTP BPDUを受信した場合、ポートはroot-inconsistent STP状態に移行する。root-inconsistent状態はListening状態と同意である。つまり、このポートからはトラフィックが送出されないため、この設定により、Root Bridgeの場所を確定させることができる。
以下の設定でRoot Guardを有効にすることができる。
spanning-tree guard root
BPDU Guard
portfastが設定されたポートでBPDUが受信された場合に、ループが発生する可能性がある。
portfastが設定されたポートでは、BPDUを受信すべきではないが、そのポートでBPDUを受信したとなると、それはセキュリティ事故か設定ミスの可能性がある。
BPDU GuardはBPDUを受信したときに、そのポートをerror-disable状態に移行させる。
BPDU Guardはポート単位、あるいはグローバルに設定することができる。
グローバルに設定する場合
spanning-tree portfast bpduguard
インターフェースで設定する場合
spanning-tree bpduguard enabke
インターフェースレベルで設定する場合は、そのポートにportfastが設定されていなくてもBPDU Guardを有効にすることができる。