落ちた通信は、経路表を探すところまで行かない
ルータの口に「通す・通さない」の行の並びを付け、上から順に照らして最初に一致した行で決める。図 6 と同じ構成で、VLAN 20 から VLAN 10 へのウェブだけを止める
目次
図 3 では、VLAN を分けると届かなくなること、間にルータを置けば制御できることを書きました。
その「制御」の中身には触れていませんでした。 図 9 は、その実体を扱います。 図 7 で挙げた 3 つの問題を解く道具ではなく、図 3 で保留にしたものを取りに戻る 1 枚です。 ここで出てくる行の並びは、図 11 の IPsec で「どの通信を守るか」の選別にもう一度出てきます。
この連載は、ネットワークの言葉を 3 つの層に置いて読みます。 もの(物理か論理か)、結びつき(人が設定で付ける手動か、機器が学習する自動か、製造時に決まる固定か)、通信フロー(1 本の通信がそれらを順に通る道筋)の 3 つです。
登場するもの
ACL(アクセスコントロールリスト)
論理のもので、人が書きます。 「通す(permit)」「通さない(deny)」の行の並びです。 上から順に照らし、最初に一致した行で決まります。 以降の行は見ません。 書いていなくても最後に「全部拒否」の行が必ずあります。
標準 ACL と拡張 ACL
標準 ACL は番号 1〜99(と 1300〜1999)で、送信元 IP だけを見ます。 拡張 ACL は番号 100〜199(と 2000〜2699)で、名前でも書けます(標準 ACL も同じです)。 見るのは送信元 IP・宛先 IP・プロトコル・送信元ポート番号・宛先ポート番号です。 この図で使っているのは名前付きの拡張 ACL です。
ワイルドカードマスク
行に書く 0.0.0.255 のような値です。 0 の桁は照合し、1 の桁は照合しません。 0.0.0.255 なら「最後の 1 桁は何でもよい」、つまり 192.168.20.0/24 のどれでも、という意味になります。
結びつき
- インターフェースと向き ⇄ ACL は手動です。どの口の in(入ってくる通信)か out(出ていく通信)かを人が決めます。1 つの口の 1 つの向きに付けられる ACL は 1 つだけです。
- 図 1 から図 7 までのテーブルと違い、通信では行が増えません。増えるのは各行に一致した回数だけで、
show access-listsで読めます。破棄した通信もこの数に残るので、どの行で落ちたかを後から追えます。
通信フロー
図 6 と同じ構成です。 ルータ 1 の Gi8.20 の in に、次の 2 行の ACL を付けてあります。 1 行目は「送信元が 192.168.20.0/24、宛先が 192.168.10.0/24、プロトコルが TCP、宛先ポート番号が 80」のときだけ拒否します。 2 行目はそれ以外を全部許可します。
① PC-D(192.168.20.30)から PC-A(192.168.10.10)へのウェブ。Gi8.20 から入るので判定されます。1 行目に一致して破棄されます。ルーティングテーブルを見る前に落ちます。
② PC-A から PC-D への ping。Gi8.10 から入ります。この口に ACL は付いていないので判定は無く、そのまま届きます。
③ ② の返事(D から A)。Gi8.20 から入るので判定されます。不一致の理由は「TCP ではない」ことです。ポート番号の有無は理由ではありません。1 行目はまずプロトコルを見て、ping は ICMP なのでここで外れ、2 行目の permit で通ります。
④ PC-D からデータセンターの PC-C へのウェブ。1 行目は宛先が 192.168.10.0/24 のときだけの条件なので一致せず、2 行目の permit で通ります。
2 行目を書かなければ、③ も ④ も最後の暗黙の拒否に落ちます。 拒否したい行だけを書くと、残り全部が止まります。
図 9
図の上半分が構成図と ACL の中身、下半分が各テーブルの推移と通信の中身の推移です。
図 6 の ③ では、ルータが宛先 IP をテーブルで探して出口を決めていました。 図 9 では、その前に入口で 1 回の判定が入ります。 落ちた通信はテーブルを探すところまで行かないので、ARP テーブルにも何も残りません。 この順序は、図 8 で使ったのと同じ Cisco のページの表から読めます。
図 11 の IPsec では、同じ書き方の行の並びを「通す・通さない」ではなく「どの通信を守るか」の選別に使います。 判定の仕組みは同じで、使い道だけが違います。
未検証・注意
- 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 のページを取り直しましたが、本文の中にこの記述を見つけられませんでした。すべての設計でそうすべきかも確認していません。
出典
- 勉強会での本人の観察(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 が既定
関連
-
ネットワーク_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)
この記事の校閲記録
誰が・いつ・どの版の・どの段落を・何の観点で見て、何と言ったかを全件そのまま出す(追記のみ・削除しない)。
段落 30 のうち出典つき 12・出典なし 18
v1 2 件
AIAI (claude-fable-5) が AI 確認未解決
出典 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 のメッセージ種別を条件に書く書式は確認していないので未検証に残した。校正チェックリストを通し、例え話・体言止め・断定を示す禁止語の混入を機械検査した。守秘: 実名・社名・会場名・地名・金額なし
AIAI (claude-fable-5) が 編集未解決
公開前の校閲。frontmatter のタグ ACL を小文字の acl に直した(運用指示書の英語タグの規約と公開済み記事の表記に合わせた)。本文は、Gi8.10 と Gi8.20 が公開済みの図 6 の呼び方と一致すること、拡張 ACL の番号の範囲と暗黙の拒否、③ の不一致の理由が「TCP ではない」であることを図の担当メモと突き合わせて確認し、修正はしていない。
参考文献
- 二次インフラエキスパート: ACL の仕組み参照 2026-09-14
- 二次インフラエキスパート: ワイルドカードマスク参照 2026-09-14
- 二次インフラエキスパート: 標準 ACL参照 2026-09-14
- 二次インフラエキスパート: 拡張 ACL参照 2026-09-14
- 二次インフラエキスパート: show access-lists参照 2026-09-14
- 二次Cisco: Understand the NAT Order of Operation参照 2026-09-14
- 二次RFC 9110: HTTP Semantics参照 2026-09-14
更新履歴
- 連載のトピックを「ネットワーク基礎」から「ネットワーク」へ改名(32 本+目次。slug と URL は不変)
- 公開: 連載「ネットワーク基礎」図 8〜24 の記事 17 本と目次の更新
機械可読の記録
- article.json(記事の正本)
- reviews.json(校閲記録)
- blocks.json(ブロック一覧)