InfraAcademy

InfraAcademy Blog

STPのルートブリッジはどう決まる?CCNAのスパニングツリー問題を、ブリッジIDとコストの順に解く練習問題8問

著者: ryu | #スイッチ #CCNA #資格
Linuxをブラウザで試してみる

Linux・ネットワーク・AWSを、環境構築なしで実践学習できます

この記事を共有

こんにちは、インフラエンジニアのryuです。

この記事は、CCNAの勉強をしていて、STP(スパニングツリー)の問題になると手が止まってしまう人に向けて書いています。

STPの問題は、図の中のスイッチの数が増えると、どこから考えればいいのか分からなくなりがちです。でも実際は、決める順番がはっきり決まっているので、その順番どおりに見ていけば答えは1つに決まります。

この記事では、まずルートブリッジ・ルートポート・指定ポートを決める手順を整理してから、オリジナルの練習問題を8問解いてもらいます。

CCNA全体の勉強の進め方は、CCNAの勉強方法の記事にまとめています。STPはVLANの知識が前提になるので、VLANとトランクがあいまいな人は先にCCNAのVLANの練習問題を解いておくと読みやすいです。

CCNAでSTPはどこまで問われる?

まずは試験の範囲を確認しておきます。CCNA(200-301 v1.1)では、STPは「2.0 Network Access」の分野に入っています。この分野は試験全体の20%で、VLAN、トランク、EtherChannel、無線LANなどと同じグループです。

出題範囲には、Rapid PVST+の基本的な動作を読み取れることが書かれていて、次のような項目が並んでいます。

項目 具体的な内容
ルートポート、ルートブリッジ(プライマリ・セカンダリ)、そのほかのポートの名前 どのスイッチがルートになり、各ポートがどの役割になるか
ポートの状態とポートの役割 フォワーディング・ブロッキング(廃棄)、指定ポート・代替ポートなど
PortFast PCなどをつなぐポートで、すぐに通信できるようにする設定

Rapid PVST+は、Ciscoのスイッチが使うSTPの方式で、VLANごとに別々のスパニングツリーを作ります。そのため、VLAN 10 と VLAN 20 でルートブリッジが違う、ということも起こります。

なお、現行の200-301 v1.1の最終受験日は2027年2月2日で、2027年2月3日からはv2.0に切り替わります。受験日が決まったら、Ciscoの公式ページで出題範囲をもう一度確認しておきましょう。

STPで役割を決める3つの手順とは?

STPは、スイッチ同士をループのない形につなぐための仕組みです。スイッチを2本以上の経路でつなぐと、ブロードキャストがぐるぐる回り続けてネットワークが止まってしまうので、一部のポートを止めてループをなくします。

止めるポートを決める手順は、次の3つです。問題を解くときも、必ずこの順番で考えます。

順番 決めるもの 決め方
1 ルートブリッジ(ネットワークに1台) ブリッジIDがいちばん小さいスイッチ
2 ルートポート(ルート以外のスイッチに1つずつ) ルートブリッジまでのコストの合計がいちばん小さいポート
3 指定ポート(リンク1本ごとに1つ) そのリンクで、ルートブリッジまでのコストが小さいほうのスイッチのポート

ルートポートにも指定ポートにもならなかったポートが、通信を止めるポートになります。Rapid PVST+では、このポートを代替ポート(Alternate)と呼びます。

ルートブリッジのポートは、すべて指定ポートになります。ルートブリッジ自身にはルートポートがありません。

この表の中でも、ルートブリッジ → ルートポート → 指定ポートの順に決めることがいちばん大切です。順番を飛ばして、いきなり止まるポートを探そうとすると間違えます。

ブリッジIDの比べ方

ブリッジIDは、優先度とMACアドレスを並べたものです。比べるときは、まず優先度を比べて、同じならMACアドレスを比べます。どちらも小さいほうが勝ちです。

優先度の初期値は 32768 です。Ciscoのスイッチでは、優先度の中にVLAN番号(拡張システムID)が足されて表示されます。たとえば VLAN 10 で初期値のままなら、表示される優先度は 32768 + 10 = 32778 です。

