{"articleId":"art_84bcc96dc7","slug":"nw-basics-14-stp","title":"線はつないだまま、口を 1 か所だけ止める","version":1,"area":"tech","topic":"ネットワーク","tags":["ネットワーク","stp","スイッチ","concept"],"date":"2026-09-14","updated":"2026-09-14","records":[{"id":"rev_8809a24119","at":"2026-09-14","actor":{"kind":"ai","id":"claude-fable-5","label":"AI (claude-fable-5)"},"version":1,"kind":"ai-check","scope":{},"text":"出典 URL 9 本を再取得して到達を確かめた。タイマーの既定値（Hello 2 秒・Forward Delay 15 秒・Max Age 20 秒）は Cisco の Tune STP Timers、優先度の既定 32768・4096 刻み・拡張システム ID ＝ VLAN 番号・コスト（100 Mb/s は 19、1 Gb/s は 4）は Catalyst 9200 の設定ガイド、直接検知が Forward Delay の 2 倍で 30 seconds of disruption と提案・同意がタイマーに頼らないことは 802.1w のページ、BPDU guard の errdisable は PortFast/BPDU Guard のページ、Root guard の root-inconsistent と Loop guard は Catalyst 9300 の設定ガイド、BPDU filter の警告文は Catalyst 3750-X/3560-X の設定ガイド、L2 に TTL に当たる仕組みが無いことは Layer-2 Loops のページ、BPDU の宛先 MAC の 2 通りは PVID-Inconsistency のページで確認した。約 50 秒は Max Age 20 と Forward Delay 15 の 2 倍を足した値で、30 秒・50 秒を 1 つの数字として書いているのは二次資料だけだった。MAC の大小と製造時期の関係は根拠を見つけられず未検証として残した。校正チェックリストを通し、例え話・体言止め・藁人形・未定義語の初出を検査した。守秘: 実名・社名・会場名・地名・金額なし","status":"open","source":"frontmatter"}],"blocks":[{"id":"blk_2e6565","type":"paragraph","markdown":"図 13 までは、機器と機器を 1 本の線で結んでいました。\nここから図 16 までは「壊れても止まらない」の塊で、まず線を 2 本以上にします。","text":"図 13 までは、機器と機器を 1 本の線で結んでいました。\nここから図 16 までは「壊れても止まらない」の塊で、まず線を 2 本以上にします。","line":2,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_d92167","type":"paragraph","markdown":"図 4 ではスイッチ 2 台をトランク 1 本で結びました。\n線を足して輪にすると、1 本切れても落ちない代わりに、止めないとその VLAN の通信がほぼ止まります。\n図 2 のフラッディング（全員あてのフレームを、入ってきた口以外の全部にコピーして流す）が輪を回り続け、イーサネットのフレームには IP の TTL に当たる欄が無いからです。\n同じ送信元 MAC が別の口から何度も入るので、MAC アドレステーブルも揺れます。","text":"図 4 ではスイッチ 2 台をトランク 1 本で結びました。\n線を足して輪にすると、1 本切れても落ちない代わりに、止めないとその VLAN の通信がほぼ止まります。\n図 2 のフラッディング（全員あてのフレームを、入ってきた口以外の全部にコピーして流す）が輪を回り続け、イーサネットのフレームには IP の TTL に当たる欄が無いからです。\n同じ送信元 MAC が別の口から何度も入るので、MAC アドレステーブルも揺れます。","line":5,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_ea94e7","type":"paragraph","markdown":"STP（スパニングツリープロトコル）は、線をつないだまま、口を 1 か所だけ論理的に止めて、通り道を木（輪のない形）にします。","text":"STP（スパニングツリープロトコル）は、線をつないだまま、口を 1 か所だけ論理的に止めて、通り道を木（輪のない形）にします。","line":10,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_bb713c","type":"paragraph","markdown":"この連載は、ネットワークの言葉を 3 つの層に置いて読みます。\nもの（物理か論理か）、結びつき（人が設定で付ける手動か、機器が学習する自動か、製造時に決まる固定か）、通信フロー（1 本の通信がそれらを順に通る道筋）の 3 つです。","text":"この連載は、ネットワークの言葉を 3 つの層に置いて読みます。\nもの（物理か論理か）、結びつき（人が設定で付ける手動か、機器が学習する自動か、製造時に決まる固定か）、通信フロー（1 本の通信がそれらを順に通る道筋）の 3 つです。","line":12,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_34ba84","type":"heading","depth":2,"markdown":"## 登場するもの","text":"登場するもの","line":15,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_9cdd13","type":"heading","depth":4,"markdown":"#### BPDU","text":"BPDU","line":17,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_f9ea91","type":"paragraph","markdown":"論理のものです。\nスイッチ同士だけが交換する STP 用のフレームで、中身は［ルート ID］［根までのコスト］［送信元ブリッジ ID］［ポート ID］です。\n宛先は決まった番地で、隣のスイッチより先へは転送されません。","text":"論理のものです。\nスイッチ同士だけが交換する STP 用のフレームで、中身は［ルート ID］［根までのコスト］［送信元ブリッジ ID］［ポート ID］です。\n宛先は決まった番地で、隣のスイッチより先へは転送されません。","line":19,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_56964b","type":"heading","depth":4,"markdown":"#### ブリッジ ID","text":"ブリッジ ID","line":23,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_433855","type":"paragraph","markdown":"優先度と MAC を並べた値です。\n優先度の欄は論理・手動で、4096 刻みの値に VLAN 番号を足します（既定 32768 の機器は VLAN 10 では 32778）。\nMAC の部分は、製造時に決まる固定です。","text":"優先度と MAC を並べた値です。\n優先度の欄は論理・手動で、4096 刻みの値に VLAN 番号を足します（既定 32768 の機器は VLAN 10 では 32778）。\nMAC の部分は、製造時に決まる固定です。","line":25,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_f1fc0a","type":"heading","depth":4,"markdown":"#### ポートの役割とコスト","text":"ポートの役割とコスト","line":29,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_364ebe","type":"paragraph","markdown":"どちらも論理で、自動で決まります。\n役割はルートポート・指定ポート・ブロックの 3 つです。\nコストは線の速さから決まり、100 Mb/s は 19、1 Gb/s は 4 です。","text":"どちらも論理で、自動で決まります。\n役割はルートポート・指定ポート・ブロックの 3 つです。\nコストは線の速さから決まり、100 Mb/s は 19、1 Gb/s は 4 です。","line":31,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_118c7a","type":"heading","depth":2,"markdown":"## 結びつき","text":"結びつき","line":35,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_7639a6","type":"list","markdown":"- 人が設定するのは、優先度（どれを根にするか）と、後述する守りの設定をどの口に付けるかだけです。\n- 根とポートの役割の決定は、スイッチが BPDU を比べて自分で計算します。人は「どこを止めろ」とは書きません。\n- 木は VLAN ごとに別です（PVST+）。図 4 のトランクの上を、VLAN 10 と VLAN 20 で別の道に流せます。","text":"人が設定するのは、優先度（どれを根にするか）と、後述する守りの設定をどの口に付けるかだけです。根とポートの役割の決定は、スイッチが BPDU を比べて自分で計算します。人は「どこを止めろ」とは書きません。木は VLAN ごとに別です（PVST+）。図 4 のトランクの上を、VLAN 10 と VLAN 20 で別の道に流せます。","line":37,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_df21fc","type":"heading","depth":2,"markdown":"## 通信フロー","text":"通信フロー","line":41,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_1f4c76","type":"paragraph","markdown":"スイッチ 4 台を輪につなぎ、スイッチ 1 だけ優先度を 4096（VLAN 10 では 4106）に下げてあります。","text":"スイッチ 4 台を輪につなぎ、スイッチ 1 だけ優先度を 4096（VLAN 10 では 4106）に下げてあります。","line":43,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_4d9153","type":"paragraph","markdown":"① 電源を入れた直後、各スイッチは「根は自分」と書いた BPDU を全ポートへ出します。","text":"① 電源を入れた直後、各スイッチは「根は自分」と書いた BPDU を全ポートへ出します。","line":45,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_9ebbe3","type":"paragraph","markdown":"② 受け取った側はルート ID を比べます。優先度は数値が小さい方が優先され、同じなら MAC が小さい方が根になります。","text":"② 受け取った側はルート ID を比べます。優先度は数値が小さい方が優先され、同じなら MAC が小さい方が根になります。","line":47,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_170617","type":"paragraph","markdown":"③ 各スイッチは、根までのコストが最小の口を 1 つだけルートポートにします。同点なら送信元ブリッジ ID が小さい側です。","text":"③ 各スイッチは、根までのコストが最小の口を 1 つだけルートポートにします。同点なら送信元ブリッジ ID が小さい側です。","line":49,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_04206b","type":"paragraph","markdown":"④ 線の 1 区間ごとに、根に近い側の口が指定ポートになります。","text":"④ 線の 1 区間ごとに、根に近い側の口が指定ポートになります。","line":51,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_dcf1f6","type":"paragraph","markdown":"⑤ ルートポートでも指定ポートでもない口をブロックします。輪が 1 か所だけ切れ、通り道が木になります。","text":"⑤ ルートポートでも指定ポートでもない口をブロックします。輪が 1 か所だけ切れ、通り道が木になります。","line":53,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_551066","type":"paragraph","markdown":"⑥ 線が切れたとき、切れた口を持つスイッチはすぐ気づきます。持たないスイッチは、良い BPDU が来なくなるのを待ってから計算し直します。","text":"⑥ 線が切れたとき、切れた口を持つスイッチはすぐ気づきます。持たないスイッチは、良い BPDU が来なくなるのを待ってから計算し直します。","line":55,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_00e4d9","type":"heading","depth":2,"markdown":"## 図 14","text":"図 14","line":57,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_c42ac8","type":"paragraph","markdown":"図の上半分が輪の状態と STP を入れた後の形、中ほどが復旧の秒数と守りの設定、下半分が役割の推移と BPDU の中身の推移です。","text":"図の上半分が輪の状態と STP を入れた後の形、中ほどが復旧の秒数と守りの設定、下半分が役割の推移と BPDU の中身の推移です。","line":59,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_8fea86","type":"html","markdown":"<svg viewBox=\"0 0 900 1919\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"構成図（STP・輪を論理的に切る）\" style=\"max-width:100%;height:auto;font-family:sans-serif\">\n  <rect x=\"0\" y=\"0\" width=\"900\" height=\"1919\" fill=\"#fbfcfe\"/>\n  <text x=\"20\" y=\"30\" text-anchor=\"start\" font-size=\"14\" font-weight=\"700\" fill=\"#1f2937\">STP：スイッチを輪につないだとき、どの口を論理的に止めるか</text>\n  <text x=\"20\" y=\"50\" text-anchor=\"start\" font-size=\"11\" fill=\"#6b7280\">線を 2 本以上にすると輪ができる。輪は落ちない代わりに、止めないとネットワーク全体が使えなくなる。STP は輪を 1 か所だけ切って木にする</text>\n  <rect x=\"20\" y=\"66\" width=\"400\" height=\"250\" rx=\"10\" fill=\"#fff7ed\" stroke=\"#d97706\" stroke-width=\"1.5\" stroke-dasharray=\"6 4\"/>\n  <text x=\"32\" y=\"88\" text-anchor=\"start\" font-size=\"12\" font-weight=\"700\" fill=\"#b45309\">STP が無いとき：全員あてのフレームが輪を回り続ける</text>\n  <rect x=\"50\" y=\"112\" width=\"120\" height=\"34\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"110.0\" y=\"132\" text-anchor=\"middle\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">スイッチ 1</text>\n  <rect x=\"250\" y=\"112\" width=\"120\" height=\"34\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"310.0\" y=\"132\" text-anchor=\"middle\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">スイッチ 2</text>\n  <rect x=\"50\" y=\"202\" width=\"120\" height=\"34\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"110.0\" y=\"222\" text-anchor=\"middle\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">スイッチ 4</text>\n  <rect x=\"250\" y=\"202\" width=\"120\" height=\"34\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"310.0\" y=\"222\" text-anchor=\"middle\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">スイッチ 3</text>\n  <line x1=\"170\" y1=\"129\" x2=\"250\" y2=\"129\" stroke=\"#374151\" stroke-width=\"2\"/>\n  <line x1=\"310\" y1=\"146\" x2=\"310\" y2=\"202\" stroke=\"#374151\" stroke-width=\"2\"/>\n  <line x1=\"170\" y1=\"219\" x2=\"250\" y2=\"219\" stroke=\"#374151\" stroke-width=\"2\"/>\n  <line x1=\"110\" y1=\"146\" x2=\"110\" y2=\"202\" stroke=\"#374151\" stroke-width=\"2\"/>\n  <line x1=\"182\" y1=\"120\" x2=\"232\" y2=\"120\" stroke=\"#b45309\" stroke-width=\"2\"/><polygon points=\"231,115 231,125 240,120\" fill=\"#b45309\"/>\n  <line x1=\"322\" y1=\"154\" x2=\"322\" y2=\"188\" stroke=\"#b45309\" stroke-width=\"2\"/><polygon points=\"317,187 327,187 322,196\" fill=\"#b45309\"/>\n  <line x1=\"238\" y1=\"228\" x2=\"188\" y2=\"228\" stroke=\"#b45309\" stroke-width=\"2\"/><polygon points=\"189,223 189,233 180,228\" fill=\"#b45309\"/>\n  <line x1=\"98\" y1=\"194\" x2=\"98\" y2=\"160\" stroke=\"#b45309\" stroke-width=\"2\"/><polygon points=\"93,161 103,161 98,152\" fill=\"#b45309\"/>\n  <text x=\"210\" y=\"170\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#b45309\">コピーが回り続ける</text>\n  <text x=\"210\" y=\"186\" text-anchor=\"middle\" font-size=\"9\" fill=\"#b45309\">（誰も止められない）</text>\n  <text x=\"32\" y=\"258\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">・全員あてのフレームは各スイッチでコピーされ、輪を回り続ける</text>\n  <text x=\"32\" y=\"274\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">・イーサネットのフレームには、IP の TTL に当たる欄が無い</text>\n  <text x=\"32\" y=\"290\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">・同じ送信元 MAC が別の口から何度も入り、MAC テーブルが揺れる</text>\n  <text x=\"32\" y=\"306\" text-anchor=\"start\" font-size=\"10\" fill=\"#b45309\">・輪ができた瞬間に、その VLAN の通信がほぼ止まる</text>\n  <rect x=\"460\" y=\"66\" width=\"420\" height=\"250\" rx=\"10\" fill=\"none\" stroke=\"#9aa7b5\" stroke-width=\"1.5\" stroke-dasharray=\"6 4\"/>\n  <text x=\"472\" y=\"88\" text-anchor=\"start\" font-size=\"12\" font-weight=\"700\" fill=\"#0a7aff\">STP を入れた後：1 か所を止めて、輪を木にする</text>\n  <text x=\"560\" y=\"108\" text-anchor=\"middle\" font-size=\"9\" font-weight=\"700\" fill=\"#0a7aff\">根（ルートブリッジ）</text>\n  <rect x=\"500\" y=\"112\" width=\"120\" height=\"34\" rx=\"8\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1.5\"/>\n  <text x=\"560.0\" y=\"132\" text-anchor=\"middle\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">スイッチ 1</text>\n  <circle cx=\"482\" cy=\"129\" r=\"9\" fill=\"#0a7aff\"/><text x=\"482\" y=\"133\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#ffffff\">2</text>\n  <rect x=\"700\" y=\"112\" width=\"120\" height=\"34\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"760.0\" y=\"132\" text-anchor=\"middle\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">スイッチ 2</text>\n  <rect x=\"500\" y=\"202\" width=\"120\" height=\"34\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"560.0\" y=\"222\" text-anchor=\"middle\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">スイッチ 4</text>\n  <rect x=\"700\" y=\"202\" width=\"120\" height=\"34\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"760.0\" y=\"222\" text-anchor=\"middle\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">スイッチ 3</text>\n  <line x1=\"620\" y1=\"129\" x2=\"700\" y2=\"129\" stroke=\"#374151\" stroke-width=\"2\"/>\n  <line x1=\"760\" y1=\"146\" x2=\"760\" y2=\"202\" stroke=\"#374151\" stroke-width=\"2\"/>\n  <line x1=\"620\" y1=\"219\" x2=\"700\" y2=\"219\" stroke=\"#9aa7b5\" stroke-width=\"2\" stroke-dasharray=\"5 4\"/>\n  <line x1=\"560\" y1=\"146\" x2=\"560\" y2=\"202\" stroke=\"#374151\" stroke-width=\"2\"/>\n  <text x=\"624\" y=\"123\" text-anchor=\"start\" font-size=\"9\" fill=\"#0a7aff\">指定</text>\n  <text x=\"696\" y=\"123\" text-anchor=\"end\" font-size=\"9\" fill=\"#0a7aff\">ルート</text>\n  <text x=\"660\" y=\"142\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">19</text>\n  <text x=\"554\" y=\"162\" text-anchor=\"end\" font-size=\"9\" fill=\"#0a7aff\">指定</text>\n  <text x=\"554\" y=\"198\" text-anchor=\"end\" font-size=\"9\" fill=\"#0a7aff\">ルート</text>\n  <text x=\"566\" y=\"180\" text-anchor=\"start\" font-size=\"9\" fill=\"#6b7280\">19</text>\n  <text x=\"754\" y=\"162\" text-anchor=\"end\" font-size=\"9\" fill=\"#0a7aff\">指定</text>\n  <text x=\"754\" y=\"198\" text-anchor=\"end\" font-size=\"9\" fill=\"#0a7aff\">ルート</text>\n  <text x=\"766\" y=\"180\" text-anchor=\"start\" font-size=\"9\" fill=\"#6b7280\">19</text>\n  <text x=\"624\" y=\"213\" text-anchor=\"start\" font-size=\"9\" fill=\"#0a7aff\">指定</text>\n  <text x=\"694\" y=\"205\" text-anchor=\"middle\" font-size=\"9\" font-weight=\"700\" fill=\"#b45309\">ブロック</text>\n  <circle cx=\"656\" cy=\"205\" r=\"9\" fill=\"#b45309\"/><text x=\"656\" y=\"209\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#ffffff\">5</text>\n  <line x1=\"688\" y1=\"213\" x2=\"700\" y2=\"225\" stroke=\"#b45309\" stroke-width=\"2.5\"/>\n  <line x1=\"700\" y1=\"213\" x2=\"688\" y2=\"225\" stroke=\"#b45309\" stroke-width=\"2.5\"/>\n  <text x=\"660\" y=\"238\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">19</text>\n  <text x=\"472\" y=\"258\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">・根＝ブリッジ ID（優先度＋MAC）がいちばん小さいスイッチ</text>\n  <text x=\"472\" y=\"274\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">・各スイッチは根までのコストが最小の口をルートポートにする</text>\n  <text x=\"472\" y=\"290\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">・区間ごとに根に近い側が指定ポート、残った口をブロック</text>\n  <text x=\"472\" y=\"306\" text-anchor=\"start\" font-size=\"10\" fill=\"#6b7280\">・線は 100 Mb/s（1 本のコスト 19）。1 Gb/s なら 1 本 4</text>\n  <text x=\"20\" y=\"346\" text-anchor=\"start\" font-size=\"12\" font-weight=\"700\" fill=\"#1f2937\">フロー</text>\n  <text x=\"20\" y=\"366\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">① 電源を入れた直後、各スイッチは「根は自分」と書いた BPDU（スイッチ同士だけが交換する STP 用のフレーム）を全ポートへ出す</text>\n  <text x=\"20\" y=\"384\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">② 受け取った側はルート ID（優先度＋MAC）を比べる。優先度は数値が小さい方が優先され、同じなら MAC が小さい方が根になる</text>\n  <text x=\"20\" y=\"402\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">③ 根が決まると、各スイッチは根までのコスト（通った線のコストの足し算）が最小の口を 1 つだけ選び、ルートポートにする。同点なら送信元ブリッジ ID の小さい側</text>\n  <text x=\"20\" y=\"420\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">④ 線の 1 区間ごとに、根に近い側の口が指定ポートになる。コストが同じなら送信元ブリッジ ID の小さい側が指定ポートになる</text>\n  <text x=\"20\" y=\"438\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">⑤ ルートポートでも指定ポートでもない口をブロックする。ここで輪が 1 か所だけ切れ、通信の通り道が木になる</text>\n  <text x=\"20\" y=\"456\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">⑥ 線が切れると、切れた口を持つスイッチはすぐ気づき、持たないスイッチは BPDU が来なくなるのを待って気づく（秒数が違う）</text>\n  <rect x=\"20\" y=\"478\" width=\"430\" height=\"128\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"32\" y=\"498\" text-anchor=\"start\" font-size=\"12\" font-weight=\"700\" fill=\"#1f2937\">802.1D（もとの STP）の復旧にかかる秒数</text>\n  <text x=\"32\" y=\"516\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">既定のタイマー：Hello 2 秒／Max Age 20 秒／Forward Delay 15 秒</text>\n  <text x=\"32\" y=\"531\" text-anchor=\"start\" font-size=\"10\" fill=\"#0a7aff\">直接検知：自分の口が down したと自分で分かる場合</text>\n  <text x=\"32\" y=\"546\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">　ブロックしていた口を Listening 15＋Learning 15 ＝ 約 30 秒</text>\n  <text x=\"32\" y=\"561\" text-anchor=\"start\" font-size=\"10\" fill=\"#b45309\">間接検知：自分の口は生きているが、良い BPDU が来ない場合</text>\n  <text x=\"32\" y=\"576\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">　Max Age 20 秒待ってから上の 30 秒 ＝ 約 50 秒</text>\n  <text x=\"32\" y=\"591\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">この間、その道を通る通信は落ちる（勉強会の ping 試験）</text>\n  <rect x=\"470\" y=\"478\" width=\"410\" height=\"128\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"482\" y=\"498\" text-anchor=\"start\" font-size=\"12\" font-weight=\"700\" fill=\"#1f2937\">RSTP（802.1w）が速い理由</text>\n  <text x=\"482\" y=\"516\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">隣同士の握手（提案と同意）で、タイマーを待たずに口を開ける</text>\n  <text x=\"482\" y=\"531\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">BPDU が 3 回続けて来なければ（2 秒×3）隣を失ったと判断する</text>\n  <text x=\"482\" y=\"546\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">状態は 3 つ（破棄・学習・転送）に整理された</text>\n  <text x=\"482\" y=\"561\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">役割に「代替ポート」「バックアップポート」が加わった</text>\n  <text x=\"482\" y=\"576\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">PC しか付かない口は「エッジポート」＝ PortFast と同じ扱い</text>\n  <text x=\"482\" y=\"591\" text-anchor=\"start\" font-size=\"10\" fill=\"#0a7aff\">いまの機種の既定は Rapid PVST+（VLAN ごとに RSTP の木）</text>\n  <rect x=\"20\" y=\"618\" width=\"860\" height=\"128\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"32\" y=\"638\" text-anchor=\"start\" font-size=\"12\" font-weight=\"700\" fill=\"#1f2937\">守りの設定：どの口を、何から守るか（PortFast だけが「速くする」道具。残りは BPDU の出入りが前提と違ったときの処置）</text>\n  <text x=\"32\" y=\"656\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">PortFast：PC しか付かない口を、待たずにいきなり転送状態にする（BPDU は来ない前提の口）</text>\n  <text x=\"32\" y=\"671\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">BPDU guard：その前提の口に BPDU が来たら、口を止める（errdisable）。無断で置かれたスイッチを締め出す</text>\n  <text x=\"32\" y=\"686\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">Root guard：その口の向こうが根になろうとしたら（より小さいルート ID の BPDU が来たら）、その口をブロックする</text>\n  <text x=\"32\" y=\"701\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">Loop guard：ルートポート・代替ポートで BPDU が来なくなったとき、開けずにブロックのままにする（片方向だけ壊れた線の対策）</text>\n  <text x=\"32\" y=\"716\" text-anchor=\"start\" font-size=\"10\" fill=\"#b45309\">BPDU filter：その口で BPDU を出しも受けもしない。インターフェースに付けると STP を止めるのと同じで、輪ができる危険がある（Cisco の注意）</text>\n  <text x=\"20\" y=\"776\" text-anchor=\"start\" font-size=\"12\" font-weight=\"700\" fill=\"#1f2937\">3 層で見ると</text>\n  <text x=\"20\" y=\"796\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">もの：BPDU（論理。スイッチ同士が交換する STP 用のフレーム）／ブリッジ ID（優先度は手動、MAC の部分は製造時の固定）／ポートの役割（論理・自動）</text>\n  <text x=\"20\" y=\"814\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">結びつき：優先度・PortFast・各 guard は人が設定（手動）。根・ルートポート・指定ポート・ブロックの決定はスイッチの計算（自動）</text>\n  <text x=\"20\" y=\"832\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">フロー：図 2 のフラッディングが輪では止まらない。STP が 1 か所を止めるので、図 2〜4 の通信は 1 本道を通る。VLAN ごとに木は別（PVST+）</text>\n<line x1=\"20\" y1=\"858\" x2=\"880\" y2=\"858\" stroke=\"#d6dde5\" stroke-width=\"1\"/>\n<text x=\"20\" y=\"880\" font-size=\"12\" font-weight=\"700\" fill=\"#1f2937\">各スイッチの根までのコストとポートの役割の推移（○番のフローで決まった行。青字）</text>\n<text x=\"20\" y=\"892\" font-size=\"10\" fill=\"#6b7280\">前提：スイッチ 4 台の輪、全部の線は 100 Mb/s（1 本のコスト 19）。VLAN 10 の木。スイッチ 1 だけ優先度 4096（VLAN 10 では 4106）。スイッチ 2 の MAC ＜ スイッチ 4 の MAC とする</text>\n  <rect x=\"20\" y=\"906\" width=\"280\" height=\"105\" rx=\"6\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"30\" y=\"922\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">① 電源投入の直後（各スイッチの言い分）</text>\n  <text x=\"30\" y=\"938\" font-size=\"10\" fill=\"#374151\">全員が「根は自分」と名乗る</text>\n  <text x=\"30\" y=\"953\" font-size=\"10\" fill=\"#374151\">スイッチ 1：根＝自分／コスト 0</text>\n  <text x=\"30\" y=\"968\" font-size=\"10\" fill=\"#374151\">スイッチ 2：根＝自分／コスト 0</text>\n  <text x=\"30\" y=\"983\" font-size=\"10\" fill=\"#374151\">スイッチ 3：根＝自分／コスト 0</text>\n  <text x=\"30\" y=\"998\" font-size=\"10\" fill=\"#374151\">スイッチ 4：根＝自分／コスト 0</text>\n  <rect x=\"310\" y=\"906\" width=\"280\" height=\"150\" rx=\"6\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"320\" y=\"922\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">②③④⑤ 収束した後（VLAN 10 の木）</text>\n  <text x=\"320\" y=\"938\" font-size=\"10\" fill=\"#0a7aff\">② スイッチ 1 が根（優先度 4106）</text>\n  <text x=\"320\" y=\"953\" font-size=\"10\" fill=\"#0a7aff\">③ スイッチ 2：根まで 19、1 側＝ルート</text>\n  <text x=\"320\" y=\"968\" font-size=\"10\" fill=\"#0a7aff\">③ スイッチ 4：根まで 19、1 側＝ルート</text>\n  <text x=\"320\" y=\"983\" font-size=\"10\" fill=\"#0a7aff\">③ スイッチ 3：2 側も 4 側も 38 で同点</text>\n  <text x=\"320\" y=\"998\" font-size=\"10\" fill=\"#0a7aff\">③ 送信元ブリッジ ID（優先度が同じなので MAC）が</text>\n  <text x=\"320\" y=\"1013\" font-size=\"10\" fill=\"#374151\">　小さい 2 側をルートポートにする</text>\n  <text x=\"320\" y=\"1028\" font-size=\"10\" fill=\"#374151\">　※この図で MAC の大小が効くのはここだけ</text>\n  <text x=\"320\" y=\"1043\" font-size=\"10\" fill=\"#0a7aff\">⑤ スイッチ 3：4 側＝ブロック（ここで切れる）</text>\n  <rect x=\"600\" y=\"906\" width=\"280\" height=\"105\" rx=\"6\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"610\" y=\"922\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">優先度と VLAN 番号（PVST+）</text>\n  <text x=\"610\" y=\"938\" font-size=\"10\" fill=\"#374151\">優先度＝4096 刻みの値＋VLAN 番号</text>\n  <text x=\"610\" y=\"953\" font-size=\"10\" fill=\"#374151\">既定 32768 → VLAN 10 では 32778</text>\n  <text x=\"610\" y=\"968\" font-size=\"10\" fill=\"#374151\">優先度 4096 → VLAN 10 では 4106</text>\n  <text x=\"610\" y=\"983\" font-size=\"10\" fill=\"#374151\">VLAN 20 では 32788 / 4116</text>\n  <text x=\"610\" y=\"998\" font-size=\"10\" fill=\"#374151\">VLAN ごとに根も止める口も別にできる</text>\n  <rect x=\"20\" y=\"1066\" width=\"280\" height=\"105\" rx=\"6\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"30\" y=\"1082\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">⑥-a 直接検知：スイッチ 2・3 間が切れた</text>\n  <text x=\"30\" y=\"1098\" font-size=\"10\" fill=\"#0a7aff\">⑥ スイッチ 3 は自分の口が down したと分かる</text>\n  <text x=\"30\" y=\"1113\" font-size=\"10\" fill=\"#0a7aff\">⑥ ブロックしていた 4 側を開けにいく</text>\n  <text x=\"30\" y=\"1128\" font-size=\"10\" fill=\"#0a7aff\">⑥ Listening 15＋Learning 15 ＝ 約 30 秒</text>\n  <text x=\"30\" y=\"1143\" font-size=\"10\" fill=\"#0a7aff\">⑥ スイッチ 3：根まで 38（4 側経由）に更新</text>\n  <text x=\"30\" y=\"1158\" font-size=\"10\" fill=\"#374151\">スイッチ 2 は 1 側で根とつながったまま</text>\n  <rect x=\"310\" y=\"1066\" width=\"280\" height=\"105\" rx=\"6\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"320\" y=\"1082\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">⑥-b 間接検知：スイッチ 1・2 間が切れた</text>\n  <text x=\"320\" y=\"1098\" font-size=\"10\" fill=\"#374151\">スイッチ 3 の口はどれも down しない</text>\n  <text x=\"320\" y=\"1113\" font-size=\"10\" fill=\"#0a7aff\">⑥ 2 側から良い BPDU が来なくなる</text>\n  <text x=\"320\" y=\"1128\" font-size=\"10\" fill=\"#0a7aff\">⑥ Max Age 20 秒待ってから再計算する</text>\n  <text x=\"320\" y=\"1143\" font-size=\"10\" fill=\"#0a7aff\">⑥ 20＋15＋15 ＝ 約 50 秒</text>\n  <text x=\"320\" y=\"1158\" font-size=\"10\" fill=\"#374151\">勉強会の「抜く線で秒数が違う」はこの差</text>\n  <rect x=\"600\" y=\"1066\" width=\"280\" height=\"105\" rx=\"6\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"610\" y=\"1082\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">RSTP（802.1w）なら</text>\n  <text x=\"610\" y=\"1098\" font-size=\"10\" fill=\"#374151\">隣との握手で口を開ける</text>\n  <text x=\"610\" y=\"1113\" font-size=\"10\" fill=\"#374151\">タイマー待ちが要らない</text>\n  <text x=\"610\" y=\"1128\" font-size=\"10\" fill=\"#374151\">直接・間接とも 1 秒未満になりうる</text>\n  <text x=\"610\" y=\"1143\" font-size=\"10\" fill=\"#374151\">（相手が古い STP だと、この速さは出ない）</text>\n  <text x=\"610\" y=\"1158\" font-size=\"10\" fill=\"#374151\">PortFast の口は最初から転送状態</text>\n<text x=\"20\" y=\"1221\" font-size=\"12\" font-weight=\"700\" fill=\"#1f2937\">BPDU の中身の推移（どの欄が、どこで書き換わるか）</text>\n  <text x=\"20\" y=\"1249\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">① 電源投入の直後に各スイッチが出す BPDU</text>\n  <text x=\"20\" y=\"1269\" font-size=\"10\" fill=\"#6b7280\">中身は［ルート ID＝自分のブリッジ ID］［根までのコスト 0］［送信元ブリッジ ID＝自分］［ポート ID］</text>\n  <text x=\"20\" y=\"1293\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">BPDU の宛先 MAC（決まった番地）</text>\n  <text x=\"20\" y=\"1313\" font-size=\"10\" fill=\"#6b7280\">標準の BPDU は 01:80:C2:00:00:00 あて。Cisco の PVST+ では VLAN 1 以外は 01:00:0C:CC:CC:CD あて（タグ付き）。どちらも隣のスイッチより先へは転送されない</text>\n  <text x=\"20\" y=\"1337\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">② 受け取った BPDU と自分の BPDU を比べる順番</text>\n  <text x=\"20\" y=\"1357\" font-size=\"10\" fill=\"#6b7280\">ルート ID → 根までのコスト → 送信元ブリッジ ID → 送信元ポート ID の順に比べ、小さい方が優勢。優勢な BPDU が来た口は、自分が指定ポートをやめる</text>\n  <text x=\"20\" y=\"1381\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">③ 根からの BPDU を隣へ中継するとき、書き換わる欄</text>\n  <text x=\"20\" y=\"1401\" font-size=\"10\" fill=\"#6b7280\">ルート ID はそのまま。根までのコストに受けた口のコスト（100 Mb/s なら 19）を足し、送信元ブリッジ ID を自分に書き換える</text>\n  <text x=\"20\" y=\"1425\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">④ 収束した後（平常時）</text>\n  <text x=\"20\" y=\"1445\" font-size=\"10\" fill=\"#6b7280\">（802.1D）根だけが Hello 2 秒ごとに BPDU を出し、他は中継する。RSTP では各スイッチが Hello ごとに自分で BPDU を出す。ブロックした口も受け取り続ける</text>\n  <text x=\"20\" y=\"1469\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">⑤ 線が切れた後</text>\n  <text x=\"20\" y=\"1489\" font-size=\"10\" fill=\"#6b7280\">根への道を失ったスイッチは「根は自分」と書いた BPDU を出す。受け取った側は Max Age 20 秒かけて古い情報を捨ててから計算し直す（その間は通信が戻らない）</text>\n  <text x=\"20\" y=\"1513\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">PortFast・BPDU guard を付けた口では</text>\n  <text x=\"20\" y=\"1533\" font-size=\"10\" fill=\"#6b7280\">PC しか付かない口なので BPDU は来ない前提。来たらスイッチが挿されたということなので、BPDU guard が口を止める（errdisable）</text>\n<text x=\"20\" y=\"1557\" font-size=\"10\" fill=\"#6b7280\">出典（1）タイマーの既定値（Hello 2 秒・Forward Delay 15 秒・Max Age 20 秒）と Max Age の役割：Cisco Understand and Tune Spanning Tree Protocol Timers</text>\n<text x=\"20\" y=\"1573\" font-size=\"10\" fill=\"#6b7280\">　　https://www.cisco.com/c/en/us/support/docs/lan-switching/spanning-tree-protocol/19120-122.html</text>\n<text x=\"20\" y=\"1589\" font-size=\"10\" fill=\"#6b7280\">出典（2）優先度の既定 32768・4096 刻み・拡張システム ID＝VLAN 番号・同点なら MAC が小さい方・コスト（100 Mb/s は 19、1 Gb/s は 4）・状態ごとに Forward Delay：</text>\n<text x=\"20\" y=\"1605\" font-size=\"10\" fill=\"#6b7280\">　　Cisco Catalyst 9200 Layer 2 Configuration Guide「Configuring Spanning Tree Protocol」</text>\n<text x=\"20\" y=\"1621\" font-size=\"10\" fill=\"#6b7280\">出典（3）直接検知は Forward Delay の 2 倍＝30 秒・RSTP はタイマーに頼らない握手で速い・エッジポート＝PortFast：Cisco Understand Rapid Spanning Tree Protocol (802.1w)</text>\n<text x=\"20\" y=\"1637\" font-size=\"10\" fill=\"#6b7280\">　　https://www.cisco.com/c/en/us/support/docs/lan-switching/spanning-tree-protocol/24062-146.html</text>\n<text x=\"20\" y=\"1653\" font-size=\"10\" fill=\"#6b7280\">出典（4）PortFast と BPDU guard（BPDU を受けたら errdisable）：https://www.cisco.com/c/en/us/support/docs/lan-switching/spanning-tree-protocol/10586-65.html</text>\n<text x=\"20\" y=\"1669\" font-size=\"10\" fill=\"#6b7280\">出典（5）Root guard（root-inconsistent でブロック）と Loop guard：Cisco Catalyst 9300 Layer 2 Configuration Guide「Configuring Optional Spanning-Tree Features」</text>\n<text x=\"20\" y=\"1685\" font-size=\"10\" fill=\"#6b7280\">出典（5-2）BPDU filter の注意（インターフェースに付けると STP を止めるのと同じで輪ができうる）：Cisco Catalyst 3750-X/3560-X Software Configuration Guide</text>\n<text x=\"20\" y=\"1701\" font-size=\"10\" fill=\"#6b7280\">　　https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst3750x_3560x/software/release/12-2_55_se/configuration/guide/3750xscg/swstpopt.html</text>\n<text x=\"20\" y=\"1717\" font-size=\"10\" fill=\"#6b7280\">出典（6）L2 には TTL が無く、輪に入ったフレームは止まらない：Cisco Troubleshoot Layer-2 Loops on Catalyst 9000 Series Switches</text>\n<text x=\"20\" y=\"1733\" font-size=\"10\" fill=\"#6b7280\">　　https://www.cisco.com/c/en/us/support/docs/switches/catalyst-9200-series-switches/221191-troubleshoot-layer-2-loops.html</text>\n<text x=\"20\" y=\"1749\" font-size=\"10\" fill=\"#6b7280\">出典（8）BPDU の宛先 MAC（VLAN 1 は 0180.c200.0000 でタグなし、VLAN 1 以外は PVST+ の 0100.0ccc.cccd でタグ付き）：</text>\n<text x=\"20\" y=\"1765\" font-size=\"10\" fill=\"#6b7280\">　　Cisco Troubleshoot Spanning Tree PVID- and Type-Inconsistencies</text>\n<text x=\"20\" y=\"1781\" font-size=\"10\" fill=\"#6b7280\">　　https://www.cisco.com/c/en/us/support/docs/lan-switching/spanning-tree-protocol/24063-pvid-inconsistency-24063.html</text>\n<text x=\"20\" y=\"1797\" font-size=\"10\" fill=\"#6b7280\">出典（7）BPDU の比較順序・直接 30 秒／間接 50 秒（二次資料）：https://www.infraexpert.com/study/stpz2.html ／ https://www.infraexpert.com/study/stpz3.html</text>\n<text x=\"20\" y=\"1813\" font-size=\"10\" fill=\"#6b7280\">未検証（1）50 秒を 1 つの数字として書いた Cisco の文書は見つけられなかった。Max Age 20＋Forward Delay 15×2 の足し算で、30 秒と 50 秒を直接書いているのは上の二次資料</text>\n<text x=\"20\" y=\"1829\" font-size=\"10\" fill=\"#6b7280\">未検証（2）「新しい製品ほど MAC が大きいので、新しいスイッチが根を奪わない設計になっている」という見立ては、規格にそう書かれた記述を見つけられなかった</text>\n<text x=\"20\" y=\"1845\" font-size=\"10\" fill=\"#6b7280\">　　規格が決めているのは「ブリッジ ID（優先度＋MAC）が小さい方が根」だけで、MAC の大小と製造時期の関係は確認できていない（未検証）</text>\n<text x=\"20\" y=\"1861\" font-size=\"10\" fill=\"#6b7280\">　　なお「優先度が低い順に根になる」という読み方は Cisco の表現と一致する（ the highest device priority (the lowest numerical priority value)）</text>\n<text x=\"20\" y=\"1877\" font-size=\"10\" fill=\"#6b7280\">図 1〜7 との接続：図 2 のフラッディング（全員あてをコピーして流す）が、輪では止まらないのがこの図の出発点。図 3・4 の VLAN ごとに木が別（PVST+）</text>\n<text x=\"20\" y=\"1893\" font-size=\"10\" fill=\"#6b7280\">この図は線を 100 Mb/s（コスト 19）として描いている。1 Gb/s なら 1 本 4 になり、同じ形でも選ばれる道が変わることがある</text>\n</svg>\n## 復旧までの秒数","text":"<svg viewBox=\"0 0 900 1919\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"構成図（STP・輪を論理的に切る）\" style=\"max-width:100%;height:auto;font-family:sans-serif\">\n  <rect x=\"0\" y=\"0\" width=\"900\" height=\"1919\" fill=\"#fbfcfe\"/>\n  <text x=\"20\" y=\"30\" text-anchor=\"start\" font-size=\"14\" font-weight=\"700\" fill=\"#1f2937\">STP：スイッチを輪につないだとき、どの口を論理的に止めるか</text>\n  <text x=\"20\" y=\"50\" text-anchor=\"start\" font-size=\"11\" fill=\"#6b7280\">線を 2 本以上にすると輪ができる。輪は落ちない代わりに、止めないとネットワーク全体が使えなくなる。STP は輪を 1 か所だけ切って木にする</text>\n  <rect x=\"20\" y=\"66\" width=\"400\" height=\"250\" rx=\"10\" fill=\"#fff7ed\" stroke=\"#d97706\" stroke-width=\"1.5\" stroke-dasharray=\"6 4\"/>\n  <text x=\"32\" y=\"88\" text-anchor=\"start\" font-size=\"12\" font-weight=\"700\" fill=\"#b45309\">STP が無いとき：全員あてのフレームが輪を回り続ける</text>\n  <rect x=\"50\" y=\"112\" width=\"120\" height=\"34\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"110.0\" y=\"132\" text-anchor=\"middle\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">スイッチ 1</text>\n  <rect x=\"250\" y=\"112\" width=\"120\" height=\"34\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"310.0\" y=\"132\" text-anchor=\"middle\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">スイッチ 2</text>\n  <rect x=\"50\" y=\"202\" width=\"120\" height=\"34\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"110.0\" y=\"222\" text-anchor=\"middle\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">スイッチ 4</text>\n  <rect x=\"250\" y=\"202\" width=\"120\" height=\"34\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"310.0\" y=\"222\" text-anchor=\"middle\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">スイッチ 3</text>\n  <line x1=\"170\" y1=\"129\" x2=\"250\" y2=\"129\" stroke=\"#374151\" stroke-width=\"2\"/>\n  <line x1=\"310\" y1=\"146\" x2=\"310\" y2=\"202\" stroke=\"#374151\" stroke-width=\"2\"/>\n  <line x1=\"170\" y1=\"219\" x2=\"250\" y2=\"219\" stroke=\"#374151\" stroke-width=\"2\"/>\n  <line x1=\"110\" y1=\"146\" x2=\"110\" y2=\"202\" stroke=\"#374151\" stroke-width=\"2\"/>\n  <line x1=\"182\" y1=\"120\" x2=\"232\" y2=\"120\" stroke=\"#b45309\" stroke-width=\"2\"/><polygon points=\"231,115 231,125 240,120\" fill=\"#b45309\"/>\n  <line x1=\"322\" y1=\"154\" x2=\"322\" y2=\"188\" stroke=\"#b45309\" stroke-width=\"2\"/><polygon points=\"317,187 327,187 322,196\" fill=\"#b45309\"/>\n  <line x1=\"238\" y1=\"228\" x2=\"188\" y2=\"228\" stroke=\"#b45309\" stroke-width=\"2\"/><polygon points=\"189,223 189,233 180,228\" fill=\"#b45309\"/>\n  <line x1=\"98\" y1=\"194\" x2=\"98\" y2=\"160\" stroke=\"#b45309\" stroke-width=\"2\"/><polygon points=\"93,161 103,161 98,152\" fill=\"#b45309\"/>\n  <text x=\"210\" y=\"170\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#b45309\">コピーが回り続ける</text>\n  <text x=\"210\" y=\"186\" text-anchor=\"middle\" font-size=\"9\" fill=\"#b45309\">（誰も止められない）</text>\n  <text x=\"32\" y=\"258\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">・全員あてのフレームは各スイッチでコピーされ、輪を回り続ける</text>\n  <text x=\"32\" y=\"274\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">・イーサネットのフレームには、IP の TTL に当たる欄が無い</text>\n  <text x=\"32\" y=\"290\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">・同じ送信元 MAC が別の口から何度も入り、MAC テーブルが揺れる</text>\n  <text x=\"32\" y=\"306\" text-anchor=\"start\" font-size=\"10\" fill=\"#b45309\">・輪ができた瞬間に、その VLAN の通信がほぼ止まる</text>\n  <rect x=\"460\" y=\"66\" width=\"420\" height=\"250\" rx=\"10\" fill=\"none\" stroke=\"#9aa7b5\" stroke-width=\"1.5\" stroke-dasharray=\"6 4\"/>\n  <text x=\"472\" y=\"88\" text-anchor=\"start\" font-size=\"12\" font-weight=\"700\" fill=\"#0a7aff\">STP を入れた後：1 か所を止めて、輪を木にする</text>\n  <text x=\"560\" y=\"108\" text-anchor=\"middle\" font-size=\"9\" font-weight=\"700\" fill=\"#0a7aff\">根（ルートブリッジ）</text>\n  <rect x=\"500\" y=\"112\" width=\"120\" height=\"34\" rx=\"8\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1.5\"/>\n  <text x=\"560.0\" y=\"132\" text-anchor=\"middle\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">スイッチ 1</text>\n  <circle cx=\"482\" cy=\"129\" r=\"9\" fill=\"#0a7aff\"/><text x=\"482\" y=\"133\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#ffffff\">2</text>\n  <rect x=\"700\" y=\"112\" width=\"120\" height=\"34\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"760.0\" y=\"132\" text-anchor=\"middle\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">スイッチ 2</text>\n  <rect x=\"500\" y=\"202\" width=\"120\" height=\"34\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"560.0\" y=\"222\" text-anchor=\"middle\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">スイッチ 4</text>\n  <rect x=\"700\" y=\"202\" width=\"120\" height=\"34\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"760.0\" y=\"222\" text-anchor=\"middle\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">スイッチ 3</text>\n  <line x1=\"620\" y1=\"129\" x2=\"700\" y2=\"129\" stroke=\"#374151\" stroke-width=\"2\"/>\n  <line x1=\"760\" y1=\"146\" x2=\"760\" y2=\"202\" stroke=\"#374151\" stroke-width=\"2\"/>\n  <line x1=\"620\" y1=\"219\" x2=\"700\" y2=\"219\" stroke=\"#9aa7b5\" stroke-width=\"2\" stroke-dasharray=\"5 4\"/>\n  <line x1=\"560\" y1=\"146\" x2=\"560\" y2=\"202\" stroke=\"#374151\" stroke-width=\"2\"/>\n  <text x=\"624\" y=\"123\" text-anchor=\"start\" font-size=\"9\" fill=\"#0a7aff\">指定</text>\n  <text x=\"696\" y=\"123\" text-anchor=\"end\" font-size=\"9\" fill=\"#0a7aff\">ルート</text>\n  <text x=\"660\" y=\"142\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">19</text>\n  <text x=\"554\" y=\"162\" text-anchor=\"end\" font-size=\"9\" fill=\"#0a7aff\">指定</text>\n  <text x=\"554\" y=\"198\" text-anchor=\"end\" font-size=\"9\" fill=\"#0a7aff\">ルート</text>\n  <text x=\"566\" y=\"180\" text-anchor=\"start\" font-size=\"9\" fill=\"#6b7280\">19</text>\n  <text x=\"754\" y=\"162\" text-anchor=\"end\" font-size=\"9\" fill=\"#0a7aff\">指定</text>\n  <text x=\"754\" y=\"198\" text-anchor=\"end\" font-size=\"9\" fill=\"#0a7aff\">ルート</text>\n  <text x=\"766\" y=\"180\" text-anchor=\"start\" font-size=\"9\" fill=\"#6b7280\">19</text>\n  <text x=\"624\" y=\"213\" text-anchor=\"start\" font-size=\"9\" fill=\"#0a7aff\">指定</text>\n  <text x=\"694\" y=\"205\" text-anchor=\"middle\" font-size=\"9\" font-weight=\"700\" fill=\"#b45309\">ブロック</text>\n  <circle cx=\"656\" cy=\"205\" r=\"9\" fill=\"#b45309\"/><text x=\"656\" y=\"209\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#ffffff\">5</text>\n  <line x1=\"688\" y1=\"213\" x2=\"700\" y2=\"225\" stroke=\"#b45309\" stroke-width=\"2.5\"/>\n  <line x1=\"700\" y1=\"213\" x2=\"688\" y2=\"225\" stroke=\"#b45309\" stroke-width=\"2.5\"/>\n  <text x=\"660\" y=\"238\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">19</text>\n  <text x=\"472\" y=\"258\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">・根＝ブリッジ ID（優先度＋MAC）がいちばん小さいスイッチ</text>\n  <text x=\"472\" y=\"274\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">・各スイッチは根までのコストが最小の口をルートポートにする</text>\n  <text x=\"472\" y=\"290\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">・区間ごとに根に近い側が指定ポート、残った口をブロック</text>\n  <text x=\"472\" y=\"306\" text-anchor=\"start\" font-size=\"10\" fill=\"#6b7280\">・線は 100 Mb/s（1 本のコスト 19）。1 Gb/s なら 1 本 4</text>\n  <text x=\"20\" y=\"346\" text-anchor=\"start\" font-size=\"12\" font-weight=\"700\" fill=\"#1f2937\">フロー</text>\n  <text x=\"20\" y=\"366\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">① 電源を入れた直後、各スイッチは「根は自分」と書いた BPDU（スイッチ同士だけが交換する STP 用のフレーム）を全ポートへ出す</text>\n  <text x=\"20\" y=\"384\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">② 受け取った側はルート ID（優先度＋MAC）を比べる。優先度は数値が小さい方が優先され、同じなら MAC が小さい方が根になる</text>\n  <text x=\"20\" y=\"402\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">③ 根が決まると、各スイッチは根までのコスト（通った線のコストの足し算）が最小の口を 1 つだけ選び、ルートポートにする。同点なら送信元ブリッジ ID の小さい側</text>\n  <text x=\"20\" y=\"420\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">④ 線の 1 区間ごとに、根に近い側の口が指定ポートになる。コストが同じなら送信元ブリッジ ID の小さい側が指定ポートになる</text>\n  <text x=\"20\" y=\"438\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">⑤ ルートポートでも指定ポートでもない口をブロックする。ここで輪が 1 か所だけ切れ、通信の通り道が木になる</text>\n  <text x=\"20\" y=\"456\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">⑥ 線が切れると、切れた口を持つスイッチはすぐ気づき、持たないスイッチは BPDU が来なくなるのを待って気づく（秒数が違う）</text>\n  <rect x=\"20\" y=\"478\" width=\"430\" height=\"128\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"32\" y=\"498\" text-anchor=\"start\" font-size=\"12\" font-weight=\"700\" fill=\"#1f2937\">802.1D（もとの STP）の復旧にかかる秒数</text>\n  <text x=\"32\" y=\"516\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">既定のタイマー：Hello 2 秒／Max Age 20 秒／Forward Delay 15 秒</text>\n  <text x=\"32\" y=\"531\" text-anchor=\"start\" font-size=\"10\" fill=\"#0a7aff\">直接検知：自分の口が down したと自分で分かる場合</text>\n  <text x=\"32\" y=\"546\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">　ブロックしていた口を Listening 15＋Learning 15 ＝ 約 30 秒</text>\n  <text x=\"32\" y=\"561\" text-anchor=\"start\" font-size=\"10\" fill=\"#b45309\">間接検知：自分の口は生きているが、良い BPDU が来ない場合</text>\n  <text x=\"32\" y=\"576\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">　Max Age 20 秒待ってから上の 30 秒 ＝ 約 50 秒</text>\n  <text x=\"32\" y=\"591\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">この間、その道を通る通信は落ちる（勉強会の ping 試験）</text>\n  <rect x=\"470\" y=\"478\" width=\"410\" height=\"128\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"482\" y=\"498\" text-anchor=\"start\" font-size=\"12\" font-weight=\"700\" fill=\"#1f2937\">RSTP（802.1w）が速い理由</text>\n  <text x=\"482\" y=\"516\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">隣同士の握手（提案と同意）で、タイマーを待たずに口を開ける</text>\n  <text x=\"482\" y=\"531\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">BPDU が 3 回続けて来なければ（2 秒×3）隣を失ったと判断する</text>\n  <text x=\"482\" y=\"546\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">状態は 3 つ（破棄・学習・転送）に整理された</text>\n  <text x=\"482\" y=\"561\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">役割に「代替ポート」「バックアップポート」が加わった</text>\n  <text x=\"482\" y=\"576\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">PC しか付かない口は「エッジポート」＝ PortFast と同じ扱い</text>\n  <text x=\"482\" y=\"591\" text-anchor=\"start\" font-size=\"10\" fill=\"#0a7aff\">いまの機種の既定は Rapid PVST+（VLAN ごとに RSTP の木）</text>\n  <rect x=\"20\" y=\"618\" width=\"860\" height=\"128\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"32\" y=\"638\" text-anchor=\"start\" font-size=\"12\" font-weight=\"700\" fill=\"#1f2937\">守りの設定：どの口を、何から守るか（PortFast だけが「速くする」道具。残りは BPDU の出入りが前提と違ったときの処置）</text>\n  <text x=\"32\" y=\"656\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">PortFast：PC しか付かない口を、待たずにいきなり転送状態にする（BPDU は来ない前提の口）</text>\n  <text x=\"32\" y=\"671\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">BPDU guard：その前提の口に BPDU が来たら、口を止める（errdisable）。無断で置かれたスイッチを締め出す</text>\n  <text x=\"32\" y=\"686\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">Root guard：その口の向こうが根になろうとしたら（より小さいルート ID の BPDU が来たら）、その口をブロックする</text>\n  <text x=\"32\" y=\"701\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">Loop guard：ルートポート・代替ポートで BPDU が来なくなったとき、開けずにブロックのままにする（片方向だけ壊れた線の対策）</text>\n  <text x=\"32\" y=\"716\" text-anchor=\"start\" font-size=\"10\" fill=\"#b45309\">BPDU filter：その口で BPDU を出しも受けもしない。インターフェースに付けると STP を止めるのと同じで、輪ができる危険がある（Cisco の注意）</text>\n  <text x=\"20\" y=\"776\" text-anchor=\"start\" font-size=\"12\" font-weight=\"700\" fill=\"#1f2937\">3 層で見ると</text>\n  <text x=\"20\" y=\"796\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">もの：BPDU（論理。スイッチ同士が交換する STP 用のフレーム）／ブリッジ ID（優先度は手動、MAC の部分は製造時の固定）／ポートの役割（論理・自動）</text>\n  <text x=\"20\" y=\"814\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">結びつき：優先度・PortFast・各 guard は人が設定（手動）。根・ルートポート・指定ポート・ブロックの決定はスイッチの計算（自動）</text>\n  <text x=\"20\" y=\"832\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">フロー：図 2 のフラッディングが輪では止まらない。STP が 1 か所を止めるので、図 2〜4 の通信は 1 本道を通る。VLAN ごとに木は別（PVST+）</text>\n<line x1=\"20\" y1=\"858\" x2=\"880\" y2=\"858\" stroke=\"#d6dde5\" stroke-width=\"1\"/>\n<text x=\"20\" y=\"880\" font-size=\"12\" font-weight=\"700\" fill=\"#1f2937\">各スイッチの根までのコストとポートの役割の推移（○番のフローで決まった行。青字）</text>\n<text x=\"20\" y=\"892\" font-size=\"10\" fill=\"#6b7280\">前提：スイッチ 4 台の輪、全部の線は 100 Mb/s（1 本のコスト 19）。VLAN 10 の木。スイッチ 1 だけ優先度 4096（VLAN 10 では 4106）。スイッチ 2 の MAC ＜ スイッチ 4 の MAC とする</text>\n  <rect x=\"20\" y=\"906\" width=\"280\" height=\"105\" rx=\"6\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"30\" y=\"922\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">① 電源投入の直後（各スイッチの言い分）</text>\n  <text x=\"30\" y=\"938\" font-size=\"10\" fill=\"#374151\">全員が「根は自分」と名乗る</text>\n  <text x=\"30\" y=\"953\" font-size=\"10\" fill=\"#374151\">スイッチ 1：根＝自分／コスト 0</text>\n  <text x=\"30\" y=\"968\" font-size=\"10\" fill=\"#374151\">スイッチ 2：根＝自分／コスト 0</text>\n  <text x=\"30\" y=\"983\" font-size=\"10\" fill=\"#374151\">スイッチ 3：根＝自分／コスト 0</text>\n  <text x=\"30\" y=\"998\" font-size=\"10\" fill=\"#374151\">スイッチ 4：根＝自分／コスト 0</text>\n  <rect x=\"310\" y=\"906\" width=\"280\" height=\"150\" rx=\"6\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"320\" y=\"922\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">②③④⑤ 収束した後（VLAN 10 の木）</text>\n  <text x=\"320\" y=\"938\" font-size=\"10\" fill=\"#0a7aff\">② スイッチ 1 が根（優先度 4106）</text>\n  <text x=\"320\" y=\"953\" font-size=\"10\" fill=\"#0a7aff\">③ スイッチ 2：根まで 19、1 側＝ルート</text>\n  <text x=\"320\" y=\"968\" font-size=\"10\" fill=\"#0a7aff\">③ スイッチ 4：根まで 19、1 側＝ルート</text>\n  <text x=\"320\" y=\"983\" font-size=\"10\" fill=\"#0a7aff\">③ スイッチ 3：2 側も 4 側も 38 で同点</text>\n  <text x=\"320\" y=\"998\" font-size=\"10\" fill=\"#0a7aff\">③ 送信元ブリッジ ID（優先度が同じなので MAC）が</text>\n  <text x=\"320\" y=\"1013\" font-size=\"10\" fill=\"#374151\">　小さい 2 側をルートポートにする</text>\n  <text x=\"320\" y=\"1028\" font-size=\"10\" fill=\"#374151\">　※この図で MAC の大小が効くのはここだけ</text>\n  <text x=\"320\" y=\"1043\" font-size=\"10\" fill=\"#0a7aff\">⑤ スイッチ 3：4 側＝ブロック（ここで切れる）</text>\n  <rect x=\"600\" y=\"906\" width=\"280\" height=\"105\" rx=\"6\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"610\" y=\"922\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">優先度と VLAN 番号（PVST+）</text>\n  <text x=\"610\" y=\"938\" font-size=\"10\" fill=\"#374151\">優先度＝4096 刻みの値＋VLAN 番号</text>\n  <text x=\"610\" y=\"953\" font-size=\"10\" fill=\"#374151\">既定 32768 → VLAN 10 では 32778</text>\n  <text x=\"610\" y=\"968\" font-size=\"10\" fill=\"#374151\">優先度 4096 → VLAN 10 では 4106</text>\n  <text x=\"610\" y=\"983\" font-size=\"10\" fill=\"#374151\">VLAN 20 では 32788 / 4116</text>\n  <text x=\"610\" y=\"998\" font-size=\"10\" fill=\"#374151\">VLAN ごとに根も止める口も別にできる</text>\n  <rect x=\"20\" y=\"1066\" width=\"280\" height=\"105\" rx=\"6\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"30\" y=\"1082\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">⑥-a 直接検知：スイッチ 2・3 間が切れた</text>\n  <text x=\"30\" y=\"1098\" font-size=\"10\" fill=\"#0a7aff\">⑥ スイッチ 3 は自分の口が down したと分かる</text>\n  <text x=\"30\" y=\"1113\" font-size=\"10\" fill=\"#0a7aff\">⑥ ブロックしていた 4 側を開けにいく</text>\n  <text x=\"30\" y=\"1128\" font-size=\"10\" fill=\"#0a7aff\">⑥ Listening 15＋Learning 15 ＝ 約 30 秒</text>\n  <text x=\"30\" y=\"1143\" font-size=\"10\" fill=\"#0a7aff\">⑥ スイッチ 3：根まで 38（4 側経由）に更新</text>\n  <text x=\"30\" y=\"1158\" font-size=\"10\" fill=\"#374151\">スイッチ 2 は 1 側で根とつながったまま</text>\n  <rect x=\"310\" y=\"1066\" width=\"280\" height=\"105\" rx=\"6\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"320\" y=\"1082\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">⑥-b 間接検知：スイッチ 1・2 間が切れた</text>\n  <text x=\"320\" y=\"1098\" font-size=\"10\" fill=\"#374151\">スイッチ 3 の口はどれも down しない</text>\n  <text x=\"320\" y=\"1113\" font-size=\"10\" fill=\"#0a7aff\">⑥ 2 側から良い BPDU が来なくなる</text>\n  <text x=\"320\" y=\"1128\" font-size=\"10\" fill=\"#0a7aff\">⑥ Max Age 20 秒待ってから再計算する</text>\n  <text x=\"320\" y=\"1143\" font-size=\"10\" fill=\"#0a7aff\">⑥ 20＋15＋15 ＝ 約 50 秒</text>\n  <text x=\"320\" y=\"1158\" font-size=\"10\" fill=\"#374151\">勉強会の「抜く線で秒数が違う」はこの差</text>\n  <rect x=\"600\" y=\"1066\" width=\"280\" height=\"105\" rx=\"6\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"610\" y=\"1082\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">RSTP（802.1w）なら</text>\n  <text x=\"610\" y=\"1098\" font-size=\"10\" fill=\"#374151\">隣との握手で口を開ける</text>\n  <text x=\"610\" y=\"1113\" font-size=\"10\" fill=\"#374151\">タイマー待ちが要らない</text>\n  <text x=\"610\" y=\"1128\" font-size=\"10\" fill=\"#374151\">直接・間接とも 1 秒未満になりうる</text>\n  <text x=\"610\" y=\"1143\" font-size=\"10\" fill=\"#374151\">（相手が古い STP だと、この速さは出ない）</text>\n  <text x=\"610\" y=\"1158\" font-size=\"10\" fill=\"#374151\">PortFast の口は最初から転送状態</text>\n<text x=\"20\" y=\"1221\" font-size=\"12\" font-weight=\"700\" fill=\"#1f2937\">BPDU の中身の推移（どの欄が、どこで書き換わるか）</text>\n  <text x=\"20\" y=\"1249\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">① 電源投入の直後に各スイッチが出す BPDU</text>\n  <text x=\"20\" y=\"1269\" font-size=\"10\" fill=\"#6b7280\">中身は［ルート ID＝自分のブリッジ ID］［根までのコスト 0］［送信元ブリッジ ID＝自分］［ポート ID］</text>\n  <text x=\"20\" y=\"1293\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">BPDU の宛先 MAC（決まった番地）</text>\n  <text x=\"20\" y=\"1313\" font-size=\"10\" fill=\"#6b7280\">標準の BPDU は 01:80:C2:00:00:00 あて。Cisco の PVST+ では VLAN 1 以外は 01:00:0C:CC:CC:CD あて（タグ付き）。どちらも隣のスイッチより先へは転送されない</text>\n  <text x=\"20\" y=\"1337\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">② 受け取った BPDU と自分の BPDU を比べる順番</text>\n  <text x=\"20\" y=\"1357\" font-size=\"10\" fill=\"#6b7280\">ルート ID → 根までのコスト → 送信元ブリッジ ID → 送信元ポート ID の順に比べ、小さい方が優勢。優勢な BPDU が来た口は、自分が指定ポートをやめる</text>\n  <text x=\"20\" y=\"1381\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">③ 根からの BPDU を隣へ中継するとき、書き換わる欄</text>\n  <text x=\"20\" y=\"1401\" font-size=\"10\" fill=\"#6b7280\">ルート ID はそのまま。根までのコストに受けた口のコスト（100 Mb/s なら 19）を足し、送信元ブリッジ ID を自分に書き換える</text>\n  <text x=\"20\" y=\"1425\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">④ 収束した後（平常時）</text>\n  <text x=\"20\" y=\"1445\" font-size=\"10\" fill=\"#6b7280\">（802.1D）根だけが Hello 2 秒ごとに BPDU を出し、他は中継する。RSTP では各スイッチが Hello ごとに自分で BPDU を出す。ブロックした口も受け取り続ける</text>\n  <text x=\"20\" y=\"1469\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">⑤ 線が切れた後</text>\n  <text x=\"20\" y=\"1489\" font-size=\"10\" fill=\"#6b7280\">根への道を失ったスイッチは「根は自分」と書いた BPDU を出す。受け取った側は Max Age 20 秒かけて古い情報を捨ててから計算し直す（その間は通信が戻らない）</text>\n  <text x=\"20\" y=\"1513\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">PortFast・BPDU guard を付けた口では</text>\n  <text x=\"20\" y=\"1533\" font-size=\"10\" fill=\"#6b7280\">PC しか付かない口なので BPDU は来ない前提。来たらスイッチが挿されたということなので、BPDU guard が口を止める（errdisable）</text>\n<text x=\"20\" y=\"1557\" font-size=\"10\" fill=\"#6b7280\">出典（1）タイマーの既定値（Hello 2 秒・Forward Delay 15 秒・Max Age 20 秒）と Max Age の役割：Cisco Understand and Tune Spanning Tree Protocol Timers</text>\n<text x=\"20\" y=\"1573\" font-size=\"10\" fill=\"#6b7280\">　　https://www.cisco.com/c/en/us/support/docs/lan-switching/spanning-tree-protocol/19120-122.html</text>\n<text x=\"20\" y=\"1589\" font-size=\"10\" fill=\"#6b7280\">出典（2）優先度の既定 32768・4096 刻み・拡張システム ID＝VLAN 番号・同点なら MAC が小さい方・コスト（100 Mb/s は 19、1 Gb/s は 4）・状態ごとに Forward Delay：</text>\n<text x=\"20\" y=\"1605\" font-size=\"10\" fill=\"#6b7280\">　　Cisco Catalyst 9200 Layer 2 Configuration Guide「Configuring Spanning Tree Protocol」</text>\n<text x=\"20\" y=\"1621\" font-size=\"10\" fill=\"#6b7280\">出典（3）直接検知は Forward Delay の 2 倍＝30 秒・RSTP はタイマーに頼らない握手で速い・エッジポート＝PortFast：Cisco Understand Rapid Spanning Tree Protocol (802.1w)</text>\n<text x=\"20\" y=\"1637\" font-size=\"10\" fill=\"#6b7280\">　　https://www.cisco.com/c/en/us/support/docs/lan-switching/spanning-tree-protocol/24062-146.html</text>\n<text x=\"20\" y=\"1653\" font-size=\"10\" fill=\"#6b7280\">出典（4）PortFast と BPDU guard（BPDU を受けたら errdisable）：https://www.cisco.com/c/en/us/support/docs/lan-switching/spanning-tree-protocol/10586-65.html</text>\n<text x=\"20\" y=\"1669\" font-size=\"10\" fill=\"#6b7280\">出典（5）Root guard（root-inconsistent でブロック）と Loop guard：Cisco Catalyst 9300 Layer 2 Configuration Guide「Configuring Optional Spanning-Tree Features」</text>\n<text x=\"20\" y=\"1685\" font-size=\"10\" fill=\"#6b7280\">出典（5-2）BPDU filter の注意（インターフェースに付けると STP を止めるのと同じで輪ができうる）：Cisco Catalyst 3750-X/3560-X Software Configuration Guide</text>\n<text x=\"20\" y=\"1701\" font-size=\"10\" fill=\"#6b7280\">　　https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst3750x_3560x/software/release/12-2_55_se/configuration/guide/3750xscg/swstpopt.html</text>\n<text x=\"20\" y=\"1717\" font-size=\"10\" fill=\"#6b7280\">出典（6）L2 には TTL が無く、輪に入ったフレームは止まらない：Cisco Troubleshoot Layer-2 Loops on Catalyst 9000 Series Switches</text>\n<text x=\"20\" y=\"1733\" font-size=\"10\" fill=\"#6b7280\">　　https://www.cisco.com/c/en/us/support/docs/switches/catalyst-9200-series-switches/221191-troubleshoot-layer-2-loops.html</text>\n<text x=\"20\" y=\"1749\" font-size=\"10\" fill=\"#6b7280\">出典（8）BPDU の宛先 MAC（VLAN 1 は 0180.c200.0000 でタグなし、VLAN 1 以外は PVST+ の 0100.0ccc.cccd でタグ付き）：</text>\n<text x=\"20\" y=\"1765\" font-size=\"10\" fill=\"#6b7280\">　　Cisco Troubleshoot Spanning Tree PVID- and Type-Inconsistencies</text>\n<text x=\"20\" y=\"1781\" font-size=\"10\" fill=\"#6b7280\">　　https://www.cisco.com/c/en/us/support/docs/lan-switching/spanning-tree-protocol/24063-pvid-inconsistency-24063.html</text>\n<text x=\"20\" y=\"1797\" font-size=\"10\" fill=\"#6b7280\">出典（7）BPDU の比較順序・直接 30 秒／間接 50 秒（二次資料）：https://www.infraexpert.com/study/stpz2.html ／ https://www.infraexpert.com/study/stpz3.html</text>\n<text x=\"20\" y=\"1813\" font-size=\"10\" fill=\"#6b7280\">未検証（1）50 秒を 1 つの数字として書いた Cisco の文書は見つけられなかった。Max Age 20＋Forward Delay 15×2 の足し算で、30 秒と 50 秒を直接書いているのは上の二次資料</text>\n<text x=\"20\" y=\"1829\" font-size=\"10\" fill=\"#6b7280\">未検証（2）「新しい製品ほど MAC が大きいので、新しいスイッチが根を奪わない設計になっている」という見立ては、規格にそう書かれた記述を見つけられなかった</text>\n<text x=\"20\" y=\"1845\" font-size=\"10\" fill=\"#6b7280\">　　規格が決めているのは「ブリッジ ID（優先度＋MAC）が小さい方が根」だけで、MAC の大小と製造時期の関係は確認できていない（未検証）</text>\n<text x=\"20\" y=\"1861\" font-size=\"10\" fill=\"#6b7280\">　　なお「優先度が低い順に根になる」という読み方は Cisco の表現と一致する（ the highest device priority (the lowest numerical priority value)）</text>\n<text x=\"20\" y=\"1877\" font-size=\"10\" fill=\"#6b7280\">図 1〜7 との接続：図 2 のフラッディング（全員あてをコピーして流す）が、輪では止まらないのがこの図の出発点。図 3・4 の VLAN ごとに木が別（PVST+）</text>\n<text x=\"20\" y=\"1893\" font-size=\"10\" fill=\"#6b7280\">この図は線を 100 Mb/s（コスト 19）として描いている。1 Gb/s なら 1 本 4 になり、同じ形でも選ばれる道が変わることがある</text>\n</svg>\n## 復旧までの秒数","line":61,"sources":["src_1","src_3","src_4","src_6","src_7","src_8","src_9","src_10"],"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_c32514","type":"paragraph","markdown":"タイマーの既定は Hello 2 秒・Max Age 20 秒・Forward Delay 15 秒です。","text":"タイマーの既定は Hello 2 秒・Max Age 20 秒・Forward Delay 15 秒です。","line":246,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_932b0a","type":"paragraph","markdown":"自分の口が down したと自分で分かる場合（図の直接検知）は、ブロックしていた口を Listening 15 秒と Learning 15 秒で開けるので約 30 秒です。\n自分の口は生きていて良い BPDU だけが来なくなった場合（図の間接検知）は、Max Age 20 秒待ってからその 30 秒に入るので約 50 秒です。\nRSTP（802.1w）は隣同士の握手でタイマーを待たずに口を開けるので、これが 1 秒未満になりえます。","text":"自分の口が down したと自分で分かる場合（図の直接検知）は、ブロックしていた口を Listening 15 秒と Learning 15 秒で開けるので約 30 秒です。\n自分の口は生きていて良い BPDU だけが来なくなった場合（図の間接検知）は、Max Age 20 秒待ってからその 30 秒に入るので約 50 秒です。\nRSTP（802.1w）は隣同士の握手でタイマーを待たずに口を開けるので、これが 1 秒未満になりえます。","line":248,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_6ac5f1","type":"heading","depth":2,"markdown":"## 守りの設定","text":"守りの設定","line":252,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_f7f0a6","type":"paragraph","markdown":"図の中ほどに 5 つ並べています。速くする道具は PortFast（PC しか付かない口を待たずに転送状態にする）だけで、BPDU guard・Root guard・Loop guard は BPDU の出入りが前提と違ったときの処置です。\n毛色が違うのは BPDU filter で、その口で BPDU を出しも受けもしません。インターフェースに付けると STP を止めるのと同じで、輪ができる危険があります。","text":"図の中ほどに 5 つ並べています。速くする道具は PortFast（PC しか付かない口を待たずに転送状態にする）だけで、BPDU guard・Root guard・Loop guard は BPDU の出入りが前提と違ったときの処置です。\n毛色が違うのは BPDU filter で、その口で BPDU を出しも受けもしません。インターフェースに付けると STP を止めるのと同じで、輪ができる危険があります。","line":254,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_1fcd3e","type":"heading","depth":2,"markdown":"## 図 4・図 15 との接続","text":"図 4・図 15 との接続","line":257,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_49fdd7","type":"paragraph","markdown":"図 4 では、スイッチ 2 台の間の 1 本にタグが付きました。線が増えてもタグの付き方は変わりません。STP が決めるのは、どの口を通すかだけです。","text":"図 4 では、スイッチ 2 台の間の 1 本にタグが付きました。線が増えてもタグの付き方は変わりません。STP が決めるのは、どの口を通すかだけです。","line":259,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_dc212e","type":"paragraph","markdown":"次の図 15 では、同じ 2 台の間の 2 本を、そもそも輪にしない形で使います。","text":"次の図 15 では、同じ 2 台の間の 2 本を、そもそも輪にしない形で使います。","line":261,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_703626","type":"heading","depth":2,"markdown":"## 未検証・注意","text":"未検証・注意","line":263,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_9dfb8a","type":"list","markdown":"- 約 50 秒を 1 つの数字として書いた Cisco の文書は見つけられませんでした。この 50 秒は Max Age 20 と Forward Delay 15 の 2 倍を足した値で、30 秒・50 秒を直接書いているのは二次資料です。\n- 「新しい製品ほど MAC が大きいので、新しいスイッチが根を奪わない設計になっている」という見立ては、根拠を見つけられませんでした（未検証）。規格が決めているのは「ブリッジ ID が小さい方が根」だけです。\n- 「優先度が低い順に根になる」という読み方は、Cisco の表現（the lowest numerical priority value）と一致します。\n- RSTP の 1 秒未満は、相手が古い STP だと出ません。\n- この記事は線を 100 Mb/s（1 本のコスト 19）として書いています。1 Gb/s なら 4 になり、同じ形でも選ばれる道が変わることがあります。\n- PVST+ の優先度の値（32778・4106 など）は、上の規則から計算したものです。","text":"約 50 秒を 1 つの数字として書いた Cisco の文書は見つけられませんでした。この 50 秒は Max Age 20 と Forward Delay 15 の 2 倍を足した値で、30 秒・50 秒を直接書いているのは二次資料です。「新しい製品ほど MAC が大きいので、新しいスイッチが根を奪わない設計になっている」という見立ては、根拠を見つけられませんでした（未検証）。規格が決めているのは「ブリッジ ID が小さい方が根」だけです。「優先度が低い順に根になる」という読み方は、Cisco の表現（the lowest numerical priority value）と一致します。RSTP の 1 秒未満は、相手が古い STP だと出ません。この記事は線を 100 Mb/s（1 本のコスト 19）として書いています。1 Gb/s なら 4 になり、同じ形でも選ばれる道が変わることがあります。PVST+ の優先度の値（32778・4106 など）は、上の規則から計算したものです。","line":265,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_240080","type":"heading","depth":2,"markdown":"## 出典","text":"出典","line":272,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_37ac1a","type":"list","markdown":"- 勉強会での本人の観察（2026-09-13 実機ハンズオン。資料は非公開）\n- [Cisco: Understand and Tune Spanning Tree Protocol Timers](https://www.cisco.com/c/en/us/support/docs/lan-switching/spanning-tree-protocol/19120-122.html) — Hello time 2 秒／Forward Delay 15 秒／Max Age 20 秒が既定\n- [Cisco: Configuring Spanning Tree Protocol（Catalyst 9200）](https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst9200/software/release/16-10/configuration_guide/lyr2/b_1610_lyr2_9200_cg/configuring_spanning___tree_protocol.html) — 優先度は 0 から 61440 まで 4096 刻みで既定 32768、拡張システム ID は VLAN ID、コストは 1000 Mb/s が 4・100 Mb/s が 19・10 Mb/s が 100\n- [Cisco: Understand Rapid Spanning Tree Protocol (802.1w)](https://www.cisco.com/c/en/us/support/docs/lan-switching/spanning-tree-protocol/24062-146.html) — twice the forward delay must elapse ＝ 30 seconds of disruption of traffic、提案と同意は very fast, as it does not rely on any timers\n- [Cisco: Understand Spanning Tree PortFast and BPDU Guard Features](https://www.cisco.com/c/en/us/support/docs/lan-switching/spanning-tree-protocol/10586-65.html) — PortFast は Listening と Learning を飛ばす、BPDU guard は口を errdisable にする\n- [Cisco: Configuring Optional Spanning-Tree Features（Catalyst 9300）](https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst9300/software/release/17-10/configuration_guide/lyr2/b_1710_lyr2_9300_cg/configuring_optional_spanning_tree_features.html) — Root guard は root-inconsistent (blocked) にする、Loop guard は片方向の故障で代替ポート・ルートポートが指定ポートになるのを防ぐ\n- [Cisco: Configuring Optional Spanning-Tree Features（Catalyst 3750-X/3560-X）](https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst3750x_3560x/software/release/12-2_55_se/configuration/guide/3750xscg/swstpopt.html) — Enabling BPDU filtering on an interface is the same as disabling spanning tree on it and can result in spanning-tree loops\n- [Cisco: Troubleshoot Layer-2 Loops on Catalyst 9000 Series Switches](https://www.cisco.com/c/en/us/support/docs/switches/catalyst-9200-series-switches/221191-troubleshoot-layer-2-loops.html) — L2 の通信には TTL のような仕組みが無い\n- [Cisco: Troubleshoot Spanning Tree PVID- and Type-Inconsistencies](https://www.cisco.com/c/en/us/support/docs/lan-switching/spanning-tree-protocol/24063-pvid-inconsistency-24063.html) — VLAN 1 の BPDU は 0180.c200.0000 あてでタグなし、VLAN 1 以外は PVST+ の 0100.0ccc.cccd あてでタグ付き\n- [インフラエキスパート: スパニングツリー（ポートの役割）](https://www.infraexpert.com/study/stpz2.html) ／ [同（コンバージェンス）](https://www.infraexpert.com/study/stpz3.html) — 二次資料。BPDU の比較順序、直接検知 30 秒・間接検知 50 秒","text":"勉強会での本人の観察（2026-09-13 実機ハンズオン。資料は非公開）Cisco: Understand and Tune Spanning Tree Protocol Timers — Hello time 2 秒／Forward Delay 15 秒／Max Age 20 秒が既定Cisco: Configuring Spanning Tree Protocol（Catalyst 9200） — 優先度は 0 から 61440 まで 4096 刻みで既定 32768、拡張システム ID は VLAN ID、コストは 1000 Mb/s が 4・100 Mb/s が 19・10 Mb/s が 100Cisco: Understand Rapid Spanning Tree Protocol (802.1w) — twice the forward delay must elapse ＝ 30 seconds of disruption of traffic、提案と同意は very fast, as it does not rely on any timersCisco: Understand Spanning Tree PortFast and BPDU Guard Features — PortFast は Listening と Learning を飛ばす、BPDU guard は口を errdisable にするCisco: Configuring Optional Spanning-Tree Features（Catalyst 9300） — Root guard は root-inconsistent (blocked) にする、Loop guard は片方向の故障で代替ポート・ルートポートが指定ポートになるのを防ぐCisco: Configuring Optional Spanning-Tree Features（Catalyst 3750-X/3560-X） — Enabling BPDU filtering on an interface is the same as disabling spanning tree on it and can result in spanning-tree loopsCisco: Troubleshoot Layer-2 Loops on Catalyst 9000 Series Switches — L2 の通信には TTL のような仕組みが無いCisco: Troubleshoot Spanning Tree PVID- and Type-Inconsistencies — VLAN 1 の BPDU は 0180.c200.0000 あてでタグなし、VLAN 1 以外は PVST+ の 0100.0ccc.cccd あてでタグ付きインフラエキスパート: スパニングツリー（ポートの役割） ／ 同（コンバージェンス） — 二次資料。BPDU の比較順序、直接検知 30 秒・間接検知 50 秒","line":274,"sources":["src_1","src_2","src_3","src_4","src_5","src_6","src_7","src_8","src_9","src_10"],"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_1f7c1f","type":"heading","depth":2,"markdown":"## 関連","text":"関連","line":285,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_7a7ca6","type":"list","markdown":"- [ネットワーク\\_INDEX](/notes/nw-basics-index) — 連載の目次\n\n- 連載の入口: [ネットワーク\\_00\\_3層で言葉を置く](/notes/nw-basics-00-three-layers)（`/notes/nw-basics-00-three-layers`）\n\n- 輪の出発点（フラッディング）: [ネットワーク\\_02\\_同じネットワークの中](/notes/nw-basics-02-same-network)（`/notes/nw-basics-02-same-network`）\n\n- VLAN ごとに木が別になる話の土台: [ネットワーク\\_04\\_トランクとタグ](/notes/nw-basics-04-trunk)（`/notes/nw-basics-04-trunk`）\n\n- 前の記事（図 13）: [ネットワーク\\_13\\_OSPF](/notes/nw-basics-13-ospf)（`/notes/nw-basics-13-ospf`）\n\n- 次の記事（図 15）: [ネットワーク\\_15\\_EtherChannel](/notes/nw-basics-15-etherchannel)（`/notes/nw-basics-15-etherchannel`）","text":"ネットワーク_INDEX — 連載の目次連載の入口: ネットワーク_00_3層で言葉を置く（/notes/nw-basics-00-three-layers）輪の出発点（フラッディング）: ネットワーク_02_同じネットワークの中（/notes/nw-basics-02-same-network）VLAN ごとに木が別になる話の土台: ネットワーク_04_トランクとタグ（/notes/nw-basics-04-trunk）前の記事（図 13）: ネットワーク_13_OSPF（/notes/nw-basics-13-ospf）次の記事（図 15）: ネットワーク_15_EtherChannel（/notes/nw-basics-15-etherchannel）","line":287,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}}]}