{"articleId":"art_27a019935c","slug":"nw-basics-16-vrrp","title":"PC に書ける出口は 1 つだけ","version":1,"area":"tech","topic":"ネットワーク","tags":["ネットワーク","vrrp","冗長化","concept"],"date":"2026-09-14","updated":"2026-09-14","records":[{"id":"rev_965b537e9f","at":"2026-09-14","actor":{"kind":"ai","id":"claude-fable-5","label":"AI (claude-fable-5)"},"version":1,"kind":"ai-check","scope":{},"text":"出典 URL 4 本を再取得した。仮想 MAC の 00-00-5E-00-01-{VRID}、Skew_Time と Master_Down_Interval の式、広告間隔の既定 1 秒、優先度の既定 100、あて先 224.0.0.18、IP プロトコル番号 112、Backup は MUST NOT respond to ARP requests であることを RFC 5798 で確認し、仮想 MAC の形式・式・既定値が RFC 3768 でも同じであることを確認した。224.0.0.18 から 0100.5e00.0012 を導く対応付けは RFC 1112 6.4 で確認した。Cisco の HSRP の設定ガイドには proprietary の語が見当たらなかったため、HSRP・GLBP を Cisco 独自とは書いていない。切替で通信が戻るまでの時間、Cisco の実装でインターフェース down が規格の Shutdown イベントに当たるかは未検証として残した。校正チェックリストを通し、例え話・体言止め・未定義語の初出を検査した。守秘: 実名・社名・会場名・地名・金額なし","status":"open","source":"frontmatter"},{"id":"rev_742c42ba60","at":"2026-09-14","actor":{"kind":"ai","id":"claude-fable-5","label":"AI (claude-fable-5)"},"version":1,"kind":"edit","scope":{},"text":"公開前の校閲。この図のルータ 3 は支店の 2 台目のゲートウェイで、図 13 で迂回路として出てくるルータ 3 とは別の機器なので、連載を通して読む人が同じ機器と読まないよう、注に 1 行足した。「②以降」を他の記事と同じ「② 以降」に直した。仮想 MAC 0000.5e00.010b、Master Down Interval 3.609 秒、あて先 224.0.0.18 は出典の式と値から再計算して一致を確認した。","status":"open","source":"frontmatter"}],"blocks":[{"id":"blk_c70993","type":"paragraph","markdown":"PC のデフォルトゲートウェイ欄には、IP を 1 つしか書けません。\nそのルータが落ちたら、PC の設定を書き換えて回るか、通信が止まるかのどちらかです。","text":"PC のデフォルトゲートウェイ欄には、IP を 1 つしか書けません。\nそのルータが落ちたら、PC の設定を書き換えて回るか、通信が止まるかのどちらかです。","line":2,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_a23a92","type":"paragraph","markdown":"この記事は「壊れても止まらない」の塊の最後で、図 5 の続きです。\n図 5 で PC-A の欄に書いた 192.168.10.1 を、ルータ 2 台で共有する番地に変えます。","text":"この記事は「壊れても止まらない」の塊の最後で、図 5 の続きです。\n図 5 で PC-A の欄に書いた 192.168.10.1 を、ルータ 2 台で共有する番地に変えます。","line":5,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_bb713c","type":"paragraph","markdown":"この連載は、ネットワークの言葉を 3 つの層に置いて読みます。\nもの（物理か論理か）、結びつき（人が設定で付ける手動か、機器が学習する自動か、製造時に決まる固定か）、通信フロー（1 本の通信がそれらを順に通る道筋）の 3 つです。","text":"この連載は、ネットワークの言葉を 3 つの層に置いて読みます。\nもの（物理か論理か）、結びつき（人が設定で付ける手動か、機器が学習する自動か、製造時に決まる固定か）、通信フロー（1 本の通信がそれらを順に通る道筋）の 3 つです。","line":8,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_34ba84","type":"heading","depth":2,"markdown":"## 登場するもの","text":"登場するもの","line":11,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_f2dc50","type":"heading","depth":4,"markdown":"#### 仮想 IP","text":"仮想 IP","line":13,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_3cdb44","type":"paragraph","markdown":"論理のものです。\n2 台で共有する番地で、PC のデフォルトゲートウェイ欄にはこれを書きます。この図では 192.168.10.1 です。\n図 5 ではルータ 1 の口そのものがこの番地でした。ここでは番地を仮想 IP に譲り、ルータ 1 の実 IP を .11 にします。","text":"論理のものです。\n2 台で共有する番地で、PC のデフォルトゲートウェイ欄にはこれを書きます。この図では 192.168.10.1 です。\n図 5 ではルータ 1 の口そのものがこの番地でした。ここでは番地を仮想 IP に譲り、ルータ 1 の実 IP を .11 にします。","line":15,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_34152f","type":"heading","depth":4,"markdown":"#### 仮想 MAC","text":"仮想 MAC","line":19,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_1fa10d","type":"paragraph","markdown":"論理のものです。\nIPv4 では 00-00-5E-00-01-{グループ番号} と規格で決まっており、グループ 11 なら 0000.5e00.010b です。\n機器に焼かれた MAC ではなく、グループ番号から作る番地です。","text":"論理のものです。\nIPv4 では 00-00-5E-00-01-{グループ番号} と規格で決まっており、グループ 11 なら 0000.5e00.010b です。\n機器に焼かれた MAC ではなく、グループ番号から作る番地です。","line":21,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_af45c0","type":"heading","depth":4,"markdown":"#### 優先度と track と preempt","text":"優先度と track と preempt","line":25,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_dfedfd","type":"paragraph","markdown":"どれも論理・手動です。\n優先度の既定は 100 で、大きい方が Master になります。\ntrack は見張る対象で、その口が落ちたら決めた数だけ優先度を引きます。\npreempt は優先度が高い方が Master を取り返すかどうかの設定で、既定は取り返します。","text":"どれも論理・手動です。\n優先度の既定は 100 で、大きい方が Master になります。\ntrack は見張る対象で、その口が落ちたら決めた数だけ優先度を引きます。\npreempt は優先度が高い方が Master を取り返すかどうかの設定で、既定は取り返します。","line":27,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_118c7a","type":"heading","depth":2,"markdown":"## 結びつき","text":"結びつき","line":32,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_358401","type":"list","markdown":"- PC のデフォルトゲートウェイ欄 ⇄ 仮想 IP は手動です。一度書いたら、切り替わっても変えません。ここが VRRP の目的そのものです。\n- 仮想 IP ⇄ どの機器が応えるかは自動です。優先度と広告で決まり、Master だけが ARP に応えます。\n- 仮想 MAC ⇄ スイッチのどのポートの先にいるかも自動です。切替のときに新しい Master が出す ARP で書き換わります。","text":"PC のデフォルトゲートウェイ欄 ⇄ 仮想 IP は手動です。一度書いたら、切り替わっても変えません。ここが VRRP の目的そのものです。仮想 IP ⇄ どの機器が応えるかは自動です。優先度と広告で決まり、Master だけが ARP に応えます。仮想 MAC ⇄ スイッチのどのポートの先にいるかも自動です。切替のときに新しい Master が出す ARP で書き換わります。","line":34,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_df21fc","type":"heading","depth":2,"markdown":"## 通信フロー","text":"通信フロー","line":38,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_ce459e","type":"paragraph","markdown":"支店のルータをもう 1 台（ルータ 3）増やし、ルータ 1 を Master（優先度 105）、ルータ 3 を Backup（優先度 100）にします。","text":"支店のルータをもう 1 台（ルータ 3）増やし、ルータ 1 を Master（優先度 105）、ルータ 3 を Backup（優先度 100）にします。","line":40,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_b0dcb9","type":"paragraph","markdown":"① PC-A は宛先が自分のネットワークの外なので、書いてあるデフォルトゲートウェイ 192.168.10.1 の MAC を ARP で聞きます。","text":"① PC-A は宛先が自分のネットワークの外なので、書いてあるデフォルトゲートウェイ 192.168.10.1 の MAC を ARP で聞きます。","line":42,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_184ddc","type":"paragraph","markdown":"② Master だけが応えます。返す MAC は自分の物理ポートの MAC ではなく、仮想 MAC です。Backup は応えません。","text":"② Master だけが応えます。返す MAC は自分の物理ポートの MAC ではなく、仮想 MAC です。Backup は応えません。","line":44,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_214c32","type":"paragraph","markdown":"③ PC-A は宛先 MAC ＝ 仮想 MAC でフレームを出します。スイッチは ② で覚えた「仮想 MAC → ポート 1」の行を見て転送します。","text":"③ PC-A は宛先 MAC ＝ 仮想 MAC でフレームを出します。スイッチは ② で覚えた「仮想 MAC → ポート 1」の行を見て転送します。","line":46,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_fde74e","type":"paragraph","markdown":"④ Master は 1 秒ごとに広告を出します（あて先 224.0.0.18・IP プロトコル番号 112）。Backup は聞いているだけです。","text":"④ Master は 1 秒ごとに広告を出します（あて先 224.0.0.18・IP プロトコル番号 112）。Backup は聞いているだけです。","line":48,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_eaee3b","type":"paragraph","markdown":"⑤ 広告が Master Down Interval（優先度 100 なら 3.609 秒）のあいだ届かないと、Backup が Master になり、仮想 IP と仮想 MAC をそのまま引き継ぎます。","text":"⑤ 広告が Master Down Interval（優先度 100 なら 3.609 秒）のあいだ届かないと、Backup が Master になり、仮想 IP と仮想 MAC をそのまま引き継ぎます。","line":50,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_439697","type":"paragraph","markdown":"⑥ 新しい Master は、仮想 MAC を送信元にした ARP を出します。スイッチは「仮想 MAC → ポート 2」に書き換えます。","text":"⑥ 新しい Master は、仮想 MAC を送信元にした ARP を出します。スイッチは「仮想 MAC → ポート 2」に書き換えます。","line":52,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_520fa0","type":"paragraph","markdown":"書き換わるのは、スイッチの MAC アドレステーブルの 1 行だけです。PC-A の設定も ARP テーブルも変わりません。","text":"書き換わるのは、スイッチの MAC アドレステーブルの 1 行だけです。PC-A の設定も ARP テーブルも変わりません。","line":54,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_c2b0eb","type":"heading","depth":2,"markdown":"## 図 16","text":"図 16","line":56,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_d97b40","type":"paragraph","markdown":"図の上半分が構成図とフロー、中ほどが秒数の式と track・preempt、下半分が表示の推移と通信の中身の推移です。","text":"図の上半分が構成図とフロー、中ほどが秒数の式と track・preempt、下半分が表示の推移と通信の中身の推移です。","line":58,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_68b267","type":"html","markdown":"<svg viewBox=\"0 0 900 2088\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"VRRP：デフォルトゲートウェイを 2 台で共有する\" style=\"max-width:100%;height:auto;font-family:sans-serif\">\n  <rect x=\"0\" y=\"0\" width=\"900\" height=\"2088\" fill=\"#fbfcfe\"/>\n  <text x=\"20\" y=\"30\" text-anchor=\"start\" font-size=\"14\" font-weight=\"700\" fill=\"#1f2937\">VRRP：PC に書ける出口は 1 つだけ。ルータ 2 台で「仮想の IP」と「仮想の MAC」を分け合う</text>\n  <text x=\"20\" y=\"50\" text-anchor=\"start\" font-size=\"11\" fill=\"#6b7280\">支店のルータをもう 1 台（ルータ 3）増やす。図 5 で PC-A の GW 欄に書いた 192.168.10.1 を、特定の 1 台の口ではなく 2 台で共有する番地にする</text>\n  <rect x=\"30\" y=\"170\" width=\"120\" height=\"86\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"90.0\" y=\"190\" text-anchor=\"middle\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">PC-A</text>\n  <text x=\"90.0\" y=\"208\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">192.168.10.10</text>\n  <text x=\"90.0\" y=\"223\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">GW 192.168.10.1</text>\n  <text x=\"90.0\" y=\"238\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">（手動・1 つだけ）</text>\n  <line x1=\"150\" y1=\"213\" x2=\"252\" y2=\"213\" stroke=\"#374151\" stroke-width=\"2\"/>\n  <line x1=\"156\" y1=\"186\" x2=\"238\" y2=\"186\" stroke=\"#0a7aff\" stroke-width=\"2\"/><polygon points=\"237,181 237,191 246,186\" fill=\"#0a7aff\"/>\n  <circle cx=\"174\" cy=\"186\" r=\"9\" fill=\"#0a7aff\"/><text x=\"174\" y=\"190\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#ffffff\">1</text>\n  <line x1=\"246\" y1=\"240\" x2=\"164\" y2=\"240\" stroke=\"#0a7aff\" stroke-width=\"2\"/><polygon points=\"165,235 165,245 156,240\" fill=\"#0a7aff\"/>\n  <circle cx=\"228\" cy=\"240\" r=\"9\" fill=\"#0a7aff\"/><text x=\"228\" y=\"244\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#ffffff\">2</text>\n  <rect x=\"252\" y=\"183\" width=\"110\" height=\"60\" rx=\"8\" fill=\"#f2f5f9\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"307.0\" y=\"203\" text-anchor=\"middle\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">スイッチ 1</text>\n  <text x=\"307.0\" y=\"221\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">ポート 1・ポート 2</text>\n  <line x1=\"362\" y1=\"203\" x2=\"398\" y2=\"176\" stroke=\"#374151\" stroke-width=\"2\"/>\n  <line x1=\"398\" y1=\"176\" x2=\"434\" y2=\"176\" stroke=\"#0a7aff\" stroke-width=\"2\"/><polygon points=\"433,171 433,181 442,176\" fill=\"#0a7aff\"/>\n  <circle cx=\"414\" cy=\"176\" r=\"9\" fill=\"#0a7aff\"/><text x=\"414\" y=\"180\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#ffffff\">3</text>\n  <line x1=\"362\" y1=\"223\" x2=\"398\" y2=\"284\" stroke=\"#9aa7b5\" stroke-width=\"2\"/>\n  <line x1=\"398\" y1=\"284\" x2=\"434\" y2=\"284\" stroke=\"#0a7aff\" stroke-width=\"2\" stroke-dasharray=\"5 4\"/><polygon points=\"433,279 433,289 442,284\" fill=\"#0a7aff\"/>\n  <circle cx=\"414\" cy=\"284\" r=\"9\" fill=\"#0a7aff\"/><text x=\"414\" y=\"288\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#ffffff\">5</text>\n  <text x=\"250\" y=\"320\" text-anchor=\"start\" font-size=\"9\" fill=\"#6b7280\">⑤⑥ の切替後はこちらへ移る</text>\n  <rect x=\"430\" y=\"95\" width=\"290\" height=\"232\" rx=\"10\" fill=\"none\" stroke=\"#0a7aff\" stroke-width=\"1.5\" stroke-dasharray=\"6 4\"/>\n  <text x=\"575\" y=\"114\" text-anchor=\"middle\" font-size=\"11\" font-weight=\"700\" fill=\"#0a7aff\">仮想ルータ（VRRP グループ 11）</text>\n  <text x=\"575\" y=\"130\" text-anchor=\"middle\" font-size=\"10\" fill=\"#0a7aff\">仮想 IP 192.168.10.1 ／ 仮想 MAC 0000.5e00.010b</text>\n  <rect x=\"445\" y=\"140\" width=\"260\" height=\"68\" rx=\"8\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1.5\"/>\n  <text x=\"575.0\" y=\"160\" text-anchor=\"middle\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">ルータ 1 ＝ Master</text>\n  <text x=\"575.0\" y=\"178\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">Gi0 192.168.10.11（実 IP・手動）</text>\n  <text x=\"575.0\" y=\"193\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">優先度 105（高い方が Master になる）</text>\n  <line x1=\"560\" y1=\"214\" x2=\"560\" y2=\"232\" stroke=\"#0a7aff\" stroke-width=\"2\" stroke-dasharray=\"4 3\"/><polygon points=\"555,231 565,231 560,240\" fill=\"#0a7aff\"/>\n  <circle cx=\"560\" cy=\"227\" r=\"9\" fill=\"#0a7aff\"/><text x=\"560\" y=\"231\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#ffffff\">4</text>\n  <text x=\"578\" y=\"231\" text-anchor=\"start\" font-size=\"9\" fill=\"#0a7aff\">広告（1 秒ごと）</text>\n  <rect x=\"445\" y=\"246\" width=\"260\" height=\"68\" rx=\"8\" fill=\"#f2f5f9\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"575.0\" y=\"266\" text-anchor=\"middle\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">ルータ 3 ＝ Backup</text>\n  <text x=\"575.0\" y=\"284\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">Gi0 192.168.10.12（実 IP・手動）</text>\n  <text x=\"575.0\" y=\"299\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">優先度 100 → 3.609 秒 待って引き継ぐ</text>\n  <line x1=\"705\" y1=\"174\" x2=\"740\" y2=\"206\" stroke=\"#374151\" stroke-width=\"2\"/>\n  <line x1=\"705\" y1=\"280\" x2=\"740\" y2=\"250\" stroke=\"#374151\" stroke-width=\"2\"/>\n  <rect x=\"740\" y=\"186\" width=\"140\" height=\"86\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"810.0\" y=\"206\" text-anchor=\"middle\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">データセンター側へ</text>\n  <text x=\"810.0\" y=\"224\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">主の線 172.16.12.0/30</text>\n  <text x=\"810.0\" y=\"239\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">予備の線 172.16.13.0/30</text>\n  <text x=\"810.0\" y=\"254\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">この先に ルータ 2</text>\n  <text x=\"20\" y=\"348\" text-anchor=\"start\" font-size=\"10\" fill=\"#6b7280\">図 5 では ルータ 1 の口そのものが 192.168.10.1 だった。VRRP ではその番地を仮想 IP に譲り、ルータ 1 の実 IP を .11 にする</text>\n  <text x=\"20\" y=\"364\" text-anchor=\"start\" font-size=\"10\" fill=\"#6b7280\">④ の広告は、実際にはスイッチを経由して Backup に届く（図では 2 台の間に描いている）</text>\n  <circle cx=\"30\" cy=\"382\" r=\"9\" fill=\"#0a7aff\"/><text x=\"30\" y=\"386\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#ffffff\">6</text>\n  <text x=\"44\" y=\"386\" text-anchor=\"start\" font-size=\"9\" fill=\"#6b7280\">切り替わった後にスイッチが書き換えるのは「仮想 MAC → どのポート」の 1 行だけ</text>\n  <rect x=\"20\" y=\"404\" width=\"430\" height=\"134\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"32\" y=\"424\" text-anchor=\"start\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">Master Down Interval（Master が居なくなったと判断するまでの秒数）</text>\n  <text x=\"32\" y=\"442\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">広告間隔 ＝ 既定 1 秒（Master が 1 秒ごとに広告を出す）</text>\n  <text x=\"32\" y=\"457\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">Skew Time ＝（256 − 優先度）× 広告間隔 ÷ 256</text>\n  <text x=\"32\" y=\"472\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">Master Down Interval ＝ 3 × 広告間隔 ＋ Skew Time</text>\n  <text x=\"32\" y=\"487\" text-anchor=\"start\" font-size=\"10\" fill=\"#0a7aff\">優先度 105 → 3 ＋ 151/256 ＝ 3.589 秒</text>\n  <text x=\"32\" y=\"502\" text-anchor=\"start\" font-size=\"10\" fill=\"#0a7aff\">優先度 100 → 3 ＋ 156/256 ＝ 3.609 秒</text>\n  <text x=\"32\" y=\"517\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">実際に待つのは Backup 側の値。この構成なら 3.609 秒</text>\n  <rect x=\"470\" y=\"404\" width=\"410\" height=\"134\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"482\" y=\"424\" text-anchor=\"start\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">仮想 MAC はどう決まるか</text>\n  <text x=\"482\" y=\"442\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">IPv4 では 00-00-5E-00-01-{グループ番号}（規格で決まっている）</text>\n  <text x=\"482\" y=\"457\" text-anchor=\"start\" font-size=\"10\" fill=\"#0a7aff\">グループ 11 → 16 進で 0b → 0000.5e00.010b</text>\n  <text x=\"482\" y=\"472\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">機器に焼かれた MAC ではなく、規格から作る番地（論理）</text>\n  <text x=\"482\" y=\"487\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">Master になった側が、この MAC で ARP に応え、この MAC で広告を出す</text>\n  <text x=\"482\" y=\"502\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">だから引き継いでも PC の ARP テーブルは書き換わらない</text>\n  <text x=\"482\" y=\"517\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">書き換わるのはスイッチの MAC アドレステーブルだけ</text>\n  <rect x=\"20\" y=\"554\" width=\"430\" height=\"164\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"32\" y=\"574\" text-anchor=\"start\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">track：見張っている口が落ちたら、自分の優先度を下げる</text>\n  <text x=\"32\" y=\"592\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">track ＝ 見張る対象。勉強会では LAN 側の口と WAN 側の口の 2 つ</text>\n  <text x=\"32\" y=\"607\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">落ちたら decrement の数だけ優先度を引く（勉強会では 20）</text>\n  <text x=\"32\" y=\"622\" text-anchor=\"start\" font-size=\"10\" fill=\"#0a7aff\">WAN 側が落ちた場合: 105 − 20 ＝ 85 ＜ 100 → ルータ 3 が Master へ</text>\n  <text x=\"32\" y=\"637\" text-anchor=\"start\" font-size=\"10\" fill=\"#b45309\">優先度を 125 にすると 125 − 20 ＝ 105 ＞ 100 のまま切り替わらない</text>\n  <text x=\"32\" y=\"652\" text-anchor=\"start\" font-size=\"10\" fill=\"#b45309\">「優先度を上げたのに切り替わらない」はこれ。引く量が足りない</text>\n  <text x=\"32\" y=\"667\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">track で下がったときは、下がった優先度の広告を Backup が受け取って</text>\n  <text x=\"32\" y=\"682\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">取り返す。3.609 秒（広告が途絶えたとき）を待つ話とは別</text>\n  <text x=\"32\" y=\"697\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">LAN 側の口が落ちた場合は別。そのグループは Init になり比較に入らない</text>\n  <rect x=\"470\" y=\"554\" width=\"410\" height=\"164\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"482\" y=\"574\" text-anchor=\"start\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">preempt：優先度が高い方が Master を取り返すか</text>\n  <text x=\"482\" y=\"592\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">既定は有効（規格の既定値が「取り返す」）</text>\n  <text x=\"482\" y=\"607\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">有効: 直った高優先度の機器が Master を取り返す</text>\n  <text x=\"482\" y=\"622\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">無効: 優先度が高くても、今の Master が止まるまで Backup のまま</text>\n  <text x=\"482\" y=\"637\" text-anchor=\"start\" font-size=\"10\" fill=\"#b45309\">「直したのに元に戻らない」ときは、ここを見る</text>\n  <text x=\"482\" y=\"652\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">VRRP は IETF の標準（RFC 5798）。HSRP・GLBP は Cisco の文書にある</text>\n  <text x=\"482\" y=\"667\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">同じ目的の仕組み。CCNA は「目的・機能・概念の説明」まで</text>\n  <text x=\"20\" y=\"744\" text-anchor=\"start\" font-size=\"12\" font-weight=\"700\" fill=\"#1f2937\">フロー</text>\n  <text x=\"20\" y=\"764\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">① PC-A は宛先が自分のネットワークの外なので、書いてあるデフォルトゲートウェイ 192.168.10.1 の MAC を ARP で聞く（全員あて）</text>\n  <text x=\"20\" y=\"782\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">② Master（ルータ 1）だけが応える。返す MAC は自分の物理ポートの MAC ではなく、仮想 MAC 0000.5e00.010b。Backup は応えない</text>\n  <text x=\"20\" y=\"800\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">③ PC-A は宛先 MAC ＝ 仮想 MAC でフレームを出す。スイッチは ② で学習した「仮想 MAC → ポート 1」の行を見て転送する（ここでは学習は起きない）</text>\n  <text x=\"20\" y=\"818\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">④ Master は 1 秒ごとに広告を出す（宛先 224.0.0.18・IP プロトコル番号 112、送信元 MAC は仮想 MAC）。Backup は聞いているだけ</text>\n  <text x=\"20\" y=\"836\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">⑤ 広告が Master Down Interval（優先度 100 なら 3.609 秒）届かないと、Backup が Master になる。仮想 IP と仮想 MAC をそのまま引き継ぐ</text>\n  <text x=\"20\" y=\"854\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">⑥ 新しい Master は仮想 MAC を送信元にした ARP（GARP）を出す。スイッチは「仮想 MAC → ポート 2」に書き換える。PC-A の設定も ARP テーブルも変わらない</text>\n  <text x=\"20\" y=\"886\" text-anchor=\"start\" font-size=\"12\" font-weight=\"700\" fill=\"#1f2937\">増えたもの</text>\n  <text x=\"20\" y=\"906\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">仮想 IP（論理。2 台で共有する、PC の GW 欄に書くための番地）と仮想 MAC（論理。グループ番号から規格どおりに作る番地）</text>\n  <text x=\"20\" y=\"934\" text-anchor=\"start\" font-size=\"12\" font-weight=\"700\" fill=\"#1f2937\">3 層で見ると</text>\n  <text x=\"20\" y=\"954\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">もの：仮想 IP・仮想 MAC（どちらも論理。機器 1 台に属さない）／実 IP（各ルータの口に付く、機器ごとの番地）／優先度（論理・手動）</text>\n  <text x=\"20\" y=\"972\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">結びつき：仮想 IP ⇄ どの機器が応えるか（自動。優先度と広告で決まる）。PC の GW 欄 ⇄ 仮想 IP（手動。一度書いたら切替後も変えない）</text>\n  <text x=\"20\" y=\"990\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">フロー：図 5 の ①「A はデフォルトゲートウェイへ送る」の宛先が、特定の 1 台ではなく仮想の番地になる。②以降のルータの動きは図 5 のまま</text>\n<line x1=\"20\" y1=\"1026\" x2=\"880\" y2=\"1026\" stroke=\"#d6dde5\" stroke-width=\"1\"/>\n<text x=\"20\" y=\"1048\" font-size=\"12\" font-weight=\"700\" fill=\"#1f2937\">各テーブル・各状態の推移（○番のフローで変わる行。青字）</text>\n<text x=\"20\" y=\"1060\" font-size=\"10\" fill=\"#6b7280\">前提: ルータ 1 も ルータ 3 も データセンターまでの経路を持っている（VRRP は経路の話ではなく「PC から見た出口を誰が名乗るか」の話）</text>\n  <rect x=\"20\" y=\"1074\" width=\"280\" height=\"75\" rx=\"6\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"30\" y=\"1090\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">PC-A: 設定（手動）</text>\n  <text x=\"30\" y=\"1106\" font-size=\"10\" fill=\"#374151\">IP 192.168.10.10 / GW 192.168.10.1</text>\n  <text x=\"30\" y=\"1121\" font-size=\"10\" fill=\"#374151\">出口として書ける番地は 1 つだけ</text>\n  <text x=\"30\" y=\"1136\" font-size=\"10\" fill=\"#0a7aff\">⑤ の切替があっても、ここは変えない</text>\n  <rect x=\"310\" y=\"1074\" width=\"280\" height=\"60\" rx=\"6\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"320\" y=\"1090\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">PC-A: ARP テーブル</text>\n  <text x=\"320\" y=\"1106\" font-size=\"10\" fill=\"#0a7aff\">② 追加: 192.168.10.1 → 0000.5e00.010b</text>\n  <text x=\"320\" y=\"1121\" font-size=\"10\" fill=\"#0a7aff\">⑥ の後も同じ行のまま（変わらない）</text>\n  <rect x=\"600\" y=\"1074\" width=\"280\" height=\"90\" rx=\"6\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"610\" y=\"1090\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">スイッチ 1: MAC アドレステーブル</text>\n  <text x=\"610\" y=\"1106\" font-size=\"10\" fill=\"#0a7aff\">② 追加: 0000.5e00.010b → ポート 1</text>\n  <text x=\"610\" y=\"1121\" font-size=\"10\" fill=\"#374151\">（Master の ARP 応答の送信元 MAC で学習）</text>\n  <text x=\"610\" y=\"1136\" font-size=\"10\" fill=\"#0a7aff\">③ この行を見てルータ 1 へ出す（学習ではなく転送）</text>\n  <text x=\"610\" y=\"1151\" font-size=\"10\" fill=\"#0a7aff\">⑥ 変更: 0000.5e00.010b → ポート 2（GARP で）</text>\n  <rect x=\"20\" y=\"1174\" width=\"280\" height=\"90\" rx=\"6\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"30\" y=\"1190\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ルータ 1 の VRRP（グループ 11）</text>\n  <text x=\"30\" y=\"1206\" font-size=\"10\" fill=\"#374151\">State Master ／ 優先度 105</text>\n  <text x=\"30\" y=\"1221\" font-size=\"10\" fill=\"#374151\">仮想 IP 192.168.10.1</text>\n  <text x=\"30\" y=\"1236\" font-size=\"10\" fill=\"#374151\">WAN 側が落ちると 105−20＝85 → Backup へ</text>\n  <text x=\"30\" y=\"1251\" font-size=\"10\" fill=\"#374151\">LAN 側が落ちるとこのグループは Init へ</text>\n  <rect x=\"310\" y=\"1174\" width=\"280\" height=\"75\" rx=\"6\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"320\" y=\"1190\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ルータ 3 の VRRP（グループ 11）</text>\n  <text x=\"320\" y=\"1206\" font-size=\"10\" fill=\"#374151\">State Backup ／ 優先度 100</text>\n  <text x=\"320\" y=\"1221\" font-size=\"10\" fill=\"#374151\">Master Down 3.609 秒（この間は待つ）</text>\n  <text x=\"320\" y=\"1236\" font-size=\"10\" fill=\"#0a7aff\">⑤ の後: Master</text>\n  <rect x=\"600\" y=\"1174\" width=\"280\" height=\"75\" rx=\"6\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"610\" y=\"1190\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ルータ 1・3 のルーティングテーブル</text>\n  <text x=\"610\" y=\"1206\" font-size=\"10\" fill=\"#374151\">2 台ともデータセンター向けの行を持つ（手動）</text>\n  <text x=\"610\" y=\"1221\" font-size=\"10\" fill=\"#374151\">VRRP が決めるのは「誰が出口を名乗るか」だけ</text>\n  <text x=\"610\" y=\"1236\" font-size=\"10\" fill=\"#374151\">テーブルの中身は VRRP では変わらない</text>\n<text x=\"20\" y=\"1314\" font-size=\"12\" font-weight=\"700\" fill=\"#1f2937\">通信の中身の推移（フローごとのフレーム／パケット）</text>\n  <text x=\"20\" y=\"1342\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">① PC-A → 全員：ARP 要求（GW の MAC を聞く）</text>\n  <rect x=\"20\" y=\"1348\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"79.0\" y=\"1362\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先 MAC</text>\n  <text x=\"79.0\" y=\"1377\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ff:ff:ff:ff:ff:ff（全員）</text>\n  <rect x=\"138\" y=\"1348\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"197.0\" y=\"1362\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元 MAC</text>\n  <text x=\"197.0\" y=\"1377\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">MAC A</text>\n  <rect x=\"256\" y=\"1348\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"315.0\" y=\"1362\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">知りたい IP</text>\n  <text x=\"315.0\" y=\"1377\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.10.1</text>\n  <rect x=\"374\" y=\"1348\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"433.0\" y=\"1362\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">自分の IP</text>\n  <text x=\"433.0\" y=\"1377\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.10.10</text>\n  <rect x=\"492\" y=\"1348\" width=\"70\" height=\"36\" fill=\"#ffffff\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"527.0\" y=\"1362\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">データ</text>\n  <text x=\"527.0\" y=\"1377\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ARP 要求</text>\n<text x=\"20\" y=\"1394\" font-size=\"10\" fill=\"#6b7280\">ARP は IP パケットではない（Ethernet の種類の欄が IP とは別の値）。中身が IP を扱うので同じ並びで描いている。ルータは ARP を中継しない</text>\n  <text x=\"20\" y=\"1412\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">② ルータ 1（Master）→ PC-A：ARP 応答。送信元 MAC が仮想 MAC</text>\n  <rect x=\"20\" y=\"1418\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"79.0\" y=\"1432\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先 MAC</text>\n  <text x=\"79.0\" y=\"1447\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">MAC A</text>\n  <rect x=\"138\" y=\"1418\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"197.0\" y=\"1432\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元 MAC</text>\n  <text x=\"197.0\" y=\"1447\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">0000.5e00.010b</text>\n  <rect x=\"256\" y=\"1418\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"315.0\" y=\"1432\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">相手の IP</text>\n  <text x=\"315.0\" y=\"1447\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.10.10</text>\n  <rect x=\"374\" y=\"1418\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"433.0\" y=\"1432\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">自分の IP</text>\n  <text x=\"433.0\" y=\"1447\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.10.1</text>\n  <rect x=\"492\" y=\"1418\" width=\"70\" height=\"36\" fill=\"#ffffff\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"527.0\" y=\"1432\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">データ</text>\n  <text x=\"527.0\" y=\"1447\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ARP 応答</text>\n<text x=\"20\" y=\"1464\" font-size=\"10\" fill=\"#6b7280\">Backup（ルータ 3）は同じ要求を受け取っても応えない。だから PC-A は Master の居場所しか知らない</text>\n  <text x=\"20\" y=\"1504\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">③ PC-A → ルータ 1：本番（宛先 MAC は仮想 MAC）</text>\n  <rect x=\"20\" y=\"1510\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"79.0\" y=\"1524\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先 MAC</text>\n  <text x=\"79.0\" y=\"1539\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">0000.5e00.010b</text>\n  <rect x=\"138\" y=\"1510\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"197.0\" y=\"1524\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元 MAC</text>\n  <text x=\"197.0\" y=\"1539\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">MAC A</text>\n  <rect x=\"256\" y=\"1510\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"315.0\" y=\"1524\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先 IP</text>\n  <text x=\"315.0\" y=\"1539\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.3.10</text>\n  <rect x=\"374\" y=\"1510\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"433.0\" y=\"1524\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元 IP</text>\n  <text x=\"433.0\" y=\"1539\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.10.10</text>\n  <rect x=\"492\" y=\"1510\" width=\"70\" height=\"36\" fill=\"#ffffff\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"527.0\" y=\"1524\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">データ</text>\n  <text x=\"527.0\" y=\"1539\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ping</text>\n  <line x1=\"20\" y1=\"1554\" x2=\"562\" y2=\"1554\" stroke=\"#374151\" stroke-width=\"1.5\"/><line x1=\"20\" y1=\"1550\" x2=\"20\" y2=\"1554\" stroke=\"#374151\" stroke-width=\"1.5\"/><line x1=\"562\" y1=\"1550\" x2=\"562\" y2=\"1554\" stroke=\"#374151\" stroke-width=\"1.5\"/>\n  <text x=\"291.0\" y=\"1567\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">フレーム＝全部。ただしスイッチが見るのは MAC とタグの部分だけ</text>\n  <line x1=\"256\" y1=\"1496\" x2=\"562\" y2=\"1496\" stroke=\"#0a7aff\" stroke-width=\"1.5\"/><line x1=\"256\" y1=\"1496\" x2=\"256\" y2=\"1500\" stroke=\"#0a7aff\" stroke-width=\"1.5\"/><line x1=\"562\" y1=\"1496\" x2=\"562\" y2=\"1500\" stroke=\"#0a7aff\" stroke-width=\"1.5\"/>\n  <text x=\"409.0\" y=\"1492\" text-anchor=\"middle\" font-size=\"10\" fill=\"#0a7aff\">パケット＝この部分。ルータはここ（IP）を見る</text>\n  <text x=\"20\" y=\"1600\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">④ Master の広告（1 秒ごと。データとは別に流れる）</text>\n  <rect x=\"20\" y=\"1606\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"79.0\" y=\"1620\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先 MAC</text>\n  <text x=\"79.0\" y=\"1635\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">0100.5e00.0012</text>\n  <rect x=\"138\" y=\"1606\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"197.0\" y=\"1620\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元 MAC</text>\n  <text x=\"197.0\" y=\"1635\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">0000.5e00.010b</text>\n  <rect x=\"256\" y=\"1606\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"315.0\" y=\"1620\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先 IP</text>\n  <text x=\"315.0\" y=\"1635\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">224.0.0.18</text>\n  <rect x=\"374\" y=\"1606\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"433.0\" y=\"1620\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元 IP</text>\n  <text x=\"433.0\" y=\"1635\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.10.11</text>\n  <rect x=\"492\" y=\"1606\" width=\"70\" height=\"36\" fill=\"#ffffff\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"527.0\" y=\"1620\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">データ</text>\n  <text x=\"527.0\" y=\"1635\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">VRRP</text>\n  <text x=\"20\" y=\"1660\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">⑤⑥ 切替後 ルータ 3 → 全員：仮想 MAC を送信元にした ARP（GARP）</text>\n  <rect x=\"20\" y=\"1666\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"79.0\" y=\"1680\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先 MAC</text>\n  <text x=\"79.0\" y=\"1695\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ff:ff:ff:ff:ff:ff（全員）</text>\n  <rect x=\"138\" y=\"1666\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"197.0\" y=\"1680\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元 MAC</text>\n  <text x=\"197.0\" y=\"1695\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">0000.5e00.010b</text>\n  <rect x=\"256\" y=\"1666\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"315.0\" y=\"1680\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">知りたい IP</text>\n  <text x=\"315.0\" y=\"1695\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.10.1</text>\n  <rect x=\"374\" y=\"1666\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"433.0\" y=\"1680\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">自分の IP</text>\n  <text x=\"433.0\" y=\"1695\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.10.1</text>\n  <rect x=\"492\" y=\"1666\" width=\"70\" height=\"36\" fill=\"#ffffff\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"527.0\" y=\"1680\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">データ</text>\n  <text x=\"527.0\" y=\"1695\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ARP 要求</text>\n<text x=\"20\" y=\"1712\" font-size=\"10\" fill=\"#6b7280\">自分の IP を自分で聞く形の ARP 要求。スイッチはこれが入ってきた瞬間に「仮想 MAC → ポート 2」へ書き換える</text>\n  <text x=\"20\" y=\"1730\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">⑥ の後 PC-A → ルータ 3：本番。③ と中身は 1 つも変わらない</text>\n  <rect x=\"20\" y=\"1736\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"79.0\" y=\"1750\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先 MAC</text>\n  <text x=\"79.0\" y=\"1765\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">0000.5e00.010b</text>\n  <rect x=\"138\" y=\"1736\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"197.0\" y=\"1750\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元 MAC</text>\n  <text x=\"197.0\" y=\"1765\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">MAC A</text>\n  <rect x=\"256\" y=\"1736\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"315.0\" y=\"1750\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先 IP</text>\n  <text x=\"315.0\" y=\"1765\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.3.10</text>\n  <rect x=\"374\" y=\"1736\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"433.0\" y=\"1750\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元 IP</text>\n  <text x=\"433.0\" y=\"1765\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.10.10</text>\n  <rect x=\"492\" y=\"1736\" width=\"70\" height=\"36\" fill=\"#ffffff\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"527.0\" y=\"1750\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">データ</text>\n  <text x=\"527.0\" y=\"1765\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ping</text>\n<text x=\"20\" y=\"1790\" font-size=\"10\" fill=\"#6b7280\">出典: VRRP バージョン 3（RFC 5798）— https://www.rfc-editor.org/rfc/rfc5798.txt</text>\n<text x=\"20\" y=\"1806\" font-size=\"10\" fill=\"#6b7280\">原文:「IPv4 case: 00-00-5E-00-01-{VRID}」＝仮想 MAC はグループ番号から作る</text>\n<text x=\"20\" y=\"1822\" font-size=\"10\" fill=\"#6b7280\">原文:「Skew_Time:(((256 - priority) * Master_Adver_Interval) / 256)」「Master_Down_Interval:(3 * Master_Adver_Interval) + Skew_time」</text>\n<text x=\"20\" y=\"1838\" font-size=\"10\" fill=\"#6b7280\">原文:「The default is 100 centiseconds (1 second)」＝広告間隔の既定／「The default priority value ... is 100」／予備機の優先度は 1〜254</text>\n<text x=\"20\" y=\"1854\" font-size=\"10\" fill=\"#6b7280\">原文:「Preemption ... Default is True」＝取り返すのが既定／Backup は「MUST NOT respond to ARP requests」＝応えない</text>\n<text x=\"20\" y=\"1870\" font-size=\"10\" fill=\"#6b7280\">原文:「VRRP packets are transmitted with the virtual router MAC address as the source MAC address」＝広告の送信元も仮想 MAC</text>\n<text x=\"20\" y=\"1886\" font-size=\"10\" fill=\"#6b7280\">原文: 広告のあて先は「224.0.0.18」、IP プロトコル番号は「112」。Master になるときに GARP を出す</text>\n<text x=\"20\" y=\"1902\" font-size=\"10\" fill=\"#6b7280\">宛先 MAC 0100.5e00.0012 は、この 224.0.0.18 から IPv4 マルチキャストの MAC 対応付け（RFC 1112 6.4「low-order 23-bits」）で導いた値</text>\n<text x=\"20\" y=\"1918\" font-size=\"10\" fill=\"#6b7280\">勉強会の実機表示（優先度 105 で 3.589 秒、優先度 100 で 3.609 秒）は、上の式の計算結果と一致した</text>\n<text x=\"20\" y=\"1934\" font-size=\"10\" fill=\"#6b7280\">勉強会の設定はバージョン 2 相当。仮想 MAC の形式・秒数の式・既定値・あて先はバージョン 2 の RFC 3768 でも同じだと確認した</text>\n<text x=\"20\" y=\"1950\" font-size=\"10\" fill=\"#6b7280\">https://www.rfc-editor.org/rfc/rfc3768.txt 「00-00-5E-00-01-{VRID}」「(3 * Advertisement_Interval) + Skew_time」「The default is 1 second」</text>\n<text x=\"20\" y=\"1966\" font-size=\"10\" fill=\"#6b7280\">「口が落ちるとそのグループは Init になる」の根拠: RFC 5798 6.4 の状態遷移。勉強会のログ（Master から Init に変わった記録）とも一致</text>\n<text x=\"20\" y=\"1982\" font-size=\"10\" fill=\"#6b7280\">原文:「If a Shutdown event is received, then: ... Transition to the {Initialize} state」「The purpose of this state is to wait for a Startup event」</text>\n<text x=\"20\" y=\"1998\" font-size=\"10\" fill=\"#6b7280\">HSRP・GLBP: Cisco の First Hop Redundancy Protocols 設定ガイドにある、VRRP と同じ目的の仕組み</text>\n<text x=\"20\" y=\"2014\" font-size=\"10\" fill=\"#6b7280\">https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/ipapp_fhrp/configuration/xe-16/fhp-xe-16-book/fhp-hsrp.html</text>\n<text x=\"20\" y=\"2030\" font-size=\"10\" fill=\"#6b7280\">「Cisco 独自」という語は上のページに見当たらなかったので、図では使っていない（VRRP が IETF の標準であることは RFC 5798 で確認済み）</text>\n<text x=\"20\" y=\"2046\" font-size=\"10\" fill=\"#6b7280\">未検証: 実際に通信が復旧するまでの時間（連続 ping が何発落ちるか）は、上の秒数だけでは決まらない。機器の実装と設定による</text>\n<text x=\"20\" y=\"2062\" font-size=\"10\" fill=\"#6b7280\">CCNA 200-301 の範囲は 3.5「Describe the purpose, functions, and concepts of first hop redundancy protocols」（設定は範囲外）</text>\n</svg>\n## 図 5・図 2 との接続","text":"<svg viewBox=\"0 0 900 2088\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"VRRP：デフォルトゲートウェイを 2 台で共有する\" style=\"max-width:100%;height:auto;font-family:sans-serif\">\n  <rect x=\"0\" y=\"0\" width=\"900\" height=\"2088\" fill=\"#fbfcfe\"/>\n  <text x=\"20\" y=\"30\" text-anchor=\"start\" font-size=\"14\" font-weight=\"700\" fill=\"#1f2937\">VRRP：PC に書ける出口は 1 つだけ。ルータ 2 台で「仮想の IP」と「仮想の MAC」を分け合う</text>\n  <text x=\"20\" y=\"50\" text-anchor=\"start\" font-size=\"11\" fill=\"#6b7280\">支店のルータをもう 1 台（ルータ 3）増やす。図 5 で PC-A の GW 欄に書いた 192.168.10.1 を、特定の 1 台の口ではなく 2 台で共有する番地にする</text>\n  <rect x=\"30\" y=\"170\" width=\"120\" height=\"86\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"90.0\" y=\"190\" text-anchor=\"middle\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">PC-A</text>\n  <text x=\"90.0\" y=\"208\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">192.168.10.10</text>\n  <text x=\"90.0\" y=\"223\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">GW 192.168.10.1</text>\n  <text x=\"90.0\" y=\"238\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">（手動・1 つだけ）</text>\n  <line x1=\"150\" y1=\"213\" x2=\"252\" y2=\"213\" stroke=\"#374151\" stroke-width=\"2\"/>\n  <line x1=\"156\" y1=\"186\" x2=\"238\" y2=\"186\" stroke=\"#0a7aff\" stroke-width=\"2\"/><polygon points=\"237,181 237,191 246,186\" fill=\"#0a7aff\"/>\n  <circle cx=\"174\" cy=\"186\" r=\"9\" fill=\"#0a7aff\"/><text x=\"174\" y=\"190\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#ffffff\">1</text>\n  <line x1=\"246\" y1=\"240\" x2=\"164\" y2=\"240\" stroke=\"#0a7aff\" stroke-width=\"2\"/><polygon points=\"165,235 165,245 156,240\" fill=\"#0a7aff\"/>\n  <circle cx=\"228\" cy=\"240\" r=\"9\" fill=\"#0a7aff\"/><text x=\"228\" y=\"244\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#ffffff\">2</text>\n  <rect x=\"252\" y=\"183\" width=\"110\" height=\"60\" rx=\"8\" fill=\"#f2f5f9\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"307.0\" y=\"203\" text-anchor=\"middle\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">スイッチ 1</text>\n  <text x=\"307.0\" y=\"221\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">ポート 1・ポート 2</text>\n  <line x1=\"362\" y1=\"203\" x2=\"398\" y2=\"176\" stroke=\"#374151\" stroke-width=\"2\"/>\n  <line x1=\"398\" y1=\"176\" x2=\"434\" y2=\"176\" stroke=\"#0a7aff\" stroke-width=\"2\"/><polygon points=\"433,171 433,181 442,176\" fill=\"#0a7aff\"/>\n  <circle cx=\"414\" cy=\"176\" r=\"9\" fill=\"#0a7aff\"/><text x=\"414\" y=\"180\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#ffffff\">3</text>\n  <line x1=\"362\" y1=\"223\" x2=\"398\" y2=\"284\" stroke=\"#9aa7b5\" stroke-width=\"2\"/>\n  <line x1=\"398\" y1=\"284\" x2=\"434\" y2=\"284\" stroke=\"#0a7aff\" stroke-width=\"2\" stroke-dasharray=\"5 4\"/><polygon points=\"433,279 433,289 442,284\" fill=\"#0a7aff\"/>\n  <circle cx=\"414\" cy=\"284\" r=\"9\" fill=\"#0a7aff\"/><text x=\"414\" y=\"288\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#ffffff\">5</text>\n  <text x=\"250\" y=\"320\" text-anchor=\"start\" font-size=\"9\" fill=\"#6b7280\">⑤⑥ の切替後はこちらへ移る</text>\n  <rect x=\"430\" y=\"95\" width=\"290\" height=\"232\" rx=\"10\" fill=\"none\" stroke=\"#0a7aff\" stroke-width=\"1.5\" stroke-dasharray=\"6 4\"/>\n  <text x=\"575\" y=\"114\" text-anchor=\"middle\" font-size=\"11\" font-weight=\"700\" fill=\"#0a7aff\">仮想ルータ（VRRP グループ 11）</text>\n  <text x=\"575\" y=\"130\" text-anchor=\"middle\" font-size=\"10\" fill=\"#0a7aff\">仮想 IP 192.168.10.1 ／ 仮想 MAC 0000.5e00.010b</text>\n  <rect x=\"445\" y=\"140\" width=\"260\" height=\"68\" rx=\"8\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1.5\"/>\n  <text x=\"575.0\" y=\"160\" text-anchor=\"middle\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">ルータ 1 ＝ Master</text>\n  <text x=\"575.0\" y=\"178\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">Gi0 192.168.10.11（実 IP・手動）</text>\n  <text x=\"575.0\" y=\"193\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">優先度 105（高い方が Master になる）</text>\n  <line x1=\"560\" y1=\"214\" x2=\"560\" y2=\"232\" stroke=\"#0a7aff\" stroke-width=\"2\" stroke-dasharray=\"4 3\"/><polygon points=\"555,231 565,231 560,240\" fill=\"#0a7aff\"/>\n  <circle cx=\"560\" cy=\"227\" r=\"9\" fill=\"#0a7aff\"/><text x=\"560\" y=\"231\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#ffffff\">4</text>\n  <text x=\"578\" y=\"231\" text-anchor=\"start\" font-size=\"9\" fill=\"#0a7aff\">広告（1 秒ごと）</text>\n  <rect x=\"445\" y=\"246\" width=\"260\" height=\"68\" rx=\"8\" fill=\"#f2f5f9\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"575.0\" y=\"266\" text-anchor=\"middle\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">ルータ 3 ＝ Backup</text>\n  <text x=\"575.0\" y=\"284\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">Gi0 192.168.10.12（実 IP・手動）</text>\n  <text x=\"575.0\" y=\"299\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">優先度 100 → 3.609 秒 待って引き継ぐ</text>\n  <line x1=\"705\" y1=\"174\" x2=\"740\" y2=\"206\" stroke=\"#374151\" stroke-width=\"2\"/>\n  <line x1=\"705\" y1=\"280\" x2=\"740\" y2=\"250\" stroke=\"#374151\" stroke-width=\"2\"/>\n  <rect x=\"740\" y=\"186\" width=\"140\" height=\"86\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"810.0\" y=\"206\" text-anchor=\"middle\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">データセンター側へ</text>\n  <text x=\"810.0\" y=\"224\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">主の線 172.16.12.0/30</text>\n  <text x=\"810.0\" y=\"239\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">予備の線 172.16.13.0/30</text>\n  <text x=\"810.0\" y=\"254\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">この先に ルータ 2</text>\n  <text x=\"20\" y=\"348\" text-anchor=\"start\" font-size=\"10\" fill=\"#6b7280\">図 5 では ルータ 1 の口そのものが 192.168.10.1 だった。VRRP ではその番地を仮想 IP に譲り、ルータ 1 の実 IP を .11 にする</text>\n  <text x=\"20\" y=\"364\" text-anchor=\"start\" font-size=\"10\" fill=\"#6b7280\">④ の広告は、実際にはスイッチを経由して Backup に届く（図では 2 台の間に描いている）</text>\n  <circle cx=\"30\" cy=\"382\" r=\"9\" fill=\"#0a7aff\"/><text x=\"30\" y=\"386\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#ffffff\">6</text>\n  <text x=\"44\" y=\"386\" text-anchor=\"start\" font-size=\"9\" fill=\"#6b7280\">切り替わった後にスイッチが書き換えるのは「仮想 MAC → どのポート」の 1 行だけ</text>\n  <rect x=\"20\" y=\"404\" width=\"430\" height=\"134\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"32\" y=\"424\" text-anchor=\"start\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">Master Down Interval（Master が居なくなったと判断するまでの秒数）</text>\n  <text x=\"32\" y=\"442\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">広告間隔 ＝ 既定 1 秒（Master が 1 秒ごとに広告を出す）</text>\n  <text x=\"32\" y=\"457\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">Skew Time ＝（256 − 優先度）× 広告間隔 ÷ 256</text>\n  <text x=\"32\" y=\"472\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">Master Down Interval ＝ 3 × 広告間隔 ＋ Skew Time</text>\n  <text x=\"32\" y=\"487\" text-anchor=\"start\" font-size=\"10\" fill=\"#0a7aff\">優先度 105 → 3 ＋ 151/256 ＝ 3.589 秒</text>\n  <text x=\"32\" y=\"502\" text-anchor=\"start\" font-size=\"10\" fill=\"#0a7aff\">優先度 100 → 3 ＋ 156/256 ＝ 3.609 秒</text>\n  <text x=\"32\" y=\"517\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">実際に待つのは Backup 側の値。この構成なら 3.609 秒</text>\n  <rect x=\"470\" y=\"404\" width=\"410\" height=\"134\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"482\" y=\"424\" text-anchor=\"start\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">仮想 MAC はどう決まるか</text>\n  <text x=\"482\" y=\"442\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">IPv4 では 00-00-5E-00-01-{グループ番号}（規格で決まっている）</text>\n  <text x=\"482\" y=\"457\" text-anchor=\"start\" font-size=\"10\" fill=\"#0a7aff\">グループ 11 → 16 進で 0b → 0000.5e00.010b</text>\n  <text x=\"482\" y=\"472\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">機器に焼かれた MAC ではなく、規格から作る番地（論理）</text>\n  <text x=\"482\" y=\"487\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">Master になった側が、この MAC で ARP に応え、この MAC で広告を出す</text>\n  <text x=\"482\" y=\"502\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">だから引き継いでも PC の ARP テーブルは書き換わらない</text>\n  <text x=\"482\" y=\"517\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">書き換わるのはスイッチの MAC アドレステーブルだけ</text>\n  <rect x=\"20\" y=\"554\" width=\"430\" height=\"164\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"32\" y=\"574\" text-anchor=\"start\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">track：見張っている口が落ちたら、自分の優先度を下げる</text>\n  <text x=\"32\" y=\"592\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">track ＝ 見張る対象。勉強会では LAN 側の口と WAN 側の口の 2 つ</text>\n  <text x=\"32\" y=\"607\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">落ちたら decrement の数だけ優先度を引く（勉強会では 20）</text>\n  <text x=\"32\" y=\"622\" text-anchor=\"start\" font-size=\"10\" fill=\"#0a7aff\">WAN 側が落ちた場合: 105 − 20 ＝ 85 ＜ 100 → ルータ 3 が Master へ</text>\n  <text x=\"32\" y=\"637\" text-anchor=\"start\" font-size=\"10\" fill=\"#b45309\">優先度を 125 にすると 125 − 20 ＝ 105 ＞ 100 のまま切り替わらない</text>\n  <text x=\"32\" y=\"652\" text-anchor=\"start\" font-size=\"10\" fill=\"#b45309\">「優先度を上げたのに切り替わらない」はこれ。引く量が足りない</text>\n  <text x=\"32\" y=\"667\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">track で下がったときは、下がった優先度の広告を Backup が受け取って</text>\n  <text x=\"32\" y=\"682\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">取り返す。3.609 秒（広告が途絶えたとき）を待つ話とは別</text>\n  <text x=\"32\" y=\"697\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">LAN 側の口が落ちた場合は別。そのグループは Init になり比較に入らない</text>\n  <rect x=\"470\" y=\"554\" width=\"410\" height=\"164\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"482\" y=\"574\" text-anchor=\"start\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">preempt：優先度が高い方が Master を取り返すか</text>\n  <text x=\"482\" y=\"592\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">既定は有効（規格の既定値が「取り返す」）</text>\n  <text x=\"482\" y=\"607\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">有効: 直った高優先度の機器が Master を取り返す</text>\n  <text x=\"482\" y=\"622\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">無効: 優先度が高くても、今の Master が止まるまで Backup のまま</text>\n  <text x=\"482\" y=\"637\" text-anchor=\"start\" font-size=\"10\" fill=\"#b45309\">「直したのに元に戻らない」ときは、ここを見る</text>\n  <text x=\"482\" y=\"652\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">VRRP は IETF の標準（RFC 5798）。HSRP・GLBP は Cisco の文書にある</text>\n  <text x=\"482\" y=\"667\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">同じ目的の仕組み。CCNA は「目的・機能・概念の説明」まで</text>\n  <text x=\"20\" y=\"744\" text-anchor=\"start\" font-size=\"12\" font-weight=\"700\" fill=\"#1f2937\">フロー</text>\n  <text x=\"20\" y=\"764\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">① PC-A は宛先が自分のネットワークの外なので、書いてあるデフォルトゲートウェイ 192.168.10.1 の MAC を ARP で聞く（全員あて）</text>\n  <text x=\"20\" y=\"782\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">② Master（ルータ 1）だけが応える。返す MAC は自分の物理ポートの MAC ではなく、仮想 MAC 0000.5e00.010b。Backup は応えない</text>\n  <text x=\"20\" y=\"800\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">③ PC-A は宛先 MAC ＝ 仮想 MAC でフレームを出す。スイッチは ② で学習した「仮想 MAC → ポート 1」の行を見て転送する（ここでは学習は起きない）</text>\n  <text x=\"20\" y=\"818\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">④ Master は 1 秒ごとに広告を出す（宛先 224.0.0.18・IP プロトコル番号 112、送信元 MAC は仮想 MAC）。Backup は聞いているだけ</text>\n  <text x=\"20\" y=\"836\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">⑤ 広告が Master Down Interval（優先度 100 なら 3.609 秒）届かないと、Backup が Master になる。仮想 IP と仮想 MAC をそのまま引き継ぐ</text>\n  <text x=\"20\" y=\"854\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">⑥ 新しい Master は仮想 MAC を送信元にした ARP（GARP）を出す。スイッチは「仮想 MAC → ポート 2」に書き換える。PC-A の設定も ARP テーブルも変わらない</text>\n  <text x=\"20\" y=\"886\" text-anchor=\"start\" font-size=\"12\" font-weight=\"700\" fill=\"#1f2937\">増えたもの</text>\n  <text x=\"20\" y=\"906\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">仮想 IP（論理。2 台で共有する、PC の GW 欄に書くための番地）と仮想 MAC（論理。グループ番号から規格どおりに作る番地）</text>\n  <text x=\"20\" y=\"934\" text-anchor=\"start\" font-size=\"12\" font-weight=\"700\" fill=\"#1f2937\">3 層で見ると</text>\n  <text x=\"20\" y=\"954\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">もの：仮想 IP・仮想 MAC（どちらも論理。機器 1 台に属さない）／実 IP（各ルータの口に付く、機器ごとの番地）／優先度（論理・手動）</text>\n  <text x=\"20\" y=\"972\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">結びつき：仮想 IP ⇄ どの機器が応えるか（自動。優先度と広告で決まる）。PC の GW 欄 ⇄ 仮想 IP（手動。一度書いたら切替後も変えない）</text>\n  <text x=\"20\" y=\"990\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">フロー：図 5 の ①「A はデフォルトゲートウェイへ送る」の宛先が、特定の 1 台ではなく仮想の番地になる。②以降のルータの動きは図 5 のまま</text>\n<line x1=\"20\" y1=\"1026\" x2=\"880\" y2=\"1026\" stroke=\"#d6dde5\" stroke-width=\"1\"/>\n<text x=\"20\" y=\"1048\" font-size=\"12\" font-weight=\"700\" fill=\"#1f2937\">各テーブル・各状態の推移（○番のフローで変わる行。青字）</text>\n<text x=\"20\" y=\"1060\" font-size=\"10\" fill=\"#6b7280\">前提: ルータ 1 も ルータ 3 も データセンターまでの経路を持っている（VRRP は経路の話ではなく「PC から見た出口を誰が名乗るか」の話）</text>\n  <rect x=\"20\" y=\"1074\" width=\"280\" height=\"75\" rx=\"6\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"30\" y=\"1090\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">PC-A: 設定（手動）</text>\n  <text x=\"30\" y=\"1106\" font-size=\"10\" fill=\"#374151\">IP 192.168.10.10 / GW 192.168.10.1</text>\n  <text x=\"30\" y=\"1121\" font-size=\"10\" fill=\"#374151\">出口として書ける番地は 1 つだけ</text>\n  <text x=\"30\" y=\"1136\" font-size=\"10\" fill=\"#0a7aff\">⑤ の切替があっても、ここは変えない</text>\n  <rect x=\"310\" y=\"1074\" width=\"280\" height=\"60\" rx=\"6\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"320\" y=\"1090\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">PC-A: ARP テーブル</text>\n  <text x=\"320\" y=\"1106\" font-size=\"10\" fill=\"#0a7aff\">② 追加: 192.168.10.1 → 0000.5e00.010b</text>\n  <text x=\"320\" y=\"1121\" font-size=\"10\" fill=\"#0a7aff\">⑥ の後も同じ行のまま（変わらない）</text>\n  <rect x=\"600\" y=\"1074\" width=\"280\" height=\"90\" rx=\"6\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"610\" y=\"1090\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">スイッチ 1: MAC アドレステーブル</text>\n  <text x=\"610\" y=\"1106\" font-size=\"10\" fill=\"#0a7aff\">② 追加: 0000.5e00.010b → ポート 1</text>\n  <text x=\"610\" y=\"1121\" font-size=\"10\" fill=\"#374151\">（Master の ARP 応答の送信元 MAC で学習）</text>\n  <text x=\"610\" y=\"1136\" font-size=\"10\" fill=\"#0a7aff\">③ この行を見てルータ 1 へ出す（学習ではなく転送）</text>\n  <text x=\"610\" y=\"1151\" font-size=\"10\" fill=\"#0a7aff\">⑥ 変更: 0000.5e00.010b → ポート 2（GARP で）</text>\n  <rect x=\"20\" y=\"1174\" width=\"280\" height=\"90\" rx=\"6\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"30\" y=\"1190\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ルータ 1 の VRRP（グループ 11）</text>\n  <text x=\"30\" y=\"1206\" font-size=\"10\" fill=\"#374151\">State Master ／ 優先度 105</text>\n  <text x=\"30\" y=\"1221\" font-size=\"10\" fill=\"#374151\">仮想 IP 192.168.10.1</text>\n  <text x=\"30\" y=\"1236\" font-size=\"10\" fill=\"#374151\">WAN 側が落ちると 105−20＝85 → Backup へ</text>\n  <text x=\"30\" y=\"1251\" font-size=\"10\" fill=\"#374151\">LAN 側が落ちるとこのグループは Init へ</text>\n  <rect x=\"310\" y=\"1174\" width=\"280\" height=\"75\" rx=\"6\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"320\" y=\"1190\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ルータ 3 の VRRP（グループ 11）</text>\n  <text x=\"320\" y=\"1206\" font-size=\"10\" fill=\"#374151\">State Backup ／ 優先度 100</text>\n  <text x=\"320\" y=\"1221\" font-size=\"10\" fill=\"#374151\">Master Down 3.609 秒（この間は待つ）</text>\n  <text x=\"320\" y=\"1236\" font-size=\"10\" fill=\"#0a7aff\">⑤ の後: Master</text>\n  <rect x=\"600\" y=\"1174\" width=\"280\" height=\"75\" rx=\"6\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"610\" y=\"1190\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ルータ 1・3 のルーティングテーブル</text>\n  <text x=\"610\" y=\"1206\" font-size=\"10\" fill=\"#374151\">2 台ともデータセンター向けの行を持つ（手動）</text>\n  <text x=\"610\" y=\"1221\" font-size=\"10\" fill=\"#374151\">VRRP が決めるのは「誰が出口を名乗るか」だけ</text>\n  <text x=\"610\" y=\"1236\" font-size=\"10\" fill=\"#374151\">テーブルの中身は VRRP では変わらない</text>\n<text x=\"20\" y=\"1314\" font-size=\"12\" font-weight=\"700\" fill=\"#1f2937\">通信の中身の推移（フローごとのフレーム／パケット）</text>\n  <text x=\"20\" y=\"1342\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">① PC-A → 全員：ARP 要求（GW の MAC を聞く）</text>\n  <rect x=\"20\" y=\"1348\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"79.0\" y=\"1362\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先 MAC</text>\n  <text x=\"79.0\" y=\"1377\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ff:ff:ff:ff:ff:ff（全員）</text>\n  <rect x=\"138\" y=\"1348\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"197.0\" y=\"1362\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元 MAC</text>\n  <text x=\"197.0\" y=\"1377\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">MAC A</text>\n  <rect x=\"256\" y=\"1348\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"315.0\" y=\"1362\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">知りたい IP</text>\n  <text x=\"315.0\" y=\"1377\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.10.1</text>\n  <rect x=\"374\" y=\"1348\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"433.0\" y=\"1362\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">自分の IP</text>\n  <text x=\"433.0\" y=\"1377\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.10.10</text>\n  <rect x=\"492\" y=\"1348\" width=\"70\" height=\"36\" fill=\"#ffffff\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"527.0\" y=\"1362\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">データ</text>\n  <text x=\"527.0\" y=\"1377\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ARP 要求</text>\n<text x=\"20\" y=\"1394\" font-size=\"10\" fill=\"#6b7280\">ARP は IP パケットではない（Ethernet の種類の欄が IP とは別の値）。中身が IP を扱うので同じ並びで描いている。ルータは ARP を中継しない</text>\n  <text x=\"20\" y=\"1412\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">② ルータ 1（Master）→ PC-A：ARP 応答。送信元 MAC が仮想 MAC</text>\n  <rect x=\"20\" y=\"1418\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"79.0\" y=\"1432\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先 MAC</text>\n  <text x=\"79.0\" y=\"1447\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">MAC A</text>\n  <rect x=\"138\" y=\"1418\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"197.0\" y=\"1432\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元 MAC</text>\n  <text x=\"197.0\" y=\"1447\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">0000.5e00.010b</text>\n  <rect x=\"256\" y=\"1418\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"315.0\" y=\"1432\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">相手の IP</text>\n  <text x=\"315.0\" y=\"1447\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.10.10</text>\n  <rect x=\"374\" y=\"1418\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"433.0\" y=\"1432\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">自分の IP</text>\n  <text x=\"433.0\" y=\"1447\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.10.1</text>\n  <rect x=\"492\" y=\"1418\" width=\"70\" height=\"36\" fill=\"#ffffff\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"527.0\" y=\"1432\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">データ</text>\n  <text x=\"527.0\" y=\"1447\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ARP 応答</text>\n<text x=\"20\" y=\"1464\" font-size=\"10\" fill=\"#6b7280\">Backup（ルータ 3）は同じ要求を受け取っても応えない。だから PC-A は Master の居場所しか知らない</text>\n  <text x=\"20\" y=\"1504\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">③ PC-A → ルータ 1：本番（宛先 MAC は仮想 MAC）</text>\n  <rect x=\"20\" y=\"1510\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"79.0\" y=\"1524\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先 MAC</text>\n  <text x=\"79.0\" y=\"1539\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">0000.5e00.010b</text>\n  <rect x=\"138\" y=\"1510\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"197.0\" y=\"1524\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元 MAC</text>\n  <text x=\"197.0\" y=\"1539\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">MAC A</text>\n  <rect x=\"256\" y=\"1510\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"315.0\" y=\"1524\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先 IP</text>\n  <text x=\"315.0\" y=\"1539\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.3.10</text>\n  <rect x=\"374\" y=\"1510\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"433.0\" y=\"1524\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元 IP</text>\n  <text x=\"433.0\" y=\"1539\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.10.10</text>\n  <rect x=\"492\" y=\"1510\" width=\"70\" height=\"36\" fill=\"#ffffff\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"527.0\" y=\"1524\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">データ</text>\n  <text x=\"527.0\" y=\"1539\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ping</text>\n  <line x1=\"20\" y1=\"1554\" x2=\"562\" y2=\"1554\" stroke=\"#374151\" stroke-width=\"1.5\"/><line x1=\"20\" y1=\"1550\" x2=\"20\" y2=\"1554\" stroke=\"#374151\" stroke-width=\"1.5\"/><line x1=\"562\" y1=\"1550\" x2=\"562\" y2=\"1554\" stroke=\"#374151\" stroke-width=\"1.5\"/>\n  <text x=\"291.0\" y=\"1567\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">フレーム＝全部。ただしスイッチが見るのは MAC とタグの部分だけ</text>\n  <line x1=\"256\" y1=\"1496\" x2=\"562\" y2=\"1496\" stroke=\"#0a7aff\" stroke-width=\"1.5\"/><line x1=\"256\" y1=\"1496\" x2=\"256\" y2=\"1500\" stroke=\"#0a7aff\" stroke-width=\"1.5\"/><line x1=\"562\" y1=\"1496\" x2=\"562\" y2=\"1500\" stroke=\"#0a7aff\" stroke-width=\"1.5\"/>\n  <text x=\"409.0\" y=\"1492\" text-anchor=\"middle\" font-size=\"10\" fill=\"#0a7aff\">パケット＝この部分。ルータはここ（IP）を見る</text>\n  <text x=\"20\" y=\"1600\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">④ Master の広告（1 秒ごと。データとは別に流れる）</text>\n  <rect x=\"20\" y=\"1606\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"79.0\" y=\"1620\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先 MAC</text>\n  <text x=\"79.0\" y=\"1635\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">0100.5e00.0012</text>\n  <rect x=\"138\" y=\"1606\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"197.0\" y=\"1620\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元 MAC</text>\n  <text x=\"197.0\" y=\"1635\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">0000.5e00.010b</text>\n  <rect x=\"256\" y=\"1606\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"315.0\" y=\"1620\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先 IP</text>\n  <text x=\"315.0\" y=\"1635\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">224.0.0.18</text>\n  <rect x=\"374\" y=\"1606\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"433.0\" y=\"1620\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元 IP</text>\n  <text x=\"433.0\" y=\"1635\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.10.11</text>\n  <rect x=\"492\" y=\"1606\" width=\"70\" height=\"36\" fill=\"#ffffff\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"527.0\" y=\"1620\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">データ</text>\n  <text x=\"527.0\" y=\"1635\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">VRRP</text>\n  <text x=\"20\" y=\"1660\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">⑤⑥ 切替後 ルータ 3 → 全員：仮想 MAC を送信元にした ARP（GARP）</text>\n  <rect x=\"20\" y=\"1666\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"79.0\" y=\"1680\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先 MAC</text>\n  <text x=\"79.0\" y=\"1695\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ff:ff:ff:ff:ff:ff（全員）</text>\n  <rect x=\"138\" y=\"1666\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"197.0\" y=\"1680\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元 MAC</text>\n  <text x=\"197.0\" y=\"1695\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">0000.5e00.010b</text>\n  <rect x=\"256\" y=\"1666\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"315.0\" y=\"1680\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">知りたい IP</text>\n  <text x=\"315.0\" y=\"1695\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.10.1</text>\n  <rect x=\"374\" y=\"1666\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"433.0\" y=\"1680\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">自分の IP</text>\n  <text x=\"433.0\" y=\"1695\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.10.1</text>\n  <rect x=\"492\" y=\"1666\" width=\"70\" height=\"36\" fill=\"#ffffff\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"527.0\" y=\"1680\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">データ</text>\n  <text x=\"527.0\" y=\"1695\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ARP 要求</text>\n<text x=\"20\" y=\"1712\" font-size=\"10\" fill=\"#6b7280\">自分の IP を自分で聞く形の ARP 要求。スイッチはこれが入ってきた瞬間に「仮想 MAC → ポート 2」へ書き換える</text>\n  <text x=\"20\" y=\"1730\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">⑥ の後 PC-A → ルータ 3：本番。③ と中身は 1 つも変わらない</text>\n  <rect x=\"20\" y=\"1736\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"79.0\" y=\"1750\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先 MAC</text>\n  <text x=\"79.0\" y=\"1765\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">0000.5e00.010b</text>\n  <rect x=\"138\" y=\"1736\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"197.0\" y=\"1750\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元 MAC</text>\n  <text x=\"197.0\" y=\"1765\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">MAC A</text>\n  <rect x=\"256\" y=\"1736\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"315.0\" y=\"1750\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先 IP</text>\n  <text x=\"315.0\" y=\"1765\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.3.10</text>\n  <rect x=\"374\" y=\"1736\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"433.0\" y=\"1750\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元 IP</text>\n  <text x=\"433.0\" y=\"1765\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.10.10</text>\n  <rect x=\"492\" y=\"1736\" width=\"70\" height=\"36\" fill=\"#ffffff\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"527.0\" y=\"1750\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">データ</text>\n  <text x=\"527.0\" y=\"1765\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ping</text>\n<text x=\"20\" y=\"1790\" font-size=\"10\" fill=\"#6b7280\">出典: VRRP バージョン 3（RFC 5798）— https://www.rfc-editor.org/rfc/rfc5798.txt</text>\n<text x=\"20\" y=\"1806\" font-size=\"10\" fill=\"#6b7280\">原文:「IPv4 case: 00-00-5E-00-01-{VRID}」＝仮想 MAC はグループ番号から作る</text>\n<text x=\"20\" y=\"1822\" font-size=\"10\" fill=\"#6b7280\">原文:「Skew_Time:(((256 - priority) * Master_Adver_Interval) / 256)」「Master_Down_Interval:(3 * Master_Adver_Interval) + Skew_time」</text>\n<text x=\"20\" y=\"1838\" font-size=\"10\" fill=\"#6b7280\">原文:「The default is 100 centiseconds (1 second)」＝広告間隔の既定／「The default priority value ... is 100」／予備機の優先度は 1〜254</text>\n<text x=\"20\" y=\"1854\" font-size=\"10\" fill=\"#6b7280\">原文:「Preemption ... Default is True」＝取り返すのが既定／Backup は「MUST NOT respond to ARP requests」＝応えない</text>\n<text x=\"20\" y=\"1870\" font-size=\"10\" fill=\"#6b7280\">原文:「VRRP packets are transmitted with the virtual router MAC address as the source MAC address」＝広告の送信元も仮想 MAC</text>\n<text x=\"20\" y=\"1886\" font-size=\"10\" fill=\"#6b7280\">原文: 広告のあて先は「224.0.0.18」、IP プロトコル番号は「112」。Master になるときに GARP を出す</text>\n<text x=\"20\" y=\"1902\" font-size=\"10\" fill=\"#6b7280\">宛先 MAC 0100.5e00.0012 は、この 224.0.0.18 から IPv4 マルチキャストの MAC 対応付け（RFC 1112 6.4「low-order 23-bits」）で導いた値</text>\n<text x=\"20\" y=\"1918\" font-size=\"10\" fill=\"#6b7280\">勉強会の実機表示（優先度 105 で 3.589 秒、優先度 100 で 3.609 秒）は、上の式の計算結果と一致した</text>\n<text x=\"20\" y=\"1934\" font-size=\"10\" fill=\"#6b7280\">勉強会の設定はバージョン 2 相当。仮想 MAC の形式・秒数の式・既定値・あて先はバージョン 2 の RFC 3768 でも同じだと確認した</text>\n<text x=\"20\" y=\"1950\" font-size=\"10\" fill=\"#6b7280\">https://www.rfc-editor.org/rfc/rfc3768.txt 「00-00-5E-00-01-{VRID}」「(3 * Advertisement_Interval) + Skew_time」「The default is 1 second」</text>\n<text x=\"20\" y=\"1966\" font-size=\"10\" fill=\"#6b7280\">「口が落ちるとそのグループは Init になる」の根拠: RFC 5798 6.4 の状態遷移。勉強会のログ（Master から Init に変わった記録）とも一致</text>\n<text x=\"20\" y=\"1982\" font-size=\"10\" fill=\"#6b7280\">原文:「If a Shutdown event is received, then: ... Transition to the {Initialize} state」「The purpose of this state is to wait for a Startup event」</text>\n<text x=\"20\" y=\"1998\" font-size=\"10\" fill=\"#6b7280\">HSRP・GLBP: Cisco の First Hop Redundancy Protocols 設定ガイドにある、VRRP と同じ目的の仕組み</text>\n<text x=\"20\" y=\"2014\" font-size=\"10\" fill=\"#6b7280\">https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/ipapp_fhrp/configuration/xe-16/fhp-xe-16-book/fhp-hsrp.html</text>\n<text x=\"20\" y=\"2030\" font-size=\"10\" fill=\"#6b7280\">「Cisco 独自」という語は上のページに見当たらなかったので、図では使っていない（VRRP が IETF の標準であることは RFC 5798 で確認済み）</text>\n<text x=\"20\" y=\"2046\" font-size=\"10\" fill=\"#6b7280\">未検証: 実際に通信が復旧するまでの時間（連続 ping が何発落ちるか）は、上の秒数だけでは決まらない。機器の実装と設定による</text>\n<text x=\"20\" y=\"2062\" font-size=\"10\" fill=\"#6b7280\">CCNA 200-301 の範囲は 3.5「Describe the purpose, functions, and concepts of first hop redundancy protocols」（設定は範囲外）</text>\n</svg>\n## 図 5・図 2 との接続","line":60,"sources":["src_1","src_2","src_4"],"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_406d79","type":"paragraph","markdown":"図 5 の ①「A はデフォルトゲートウェイへ送る」の宛先が、特定の 1 台の口ではなく仮想の番地になります。② 以降のルータの動きは図 5 のままです。","text":"図 5 の ①「A はデフォルトゲートウェイへ送る」の宛先が、特定の 1 台の口ではなく仮想の番地になります。② 以降のルータの動きは図 5 のままです。","line":315,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_51900c","type":"paragraph","markdown":"図 2 の ARP（要求は全員あて、応答は 1 対 1）もそのまま効きます。違うのは、応える機器が 2 台のうち 1 台に決まっていることと、返す MAC が自分の口の MAC ではないことです。","text":"図 2 の ARP（要求は全員あて、応答は 1 対 1）もそのまま効きます。違うのは、応える機器が 2 台のうち 1 台に決まっていることと、返す MAC が自分の口の MAC ではないことです。","line":317,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_6977b4","type":"paragraph","markdown":"次の図 17 からは「入口の管理」の塊に入り、PC が IP を受け取るところから見ます。","text":"次の図 17 からは「入口の管理」の塊に入り、PC が IP を受け取るところから見ます。","line":319,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_703626","type":"heading","depth":2,"markdown":"## 未検証・注意","text":"未検証・注意","line":321,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_bc277f","type":"list","markdown":"- Master Down Interval は「Master が居なくなったと判断するまでの秒数」で、通信が復旧するまでの秒数ではありません。連続 ping が何発落ちるかは実装と設定にもよります（未検証）。\n- track で優先度が下がったときの切替は、広告が途絶えるのを待つ経路とは別です。下がった優先度を載せた広告を Backup が受け取って取り返します。\n- WAN 側の口が落ちた場合と、LAN 側の口そのものが落ちた場合は別です。後者ではそのグループが Init になり、優先度の比較に入りません。この Init は RFC 5798 6.4 の状態遷移と勉強会のログの一致から書いています。Cisco の実装でインターフェースの down が規格の Shutdown イベントに当たるかは確認していません（未検証）。\n- HSRP と GLBP は、Cisco の文書にある同じ目的の仕組みです。上の設定ガイドに proprietary の語が見当たらなかったので、Cisco 独自とは書いていません。\n- 勉強会では LAN 側と WAN 側で別々のグループを持たせていました。この記事は 1 グループに絞り、仮想 IP を実際に持っている機器（優先度 255）の構成も扱っていません。\n- この図のルータ 3 は、支店に増やした 2 台目のゲートウェイです。図 13 で迂回路として出てくるルータ 3 とは別の機器で、名前が同じなだけです。\n- 勉強会の設定はバージョン 2 相当です。仮想 MAC の形式・式・既定値・あて先は RFC 3768 でも同じでした。","text":"Master Down Interval は「Master が居なくなったと判断するまでの秒数」で、通信が復旧するまでの秒数ではありません。連続 ping が何発落ちるかは実装と設定にもよります（未検証）。track で優先度が下がったときの切替は、広告が途絶えるのを待つ経路とは別です。下がった優先度を載せた広告を Backup が受け取って取り返します。WAN 側の口が落ちた場合と、LAN 側の口そのものが落ちた場合は別です。後者ではそのグループが Init になり、優先度の比較に入りません。この Init は RFC 5798 6.4 の状態遷移と勉強会のログの一致から書いています。Cisco の実装でインターフェースの down が規格の Shutdown イベントに当たるかは確認していません（未検証）。HSRP と GLBP は、Cisco の文書にある同じ目的の仕組みです。上の設定ガイドに proprietary の語が見当たらなかったので、Cisco 独自とは書いていません。勉強会では LAN 側と WAN 側で別々のグループを持たせていました。この記事は 1 グループに絞り、仮想 IP を実際に持っている機器（優先度 255）の構成も扱っていません。この図のルータ 3 は、支店に増やした 2 台目のゲートウェイです。図 13 で迂回路として出てくるルータ 3 とは別の機器で、名前が同じなだけです。勉強会の設定はバージョン 2 相当です。仮想 MAC の形式・式・既定値・あて先は RFC 3768 でも同じでした。","line":323,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_240080","type":"heading","depth":2,"markdown":"## 出典","text":"出典","line":331,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_dcbf8f","type":"list","markdown":"- 勉強会での本人の観察（2026-09-13 実機ハンズオン。資料は非公開）\n- [RFC 5798: Virtual Router Redundancy Protocol (VRRP) Version 3](https://www.rfc-editor.org/rfc/rfc5798.txt) — IPv4 case: 00-00-5E-00-01-{VRID}／Skew\\_Time:(((256 - priority) \\* Master\\_Adver\\_Interval) / 256)／Master\\_Down\\_Interval:(3 \\* Master\\_Adver\\_Interval) + Skew\\_time／広告間隔の既定は 100 centiseconds (1 second)／優先度の既定は 100／あて先 224.0.0.18・IP プロトコル番号 112／Backup は MUST NOT respond to ARP requests／preempt の既定は True\n- [RFC 3768: Virtual Router Redundancy Protocol (VRRP)](https://www.rfc-editor.org/rfc/rfc3768.txt) — バージョン 2。仮想 MAC の形式、(3 \\* Advertisement\\_Interval) + Skew\\_time、広告間隔の既定 1 秒\n- [RFC 1112: Host Extensions for IP Multicasting](https://www.rfc-editor.org/rfc/rfc1112.txt) — 6.4 An IP host group address is mapped to an Ethernet multicast address by placing the low-order 23-bits of the IP address into the low-order 23 bits of the Ethernet multicast address 01-00-5E-00-00-00 (hex)\n- [Cisco: First Hop Redundancy Protocols Configuration Guide — Configuring HSRP](https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/ipapp_fhrp/configuration/xe-16/fhp-xe-16-book/fhp-hsrp.html) — HSRP は virtual MAC address and an IP address that is shared among a group of devices を提供する","text":"勉強会での本人の観察（2026-09-13 実機ハンズオン。資料は非公開）RFC 5798: Virtual Router Redundancy Protocol (VRRP) Version 3 — IPv4 case: 00-00-5E-00-01-{VRID}／Skew_Time:(((256 - priority) * Master_Adver_Interval) / 256)／Master_Down_Interval:(3 * Master_Adver_Interval) + Skew_time／広告間隔の既定は 100 centiseconds (1 second)／優先度の既定は 100／あて先 224.0.0.18・IP プロトコル番号 112／Backup は MUST NOT respond to ARP requests／preempt の既定は TrueRFC 3768: Virtual Router Redundancy Protocol (VRRP) — バージョン 2。仮想 MAC の形式、(3 * Advertisement_Interval) + Skew_time、広告間隔の既定 1 秒RFC 1112: Host Extensions for IP Multicasting — 6.4 An IP host group address is mapped to an Ethernet multicast address by placing the low-order 23-bits of the IP address into the low-order 23 bits of the Ethernet multicast address 01-00-5E-00-00-00 (hex)Cisco: First Hop Redundancy Protocols Configuration Guide — Configuring HSRP — HSRP は virtual MAC address and an IP address that is shared among a group of devices を提供する","line":333,"sources":["src_1","src_2","src_3","src_4"],"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_1f7c1f","type":"heading","depth":2,"markdown":"## 関連","text":"関連","line":339,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_d82a5a","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- この記事が書き換える図: [ネットワーク\\_05\\_行きと帰り](/notes/nw-basics-05-static-route)（`/notes/nw-basics-05-static-route`）\n\n- ARP の土台: [ネットワーク\\_02\\_同じネットワークの中](/notes/nw-basics-02-same-network)（`/notes/nw-basics-02-same-network`）\n\n- 前の記事（図 15）: [ネットワーク\\_15\\_EtherChannel](/notes/nw-basics-15-etherchannel)（`/notes/nw-basics-15-etherchannel`）\n\n- 次の記事（図 17）: [ネットワーク\\_17\\_DHCPとその守り](/notes/nw-basics-17-dhcp)（`/notes/nw-basics-17-dhcp`）","text":"ネットワーク_INDEX — 連載の目次連載の入口: ネットワーク_00_3層で言葉を置く（/notes/nw-basics-00-three-layers）この記事が書き換える図: ネットワーク_05_行きと帰り（/notes/nw-basics-05-static-route）ARP の土台: ネットワーク_02_同じネットワークの中（/notes/nw-basics-02-same-network）前の記事（図 15）: ネットワーク_15_EtherChannel（/notes/nw-basics-15-etherchannel）次の記事（図 17）: ネットワーク_17_DHCPとその守り（/notes/nw-basics-17-dhcp）","line":341,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}}]}