拡張システムIDがVLAN番号を入れるのに下位の12ビットを使うので、自分で設定できる優先度は 4096 の倍数だけになります。0、4096、8192……61440 のどれかです。

SW1(config)# spanning-tree vlan 10 priority 24576
SW1(config)# spanning-tree vlan 10 root primary
SW2(config)# spanning-tree vlan 10 root secondary

1行目は優先度を直接指定する書き方です。2行目の root primary は、そのVLANのルートブリッジになるように優先度を自動で下げるコマンドで、3行目の root secondary はルートが止まったときの次の候補にするコマンドです。

コストの合計と、同じだったときの比べ方

ルートポートは、ルートブリッジまでのコスト(ルートパスコスト)の合計で決まります。コストはリンクの速度ごとに初期値があり、速いリンクほど小さくなります。

リンクの速度 コストの初期値
10Mbps 100
100Mbps 19
1Gbps 4
10Gbps 2

コストの合計が同じ経路が2つ以上あるときは、次の順で比べます。

  1. 隣のスイッチ(BPDUの送信元)のブリッジIDが小さいほう
  2. 隣のスイッチのポートの優先度が小さいほう
  3. 隣のスイッチのポート番号が小さいほう

ここで比べるのは、自分のポートではなく隣のスイッチ側の値だという点が引っかけになりやすいです。2台のスイッチを2本のケーブルでつないだときに、どちらのポートがルートポートになるかを問う問題で、よく使います。

show spanning-treeの見方を確認しよう

問題に入る前に、確認のコマンドを見ておきます。show spanning-tree を実行すると、VLANごとにルートブリッジの情報、自分のブリッジIDの情報、ポートごとの役割と状態が表示されます。

ポートの表は、次のような列で並びます。

Interface           Role Sts Cost      Prio.Nbr Type
------------------- ---- --- --------- -------- ----------------
Gi0/1               Root FWD 4         128.1    P2p
Gi0/2               Altn BLK 4         128.2    P2p

Role の Root はルートポート、Desg は指定ポート、Altn は代替ポートです。Sts の FWD はフォワーディング、BLK はブロッキング(Rapid PVST+の廃棄にあたる状態)を表しています。

Prio.Nbr は、ポートの優先度とポート番号です。初期値の優先度は 128 なので、128.1 のように表示されます。

Rapid PVST+のポートの状態は、廃棄(Discarding)・学習(Learning)・フォワーディング(Forwarding)の3つです。昔の802.1Dでは、ブロッキング・リスニング・ラーニング・フォワーディングと分かれていましたが、Rapid PVST+ではブロッキングとリスニングなどが廃棄にまとめられています。

ルートブリッジだけを確認したいときは show spanning-tree root、動作モードやPortFastの設定を確認したいときは show spanning-tree summary も使えます。スイッチの基本のコマンドを見直したい人は、Ciscoルーターのコマンド一覧もあわせて見てください。

CCNAのSTPの練習問題8問

ここからはオリジナルの練習問題です。正解と解説は、それぞれの問題のすぐ下の引用ブロックにまとめています。先に自分で答えを決めてから読んでください。

問題1:ルートブリッジになるスイッチ

同じVLANに、次の3台のスイッチがあります。ルートブリッジになるのはどれですか。

スイッチ 優先度 MACアドレス
SW1 32768 0011.1111.1111
SW2 32768 0011.0000.aaaa
SW3 28672 00aa.2222.2222
  • A. SW1
  • B. SW2
  • C. SW3
  • D. 3台ともルートブリッジになる

正解:C ブリッジIDは、まず優先度を比べます。SW3の優先度 28672 がいちばん小さいので、MACアドレスを比べるまでもなくSW3がルートブリッジです。SW2はMACアドレスが小さいですが、優先度で負けています。

問題2:設定できる優先度

拡張システムIDが有効なCiscoのスイッチで、spanning-tree vlan 10 priority に指定できる値はどれですか。

  • A. 30000
  • B. 24576
  • C. 32769
  • D. 20000

