Appearance
STP
基本概念
STP(Spanning Tree Protocol)は、Layer2ループを防ぐために冗長リンクの一部をブロックする仕組み。
Root Bridge を基準に、各ポートの役割と状態を決めてトポロジを1本の木構造にする。
| 項目 | 内容 |
|---|---|
| 目的 | Layer2ループ防止、ブロードキャストストーム回避 |
| 代表バリアント | STP (Spanning Tree Protocol), RSTP (Rapid Spanning Tree Protocol), MST (Multiple Spanning Tree) |
| 経路選択の基準 | Root Path Cost(小さい方が優先) |
| 起動時の流れ | 要点 |
|---|---|
| 1 | スイッチは使用ポートを Blocking から Listening へ遷移させる |
| 2 | 初期状態では「自分がRoot Bridge」とみなし、BPDUを送信する |
| 3 | 自分より優位(Bridge IDが小さい)のBPDUを受信したら、その送信元をRoot Bridgeとして扱う |
| 4 | 優位BPDUを受信しなければ、自身がRoot Bridgeになる |
重要: 起動直後は全スイッチが「自分がRoot」として振る舞い、BPDU交換で最終的なRootが収束する。
学習マップ(読む順)
STP / RSTP / MST の違いとスパニングツリープロトコル一覧で全体像を把握STP ポート状態一覧/RSTP ポート状態一覧/対応早見表で状態と役割を固めるルートブリッジ選出/役割選出順序/便利な法則で問題の解き方を固定パスコスト/Port ID/Port Priorityで計算・タイブレークを整理モード選択/混在時の動作/MSTで実装差分を整理STP拡張機能/PortFast/BPDU Guard〜UDLDで運用保護を仕上げる
STP / RSTP / MST の違い
| 方式 | 規格 | 特徴 | 向いている場面 |
|---|---|---|---|
| STP (Spanning Tree Protocol) | 802.1D | 旧来方式。収束が遅め | 旧環境との互換が必要なとき |
| RSTP (Rapid Spanning Tree Protocol) | 802.1w | STPの高速収束版 | 一般的なL2ネットワーク |
| MST (Multiple Spanning Tree) | 802.1s | 複数VLANをインスタンス単位で制御 | VLAN数が多く経路分散したいとき |
スパニングツリープロトコル一覧
| プロトコル | STP | RSTP | MST | CST (Common Spanning Tree) |
|---|---|---|---|---|
| 規格 | IEEE802.1d | IEEE802.1w | IEEE802.1s | IEEE802.1q |
| Ciscoでの実装 | PVST+ | Rapid PVST+ | MST(RSTPベースで動作) | 無し |
| インスタンスの数 | VLANごとに1つ | VLANごとに1つ | 複数のVLANで1つ | 全体で1つ |
| インスタンスごとの負荷分散 | 可 | 可 | 可 | 不可 |
重要: 「複数VLANを1つのインスタンスに割り当てる」ができるのは MST (MSTP)。 補足: MST は Rapid PVST+ そのものではなく、RSTP (Rapid Spanning Tree Protocol) ベースでインスタンス単位に高速収束する方式。
覚え方: キーボード配列の位置で覚えると混ざりにくい。
text
Q W
S DD → W → S で 802.1D → 802.1w → 802.1s(古い→高速→集約)。S → Q で 802.1Q(VLAN文脈)を連想する。
MST インスタンス0(IST)
| 用語 | 意味 |
|---|---|
| IST (Internal Spanning Tree) | MSTインスタンス 0。MSTリージョン内の基準となるインスタンス |
| MSTI (Multiple Spanning Tree Instance) | インスタンス 1-15。VLANを割り当てて負荷分散に使う |
| CIST (Common and Internal Spanning Tree) | リージョン内のISTとリージョン間のCSTを含む全体木 |
| 項目 | IST(インスタンス0)のポイント |
|---|---|
| デフォルトVLAN所属 | 明示マッピングしないVLANはインスタンス 0 に入る |
| 役割 | MSTリージョン内の共通制御プレーン(基準ツリー)として動作 |
| 試験での頻出 | 「全VLANのデフォルトはどのMSTインスタンスか」→ 0 |
| 設定目的 | コンフィグモード | コマンド |
|---|---|---|
| MSTモード有効化 | Global config | spanning-tree mode mst |
| VLANをMSTIへ割当(例) | MST configuration | instance 1 vlan 10,20 |
| 確認コマンド | 見るポイント |
|---|---|
show spanning-tree mst | インスタンスごとのRoot/Role/State |
show spanning-tree mst configuration | name / revision / VLAN-to-instance マッピング |
重要: instance 0(IST)は予約インスタンス。通常は instance 1-15 を設計してVLANを振り分ける。
MST の VLAN グルーピングと負荷分散
| 項目 | ポイント |
|---|---|
| 基本動作 | 複数VLANを1つのMSTインスタンスにまとめ、インスタンス単位でSTP計算する |
| 例 | MSTI 1: VLAN 1-2、MSTI 2: VLAN 3-4 のように分割できる |
| 効果 | インスタンスごとに別のRoot Bridgeを選べるため、経路を分散しやすい |
| ブロッキング | ブロッキングポートはインスタンス単位で決まる(同じ物理ポートでもインスタンスで役割が変わる) |
| 方式 | インスタンス数の考え方 | スイッチ負荷 |
|---|---|---|
| PVST+ (Per-VLAN Spanning Tree Plus) | VLANごとに1インスタンス | VLAN数に比例して増えやすい |
| MST (Multiple Spanning Tree) | VLANをまとめて少数インスタンス化 | 抑えやすい |
| 設定目的 | コンフィグモード | コマンド例 |
|---|---|---|
| VLAN 1-2 を MSTI 1 に割当 | MST configuration | instance 1 vlan 1-2 |
| VLAN 3-4 を MSTI 2 に割当 | MST configuration | instance 2 vlan 3-4 |
| MSTI 1 のRootを優先化 | Global config | spanning-tree mst 1 root primary |
| MSTI 2 のRootを優先化 | Global config | spanning-tree mst 2 root primary |
重要: MST は「インスタンス数を減らして負荷を抑える」と同時に、「インスタンスごとのRoot分離で負荷分散」も狙える。
show spanning-tree mst の見方(Root Bridge判定)
| 見る場所 | 何を判断するか | 判定ポイント |
|---|---|---|
##### MST0 / ##### MST1 などの見出し | どのインスタンスの情報か | インスタンスごとにRoot判定は別 |
Root ID | そのインスタンスのRoot Bridge情報 | Priority + MAC Address を確認 |
Bridge ID(または Bridge Identifier) | 自装置のBridge情報 | Root ID と一致なら自装置がRoot |
This bridge is the root 表示 | 自装置がRootかどうか | 表示があればそのインスタンスでRoot |
Root Port | non-rootかどうか | Root Port があれば non-root(通常) |
| Priorityの読み方 | 内容 |
|---|---|
| 設定Priority | spanning-tree mst <instance-id> priority <value> で設定する値(4096刻み) |
| 表示Priority | 設定Priority + sys-id-ext(MSTでは通常、sys-id-extはinstance-id) |
| 例 | MST1で priority 0 を設定すると表示が 1 に見えることがある |
| 設定目的 | コンフィグモード | コマンド |
|---|---|---|
| MST1の優先度を上げる | Global config | spanning-tree mst 1 priority 0 |
| MST2のRoot候補にする | Global config | spanning-tree mst 2 root primary |
| 確認コマンド | 見るポイント |
|---|---|
show spanning-tree mst | 全MSTインスタンスの Root ID / Bridge ID / Role / State |
show spanning-tree mst <instance-id> | 指定インスタンスだけ詳細確認 |
show running-config | section spanning-tree mst | instanceごとのpriority/root設定 |
重要: 問題文で「設定されているPriority」を聞かれたら、sys-id-ext を除いた設定値で判断する。
STP ポート状態一覧
| 状態 | データ転送 | BPDU送信 | BPDU受信 | 役割/意味 |
|---|---|---|---|---|
| Disabled | しない | しない(原則) | しない(原則) | 管理的にshutdown、またはSTP対象外 |
| Blocking | しない | しない | する | ループ回避のため待機(非転送) |
| Listening | しない | する | する | トポロジ計算中(MAC学習前) |
| Learning | しない | する | する | MACアドレス学習のみ開始 |
| Forwarding | する | する | する | 通常の転送状態 |
| Broken (BKN*) | しない | 状態依存 | 状態依存 | 不整合(例: trunk/access不一致)で保護停止 |
| 方式 | 主な状態表現 |
|---|---|
| STP (802.1D) | Blocking / Listening / Learning / Forwarding / Disabled |
| RSTP (802.1w), MST (802.1s) | Discarding / Learning / Forwarding(実装上は簡略表示されることがある) |
| 確認コマンド | 見るポイント |
|---|---|
show spanning-tree vlan <VLAN-ID> | 各ポートの State/Role、root path |
show spanning-tree inconsistentports | Broken/不整合ポートの有無 |
重要: 設定不一致時に出る Broken は「STP自体が停止」ではなく、該当ポートを保護している状態。
RSTP ポート状態一覧
RSTP (Rapid Spanning Tree Protocol) は STP の5状態を3状態に整理している。
| RSTP状態 | データ転送 | MAC学習 | BPDU送信 | BPDU受信 | 役割/意味 | STP対応 |
|---|---|---|---|---|---|---|
| Discarding | しない | しない | する(主にDesignated Port) | する | 転送しない待機/遮断状態 | Blocking + Listening |
| Learning | しない | する | する(主にDesignated Port) | する | 転送前の学習状態 | Learning |
| Forwarding | する | する | する(主にDesignated Port) | する | 通常転送状態 | Forwarding |
RSTP ポート役割
| 役割 | データ転送 | 主な役目 | 障害時の動き |
|---|---|---|---|
| Root Port | する | 非ルートSWのRoot Bridge向き最短経路 | ダウン時は Alternate Port が昇格候補 |
| Designated Port | する | セグメント代表としてBPDU送出/転送 | 代替経路側で再選出が発生 |
| Alternate Port | しない | Root Port の予備(代替) | Root Port障害時に即切替しやすい |
| Backup Port | しない | Designated Port の予備(同一セグメント内) | 指定ポート障害時に代替として動作 |
| 役割判定のポイント | 内容 |
|---|---|
| すべてのSWが Alternate/Backup を持つわけではない | ループ/冗長構成があるときに出現 |
| 転送するのは Root Port と Designated Port | Alternate/Backup は非転送 |
| 設定目的 | コンフィグモード | コマンド |
|---|---|---|
| RSTP系モードへ切替 | Global config | spanning-tree mode rapid-pvst |
| 確認コマンド | 見るポイント |
|---|---|
show spanning-tree summary | RSTPモードかどうか、全体のSTP状態 |
show spanning-tree vlan <VLAN-ID> | 各ポートの Role/State(Discarding/Learning/Forwarding) |
重要: RSTPでは Discarding が STP の Blocking と Listening を含む。
STP / RSTP 役割と状態の対応早見表
| プロトコル | 役割 (Role) | 代表状態 (State) | 転送 |
|---|---|---|---|
| STP | Root Port | Forwarding | する |
| STP | Designated Port | Forwarding | する |
| STP | Non-Designated Port | Blocking | しない |
| RSTP | Root Port | Forwarding | する |
| RSTP | Designated Port | Forwarding | する |
| RSTP | Alternate Port | Discarding | しない |
| RSTP | Backup Port | Discarding | しない |
| 見分けのコツ | 内容 |
|---|---|
| STPの非転送役割 | Non-Designated(状態は Blocking) |
| RSTPの非転送役割 | Alternate / Backup(状態は Discarding) |
| 収束中のSTP | Listening / Learning を経由して Forwarding へ遷移 |
ルートブリッジとモードの見分け方
show spanning-tree vlan <VLAN-ID> の出力で、モードとルートブリッジ判定を読み取れる。
| 見たい項目 | どこを見るか | 判定ポイント |
|---|---|---|
| STPモード | Spanning tree enabled protocol ... | ieee = STP (PVST+), rstp = RSTP (Rapid PVST+), mstp = MST |
| ルートブリッジか | Root ID と Bridge ID(または自身Address) | 両者が同じなら root、異なれば non-root |
| 補助判定 | Root Port の有無 | root は通常 Root Port を持たない |
重要: 問題で show spanning-tree vlan 10 が出た場合、判定対象は VLAN 10 のインスタンス情報。
ルートブリッジ選出と Bridge Priority
| 項目 | 内容 |
|---|---|
| 選出対象 | 各VLANインスタンスごとにRoot Bridgeを選出 |
| 判定キー | 最小の Bridge ID を持つスイッチ |
| Bridge ID 構成 | Priorityフィールド(設定Priority + VLAN ID) + MAC Address |
| タイブレーク | Priorityが同値なら MAC Address の小さい方が勝つ |
| 設定目的 | コンフィグモード | コマンド |
|---|---|---|
| Bridge Priority を明示設定 | Global config | spanning-tree vlan <VLAN-ID> priority <value> |
| Root候補に昇格 | Global config | spanning-tree vlan <VLAN-ID> root primary |
| Secondary Root候補に設定 | Global config | spanning-tree vlan <VLAN-ID> root secondary |
| Priority の実務ルール | 値 |
|---|---|
| 設定範囲 | 0 - 61440 |
| 刻み幅 | 4096 ごと |
| デフォルト | 32768 |
| 代表例 | 4096, 8192, 28672, 32768 |
| 表示Priorityの補足 | 例 |
|---|---|
表示値は 設定Priority + VLAN ID | VLAN 1で priority 0 を設定すると表示は 1 |
| 4096刻みが必要なのは「設定Priority」 | 表示Priorityは4096刻みにならない場合がある |
| 確認コマンド | 見るポイント |
|---|---|
show spanning-tree vlan <VLAN-ID> | Root ID / Bridge ID、現在のRoot |
show running-config | section spanning-tree | priority / root primary / root secondary の設定 |
重要: priority 100 のような4096刻みでない値は設定不可(エラーになる)。
STP 役割選出順序
| 手順 | 何を選ぶか | 選出ルール(小さい方が優先) |
|---|---|---|
| 1 | Root Bridge | Bridge ID(Bridge Priority + MAC Address) |
| 2 | Root Port(各 non-root SW) | Root Path Cost → 送信元 Bridge ID → 送信元 Port ID |
| 3 | Designated Port(各セグメント) | Root Path Cost → Bridge ID → Port ID |
| 4 | Non-Designated Port | 上記で選ばれなかったポート(STPではBlocking) |
| 用語 | 意味 |
|---|---|
| Root Port | Root Bridge への最短経路ポート(non-root で1本) |
| Designated Port | そのセグメントで転送を代表するポート(セグメントごとに1本) |
| Non-Designated Port | ループ回避のため転送停止するポート |
Port ID の組み合わせルール
| 項目 | 内容 |
|---|---|
| Port ID 構成 | Port Priority + Port Number |
| 比較順序 | 1) Port Priority 2) Port Number |
| 判定ルール | 小さい Port ID が優先 |
| 使う場面 | 具体例 |
|---|---|
| Root Port / Designated Port の最終タイブレーク | CostとBridge IDまで同値なら Port ID で決着 |
Port Priority のデフォルトと負荷分散
| 項目 | 内容 |
|---|---|
| デフォルト値 | 128 |
| 判定ルール | 小さい Port Priority を持つポートの Port ID が有利 |
| 使いどころ | 並行リンクで VLAN ごとに優先ポートを分け、STP経路を分散する |
| 設定目的 | コンフィグモード | コマンド |
|---|---|---|
| VLAN1-3 を Fa0/1 優先 | Interface config | spanning-tree vlan 1-3 port-priority 64 |
| VLAN4-6 を Fa0/3 優先 | Interface config | spanning-tree vlan 4-6 port-priority 64 |
| 確認コマンド | 見るポイント |
|---|---|
show spanning-tree vlan <VLAN-ID> | Root Port が VLAN ごとに期待どおりに分かれているか |
show spanning-tree vlan <VLAN-ID> detail | Port ID(priority.number)と Port Role |
重要: この方式は「VLANごとに別リンクを通常経路にする」ため、結果としてロードバランシングになる。
便利な法則(試験向け)
| 法則 | 使いどころ |
|---|---|
| Root Bridge には Root Port が無い | 役割問題の一次判定 |
| Root Bridge のポートは全て Designated Port | ルートSW側のDPを一気に確定 |
| non-root スイッチは Root Port が1本だけ | 誤選択肢を即除外 |
| Root Port の対向ポートは Designated Port | 隣接セグメントのDPを高速確定 |
| 各セグメントの Designated Port は1本だけ | セグメント単位の消去法 |
| Forwarding になるのは Root Port と Designated Port | 状態問題の高速判定 |
| 余ったポートは Blocking/Discarding | ループ防止の基本 |
覚え方: 「Root を先に決める → 各SWの帰り道(Root Port)を1本決める → 各セグメントの代表(Designated)を1本決める」。
使い方のコツ: まず「Root側DP」と「RP対向DP」を塗りつぶすと、多くのセグメントでDP選出が終わる。
RSTP 役割選出順序
| 手順 | 何を選ぶか | 選出ルール(優先順) |
|---|---|---|
| 1 | Root Bridge | 最小 Bridge ID(Bridge Priority + MAC Address) |
| 2 | Root Port(各 non-root SW) | 最良BPDUを受信するポート(Root Path Cost → 送信元Bridge ID → 送信元Port ID) |
| 3 | Designated Port(各セグメント) | そのセグメントで最良BPDUを広告できるポート |
| 4 | Alternate Port | 同一SWで Root Port になれず、かつそのセグメントで Designated Port でもない非転送ポート(代替経路) |
| 5 | Backup Port | 同一セグメント上で Designated Port の予備となる非転送ポート |
| 非転送役割 | 典型シナリオ | 状態 |
|---|---|---|
| Alternate Port | 冗長リンクで「もう一方の上り」が待機 | Discarding |
| Backup Port | 共有セグメント内で同一SW上のDP予備(出現はまれ) | Discarding |
| 確認コマンド | 見るポイント |
|---|---|
show spanning-tree vlan <VLAN-ID> | 各ポートの Role(Root/Desg/Altn/Bkup)と State |
show spanning-tree interface <IF> detail | 対象IFが受信しているBPDU情報と役割 |
重要: RSTPでも「Root Port と Designated Port だけが転送」。Alternate/Backup は常に非転送。 補足: 手順2と手順3は厳密な時系列というより論理判定。Alternate は「RP/DP にならなかった候補」と覚えると判定しやすい。
パスコスト
パスコストは、Root Bridge までの経路を選ぶときのメトリック。合計コストが小さい経路が優先される。
| 項目 | short pathcost | long pathcost |
|---|---|---|
| ビット長 | 16-bit | 32-bit |
| 指定範囲 | 1 - 65535 | 1 - 200000000 |
| デフォルトで使う場面 | STP / RSTP | MST |
| 目的 | モード | コマンド | 補足 |
|---|---|---|---|
| パスコスト方式を変更 | Global config | spanning-tree pathcost method {short | long} | 方式は装置全体に適用される |
| インターフェースのコストを手動設定 | Interface config | spanning-tree cost <value> | <value> の範囲は採用中の方式に依存 |
bash
Switch(config)# spanning-tree pathcost method long
Switch(config-if)# spanning-tree cost 20000| 確認コマンド | 見るポイント |
|---|---|
show spanning-tree | 各ポートの Cost、Root path cost |
show running-config | section spanning-tree | pathcost method の設定有無 |
ルートパスコスト計算(試験最小ルール)
| ルール | 使い方 |
|---|---|
| ルートパスコスト = 経路上のポートコスト合計 | 各候補経路を足し算して比較 |
| 合計が小さい経路が勝つ | Root Port / Designated Port の第一判定 |
| 同値なら Bridge ID が小さい方 | 第二判定(送信元Bridge比較) |
| さらに同値なら Port ID が小さい方 | 最終判定 |
| 試験での割り切り | 実務上の意味 |
|---|---|
| すべての速度コストを丸暗記しなくてもOK | 問題文の値で大小比較できれば十分 |
| まず「明らかに大きい経路」を除外 | 候補を絞ってから同値判定に進む |
覚え方: 「合計コスト → Bridge ID → Port ID」の順で決着。
覚え方: short = 16-bit = STP/RSTP, long = 32-bit = MST
重要: pathcost method は Global config で設定する。Interface config では設定できない。
モード選択と使い分け
STPモード(STP / RSTP / MST)は、同じドメイン内では基本的にどれか1つを選ぶ運用(排他)になる。
境界で異なるモードが接続されるケースはあるが、設計上はドメイン単位で統一するのが安全。
| 判断ポイント | 推奨 |
|---|---|
| 迷ったときの基本 | デフォルト方式に合わせる |
| STP / RSTP中心 | short を使う |
| MST中心 | long を使う |
| 高速リンクでコストを細かく差分付けしたい | long を検討する |
重要: 方式を変えるとコスト設計の前提が変わるため、ネットワーク内で統一して運用する。
ドメイン内で STP / RSTP が混在したときの動作
| 項目 | 動作 |
|---|---|
| グローバル設定 | spanning-tree mode rapid-pvst で Rapid PVST+(RSTP)を有効化 |
| 隣接が RSTP | そのポートは RSTP として動作 |
| 隣接が STP (Spanning Tree Protocol) | そのポートは STP (802.1D) 互換動作にフォールバック |
| 影響範囲 | フォールバックはポート単位(スイッチ全体がSTP化するわけではない) |
| 試験での判定ポイント | 正誤 |
|---|---|
rapid-pvst は RSTP を有効化する | ✓ |
| STP隣接ポートが shutdown する | ✗ |
| 隣接側スイッチまで自動で RSTP になる | ✗ |
| STP機能(PortFast/UplinkFast/BackboneFast)が自動削除される | ✗(設定は自動削除されない) |
| 設定目的 | コンフィグモード | コマンド |
|---|---|---|
| Rapid PVST+ を有効化 | Global config | spanning-tree mode rapid-pvst |
| 確認コマンド | 見るポイント |
|---|---|
show spanning-tree summary | 現在のSTPモード(PVST/Rapid PVST/MST) |
show spanning-tree interface <IF> detail | IF単位の役割・状態、隣接との互換動作の確認 |
STP 拡張機能一覧
| 系統 | 機能 | 目的 | 典型設定モード |
|---|---|---|---|
| 収束高速化 | PortFast | 端末接続ポートを即Forwardingへ遷移 | Interface config(spanning-tree portfast) |
| 収束高速化 | UplinkFast | 代替アップリンクへの切替を高速化(旧来機能) | Global config(spanning-tree uplinkfast) |
| 収束高速化 | BackboneFast | 間接リンク障害の収束を高速化(旧来機能) | Global config(spanning-tree backbonefast) |
| 保護 | BPDU Guard (Bridge Protocol Data Unit Guard) | エッジポートでBPDU受信時に遮断 | Interface config(spanning-tree bpduguard enable) |
| 保護 | BPDU Filter (Bridge Protocol Data Unit Filter) | BPDU送受信を抑制して不要BPDUを減らす | Interface/Global config |
| 保護 | Root Guard | 想定外のRoot Bridge化を防止 | Interface config(spanning-tree guard root) |
| 保護 | Loop Guard | BPDU欠落時のループを防止 | Interface config(spanning-tree guard loop) |
| 保護 | UDLD (Unidirectional Link Detection) | 単方向リンクを検出して保護 | Interface config(udld enable/aggressive) |
| 代表的な確認コマンド | 見るポイント |
|---|---|
show spanning-tree summary | PortFast/BPDU Guard/BPDU Filter などの有効状況 |
show spanning-tree interface <IF> detail | ポート単位のガード設定と状態 |
show spanning-tree inconsistentports | Root/Loop 不整合の検出ポート |
show udld | UDLD 全体状態 |
PortFast オプション
| コマンド | コンフィグモード | 主な用途 | 注意点 |
|---|---|---|---|
spanning-tree portfast | Interface config | アクセスポートを即Forwardingにする | 端末接続ポート向け(SW間リンクには通常使わない) |
spanning-tree portfast trunk | Interface config | トランクでもPortFastを有効化 | 接続先がスイッチの場合はループリスクに注意 |
spanning-tree portfast disable | Interface config | そのIFのPortFastを無効化 | 誤って有効化したIFの戻しに使う |
spanning-tree portfast default | Global config | 既定でPortFastを有効化(主にアクセスポート一括) | 意図しないIFまで有効化しないよう設計確認が必要 |
| 典型パターン | 設定例 |
|---|---|
| PC接続アクセスポートで有効化 | switchport mode access + spanning-tree portfast |
| トランクで明示有効化 | switchport mode trunk + spanning-tree portfast trunk |
| 全体の既定有効化 | spanning-tree portfast default(Global config) |
| 確認コマンド | 見るポイント |
|---|---|
show spanning-tree summary | PortFast default の有効状態 |
show spanning-tree interface <IF> detail | 対象IFでPortFastが有効か |
show running-config interface <IF> | IF単位の spanning-tree portfast 設定有無 |
重要: PortFast は収束を速める機能であり、ループ防止機能ではない。エッジポートでは BPDU Guard (Bridge Protocol Data Unit Guard) 併用が基本。
BPDU Guard / BPDU Filter / Root Guard / Loop Guard / UDLD
| 機能 | 何を防ぐか | 典型適用ポート | 異常時アクション |
|---|---|---|---|
| BPDU Guard (Bridge Protocol Data Unit Guard) | エッジポートへのBPDU流入(想定外SW接続) | PortFast有効のアクセスポート | BPDU受信で err-disable |
| BPDU Filter (Bridge Protocol Data Unit Filter) | 不要なBPDU送信/処理 | 端末向けアクセスポート(慎重に適用) | BPDU処理を抑制(適用ミスでループリスク) |
| Root Guard | 想定外の superior BPDU 受信による Root Bridge 乗っ取り | アクセス側や下位SW向き | Root-inconsistent 状態にして転送停止 |
| Loop Guard | BPDU 欠落による一方向障害時のループ | 非指定ポート(冗長リンク) | Loop-inconsistent 状態にして転送停止 |
| UDLD (Unidirectional Link Detection) | 物理/光リンクの単方向通信 | 光リンクや上位間リンク | 通常: 警告中心、アグレッシブ: 再試行失敗でポート無効化 |
| 機能 | 有効化コマンド(Interface config) | 代表的な確認コマンド |
|---|---|---|
| BPDU Guard | spanning-tree bpduguard enable | show spanning-tree summary / show spanning-tree interface <IF> detail |
| BPDU Filter | spanning-tree bpdufilter enable | show spanning-tree summary / show spanning-tree interface <IF> detail |
| Root Guard | spanning-tree guard root | show spanning-tree inconsistentports |
| Loop Guard | spanning-tree guard loop | show spanning-tree inconsistentports |
| UDLD | udld port enable / udld port aggressive | show udld / show udld GigabitEthernet 0/3 |
BPDU Guard のポイント
| 項目 | 内容 |
|---|---|
| 使いどころ | ユーザ端末接続ポート(PortFast) |
| 事故パターン | アクセスポートに誤ってSW接続 |
| 挙動 | BPDU受信で即 err-disable(ループ拡大を防ぐ) |
| 復旧 | 原因除去後に shutdown / no shutdown または errdisable recovery |
UDLD モード
| モード | 挙動 | 異常時 | 設定例(Interface config) |
|---|---|---|---|
| normal | 単方向リンクを検出して状態を通知する | 原則ポートは自動停止しない | udld port enable |
| aggressive | 検出時に再試行して相手応答を確認する | 再試行失敗でポートを err-disable | udld port aggressive |
UDLD 構文差分(Global / Interface)
| 用途 | コンフィグモード | コマンド |
|---|---|---|
| 全体をアグレッシブ有効化 | Global config | udld aggressive |
| 全体を通常有効化 | Global config | udld enable |
| 特定IFをアグレッシブ有効化 | Interface config | udld port aggressive |
| 特定IFを通常有効化 | Interface config | udld port enable |
重要: インターフェースで設定する場合は udld port ... を使う。
| 確認コマンド | 見るポイント |
|---|---|
show udld | 全体の有効/無効、各ポートの状態 |
show udld GigabitEthernet 0/3 | 対象IFの Enabled と in aggressive mode 表示 |
覚え方: BPDU Guard は「エッジ保護」、BPDU Filter は「BPDU抑制」、Root Guard は「偽Root防止」、Loop Guard は「BPDU消失対策」、UDLD は「単方向リンク検出」。
重要: Loop Guard と UDLD は役割が重なる部分があるが、検出レイヤが違うため併用されることが多い。