{"articleId":"art_bb2dff7994","slug":"nw-basics-09-acl","title":"落ちた通信は、経路表を探すところまで行かない","version":1,"area":"tech","topic":"ネットワーク","tags":["ネットワーク","acl","セキュリティ","concept"],"date":"2026-09-14","updated":"2026-09-14","records":[{"id":"rev_09247dd7a4","at":"2026-09-14","actor":{"kind":"ai","id":"claude-fable-5","label":"AI (claude-fable-5)"},"version":1,"kind":"ai-check","scope":{},"text":"出典 7 件を再取得した。上から順に照らして最初に一致した行で決まること・最後に暗黙の拒否があること・1 つの口の 1 つの向きに付けられる ACL は 1 つであることをインフラエキスパートの ACL のページで確認した。ワイルドカードマスクの 0 が照合する・1 が照合しないであることを同サイトのページで確認した。標準 ACL の 1〜99 と 1300〜1999・送信元 IP だけを見ること、拡張 ACL の 100〜199 と 2000〜2699・照合できる項目・established が Ack または RST ビットの立った TCP を対象にしインバウンドの TCP だけに効くことも同サイトで確認した。show access-lists に一致した回数（matches）が出ることを確認した。入口の ACL が経路探しより先に来ることを Cisco のページの表で確認した。ウェブの既定のポート番号 80 は RFC 9110 4.2.1 で確認した。図が引用している「標準は宛先の近く・拡張は送信元の近く」という置き場所の定石は、再取得した標準 ACL・拡張 ACL・名前付き ACL のページの本文からは見つけられなかったため、本文では定石として紹介したうえで未検証に明記した。ICMP のメッセージ種別を条件に書く書式は確認していないので未検証に残した。校正チェックリストを通し、例え話・体言止め・断定を示す禁止語の混入を機械検査した。守秘: 実名・社名・会場名・地名・金額なし","status":"open","source":"frontmatter"},{"id":"rev_c0c1b9b602","at":"2026-09-14","actor":{"kind":"ai","id":"claude-fable-5","label":"AI (claude-fable-5)"},"version":1,"kind":"edit","scope":{},"text":"公開前の校閲。frontmatter のタグ ACL を小文字の acl に直した（運用指示書の英語タグの規約と公開済み記事の表記に合わせた）。本文は、Gi8.10 と Gi8.20 が公開済みの図 6 の呼び方と一致すること、拡張 ACL の番号の範囲と暗黙の拒否、③ の不一致の理由が「TCP ではない」であることを図の担当メモと突き合わせて確認し、修正はしていない。","status":"open","source":"frontmatter"}],"blocks":[{"id":"blk_7e50ad","type":"paragraph","markdown":"図 3 では、VLAN を分けると届かなくなること、間にルータを置けば制御できることを書きました。","text":"図 3 では、VLAN を分けると届かなくなること、間にルータを置けば制御できることを書きました。","line":2,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_0e7345","type":"paragraph","markdown":"その「制御」の中身には触れていませんでした。\n図 9 は、その実体を扱います。\n図 7 で挙げた 3 つの問題を解く道具ではなく、図 3 で保留にしたものを取りに戻る 1 枚です。\nここで出てくる行の並びは、図 11 の IPsec で「どの通信を守るか」の選別にもう一度出てきます。","text":"その「制御」の中身には触れていませんでした。\n図 9 は、その実体を扱います。\n図 7 で挙げた 3 つの問題を解く道具ではなく、図 3 で保留にしたものを取りに戻る 1 枚です。\nここで出てくる行の並びは、図 11 の IPsec で「どの通信を守るか」の選別にもう一度出てきます。","line":4,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_bb713c","type":"paragraph","markdown":"この連載は、ネットワークの言葉を 3 つの層に置いて読みます。\nもの（物理か論理か）、結びつき（人が設定で付ける手動か、機器が学習する自動か、製造時に決まる固定か）、通信フロー（1 本の通信がそれらを順に通る道筋）の 3 つです。","text":"この連載は、ネットワークの言葉を 3 つの層に置いて読みます。\nもの（物理か論理か）、結びつき（人が設定で付ける手動か、機器が学習する自動か、製造時に決まる固定か）、通信フロー（1 本の通信がそれらを順に通る道筋）の 3 つです。","line":9,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_34ba84","type":"heading","depth":2,"markdown":"## 登場するもの","text":"登場するもの","line":12,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_c4cc27","type":"heading","depth":4,"markdown":"#### ACL（アクセスコントロールリスト）","text":"ACL（アクセスコントロールリスト）","line":14,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_da44fb","type":"paragraph","markdown":"論理のもので、人が書きます。\n「通す（permit）」「通さない（deny）」の行の並びです。\n上から順に照らし、最初に一致した行で決まります。\n以降の行は見ません。\n書いていなくても最後に「全部拒否」の行が必ずあります。","text":"論理のもので、人が書きます。\n「通す（permit）」「通さない（deny）」の行の並びです。\n上から順に照らし、最初に一致した行で決まります。\n以降の行は見ません。\n書いていなくても最後に「全部拒否」の行が必ずあります。","line":16,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_eb968f","type":"heading","depth":4,"markdown":"#### 標準 ACL と拡張 ACL","text":"標準 ACL と拡張 ACL","line":22,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_6a010a","type":"paragraph","markdown":"標準 ACL は番号 1〜99（と 1300〜1999）で、送信元 IP だけを見ます。\n拡張 ACL は番号 100〜199（と 2000〜2699）で、名前でも書けます（標準 ACL も同じです）。\n見るのは送信元 IP・宛先 IP・プロトコル・送信元ポート番号・宛先ポート番号です。\nこの図で使っているのは名前付きの拡張 ACL です。","text":"標準 ACL は番号 1〜99（と 1300〜1999）で、送信元 IP だけを見ます。\n拡張 ACL は番号 100〜199（と 2000〜2699）で、名前でも書けます（標準 ACL も同じです）。\n見るのは送信元 IP・宛先 IP・プロトコル・送信元ポート番号・宛先ポート番号です。\nこの図で使っているのは名前付きの拡張 ACL です。","line":24,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_d0f5cc","type":"heading","depth":4,"markdown":"#### ワイルドカードマスク","text":"ワイルドカードマスク","line":29,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_b746bc","type":"paragraph","markdown":"行に書く 0.0.0.255 のような値です。\n0 の桁は照合し、1 の桁は照合しません。\n0.0.0.255 なら「最後の 1 桁は何でもよい」、つまり 192.168.20.0/24 のどれでも、という意味になります。","text":"行に書く 0.0.0.255 のような値です。\n0 の桁は照合し、1 の桁は照合しません。\n0.0.0.255 なら「最後の 1 桁は何でもよい」、つまり 192.168.20.0/24 のどれでも、という意味になります。","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_d1f55a","type":"list","markdown":"- インターフェースと向き ⇄ ACL は手動です。どの口の in（入ってくる通信）か out（出ていく通信）かを人が決めます。1 つの口の 1 つの向きに付けられる ACL は 1 つだけです。\n- 図 1 から図 7 までのテーブルと違い、通信では行が増えません。増えるのは各行に一致した回数だけで、`show access-lists` で読めます。破棄した通信もこの数に残るので、どの行で落ちたかを後から追えます。","text":"インターフェースと向き ⇄ ACL は手動です。どの口の in（入ってくる通信）か out（出ていく通信）かを人が決めます。1 つの口の 1 つの向きに付けられる ACL は 1 つだけです。図 1 から図 7 までのテーブルと違い、通信では行が増えません。増えるのは各行に一致した回数だけで、show access-lists で読めます。破棄した通信もこの数に残るので、どの行で落ちたかを後から追えます。","line":37,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_df21fc","type":"heading","depth":2,"markdown":"## 通信フロー","text":"通信フロー","line":40,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_88149e","type":"paragraph","markdown":"図 6 と同じ構成です。\nルータ 1 の Gi8.20 の in に、次の 2 行の ACL を付けてあります。\n1 行目は「送信元が 192.168.20.0/24、宛先が 192.168.10.0/24、プロトコルが TCP、宛先ポート番号が 80」のときだけ拒否します。\n2 行目はそれ以外を全部許可します。","text":"図 6 と同じ構成です。\nルータ 1 の Gi8.20 の in に、次の 2 行の ACL を付けてあります。\n1 行目は「送信元が 192.168.20.0/24、宛先が 192.168.10.0/24、プロトコルが TCP、宛先ポート番号が 80」のときだけ拒否します。\n2 行目はそれ以外を全部許可します。","line":42,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_0845ac","type":"paragraph","markdown":"① PC-D（192.168.20.30）から PC-A（192.168.10.10）へのウェブ。Gi8.20 から入るので判定されます。1 行目に一致して破棄されます。ルーティングテーブルを見る前に落ちます。","text":"① PC-D（192.168.20.30）から PC-A（192.168.10.10）へのウェブ。Gi8.20 から入るので判定されます。1 行目に一致して破棄されます。ルーティングテーブルを見る前に落ちます。","line":47,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_0f3b2e","type":"paragraph","markdown":"② PC-A から PC-D への ping。Gi8.10 から入ります。この口に ACL は付いていないので判定は無く、そのまま届きます。","text":"② PC-A から PC-D への ping。Gi8.10 から入ります。この口に ACL は付いていないので判定は無く、そのまま届きます。","line":49,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_04c6d3","type":"paragraph","markdown":"③ ② の返事（D から A）。Gi8.20 から入るので判定されます。不一致の理由は「TCP ではない」ことです。ポート番号の有無は理由ではありません。1 行目はまずプロトコルを見て、ping は ICMP なのでここで外れ、2 行目の permit で通ります。","text":"③ ② の返事（D から A）。Gi8.20 から入るので判定されます。不一致の理由は「TCP ではない」ことです。ポート番号の有無は理由ではありません。1 行目はまずプロトコルを見て、ping は ICMP なのでここで外れ、2 行目の permit で通ります。","line":51,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_6d762a","type":"paragraph","markdown":"④ PC-D からデータセンターの PC-C へのウェブ。1 行目は宛先が 192.168.10.0/24 のときだけの条件なので一致せず、2 行目の permit で通ります。","text":"④ PC-D からデータセンターの PC-C へのウェブ。1 行目は宛先が 192.168.10.0/24 のときだけの条件なので一致せず、2 行目の permit で通ります。","line":53,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_054710","type":"paragraph","markdown":"2 行目を書かなければ、③ も ④ も最後の暗黙の拒否に落ちます。\n拒否したい行だけを書くと、残り全部が止まります。","text":"2 行目を書かなければ、③ も ④ も最後の暗黙の拒否に落ちます。\n拒否したい行だけを書くと、残り全部が止まります。","line":55,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_d678b1","type":"heading","depth":2,"markdown":"## 図 9","text":"図 9","line":58,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_93febe","type":"paragraph","markdown":"図の上半分が構成図と ACL の中身、下半分が各テーブルの推移と通信の中身の推移です。","text":"図の上半分が構成図と ACL の中身、下半分が各テーブルの推移と通信の中身の推移です。","line":60,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_df0125","type":"html","markdown":"<svg viewBox=\"0 0 900 1836\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"ACL：口に付けた行の並びで通す・通さないを決める\" style=\"max-width:100%;height:auto;font-family:sans-serif\">\n  <rect x=\"0\" y=\"0\" width=\"900\" height=\"1836\" fill=\"#fbfcfe\"/>\n  <text x=\"20\" y=\"30\" text-anchor=\"start\" font-size=\"14\" font-weight=\"700\" fill=\"#1f2937\">ACL：ルータの口に「通す・通さない」の行の並びを付けて、上から順に照らす</text>\n  <text x=\"20\" y=\"50\" text-anchor=\"start\" font-size=\"11\" fill=\"#6b7280\">図 3 で言った「間にルータを置いて制御する」の実体。図 6 と同じ構成で、VLAN 20 から VLAN 10 へのウェブだけを止める</text>\n  <rect x=\"20\" y=\"99\" width=\"96\" height=\"60\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"68.0\" y=\"119\" text-anchor=\"middle\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">PC-A</text>\n  <text x=\"68.0\" y=\"137\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">VLAN 10</text>\n  <text x=\"68.0\" y=\"152\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">192.168.10.10</text>\n  <rect x=\"20\" y=\"169\" width=\"96\" height=\"60\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"68.0\" y=\"189\" text-anchor=\"middle\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">PC-D</text>\n  <text x=\"68.0\" y=\"207\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">VLAN 20</text>\n  <text x=\"68.0\" y=\"222\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">192.168.20.30</text>\n  <line x1=\"116\" y1=\"129\" x2=\"151\" y2=\"129\" stroke=\"#374151\" stroke-width=\"2\"/>\n  <line x1=\"116\" y1=\"199\" x2=\"151\" y2=\"199\" stroke=\"#374151\" stroke-width=\"2\"/>\n  <rect x=\"160\" y=\"100\" width=\"140\" height=\"130\" rx=\"8\" fill=\"#f2f5f9\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"230.0\" y=\"120\" text-anchor=\"middle\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">スイッチ 1</text>\n  <text x=\"230.0\" y=\"138\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">ポート 1: VLAN 10</text>\n  <text x=\"230.0\" y=\"153\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">ポート 2: VLAN 20</text>\n  <text x=\"230.0\" y=\"168\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">ポート T: トランク</text>\n  <rect x=\"151\" y=\"120\" width=\"18\" height=\"18\" fill=\"#ffffff\" stroke=\"#6b7280\" stroke-width=\"1.5\"/><text x=\"160\" y=\"133\" text-anchor=\"middle\" font-size=\"8\" fill=\"#1f2937\">1</text>\n  <rect x=\"151\" y=\"190\" width=\"18\" height=\"18\" fill=\"#ffffff\" stroke=\"#6b7280\" stroke-width=\"1.5\"/><text x=\"160\" y=\"203\" text-anchor=\"middle\" font-size=\"8\" fill=\"#1f2937\">2</text>\n  <rect x=\"291\" y=\"156\" width=\"18\" height=\"18\" fill=\"#ffffff\" stroke=\"#6b7280\" stroke-width=\"1.5\"/><text x=\"300\" y=\"169\" text-anchor=\"middle\" font-size=\"8\" fill=\"#1f2937\">T</text>\n  <line x1=\"309\" y1=\"165\" x2=\"381\" y2=\"165\" stroke=\"#374151\" stroke-width=\"2.5\"/>\n  <text x=\"345\" y=\"152\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">トランク</text>\n  <text x=\"345\" y=\"222\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">タグ 10 / 20</text>\n  <rect x=\"390\" y=\"100\" width=\"210\" height=\"130\" rx=\"8\" fill=\"#f2f5f9\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"495.0\" y=\"120\" text-anchor=\"middle\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">ルータ 1</text>\n  <text x=\"495.0\" y=\"138\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">Gi8.10（タグ 10）192.168.10.1</text>\n  <text x=\"495.0\" y=\"153\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">Gi8.20（タグ 20）192.168.20.1</text>\n  <text x=\"495.0\" y=\"168\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">Gi1 172.16.12.1（ルータ 2 へ）</text>\n  <text x=\"495.0\" y=\"183\" text-anchor=\"middle\" font-size=\"10\" fill=\"#b45309\">Gi8.20 の in に ACL を適用</text>\n  <text x=\"495.0\" y=\"198\" text-anchor=\"middle\" font-size=\"10\" fill=\"#b45309\">（下の箱がその中身）</text>\n  <rect x=\"381\" y=\"156\" width=\"18\" height=\"18\" fill=\"#ffffff\" stroke=\"#6b7280\" stroke-width=\"1.5\"/><text x=\"390\" y=\"169\" text-anchor=\"middle\" font-size=\"8\" fill=\"#1f2937\">Gi8</text>\n  <rect x=\"591\" y=\"156\" width=\"18\" height=\"18\" fill=\"#ffffff\" stroke=\"#6b7280\" stroke-width=\"1.5\"/><text x=\"600\" y=\"169\" text-anchor=\"middle\" font-size=\"8\" fill=\"#1f2937\">Gi1</text>\n  <line x1=\"609\" y1=\"165\" x2=\"622\" y2=\"165\" stroke=\"#374151\" stroke-width=\"2\"/>\n  <rect x=\"622\" y=\"140\" width=\"92\" height=\"50\" rx=\"8\" fill=\"#f2f5f9\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"668.0\" y=\"160\" text-anchor=\"middle\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">ルータ 2</text>\n  <text x=\"668.0\" y=\"178\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">172.16.12.2</text>\n  <line x1=\"714\" y1=\"165\" x2=\"730\" y2=\"165\" stroke=\"#374151\" stroke-width=\"2\"/>\n  <rect x=\"730\" y=\"135\" width=\"150\" height=\"60\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"805.0\" y=\"155\" text-anchor=\"middle\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">PC-C</text>\n  <text x=\"805.0\" y=\"173\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">192.168.3.10</text>\n  <text x=\"805.0\" y=\"188\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">（データセンター）</text>\n  <line x1=\"308\" y1=\"128\" x2=\"372\" y2=\"128\" stroke=\"#0a7aff\" stroke-width=\"2\"/><polygon points=\"371,123 371,133 380,128\" fill=\"#0a7aff\"/>\n  <circle cx=\"344\" cy=\"128\" r=\"9\" fill=\"#0a7aff\"/><text x=\"344\" y=\"132\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#ffffff\">2</text>\n  <line x1=\"308\" y1=\"200\" x2=\"372\" y2=\"200\" stroke=\"#b45309\" stroke-width=\"2\"/><polygon points=\"371,195 371,205 380,200\" fill=\"#b45309\"/>\n  <circle cx=\"322\" cy=\"182\" r=\"9\" fill=\"#b45309\"/><text x=\"322\" y=\"186\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#ffffff\">1</text>\n  <circle cx=\"344\" cy=\"182\" r=\"9\" fill=\"#b45309\"/><text x=\"344\" y=\"186\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#ffffff\">3</text>\n  <circle cx=\"366\" cy=\"182\" r=\"9\" fill=\"#b45309\"/><text x=\"366\" y=\"186\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#ffffff\">4</text>\n  <text x=\"120\" y=\"249\" text-anchor=\"start\" font-size=\"10\" fill=\"#0a7aff\">① ③ ④ は VLAN 20 から入るので判定される　／　② は VLAN 10 から入るので、この ACL では判定されない</text>\n  <rect x=\"20\" y=\"268\" width=\"560\" height=\"160\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"32\" y=\"288\" text-anchor=\"start\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">ルータ 1 の ACL（名前付きの拡張 ACL・acl-vlan20）</text>\n  <text x=\"32\" y=\"306\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">10  deny　 tcp  192.168.20.0 0.0.0.255  192.168.10.0 0.0.0.255  eq 80</text>\n  <text x=\"32\" y=\"321\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">20  permit ip   any  any</text>\n  <text x=\"32\" y=\"336\" text-anchor=\"start\" font-size=\"10\" fill=\"#b45309\">（書いていないが必ずある最後の行）deny ip any any ＝ 暗黙の拒否</text>\n  <text x=\"32\" y=\"351\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\"></text>\n  <text x=\"32\" y=\"366\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">・上から順に照らし、最初に一致した行で決まる。以降の行は見ない</text>\n  <text x=\"32\" y=\"381\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">・0.0.0.255 は「この桁は照合しない」の印。192.168.20.0/24 のどれでも、の意味</text>\n  <text x=\"32\" y=\"396\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">・1 行目は「プロトコルが TCP」かつ「宛先ポート番号が 80（ウェブ）」のときだけの条件</text>\n  <rect x=\"600\" y=\"268\" width=\"280\" height=\"160\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"612\" y=\"288\" text-anchor=\"start\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">どこに・どちら向きに付けたか</text>\n  <text x=\"612\" y=\"306\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">interface Gi8.20</text>\n  <text x=\"612\" y=\"321\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">　ip access-group acl-vlan20 in</text>\n  <text x=\"612\" y=\"336\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\"></text>\n  <text x=\"612\" y=\"351\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">・in ＝ その口から入ってくる通信を見る</text>\n  <text x=\"612\" y=\"366\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">・out ＝ その口から出ていく通信を見る</text>\n  <text x=\"612\" y=\"381\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">・1 つの口の 1 つの向きに付けられる</text>\n  <text x=\"612\" y=\"396\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">　ACL は 1 つだけ</text>\n  <text x=\"612\" y=\"411\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">・付ける先を決めるのは人（手動）</text>\n  <rect x=\"20\" y=\"442\" width=\"420\" height=\"100\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"32\" y=\"462\" text-anchor=\"start\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">標準 ACL</text>\n  <text x=\"32\" y=\"480\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">番号 1〜99（1300〜1999）</text>\n  <text x=\"32\" y=\"495\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">見るのは送信元 IP だけ</text>\n  <text x=\"32\" y=\"510\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">宛先で絞れないので、宛先の近くに置くのが定石</text>\n  <text x=\"32\" y=\"525\" text-anchor=\"start\" font-size=\"10\" fill=\"#b45309\">（置き場所の定石は二次資料のみ。下の注を見る）</text>\n  <rect x=\"460\" y=\"442\" width=\"420\" height=\"100\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"472\" y=\"462\" text-anchor=\"start\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">拡張 ACL（この図で使っている方）</text>\n  <text x=\"472\" y=\"480\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">番号 100〜199（2000〜2699）。名前でも書ける</text>\n  <text x=\"472\" y=\"495\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">送信元 IP・宛先 IP・プロトコル・送信元ポート番号・宛先ポート番号</text>\n  <text x=\"472\" y=\"510\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">早く落とせるので、送信元の近くに置くのが定石</text>\n  <text x=\"472\" y=\"525\" text-anchor=\"start\" font-size=\"10\" fill=\"#b45309\">（すべての設計でそうすべきかは確認していない）</text>\n  <text x=\"20\" y=\"572\" text-anchor=\"start\" font-size=\"12\" font-weight=\"700\" fill=\"#1f2937\">フロー</text>\n  <text x=\"20\" y=\"592\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">① PC-D → PC-A のウェブ（宛先ポート番号 80）：Gi8.20 から入るので判定される。1 行目に一致 → 破棄。ルーティングテーブルを見る前に落ちる</text>\n  <text x=\"20\" y=\"610\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">② PC-A → PC-D の ping：Gi8.10 から入る。この口に ACL は付いていないので判定は無く、そのままルーティングされて D に届く</text>\n  <text x=\"20\" y=\"628\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">③ ② の返事（D → A）：Gi8.20 から入るので判定される。1 行目は「プロトコルが TCP」の条件。ping は ICMP なので一致せず、2 行目の permit で通る</text>\n  <text x=\"20\" y=\"646\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">④ PC-D → PC-C（データセンター）のウェブ：1 行目は宛先が 192.168.10.0/24 でないので一致せず、2 行目の permit で通る</text>\n  <text x=\"20\" y=\"672\" text-anchor=\"start\" font-size=\"11\" font-weight=\"700\" fill=\"#b45309\">もし 2 行目（permit ip any any）を書かなかったら：③ も ④ も最後の暗黙の拒否に一致して落ちる。拒否したい行だけ書くと、残り全部が止まる</text>\n  <text x=\"20\" y=\"702\" text-anchor=\"start\" font-size=\"12\" font-weight=\"700\" fill=\"#1f2937\">3 層で見ると</text>\n  <text x=\"20\" y=\"722\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">もの：ACL（論理・手動。通す／通さない の行の並び）。標準は送信元 IP だけ、拡張は送信元・宛先・プロトコル・ポート番号まで見る</text>\n  <text x=\"20\" y=\"740\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">結びつき：インターフェースと向き ⇄ ACL（手動。どの口の in か out かを人が決める）。図 1〜7 のテーブルと違い、行は通信では増えない</text>\n  <text x=\"20\" y=\"758\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">フロー：図 6 の ③「宛先 IP をテーブルで探して出口を決める」の前に、入口で 1 回の判定が入る。落ちた通信はテーブルを探すところまで行かない</text>\n  <text x=\"20\" y=\"784\" text-anchor=\"start\" font-size=\"10\" fill=\"#6b7280\">ACL は 1 本ずつ別々に照らすだけで、行きと返事を結び付けない。「192.168.20.0/24 → 192.168.10.0/24 を全部拒否」と書くと、② の返事（③）も同じ行に落ちる</text>\n  <text x=\"20\" y=\"800\" text-anchor=\"start\" font-size=\"10\" fill=\"#6b7280\">その場合、A から D への ping も往復が成立せず失敗する。この図が「eq 80」でサービスを絞っているのは、そうならないようにするため</text>\n<line x1=\"20\" y1=\"824\" x2=\"880\" y2=\"824\" stroke=\"#d6dde5\" stroke-width=\"1\"/>\n<text x=\"20\" y=\"846\" font-size=\"12\" font-weight=\"700\" fill=\"#1f2937\">各テーブルの推移（ACL だけは通信で育たない。ここが図 1〜7 のテーブルと違う）</text>\n<text x=\"20\" y=\"858\" font-size=\"10\" fill=\"#6b7280\">前提: 図 6 と同じ Router on a Stick。ルータ 1 の Gi8.20 の in に ACL を付けた（他の口・他の向きには付けていない）</text>\n  <rect x=\"20\" y=\"872\" width=\"280\" height=\"105\" rx=\"6\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"30\" y=\"888\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ルータ 1: ACL（Gi8.20 の in）</text>\n  <text x=\"30\" y=\"904\" font-size=\"10\" fill=\"#374151\">10 deny tcp 192.168.20.0/24 →</text>\n  <text x=\"30\" y=\"919\" font-size=\"10\" fill=\"#374151\">　 192.168.10.0/24 の 80 番</text>\n  <text x=\"30\" y=\"934\" font-size=\"10\" fill=\"#374151\">20 permit ip any any</text>\n  <text x=\"30\" y=\"949\" font-size=\"10\" fill=\"#374151\">（暗黙）deny ip any any</text>\n  <text x=\"30\" y=\"964\" font-size=\"10\" fill=\"#374151\">通信では行は増えない</text>\n  <rect x=\"310\" y=\"872\" width=\"280\" height=\"90\" rx=\"6\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"320\" y=\"888\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ルータ 1: ルーティングテーブル</text>\n  <text x=\"320\" y=\"904\" font-size=\"10\" fill=\"#374151\">192.168.10.0/24 → Gi8.10（自動）</text>\n  <text x=\"320\" y=\"919\" font-size=\"10\" fill=\"#374151\">192.168.20.0/24 → Gi8.20（自動）</text>\n  <text x=\"320\" y=\"934\" font-size=\"10\" fill=\"#374151\">192.168.3.0/24 → 172.16.12.2（手動）</text>\n  <text x=\"320\" y=\"949\" font-size=\"10\" fill=\"#0a7aff\">① はここまで来ない</text>\n  <rect x=\"600\" y=\"872\" width=\"280\" height=\"75\" rx=\"6\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"610\" y=\"888\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ルータ 1: ARP テーブル</text>\n  <text x=\"610\" y=\"904\" font-size=\"10\" fill=\"#0a7aff\">② 追加: 192.168.20.30 → MAC D</text>\n  <text x=\"610\" y=\"919\" font-size=\"10\" fill=\"#374151\">（D へ出すために引いた）</text>\n  <text x=\"610\" y=\"934\" font-size=\"10\" fill=\"#0a7aff\">① は落ちるので、何も残らない</text>\n  <rect x=\"20\" y=\"987\" width=\"280\" height=\"105\" rx=\"6\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"30\" y=\"1003\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">一致した回数（show access-lists）</text>\n  <text x=\"30\" y=\"1019\" font-size=\"10\" fill=\"#374151\">10 行目: ① で 1 増える</text>\n  <text x=\"30\" y=\"1034\" font-size=\"10\" fill=\"#374151\">20 行目: ③ ④ で増える</text>\n  <text x=\"30\" y=\"1049\" font-size=\"10\" fill=\"#374151\">破棄した通信も数に残るので、</text>\n  <text x=\"30\" y=\"1064\" font-size=\"10\" fill=\"#374151\">「どの行で落ちたか」を後から追える</text>\n  <text x=\"30\" y=\"1079\" font-size=\"10\" fill=\"#374151\">増えるのはこの数だけ</text>\n<text x=\"20\" y=\"1132\" font-size=\"12\" font-weight=\"700\" fill=\"#1f2937\">通信の中身の推移（フローごとのフレーム／パケット）</text>\n  <text x=\"20\" y=\"1182\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">① PC-D → ルータ 1（Gi8.20 の in）</text>\n  <rect x=\"20\" y=\"1188\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"79.0\" y=\"1202\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先 MAC</text>\n  <text x=\"79.0\" y=\"1217\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">MAC R1-Gi8</text>\n  <rect x=\"138\" y=\"1188\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"197.0\" y=\"1202\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元 MAC</text>\n  <text x=\"197.0\" y=\"1217\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">MAC D</text>\n  <rect x=\"256\" y=\"1188\" width=\"84\" height=\"36\" fill=\"#fff1dc\" stroke=\"#d97706\" stroke-width=\"1\"/>\n  <text x=\"298.0\" y=\"1202\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">タグ（VLAN 番号）</text>\n  <text x=\"298.0\" y=\"1217\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">20</text>\n  <rect x=\"340\" y=\"1188\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"399.0\" y=\"1202\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先 IP</text>\n  <text x=\"399.0\" y=\"1217\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.10.10</text>\n  <rect x=\"458\" y=\"1188\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"517.0\" y=\"1202\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元 IP</text>\n  <text x=\"517.0\" y=\"1217\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.20.30</text>\n  <rect x=\"576\" y=\"1188\" width=\"104\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"628.0\" y=\"1202\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元ポート番号</text>\n  <text x=\"628.0\" y=\"1217\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">50000</text>\n  <rect x=\"680\" y=\"1188\" width=\"104\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"732.0\" y=\"1202\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先ポート番号</text>\n  <text x=\"732.0\" y=\"1217\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">80</text>\n  <rect x=\"784\" y=\"1188\" width=\"70\" height=\"36\" fill=\"#ffffff\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"819.0\" y=\"1202\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">データ</text>\n  <text x=\"819.0\" y=\"1217\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ウェブ</text>\n  <line x1=\"20\" y1=\"1232\" x2=\"854\" y2=\"1232\" stroke=\"#374151\" stroke-width=\"1.5\"/><line x1=\"20\" y1=\"1228\" x2=\"20\" y2=\"1232\" stroke=\"#374151\" stroke-width=\"1.5\"/><line x1=\"854\" y1=\"1228\" x2=\"854\" y2=\"1232\" stroke=\"#374151\" stroke-width=\"1.5\"/>\n  <text x=\"437.0\" y=\"1245\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">フレーム＝全部。ただしスイッチが見るのは MAC とタグの部分だけ</text>\n  <line x1=\"340\" y1=\"1174\" x2=\"854\" y2=\"1174\" stroke=\"#0a7aff\" stroke-width=\"1.5\"/><line x1=\"340\" y1=\"1174\" x2=\"340\" y2=\"1178\" stroke=\"#0a7aff\" stroke-width=\"1.5\"/><line x1=\"854\" y1=\"1174\" x2=\"854\" y2=\"1178\" stroke=\"#0a7aff\" stroke-width=\"1.5\"/>\n  <text x=\"597.0\" y=\"1170\" text-anchor=\"middle\" font-size=\"10\" fill=\"#0a7aff\">パケット＝この部分。ルータはここ（IP）を見る</text>\n  <text x=\"20\" y=\"1278\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">① の判定</text>\n  <text x=\"20\" y=\"1298\" font-size=\"10\" fill=\"#6b7280\">1 行目（deny tcp 192.168.20.0/24 → 192.168.10.0/24 eq 80）に一致 → 破棄。この後の行もルーティングテーブルも見ない</text>\n  <text x=\"20\" y=\"1322\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">② PC-A → ルータ 1（Gi8.10 の in）</text>\n  <rect x=\"20\" y=\"1328\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"79.0\" y=\"1342\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先 MAC</text>\n  <text x=\"79.0\" y=\"1357\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">MAC R1-Gi8</text>\n  <rect x=\"138\" y=\"1328\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"197.0\" y=\"1342\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元 MAC</text>\n  <text x=\"197.0\" y=\"1357\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">MAC A</text>\n  <rect x=\"256\" y=\"1328\" width=\"84\" height=\"36\" fill=\"#fff1dc\" stroke=\"#d97706\" stroke-width=\"1\"/>\n  <text x=\"298.0\" y=\"1342\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">タグ（VLAN 番号）</text>\n  <text x=\"298.0\" y=\"1357\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">10</text>\n  <rect x=\"340\" y=\"1328\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"399.0\" y=\"1342\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先 IP</text>\n  <text x=\"399.0\" y=\"1357\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.20.30</text>\n  <rect x=\"458\" y=\"1328\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"517.0\" y=\"1342\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元 IP</text>\n  <text x=\"517.0\" y=\"1357\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.10.10</text>\n  <rect x=\"576\" y=\"1328\" width=\"104\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"628.0\" y=\"1342\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元ポート番号</text>\n  <text x=\"628.0\" y=\"1357\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ICMP には無い</text>\n  <rect x=\"680\" y=\"1328\" width=\"104\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"732.0\" y=\"1342\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先ポート番号</text>\n  <text x=\"732.0\" y=\"1357\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ICMP には無い</text>\n  <rect x=\"784\" y=\"1328\" width=\"70\" height=\"36\" fill=\"#ffffff\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"819.0\" y=\"1342\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">データ</text>\n  <text x=\"819.0\" y=\"1357\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ping</text>\n  <text x=\"20\" y=\"1382\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">② の判定</text>\n  <text x=\"20\" y=\"1402\" font-size=\"10\" fill=\"#6b7280\">Gi8.10 の in に ACL は付いていない → 判定なし。そのままルーティングテーブルへ。ping は ICMP なので、TCP/UDP のポート番号の欄そのものが無い</text>\n  <text x=\"20\" y=\"1426\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">③ ② の返事 PC-D → ルータ 1（Gi8.20 の in）</text>\n  <rect x=\"20\" y=\"1432\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"79.0\" y=\"1446\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先 MAC</text>\n  <text x=\"79.0\" y=\"1461\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">MAC R1-Gi8</text>\n  <rect x=\"138\" y=\"1432\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"197.0\" y=\"1446\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元 MAC</text>\n  <text x=\"197.0\" y=\"1461\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">MAC D</text>\n  <rect x=\"256\" y=\"1432\" width=\"84\" height=\"36\" fill=\"#fff1dc\" stroke=\"#d97706\" stroke-width=\"1\"/>\n  <text x=\"298.0\" y=\"1446\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">タグ（VLAN 番号）</text>\n  <text x=\"298.0\" y=\"1461\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">20</text>\n  <rect x=\"340\" y=\"1432\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"399.0\" y=\"1446\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先 IP</text>\n  <text x=\"399.0\" y=\"1461\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.10.10</text>\n  <rect x=\"458\" y=\"1432\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"517.0\" y=\"1446\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元 IP</text>\n  <text x=\"517.0\" y=\"1461\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.20.30</text>\n  <rect x=\"576\" y=\"1432\" width=\"104\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"628.0\" y=\"1446\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元ポート番号</text>\n  <text x=\"628.0\" y=\"1461\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ICMP には無い</text>\n  <rect x=\"680\" y=\"1432\" width=\"104\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"732.0\" y=\"1446\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先ポート番号</text>\n  <text x=\"732.0\" y=\"1461\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ICMP には無い</text>\n  <rect x=\"784\" y=\"1432\" width=\"70\" height=\"36\" fill=\"#ffffff\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"819.0\" y=\"1446\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">データ</text>\n  <text x=\"819.0\" y=\"1461\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ping 応答</text>\n  <text x=\"20\" y=\"1486\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">③ の判定</text>\n  <text x=\"20\" y=\"1506\" font-size=\"10\" fill=\"#6b7280\">不一致の理由は「TCP ではない」。ポート番号の有無は理由ではない。1 行目はまずプロトコルを見て、ping は ICMP なのでここで外れる → 2 行目の permit で通る</text>\n  <text x=\"20\" y=\"1530\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">④ PC-D → PC-C のウェブ（Gi8.20 の in）</text>\n  <rect x=\"20\" y=\"1536\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"79.0\" y=\"1550\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先 MAC</text>\n  <text x=\"79.0\" y=\"1565\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">MAC R1-Gi8</text>\n  <rect x=\"138\" y=\"1536\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"197.0\" y=\"1550\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元 MAC</text>\n  <text x=\"197.0\" y=\"1565\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">MAC D</text>\n  <rect x=\"256\" y=\"1536\" width=\"84\" height=\"36\" fill=\"#fff1dc\" stroke=\"#d97706\" stroke-width=\"1\"/>\n  <text x=\"298.0\" y=\"1550\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">タグ（VLAN 番号）</text>\n  <text x=\"298.0\" y=\"1565\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">20</text>\n  <rect x=\"340\" y=\"1536\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"399.0\" y=\"1550\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先 IP</text>\n  <text x=\"399.0\" y=\"1565\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.3.10</text>\n  <rect x=\"458\" y=\"1536\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"517.0\" y=\"1550\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元 IP</text>\n  <text x=\"517.0\" y=\"1565\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.20.30</text>\n  <rect x=\"576\" y=\"1536\" width=\"104\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"628.0\" y=\"1550\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元ポート番号</text>\n  <text x=\"628.0\" y=\"1565\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">50001</text>\n  <rect x=\"680\" y=\"1536\" width=\"104\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"732.0\" y=\"1550\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先ポート番号</text>\n  <text x=\"732.0\" y=\"1565\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">80</text>\n  <rect x=\"784\" y=\"1536\" width=\"70\" height=\"36\" fill=\"#ffffff\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"819.0\" y=\"1550\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">データ</text>\n  <text x=\"819.0\" y=\"1565\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ウェブ</text>\n  <text x=\"20\" y=\"1590\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">④ の判定</text>\n  <text x=\"20\" y=\"1610\" font-size=\"10\" fill=\"#6b7280\">1 行目は宛先が 192.168.10.0/24 のときだけの条件。宛先が違うので一致しない → 2 行目の permit で通る</text>\n<text x=\"20\" y=\"1634\" font-size=\"10\" fill=\"#6b7280\">戻りだけを通す書き方に established がある（Ack または RST ビットの立った TCP が対象・インバウンドの TCP だけ）。ping には効かない</text>\n<text x=\"20\" y=\"1650\" font-size=\"10\" fill=\"#6b7280\">IPsec（図 11）では、同じ書き方の ACL を「通す・通さない」ではなく「どの通信を守るか」の選別の印として使う。判定の仕組みは同じ</text>\n<text x=\"20\" y=\"1666\" font-size=\"10\" fill=\"#6b7280\">「標準は宛先の近く・拡張は送信元の近く」は二次資料が挙げる定石。すべての設計でそうすべきかは確認していない</text>\n<text x=\"20\" y=\"1682\" font-size=\"10\" fill=\"#6b7280\">未検証: ICMP のメッセージ種別（echo など）を条件に書くときの書式は確認していない。この図では使っていない</text>\n<text x=\"20\" y=\"1698\" font-size=\"10\" fill=\"#6b7280\">出典（上から順・最初に一致した行で決まる・暗黙の deny・1 つの向きに 1 つ）: https://www.infraexpert.com/study/aclz2.html</text>\n<text x=\"20\" y=\"1714\" font-size=\"10\" fill=\"#6b7280\">出典（ワイルドカードマスクの 0 は照合する・1 は照合しない）: https://www.infraexpert.com/study/aclz3.html</text>\n<text x=\"20\" y=\"1730\" font-size=\"10\" fill=\"#6b7280\">出典（標準 ACL は 1〜99・送信元 IP だけ・宛先の近くに置く）: https://www.infraexpert.com/study/aclz4.html</text>\n<text x=\"20\" y=\"1746\" font-size=\"10\" fill=\"#6b7280\">出典（拡張 ACL は 100〜199・照合項目・送信元の近くに置く・established）: https://www.infraexpert.com/study/aclz5.html</text>\n<text x=\"20\" y=\"1762\" font-size=\"10\" fill=\"#6b7280\">出典（show access-lists に一致した回数 matches が出る）: https://www.infraexpert.com/study/aclz7.html</text>\n<text x=\"20\" y=\"1778\" font-size=\"10\" fill=\"#6b7280\">出典（入口の ACL は経路探しより先。内側 → 外側は 入口 ACL → 経路探し → NAT → 出口 ACL）: Cisco Understand the NAT Order of Operation</text>\n<text x=\"20\" y=\"1794\" font-size=\"10\" fill=\"#6b7280\">　https://www.cisco.com/c/en/us/support/docs/ip/network-address-translation-nat/6209-5.html</text>\n<text x=\"20\" y=\"1810\" font-size=\"10\" fill=\"#6b7280\">出典（ウェブの既定のポート番号が 80）: RFC 9110 4.2.1 https://www.rfc-editor.org/rfc/rfc9110.html</text>\n</svg>\n## 図 6・図 11 との接続","text":"<svg viewBox=\"0 0 900 1836\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"ACL：口に付けた行の並びで通す・通さないを決める\" style=\"max-width:100%;height:auto;font-family:sans-serif\">\n  <rect x=\"0\" y=\"0\" width=\"900\" height=\"1836\" fill=\"#fbfcfe\"/>\n  <text x=\"20\" y=\"30\" text-anchor=\"start\" font-size=\"14\" font-weight=\"700\" fill=\"#1f2937\">ACL：ルータの口に「通す・通さない」の行の並びを付けて、上から順に照らす</text>\n  <text x=\"20\" y=\"50\" text-anchor=\"start\" font-size=\"11\" fill=\"#6b7280\">図 3 で言った「間にルータを置いて制御する」の実体。図 6 と同じ構成で、VLAN 20 から VLAN 10 へのウェブだけを止める</text>\n  <rect x=\"20\" y=\"99\" width=\"96\" height=\"60\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"68.0\" y=\"119\" text-anchor=\"middle\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">PC-A</text>\n  <text x=\"68.0\" y=\"137\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">VLAN 10</text>\n  <text x=\"68.0\" y=\"152\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">192.168.10.10</text>\n  <rect x=\"20\" y=\"169\" width=\"96\" height=\"60\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"68.0\" y=\"189\" text-anchor=\"middle\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">PC-D</text>\n  <text x=\"68.0\" y=\"207\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">VLAN 20</text>\n  <text x=\"68.0\" y=\"222\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">192.168.20.30</text>\n  <line x1=\"116\" y1=\"129\" x2=\"151\" y2=\"129\" stroke=\"#374151\" stroke-width=\"2\"/>\n  <line x1=\"116\" y1=\"199\" x2=\"151\" y2=\"199\" stroke=\"#374151\" stroke-width=\"2\"/>\n  <rect x=\"160\" y=\"100\" width=\"140\" height=\"130\" rx=\"8\" fill=\"#f2f5f9\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"230.0\" y=\"120\" text-anchor=\"middle\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">スイッチ 1</text>\n  <text x=\"230.0\" y=\"138\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">ポート 1: VLAN 10</text>\n  <text x=\"230.0\" y=\"153\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">ポート 2: VLAN 20</text>\n  <text x=\"230.0\" y=\"168\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">ポート T: トランク</text>\n  <rect x=\"151\" y=\"120\" width=\"18\" height=\"18\" fill=\"#ffffff\" stroke=\"#6b7280\" stroke-width=\"1.5\"/><text x=\"160\" y=\"133\" text-anchor=\"middle\" font-size=\"8\" fill=\"#1f2937\">1</text>\n  <rect x=\"151\" y=\"190\" width=\"18\" height=\"18\" fill=\"#ffffff\" stroke=\"#6b7280\" stroke-width=\"1.5\"/><text x=\"160\" y=\"203\" text-anchor=\"middle\" font-size=\"8\" fill=\"#1f2937\">2</text>\n  <rect x=\"291\" y=\"156\" width=\"18\" height=\"18\" fill=\"#ffffff\" stroke=\"#6b7280\" stroke-width=\"1.5\"/><text x=\"300\" y=\"169\" text-anchor=\"middle\" font-size=\"8\" fill=\"#1f2937\">T</text>\n  <line x1=\"309\" y1=\"165\" x2=\"381\" y2=\"165\" stroke=\"#374151\" stroke-width=\"2.5\"/>\n  <text x=\"345\" y=\"152\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">トランク</text>\n  <text x=\"345\" y=\"222\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">タグ 10 / 20</text>\n  <rect x=\"390\" y=\"100\" width=\"210\" height=\"130\" rx=\"8\" fill=\"#f2f5f9\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"495.0\" y=\"120\" text-anchor=\"middle\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">ルータ 1</text>\n  <text x=\"495.0\" y=\"138\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">Gi8.10（タグ 10）192.168.10.1</text>\n  <text x=\"495.0\" y=\"153\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">Gi8.20（タグ 20）192.168.20.1</text>\n  <text x=\"495.0\" y=\"168\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">Gi1 172.16.12.1（ルータ 2 へ）</text>\n  <text x=\"495.0\" y=\"183\" text-anchor=\"middle\" font-size=\"10\" fill=\"#b45309\">Gi8.20 の in に ACL を適用</text>\n  <text x=\"495.0\" y=\"198\" text-anchor=\"middle\" font-size=\"10\" fill=\"#b45309\">（下の箱がその中身）</text>\n  <rect x=\"381\" y=\"156\" width=\"18\" height=\"18\" fill=\"#ffffff\" stroke=\"#6b7280\" stroke-width=\"1.5\"/><text x=\"390\" y=\"169\" text-anchor=\"middle\" font-size=\"8\" fill=\"#1f2937\">Gi8</text>\n  <rect x=\"591\" y=\"156\" width=\"18\" height=\"18\" fill=\"#ffffff\" stroke=\"#6b7280\" stroke-width=\"1.5\"/><text x=\"600\" y=\"169\" text-anchor=\"middle\" font-size=\"8\" fill=\"#1f2937\">Gi1</text>\n  <line x1=\"609\" y1=\"165\" x2=\"622\" y2=\"165\" stroke=\"#374151\" stroke-width=\"2\"/>\n  <rect x=\"622\" y=\"140\" width=\"92\" height=\"50\" rx=\"8\" fill=\"#f2f5f9\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"668.0\" y=\"160\" text-anchor=\"middle\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">ルータ 2</text>\n  <text x=\"668.0\" y=\"178\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">172.16.12.2</text>\n  <line x1=\"714\" y1=\"165\" x2=\"730\" y2=\"165\" stroke=\"#374151\" stroke-width=\"2\"/>\n  <rect x=\"730\" y=\"135\" width=\"150\" height=\"60\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"805.0\" y=\"155\" text-anchor=\"middle\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">PC-C</text>\n  <text x=\"805.0\" y=\"173\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">192.168.3.10</text>\n  <text x=\"805.0\" y=\"188\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">（データセンター）</text>\n  <line x1=\"308\" y1=\"128\" x2=\"372\" y2=\"128\" stroke=\"#0a7aff\" stroke-width=\"2\"/><polygon points=\"371,123 371,133 380,128\" fill=\"#0a7aff\"/>\n  <circle cx=\"344\" cy=\"128\" r=\"9\" fill=\"#0a7aff\"/><text x=\"344\" y=\"132\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#ffffff\">2</text>\n  <line x1=\"308\" y1=\"200\" x2=\"372\" y2=\"200\" stroke=\"#b45309\" stroke-width=\"2\"/><polygon points=\"371,195 371,205 380,200\" fill=\"#b45309\"/>\n  <circle cx=\"322\" cy=\"182\" r=\"9\" fill=\"#b45309\"/><text x=\"322\" y=\"186\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#ffffff\">1</text>\n  <circle cx=\"344\" cy=\"182\" r=\"9\" fill=\"#b45309\"/><text x=\"344\" y=\"186\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#ffffff\">3</text>\n  <circle cx=\"366\" cy=\"182\" r=\"9\" fill=\"#b45309\"/><text x=\"366\" y=\"186\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#ffffff\">4</text>\n  <text x=\"120\" y=\"249\" text-anchor=\"start\" font-size=\"10\" fill=\"#0a7aff\">① ③ ④ は VLAN 20 から入るので判定される　／　② は VLAN 10 から入るので、この ACL では判定されない</text>\n  <rect x=\"20\" y=\"268\" width=\"560\" height=\"160\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"32\" y=\"288\" text-anchor=\"start\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">ルータ 1 の ACL（名前付きの拡張 ACL・acl-vlan20）</text>\n  <text x=\"32\" y=\"306\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">10  deny　 tcp  192.168.20.0 0.0.0.255  192.168.10.0 0.0.0.255  eq 80</text>\n  <text x=\"32\" y=\"321\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">20  permit ip   any  any</text>\n  <text x=\"32\" y=\"336\" text-anchor=\"start\" font-size=\"10\" fill=\"#b45309\">（書いていないが必ずある最後の行）deny ip any any ＝ 暗黙の拒否</text>\n  <text x=\"32\" y=\"351\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\"></text>\n  <text x=\"32\" y=\"366\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">・上から順に照らし、最初に一致した行で決まる。以降の行は見ない</text>\n  <text x=\"32\" y=\"381\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">・0.0.0.255 は「この桁は照合しない」の印。192.168.20.0/24 のどれでも、の意味</text>\n  <text x=\"32\" y=\"396\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">・1 行目は「プロトコルが TCP」かつ「宛先ポート番号が 80（ウェブ）」のときだけの条件</text>\n  <rect x=\"600\" y=\"268\" width=\"280\" height=\"160\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"612\" y=\"288\" text-anchor=\"start\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">どこに・どちら向きに付けたか</text>\n  <text x=\"612\" y=\"306\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">interface Gi8.20</text>\n  <text x=\"612\" y=\"321\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">　ip access-group acl-vlan20 in</text>\n  <text x=\"612\" y=\"336\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\"></text>\n  <text x=\"612\" y=\"351\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">・in ＝ その口から入ってくる通信を見る</text>\n  <text x=\"612\" y=\"366\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">・out ＝ その口から出ていく通信を見る</text>\n  <text x=\"612\" y=\"381\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">・1 つの口の 1 つの向きに付けられる</text>\n  <text x=\"612\" y=\"396\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">　ACL は 1 つだけ</text>\n  <text x=\"612\" y=\"411\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">・付ける先を決めるのは人（手動）</text>\n  <rect x=\"20\" y=\"442\" width=\"420\" height=\"100\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"32\" y=\"462\" text-anchor=\"start\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">標準 ACL</text>\n  <text x=\"32\" y=\"480\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">番号 1〜99（1300〜1999）</text>\n  <text x=\"32\" y=\"495\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">見るのは送信元 IP だけ</text>\n  <text x=\"32\" y=\"510\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">宛先で絞れないので、宛先の近くに置くのが定石</text>\n  <text x=\"32\" y=\"525\" text-anchor=\"start\" font-size=\"10\" fill=\"#b45309\">（置き場所の定石は二次資料のみ。下の注を見る）</text>\n  <rect x=\"460\" y=\"442\" width=\"420\" height=\"100\" rx=\"8\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"472\" y=\"462\" text-anchor=\"start\" font-size=\"13\" font-weight=\"700\" fill=\"#1f2937\">拡張 ACL（この図で使っている方）</text>\n  <text x=\"472\" y=\"480\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">番号 100〜199（2000〜2699）。名前でも書ける</text>\n  <text x=\"472\" y=\"495\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">送信元 IP・宛先 IP・プロトコル・送信元ポート番号・宛先ポート番号</text>\n  <text x=\"472\" y=\"510\" text-anchor=\"start\" font-size=\"10\" fill=\"#374151\">早く落とせるので、送信元の近くに置くのが定石</text>\n  <text x=\"472\" y=\"525\" text-anchor=\"start\" font-size=\"10\" fill=\"#b45309\">（すべての設計でそうすべきかは確認していない）</text>\n  <text x=\"20\" y=\"572\" text-anchor=\"start\" font-size=\"12\" font-weight=\"700\" fill=\"#1f2937\">フロー</text>\n  <text x=\"20\" y=\"592\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">① PC-D → PC-A のウェブ（宛先ポート番号 80）：Gi8.20 から入るので判定される。1 行目に一致 → 破棄。ルーティングテーブルを見る前に落ちる</text>\n  <text x=\"20\" y=\"610\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">② PC-A → PC-D の ping：Gi8.10 から入る。この口に ACL は付いていないので判定は無く、そのままルーティングされて D に届く</text>\n  <text x=\"20\" y=\"628\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">③ ② の返事（D → A）：Gi8.20 から入るので判定される。1 行目は「プロトコルが TCP」の条件。ping は ICMP なので一致せず、2 行目の permit で通る</text>\n  <text x=\"20\" y=\"646\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">④ PC-D → PC-C（データセンター）のウェブ：1 行目は宛先が 192.168.10.0/24 でないので一致せず、2 行目の permit で通る</text>\n  <text x=\"20\" y=\"672\" text-anchor=\"start\" font-size=\"11\" font-weight=\"700\" fill=\"#b45309\">もし 2 行目（permit ip any any）を書かなかったら：③ も ④ も最後の暗黙の拒否に一致して落ちる。拒否したい行だけ書くと、残り全部が止まる</text>\n  <text x=\"20\" y=\"702\" text-anchor=\"start\" font-size=\"12\" font-weight=\"700\" fill=\"#1f2937\">3 層で見ると</text>\n  <text x=\"20\" y=\"722\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">もの：ACL（論理・手動。通す／通さない の行の並び）。標準は送信元 IP だけ、拡張は送信元・宛先・プロトコル・ポート番号まで見る</text>\n  <text x=\"20\" y=\"740\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">結びつき：インターフェースと向き ⇄ ACL（手動。どの口の in か out かを人が決める）。図 1〜7 のテーブルと違い、行は通信では増えない</text>\n  <text x=\"20\" y=\"758\" text-anchor=\"start\" font-size=\"11\" fill=\"#374151\">フロー：図 6 の ③「宛先 IP をテーブルで探して出口を決める」の前に、入口で 1 回の判定が入る。落ちた通信はテーブルを探すところまで行かない</text>\n  <text x=\"20\" y=\"784\" text-anchor=\"start\" font-size=\"10\" fill=\"#6b7280\">ACL は 1 本ずつ別々に照らすだけで、行きと返事を結び付けない。「192.168.20.0/24 → 192.168.10.0/24 を全部拒否」と書くと、② の返事（③）も同じ行に落ちる</text>\n  <text x=\"20\" y=\"800\" text-anchor=\"start\" font-size=\"10\" fill=\"#6b7280\">その場合、A から D への ping も往復が成立せず失敗する。この図が「eq 80」でサービスを絞っているのは、そうならないようにするため</text>\n<line x1=\"20\" y1=\"824\" x2=\"880\" y2=\"824\" stroke=\"#d6dde5\" stroke-width=\"1\"/>\n<text x=\"20\" y=\"846\" font-size=\"12\" font-weight=\"700\" fill=\"#1f2937\">各テーブルの推移（ACL だけは通信で育たない。ここが図 1〜7 のテーブルと違う）</text>\n<text x=\"20\" y=\"858\" font-size=\"10\" fill=\"#6b7280\">前提: 図 6 と同じ Router on a Stick。ルータ 1 の Gi8.20 の in に ACL を付けた（他の口・他の向きには付けていない）</text>\n  <rect x=\"20\" y=\"872\" width=\"280\" height=\"105\" rx=\"6\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"30\" y=\"888\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ルータ 1: ACL（Gi8.20 の in）</text>\n  <text x=\"30\" y=\"904\" font-size=\"10\" fill=\"#374151\">10 deny tcp 192.168.20.0/24 →</text>\n  <text x=\"30\" y=\"919\" font-size=\"10\" fill=\"#374151\">　 192.168.10.0/24 の 80 番</text>\n  <text x=\"30\" y=\"934\" font-size=\"10\" fill=\"#374151\">20 permit ip any any</text>\n  <text x=\"30\" y=\"949\" font-size=\"10\" fill=\"#374151\">（暗黙）deny ip any any</text>\n  <text x=\"30\" y=\"964\" font-size=\"10\" fill=\"#374151\">通信では行は増えない</text>\n  <rect x=\"310\" y=\"872\" width=\"280\" height=\"90\" rx=\"6\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"320\" y=\"888\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ルータ 1: ルーティングテーブル</text>\n  <text x=\"320\" y=\"904\" font-size=\"10\" fill=\"#374151\">192.168.10.0/24 → Gi8.10（自動）</text>\n  <text x=\"320\" y=\"919\" font-size=\"10\" fill=\"#374151\">192.168.20.0/24 → Gi8.20（自動）</text>\n  <text x=\"320\" y=\"934\" font-size=\"10\" fill=\"#374151\">192.168.3.0/24 → 172.16.12.2（手動）</text>\n  <text x=\"320\" y=\"949\" font-size=\"10\" fill=\"#0a7aff\">① はここまで来ない</text>\n  <rect x=\"600\" y=\"872\" width=\"280\" height=\"75\" rx=\"6\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"610\" y=\"888\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ルータ 1: ARP テーブル</text>\n  <text x=\"610\" y=\"904\" font-size=\"10\" fill=\"#0a7aff\">② 追加: 192.168.20.30 → MAC D</text>\n  <text x=\"610\" y=\"919\" font-size=\"10\" fill=\"#374151\">（D へ出すために引いた）</text>\n  <text x=\"610\" y=\"934\" font-size=\"10\" fill=\"#0a7aff\">① は落ちるので、何も残らない</text>\n  <rect x=\"20\" y=\"987\" width=\"280\" height=\"105\" rx=\"6\" fill=\"#ffffff\" stroke=\"#b9c4d0\" stroke-width=\"1.5\"/>\n  <text x=\"30\" y=\"1003\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">一致した回数（show access-lists）</text>\n  <text x=\"30\" y=\"1019\" font-size=\"10\" fill=\"#374151\">10 行目: ① で 1 増える</text>\n  <text x=\"30\" y=\"1034\" font-size=\"10\" fill=\"#374151\">20 行目: ③ ④ で増える</text>\n  <text x=\"30\" y=\"1049\" font-size=\"10\" fill=\"#374151\">破棄した通信も数に残るので、</text>\n  <text x=\"30\" y=\"1064\" font-size=\"10\" fill=\"#374151\">「どの行で落ちたか」を後から追える</text>\n  <text x=\"30\" y=\"1079\" font-size=\"10\" fill=\"#374151\">増えるのはこの数だけ</text>\n<text x=\"20\" y=\"1132\" font-size=\"12\" font-weight=\"700\" fill=\"#1f2937\">通信の中身の推移（フローごとのフレーム／パケット）</text>\n  <text x=\"20\" y=\"1182\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">① PC-D → ルータ 1（Gi8.20 の in）</text>\n  <rect x=\"20\" y=\"1188\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"79.0\" y=\"1202\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先 MAC</text>\n  <text x=\"79.0\" y=\"1217\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">MAC R1-Gi8</text>\n  <rect x=\"138\" y=\"1188\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"197.0\" y=\"1202\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元 MAC</text>\n  <text x=\"197.0\" y=\"1217\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">MAC D</text>\n  <rect x=\"256\" y=\"1188\" width=\"84\" height=\"36\" fill=\"#fff1dc\" stroke=\"#d97706\" stroke-width=\"1\"/>\n  <text x=\"298.0\" y=\"1202\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">タグ（VLAN 番号）</text>\n  <text x=\"298.0\" y=\"1217\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">20</text>\n  <rect x=\"340\" y=\"1188\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"399.0\" y=\"1202\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先 IP</text>\n  <text x=\"399.0\" y=\"1217\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.10.10</text>\n  <rect x=\"458\" y=\"1188\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"517.0\" y=\"1202\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元 IP</text>\n  <text x=\"517.0\" y=\"1217\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.20.30</text>\n  <rect x=\"576\" y=\"1188\" width=\"104\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"628.0\" y=\"1202\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元ポート番号</text>\n  <text x=\"628.0\" y=\"1217\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">50000</text>\n  <rect x=\"680\" y=\"1188\" width=\"104\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"732.0\" y=\"1202\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先ポート番号</text>\n  <text x=\"732.0\" y=\"1217\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">80</text>\n  <rect x=\"784\" y=\"1188\" width=\"70\" height=\"36\" fill=\"#ffffff\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"819.0\" y=\"1202\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">データ</text>\n  <text x=\"819.0\" y=\"1217\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ウェブ</text>\n  <line x1=\"20\" y1=\"1232\" x2=\"854\" y2=\"1232\" stroke=\"#374151\" stroke-width=\"1.5\"/><line x1=\"20\" y1=\"1228\" x2=\"20\" y2=\"1232\" stroke=\"#374151\" stroke-width=\"1.5\"/><line x1=\"854\" y1=\"1228\" x2=\"854\" y2=\"1232\" stroke=\"#374151\" stroke-width=\"1.5\"/>\n  <text x=\"437.0\" y=\"1245\" text-anchor=\"middle\" font-size=\"10\" fill=\"#374151\">フレーム＝全部。ただしスイッチが見るのは MAC とタグの部分だけ</text>\n  <line x1=\"340\" y1=\"1174\" x2=\"854\" y2=\"1174\" stroke=\"#0a7aff\" stroke-width=\"1.5\"/><line x1=\"340\" y1=\"1174\" x2=\"340\" y2=\"1178\" stroke=\"#0a7aff\" stroke-width=\"1.5\"/><line x1=\"854\" y1=\"1174\" x2=\"854\" y2=\"1178\" stroke=\"#0a7aff\" stroke-width=\"1.5\"/>\n  <text x=\"597.0\" y=\"1170\" text-anchor=\"middle\" font-size=\"10\" fill=\"#0a7aff\">パケット＝この部分。ルータはここ（IP）を見る</text>\n  <text x=\"20\" y=\"1278\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">① の判定</text>\n  <text x=\"20\" y=\"1298\" font-size=\"10\" fill=\"#6b7280\">1 行目（deny tcp 192.168.20.0/24 → 192.168.10.0/24 eq 80）に一致 → 破棄。この後の行もルーティングテーブルも見ない</text>\n  <text x=\"20\" y=\"1322\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">② PC-A → ルータ 1（Gi8.10 の in）</text>\n  <rect x=\"20\" y=\"1328\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"79.0\" y=\"1342\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先 MAC</text>\n  <text x=\"79.0\" y=\"1357\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">MAC R1-Gi8</text>\n  <rect x=\"138\" y=\"1328\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"197.0\" y=\"1342\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元 MAC</text>\n  <text x=\"197.0\" y=\"1357\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">MAC A</text>\n  <rect x=\"256\" y=\"1328\" width=\"84\" height=\"36\" fill=\"#fff1dc\" stroke=\"#d97706\" stroke-width=\"1\"/>\n  <text x=\"298.0\" y=\"1342\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">タグ（VLAN 番号）</text>\n  <text x=\"298.0\" y=\"1357\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">10</text>\n  <rect x=\"340\" y=\"1328\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"399.0\" y=\"1342\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先 IP</text>\n  <text x=\"399.0\" y=\"1357\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.20.30</text>\n  <rect x=\"458\" y=\"1328\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"517.0\" y=\"1342\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元 IP</text>\n  <text x=\"517.0\" y=\"1357\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.10.10</text>\n  <rect x=\"576\" y=\"1328\" width=\"104\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"628.0\" y=\"1342\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元ポート番号</text>\n  <text x=\"628.0\" y=\"1357\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ICMP には無い</text>\n  <rect x=\"680\" y=\"1328\" width=\"104\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"732.0\" y=\"1342\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先ポート番号</text>\n  <text x=\"732.0\" y=\"1357\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ICMP には無い</text>\n  <rect x=\"784\" y=\"1328\" width=\"70\" height=\"36\" fill=\"#ffffff\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"819.0\" y=\"1342\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">データ</text>\n  <text x=\"819.0\" y=\"1357\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ping</text>\n  <text x=\"20\" y=\"1382\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">② の判定</text>\n  <text x=\"20\" y=\"1402\" font-size=\"10\" fill=\"#6b7280\">Gi8.10 の in に ACL は付いていない → 判定なし。そのままルーティングテーブルへ。ping は ICMP なので、TCP/UDP のポート番号の欄そのものが無い</text>\n  <text x=\"20\" y=\"1426\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">③ ② の返事 PC-D → ルータ 1（Gi8.20 の in）</text>\n  <rect x=\"20\" y=\"1432\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"79.0\" y=\"1446\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先 MAC</text>\n  <text x=\"79.0\" y=\"1461\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">MAC R1-Gi8</text>\n  <rect x=\"138\" y=\"1432\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"197.0\" y=\"1446\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元 MAC</text>\n  <text x=\"197.0\" y=\"1461\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">MAC D</text>\n  <rect x=\"256\" y=\"1432\" width=\"84\" height=\"36\" fill=\"#fff1dc\" stroke=\"#d97706\" stroke-width=\"1\"/>\n  <text x=\"298.0\" y=\"1446\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">タグ（VLAN 番号）</text>\n  <text x=\"298.0\" y=\"1461\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">20</text>\n  <rect x=\"340\" y=\"1432\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"399.0\" y=\"1446\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先 IP</text>\n  <text x=\"399.0\" y=\"1461\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.10.10</text>\n  <rect x=\"458\" y=\"1432\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"517.0\" y=\"1446\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元 IP</text>\n  <text x=\"517.0\" y=\"1461\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.20.30</text>\n  <rect x=\"576\" y=\"1432\" width=\"104\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"628.0\" y=\"1446\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元ポート番号</text>\n  <text x=\"628.0\" y=\"1461\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ICMP には無い</text>\n  <rect x=\"680\" y=\"1432\" width=\"104\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"732.0\" y=\"1446\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先ポート番号</text>\n  <text x=\"732.0\" y=\"1461\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ICMP には無い</text>\n  <rect x=\"784\" y=\"1432\" width=\"70\" height=\"36\" fill=\"#ffffff\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"819.0\" y=\"1446\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">データ</text>\n  <text x=\"819.0\" y=\"1461\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ping 応答</text>\n  <text x=\"20\" y=\"1486\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">③ の判定</text>\n  <text x=\"20\" y=\"1506\" font-size=\"10\" fill=\"#6b7280\">不一致の理由は「TCP ではない」。ポート番号の有無は理由ではない。1 行目はまずプロトコルを見て、ping は ICMP なのでここで外れる → 2 行目の permit で通る</text>\n  <text x=\"20\" y=\"1530\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">④ PC-D → PC-C のウェブ（Gi8.20 の in）</text>\n  <rect x=\"20\" y=\"1536\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"79.0\" y=\"1550\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先 MAC</text>\n  <text x=\"79.0\" y=\"1565\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">MAC R1-Gi8</text>\n  <rect x=\"138\" y=\"1536\" width=\"118\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"197.0\" y=\"1550\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元 MAC</text>\n  <text x=\"197.0\" y=\"1565\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">MAC D</text>\n  <rect x=\"256\" y=\"1536\" width=\"84\" height=\"36\" fill=\"#fff1dc\" stroke=\"#d97706\" stroke-width=\"1\"/>\n  <text x=\"298.0\" y=\"1550\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">タグ（VLAN 番号）</text>\n  <text x=\"298.0\" y=\"1565\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">20</text>\n  <rect x=\"340\" y=\"1536\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"399.0\" y=\"1550\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先 IP</text>\n  <text x=\"399.0\" y=\"1565\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.3.10</text>\n  <rect x=\"458\" y=\"1536\" width=\"118\" height=\"36\" fill=\"#e6f0ff\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"517.0\" y=\"1550\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元 IP</text>\n  <text x=\"517.0\" y=\"1565\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">192.168.20.30</text>\n  <rect x=\"576\" y=\"1536\" width=\"104\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"628.0\" y=\"1550\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">送信元ポート番号</text>\n  <text x=\"628.0\" y=\"1565\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">50001</text>\n  <rect x=\"680\" y=\"1536\" width=\"104\" height=\"36\" fill=\"#f2f5f9\" stroke=\"#0a7aff\" stroke-width=\"1\"/>\n  <text x=\"732.0\" y=\"1550\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">宛先ポート番号</text>\n  <text x=\"732.0\" y=\"1565\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">80</text>\n  <rect x=\"784\" y=\"1536\" width=\"70\" height=\"36\" fill=\"#ffffff\" stroke=\"#9aa7b5\" stroke-width=\"1\"/>\n  <text x=\"819.0\" y=\"1550\" text-anchor=\"middle\" font-size=\"9\" fill=\"#6b7280\">データ</text>\n  <text x=\"819.0\" y=\"1565\" text-anchor=\"middle\" font-size=\"10\" font-weight=\"700\" fill=\"#1f2937\">ウェブ</text>\n  <text x=\"20\" y=\"1590\" font-size=\"11\" font-weight=\"700\" fill=\"#1f2937\">④ の判定</text>\n  <text x=\"20\" y=\"1610\" font-size=\"10\" fill=\"#6b7280\">1 行目は宛先が 192.168.10.0/24 のときだけの条件。宛先が違うので一致しない → 2 行目の permit で通る</text>\n<text x=\"20\" y=\"1634\" font-size=\"10\" fill=\"#6b7280\">戻りだけを通す書き方に established がある（Ack または RST ビットの立った TCP が対象・インバウンドの TCP だけ）。ping には効かない</text>\n<text x=\"20\" y=\"1650\" font-size=\"10\" fill=\"#6b7280\">IPsec（図 11）では、同じ書き方の ACL を「通す・通さない」ではなく「どの通信を守るか」の選別の印として使う。判定の仕組みは同じ</text>\n<text x=\"20\" y=\"1666\" font-size=\"10\" fill=\"#6b7280\">「標準は宛先の近く・拡張は送信元の近く」は二次資料が挙げる定石。すべての設計でそうすべきかは確認していない</text>\n<text x=\"20\" y=\"1682\" font-size=\"10\" fill=\"#6b7280\">未検証: ICMP のメッセージ種別（echo など）を条件に書くときの書式は確認していない。この図では使っていない</text>\n<text x=\"20\" y=\"1698\" font-size=\"10\" fill=\"#6b7280\">出典（上から順・最初に一致した行で決まる・暗黙の deny・1 つの向きに 1 つ）: https://www.infraexpert.com/study/aclz2.html</text>\n<text x=\"20\" y=\"1714\" font-size=\"10\" fill=\"#6b7280\">出典（ワイルドカードマスクの 0 は照合する・1 は照合しない）: https://www.infraexpert.com/study/aclz3.html</text>\n<text x=\"20\" y=\"1730\" font-size=\"10\" fill=\"#6b7280\">出典（標準 ACL は 1〜99・送信元 IP だけ・宛先の近くに置く）: https://www.infraexpert.com/study/aclz4.html</text>\n<text x=\"20\" y=\"1746\" font-size=\"10\" fill=\"#6b7280\">出典（拡張 ACL は 100〜199・照合項目・送信元の近くに置く・established）: https://www.infraexpert.com/study/aclz5.html</text>\n<text x=\"20\" y=\"1762\" font-size=\"10\" fill=\"#6b7280\">出典（show access-lists に一致した回数 matches が出る）: https://www.infraexpert.com/study/aclz7.html</text>\n<text x=\"20\" y=\"1778\" font-size=\"10\" fill=\"#6b7280\">出典（入口の ACL は経路探しより先。内側 → 外側は 入口 ACL → 経路探し → NAT → 出口 ACL）: Cisco Understand the NAT Order of Operation</text>\n<text x=\"20\" y=\"1794\" font-size=\"10\" fill=\"#6b7280\">　https://www.cisco.com/c/en/us/support/docs/ip/network-address-translation-nat/6209-5.html</text>\n<text x=\"20\" y=\"1810\" font-size=\"10\" fill=\"#6b7280\">出典（ウェブの既定のポート番号が 80）: RFC 9110 4.2.1 https://www.rfc-editor.org/rfc/rfc9110.html</text>\n</svg>\n## 図 6・図 11 との接続","line":62,"sources":["src_1","src_2","src_3","src_4","src_5","src_6","src_7"],"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_afdc19","type":"paragraph","markdown":"図 6 の ③ では、ルータが宛先 IP をテーブルで探して出口を決めていました。\n図 9 では、その前に入口で 1 回の判定が入ります。\n落ちた通信はテーブルを探すところまで行かないので、ARP テーブルにも何も残りません。\nこの順序は、図 8 で使ったのと同じ Cisco のページの表から読めます。","text":"図 6 の ③ では、ルータが宛先 IP をテーブルで探して出口を決めていました。\n図 9 では、その前に入口で 1 回の判定が入ります。\n落ちた通信はテーブルを探すところまで行かないので、ARP テーブルにも何も残りません。\nこの順序は、図 8 で使ったのと同じ Cisco のページの表から読めます。","line":311,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_e70076","type":"paragraph","markdown":"図 11 の IPsec では、同じ書き方の行の並びを「通す・通さない」ではなく「どの通信を守るか」の選別に使います。\n判定の仕組みは同じで、使い道だけが違います。","text":"図 11 の IPsec では、同じ書き方の行の並びを「通す・通さない」ではなく「どの通信を守るか」の選別に使います。\n判定の仕組みは同じで、使い道だけが違います。","line":316,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_703626","type":"heading","depth":2,"markdown":"## 未検証・注意","text":"未検証・注意","line":319,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_0be232","type":"list","markdown":"- ACL は 1 本ずつ別々に照らすだけで、行きと返事を結び付けません。「192.168.20.0/24 から 192.168.10.0/24 を全部拒否」と書くと、② の返事である ③ も同じ行に落ちます。その場合、A から D への ping も往復が成立せず失敗します。この図が宛先ポート番号 80 でサービスを絞っているのは、そうならないようにするためです。\n- 戻りだけを通す書き方に established があります。Ack または RST ビットの立った TCP が対象で、インバウンドの TCP だけに効きます。ping には効きません。\n- ICMP のメッセージ種別（echo など）を条件に書くときの書式は確認していません。この図では使っていません。\n- 図には「標準は宛先の近く・拡張は送信元の近く」という置き場所の定石を、二次資料が挙げるものとして載せてあります。この記事を書くにあたって標準 ACL・拡張 ACL・名前付き ACL のページを取り直しましたが、本文の中にこの記述を見つけられませんでした。すべての設計でそうすべきかも確認していません。","text":"ACL は 1 本ずつ別々に照らすだけで、行きと返事を結び付けません。「192.168.20.0/24 から 192.168.10.0/24 を全部拒否」と書くと、② の返事である ③ も同じ行に落ちます。その場合、A から D への ping も往復が成立せず失敗します。この図が宛先ポート番号 80 でサービスを絞っているのは、そうならないようにするためです。戻りだけを通す書き方に established があります。Ack または RST ビットの立った TCP が対象で、インバウンドの TCP だけに効きます。ping には効きません。ICMP のメッセージ種別（echo など）を条件に書くときの書式は確認していません。この図では使っていません。図には「標準は宛先の近く・拡張は送信元の近く」という置き場所の定石を、二次資料が挙げるものとして載せてあります。この記事を書くにあたって標準 ACL・拡張 ACL・名前付き ACL のページを取り直しましたが、本文の中にこの記述を見つけられませんでした。すべての設計でそうすべきかも確認していません。","line":321,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_240080","type":"heading","depth":2,"markdown":"## 出典","text":"出典","line":326,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_ad2726","type":"list","markdown":"- 勉強会での本人の観察（2026-09-13 実機ハンズオン。資料は非公開）\n- [インフラエキスパート: ACL の仕組み](https://www.infraexpert.com/study/aclz2.html) — 1 行ずつ上から順に照合され、最初に一致した行で処理が決まる。最終行に暗黙の全拒否が追加される。1 つのインターフェースの 1 つの方向に適用できる ACL は 1 つ\n- [インフラエキスパート: ワイルドカードマスク](https://www.infraexpert.com/study/aclz3.html) — 0 はそのビットを照合する、1 は照合しない\n- [インフラエキスパート: 標準 ACL](https://www.infraexpert.com/study/aclz4.html) — 番号は 1〜99 と 1300〜1999。送信元 IP アドレスだけをチェックする\n- [インフラエキスパート: 拡張 ACL](https://www.infraexpert.com/study/aclz5.html) — 番号は 100〜199 と 2000〜2699。送信元 IP・宛先 IP・プロトコル・ポート番号で絞れる。established は Ack または RST ビットの立ったパケットが対象で、インバウンドの TCP だけ\n- [インフラエキスパート: show access-lists](https://www.infraexpert.com/study/aclz7.html) — シーケンス番号と matches（一致した回数）が確認できる\n- [Cisco: Understand the NAT Order of Operation](https://www.cisco.com/c/en/us/support/docs/ip/network-address-translation-nat/6209-5.html) — 内側から外側は入口の ACL が経路探しより先\n- [RFC 9110: HTTP Semantics](https://www.rfc-editor.org/rfc/rfc9110.html) — 4.2.1。ポート番号が書かれていなければ TCP の 80 が既定","text":"勉強会での本人の観察（2026-09-13 実機ハンズオン。資料は非公開）インフラエキスパート: ACL の仕組み — 1 行ずつ上から順に照合され、最初に一致した行で処理が決まる。最終行に暗黙の全拒否が追加される。1 つのインターフェースの 1 つの方向に適用できる ACL は 1 つインフラエキスパート: ワイルドカードマスク — 0 はそのビットを照合する、1 は照合しないインフラエキスパート: 標準 ACL — 番号は 1〜99 と 1300〜1999。送信元 IP アドレスだけをチェックするインフラエキスパート: 拡張 ACL — 番号は 100〜199 と 2000〜2699。送信元 IP・宛先 IP・プロトコル・ポート番号で絞れる。established は Ack または RST ビットの立ったパケットが対象で、インバウンドの TCP だけインフラエキスパート: show access-lists — シーケンス番号と matches（一致した回数）が確認できるCisco: Understand the NAT Order of Operation — 内側から外側は入口の ACL が経路探しより先RFC 9110: HTTP Semantics — 4.2.1。ポート番号が書かれていなければ TCP の 80 が既定","line":328,"sources":["src_1","src_2","src_3","src_4","src_5","src_6","src_7"],"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_1f7c1f","type":"heading","depth":2,"markdown":"## 関連","text":"関連","line":337,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}},{"id":"blk_fda25c","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- 前の記事（図 8）: [ネットワーク\\_08\\_NAT](/notes/nw-basics-08-nat)（`/notes/nw-basics-08-nat`）\n\n- 次の記事（図 10）: [ネットワーク\\_10\\_GREトンネル](/notes/nw-basics-10-gre)（`/notes/nw-basics-10-gre`）\n\n- この行の並びがもう一度出てくる記事: [ネットワーク\\_11\\_IPsec](/notes/nw-basics-11-ipsec)（`/notes/nw-basics-11-ipsec`）\n\n- 制御を保留にした記事: [ネットワーク\\_03\\_VLAN](/notes/nw-basics-03-vlan)（`/notes/nw-basics-03-vlan`）","text":"ネットワーク_INDEX — 連載の目次連載の入口: ネットワーク_00_3層で言葉を置く（/notes/nw-basics-00-three-layers）前の記事（図 8）: ネットワーク_08_NAT（/notes/nw-basics-08-nat）次の記事（図 10）: ネットワーク_10_GREトンネル（/notes/nw-basics-10-gre）この行の並びがもう一度出てくる記事: ネットワーク_11_IPsec（/notes/nw-basics-11-ipsec）制御を保留にした記事: ネットワーク_03_VLAN（/notes/nw-basics-03-vlan）","line":339,"lineage":[],"authoredBy":{"kind":"human","id":"owner","label":"ぴぐお"}}]}