正解:B 優先度は 4096 の倍数でしか設定できません。24576 は 4096 × 6 なので設定できます。ほかの3つは 4096 で割り切れないので、エラーになります。

問題3:表示された優先度とVLAN番号

show spanning-tree の自分のブリッジIDの欄に、Priority 32788 と表示されていました。優先度を変更していないとき、これは何番のVLANの情報ですか。

  • A. VLAN 1
  • B. VLAN 20
  • C. VLAN 32
  • D. VLAN 88

正解:B 表示される優先度は、設定した優先度にVLAN番号を足した値です。初期値 32768 に 20 を足すと 32788 になるので、VLAN 20 です。

問題4:コストでルートポートを選ぶ

SW1がルートブリッジです。SW3は、SW1と100MbpsのリンクのGi0/1でつながっています。また、Gi0/2でSW2と1Gbpsでつながっていて、SW2はSW1と1Gbpsでつながっています。コストは初期値のままです。SW3のルートポートはどれですか。

  • A. Gi0/1(SW1への直接のリンク)
  • B. Gi0/2(SW2を通るリンク)
  • C. 両方がルートポートになる
  • D. どちらもルートポートにならない

正解:B Gi0/1の経路は100Mbpsが1本なので、コストは 19 です。Gi0/2の経路は1Gbpsが2本なので、4 + 4 = 8 です。合計の小さいGi0/2がルートポートになります。直接つながっているかどうかではなく、コストの合計で決まる点がポイントです。

問題5:コストが同じときの比べ方

SW4から見て、ルートブリッジまでのコストが同じ経路が2つあります。1つはブリッジIDが 24576 / 0011.aaaa.aaaa のSW2を通る経路で、もう1つはブリッジIDが 32768 / 0011.0000.0001 のSW3を通る経路です。SW4のルートポートはどちらにつながるポートですか。

  • A. SW2につながるポート
  • B. SW3につながるポート
  • C. SW4のポート番号が小さいほう
  • D. SW4のMACアドレスで決まる

正解:A コストが同じときは、隣のスイッチのブリッジIDを比べます。SW2の優先度 24576 はSW3の 32768 より小さいので、SW2につながるポートがルートポートです。比べるのは隣のスイッチの値で、SW4自身のポート番号やMACアドレスではありません。

問題6:指定ポートと代替ポート

SW1がルートブリッジです。SW2はSW1と1Gbps、SW3はSW1と100Mbpsでつながっていて、SW2とSW3の間も100Mbpsのリンクでつながっています。コストは初期値のままです。SW2とSW3の間のリンクで、通信を止めるポートはどれですか。

  • A. SW2側のポート
  • B. SW3側のポート
  • C. 両方のポート
  • D. どちらも止めない

正解:B SW3からルートまでの経路は、SW1への直接のリンクが 19、SW2を通る経路が 19 + 4 = 23 なので、ルートポートはSW1への直接のリンクです。その結果、SW2のルートパスコストは 4、SW3は 19 になります。SW2とSW3の間のリンクでは、コストの小さいSW2のポートが指定ポートになります。SW3側のポートはルートポートでも指定ポートでもないので、代替ポートになって通信を止めます。

問題7:ルートブリッジのポート

ルートブリッジのポートについて、正しい説明はどれですか。

  • A. ルートブリッジのポートは、1つだけがルートポートになる
  • B. ルートブリッジのポートは、すべて指定ポートになる
  • C. ルートブリッジのポートは、すべて代替ポートになる
  • D. ルートブリッジのポートは、コストが大きいものから止まる

正解:B ルートブリッジはルートまでのコストが 0 なので、どのリンクでも指定ポートになります。ルートポートは、ルート以外のスイッチが持つものです。

問題8:PCをつなぐポートの設定

PCだけをつなぐアクセスポートで、リンクが上がったらすぐにフォワーディングにしたいです。また、そのポートでBPDUを受け取ったら、ポートを止めてほしいです。この2つを満たすインターフェースの設定はどれですか。

  • A. spanning-tree portfast と spanning-tree bpduguard enable
  • B. spanning-tree vlan 1 root primary と spanning-tree portfast
  • C. spanning-tree cost 1 と spanning-tree bpduguard enable
  • D. switchport mode trunk と spanning-tree portfast

