ACL(アクセスコントロールリスト)は、CCNAの学習でも実務でも必ず出てくる技術です。「通信を許可・拒否するルール」——説明としてはそのとおりなのですが、実際に手を動かし始めると、途端に難しく感じる人が多い。
この記事では、現役10年のネットワークエンジニアとして、ACLの基本から解説します。そして後半では、現場でACLを触るときの「本当の怖さ」——遠方のルータを復旧不可能にしてしまう事故の話まで踏み込みます。教科書には書かれていませんが、知らないと本当にやらかします。
ACLとは:通信を通すか止めるかのルールリスト

ACLは“通すか止めるか”のルール表。シンプルなんですが、この後の“暗黙のdeny”と“リモートで触る怖さ”だけは、知らないと現場で本当に痛い目を見ます。
動作の基本ルールは2つだけです。ここを最初に押さえてください。
- 上から順番に評価される:条件に一致した時点で処理が決まり、それ以降の行は読まれません。
- 最後に「暗黙のdeny」がある:どの行にも一致しなかったパケットは、書かれていなくても自動的に破棄されます。
このシンプルな2つのルールが、後々あらゆるトラブルの原因になります。
標準ACLと拡張ACLの違い
ACLには大きく2種類あります。
| 標準ACL | 拡張ACL | |
|---|---|---|
| 判断材料 | 送信元IPアドレスのみ | 送信元IP・宛先IP・プロトコル・ポート番号 |
| 番号の範囲 | 1〜99、1300〜1999 | 100〜199、2000〜2699 |
| 細かさ | ざっくり | 細かく指定できる |
標準ACLは「どこから来た通信か」しか見ません。一方、拡張ACLは「どこから来て、どこ宛てで、何のプロトコルで、どのポートか」まで判断できます。実務で細かい制御をしたい場面では、拡張ACLを使うことがほとんどです。
なお、番号ではなく名前でACLを識別する「名前付きACL」もあります。番号だけだと何のためのACLか分からなくなるので、管理のしやすさから名前付きが好まれる現場も多いです。
ワイルドカードマスク:サブネットマスクの「逆」
ACLでIPアドレスの範囲を指定するときに使うのが、ワイルドカードマスクです。ここも初学者がつまずくポイントですが、覚え方は単純です。
- ビットが 0 の部分 → チェックする(一致していなければならない)
- ビットが 1 の部分 → チェックしない(何でもよい)
サブネットマスクとは0と1の意味が逆になっている、と覚えておけば大丈夫です。
たとえば 192.168.10.0 0.0.0.255 と書けば、「192.168.10.」までは一致必須で、最後の1オクテットは何でもよい——つまり192.168.10.0〜192.168.10.255の範囲を指定したことになります。
よく使う省略形も覚えておくと便利です。
0.0.0.0 255.255.255.255(すべてのIP)→any192.168.1.1 0.0.0.0(特定の1台)→host 192.168.1.1
ワイルドカードマスクの計算は、サブネットマスクの理解が土台になります。不安な方はサブネット計算の記事を先に読んでみてください。
適用位置:なぜ「標準は宛先近く、拡張は送信元近く」なのか
ACLは作っただけでは効果がなく、インターフェースに適用(in / out を指定)して初めて動きます。そして適用位置には、一般的な原則があります。
- 標準ACL → 宛先に近い場所に適用
- 拡張ACL → 送信元に近い場所に適用
多くの解説はここを暗記事項として提示しますが、理由を理解したほうが忘れません。
標準ACLは送信元IPしか見られません。もし送信元の近くで止めてしまうと、「その送信元から出る通信すべて」を落とすことになり、本来通したい別の宛先への通信まで巻き添えにしてしまいます。だから、なるべく宛先に近い場所——本当に止めたい相手の直前——で判断させるのが安全です。
一方、拡張ACLは宛先やプロトコルまで判別できます。狙った通信だけをピンポイントで落とせるので、なるべく早い段階(送信元の近く)で落としてしまったほうが、無駄なトラフィックがネットワークを流れずに済みます。
「細かく判断できないものは慎重に(宛先近く)、細かく判断できるものは早めに(送信元近く)」——この理屈で覚えると、試験でも迷いません。
【現場の落とし穴①】暗黙のdenyで全部止まる
ここからが実務の話です。初心者が必ずと言っていいほどハマるのが暗黙のdenyです。
ACLの最終行には、書かれていなくても「それ以外はすべて拒否」というルールが存在します。
「1台だけブロックしたかったのに、ネットワーク全体が通信不能になった」という事故は、ここから生まれます。
ブロックしたいものだけを書く(ブラックリスト型)つもりなら、最後に「それ以外は許可」を明示的に書く必要があります。逆に、許可するものだけを書く(ホワイトリスト型)なら、暗黙のdenyがそのまま効いてくれます。自分がどちらの型で書いているのかを常に意識することが、事故を防ぐ第一歩です。
【現場の落とし穴②】ACLはフィルタだけの道具ではない
意外と知られていないのですが、ACLは通信の許可・拒否以外の用途でも使われます。代表例がNATです。
NATの設定では、「どの通信をアドレス変換の対象にするか」をACLで指定します。このとき、ACLの permit は「通信を許可する」という意味ではなく、「この範囲を変換対象にする」という”対象の指定”として機能します。同じACLという道具が、文脈によって別の目的で使われるわけです。
ここを理解していないと、現場で混乱します。実際、NAT用のACLをブラックリスト型で書くかホワイトリスト型で書くかによって、意図しない通信までNATがかかってしまったり、逆にNATが効かずに通信できなかったりということが起こります。
「ACLを書いたのにNATがおかしい」というときは、ACLをフィルタの感覚で読んでいないか、疑ってみてください。NATの仕組み自体はNATの記事で解説しています。
【現場の落とし穴③】リモート作業でACLを触る怖さ

正直、ここが一番怖いです。1行足しただけで自分の接続が切れて、遠方の機器に二度と入れなくなる。ベテランほどACL変更に時間をかけるのは、これを知っているからです。
これが、この記事で一番伝えたいことです。ACLの本当の怖さは、自分が閉じ込められることにあります。
想像してみてください。遠隔地にあるルータに、あなたはSSHでリモート接続して設定作業をしています。そこでACLの設定を変更する——このとき、誤って自分のリモート接続そのものを deny してしまったらどうなるか。
接続は即座に切れます。そして二度と入れません。ACLで自分自身を締め出したので、リモートからは何もできない。設定を戻すには、その遠方の拠点まで人が行って、コンソールケーブルで直接つなぐしかありません。地方や離島の拠点だったら、復旧までに何時間、下手をすれば何日かかるか分かりません。
そして厄介なのは、これは「明らかにミスした」ときだけでなく、順番を少し変えただけでも起こりうるということです。
「追加しただけなのに」——その1行が、自分の命綱を切ることがあるのです。
だからこそ、リモートでACLを変更するときは慎重の上にも慎重に。変更前に必ず現在の設定を確認し、自分の接続元IPが許可され続けるかを確認する。
設定順序が変わることによる影響を、頭の中でシミュレーションする。可能なら、一定時間後に自動で設定が戻る仕組み(reloadの予約など)を使う。ベテランほど、ACLの変更には時間をかけます。
まとめ
- ACLは通信の許可・拒否を制御する仕組み。上から順に評価され、最後に暗黙のdenyがある。
- 標準ACLは送信元IPのみ、拡張ACLは宛先・プロトコル・ポートまで判断できる。
- ワイルドカードマスクはサブネットマスクの逆(0はチェック、1は無視)。
- 適用位置は「細かく判断できないものは宛先近く、細かく判断できるものは送信元近く」と理屈で覚える。
- 現場の落とし穴:暗黙のdenyで全通信が落ちる、NATの対象指定にもACLが使われる、そしてリモート作業で自分を締め出すと復旧不可になる。
ACLは、CCNAでは「セキュリティの基礎」分野で問われる重要トピックであると同時に、現場では最も慎重さが求められる設定のひとつです。試験のために覚える知識が、そのまま「事故を起こさないための知識」になります。
関連して、ネットワークを分割するVLANの記事、現場で使うコマンドについてはCCNAコマンドの記事もあわせてどうぞ。


コメント