正解:A PortFastは、PCなどスイッチ以外の機器をつなぐポートをすぐにフォワーディングにする設定です。BPDUガードは、そのポートでBPDUを受け取るとポートをerr-disabled(エラーで無効)にします。PCのポートにスイッチがつながれてループができるのを防ぐため、2つはセットで使われます。

間違えやすいポイントのまとめ

8問を解いてみて、間違えた問題があれば、次の表で原因を確認してください。

間違え方 確認すること
MACアドレスから比べてしまった ブリッジIDは優先度が先。優先度が同じときだけMACアドレスを見る
直接つながっているポートをルートポートにした リンクの本数ではなく、コストの合計で決まる
自分のポート番号で比べてしまった コストが同じときは、隣のスイッチのブリッジID → ポート優先度 → ポート番号
止めるポートを最初に探した ルートブリッジ → ルートポート → 指定ポートの順に決め、残りが代替ポート
表示された優先度が設定値と違って混乱した 表示はVLAN番号が足された値になっている

今日やる練習とInfraAcademyで続ける方法

今日の練習として、次の3つをやってみてください。紙とペンだけでできます。

  1. 三角形につながった3台のスイッチを書き、問題6の条件でルートポート・指定ポート・代替ポートに印をつける
  2. 問題6のSW2とSW3の間のリンクを1Gbpsに変えたら、SW3のルートポートと止まるポートがどう変わるかを考える
  3. VLAN 30 で優先度を 4096 にしたとき、show spanning-tree で表示される優先度を計算する

実際にスイッチを設定して確かめたい人は、CCNAのハンズオン課題の記事に構築の課題があります。STPの前提になるVLANの考え方は、スイッチとVLANの解説で見直せます。

InfraAcademy のネットワークの講座では、講座の中のシミュレーターでルーターやスイッチを設定して、ping で疎通を確認できます。ネットワークの学習の順番はネットワークのロードマップで確認できます。

問題演習を続けたい人は、トップページのInfraAcademy の資格模擬問題から「CCNA模擬試験200問」を解けます。Network Accessの分野で間違えた問題があれば、この記事の3つの手順に戻って、どこで順番を飛ばしたのかを確認してみてください。

ほかの分野もまとめて腕試しをしたい人は、CCNAの練習問題10問の記事も解いてみてください。

まとめ

CCNAのSTPの問題で、押さえておきたいところを振り返ります。

  • ルートブリッジは、優先度 → MACアドレスの順に比べて、ブリッジIDが最小のスイッチ
  • 優先度は 4096 の倍数で設定し、表示にはVLAN番号が足される
  • ルートポートは、ルートまでのコストの合計が最小のポート。同じなら隣のスイッチの値で比べる
  • 指定ポートはリンクごとに1つ。ルートブリッジのポートはすべて指定ポート
  • 残ったポートが代替ポートになり、通信を止める
  • PCをつなぐポートは、PortFastとBPDUガードをセットで設定する

STPの問題は、図が複雑に見えても、決める順番を守れば落ち着いて解けます。

間違えた問題は、どの手順で判断を誤ったのかを言えるようにしておきましょう。合格に向けて、一緒に進んでいきましょう。

参考

Next Action

記事で読んだ内容を、講座で実装してみましょう

InfraAcademyでは、ブラウザ上でLinuxやネットワークの実践環境を使いながら学習できます。無料で始められる講座から、学習の流れを試せます。

この記事を書いた人

ryu

株式会社InfraAcademy 代表 / エンジニア

大手メーカーでインフラエンジニアとして勤務した後、ベンチャー企業・スタートアップでフルスタックエンジニアを経験。その後、起業し学習サービス「InfraAcademy」を運営しています。
保有資格:ネットワークスペシャリストなど 運営会社:株式会社InfraAcademy

Related

関連記事

ブログ一覧へ

Roadmap

まずはこの4講座から

ログインすれば無料で始められる講座です。気になったテーマから手を動かして学べます。

講座一覧を見る