CCNA ACL問題の解き方|standard/extended・配置場所・implicit denyを暗算で攻略【200-301対応】

CCNA ACL配置の基本|Standard ACLは宛先側I/F、Extended ACLは送信元側I/Fに置く構成図

CCNA 200-301でACL(Access Control List)の問題、地味に厄介じゃないですか?「standardとextendedどっちが送信元側に置くんだっけ」とか「ワイルドカードマスクで0.0.0.255って何のレンジだ」とか、本番で詰まる人が本当に多い。私も初受験のとき、ACLの配置場所を逆に書いて1問落としました。あれは悔しかった。

この記事では、現役ネットワークエンジニアの目線で、CCNA試験のACL問題を本番30秒以内に解くための整理術をまとめます。standard/extendedの使い分け、配置場所のルール、implicit denyの罠、そしてワイルドカードマスクの暗算テクニックまで。実機(Catalyst 2960とISR 4321で検証済み)の出力例も貼っておくので、丸暗記じゃなく腹落ちさせてもらえれば。

CCNA試験でACLが頻出する3つの理由

CCNA試験でACLが頻出する3つの理由

200-301の出題範囲ではセキュリティとIPサービスの両方でACLが絡んできて、配点的にも軽くない。受験者の体感として2〜4問は出る印象です。試験問題の作り方としても扱いやすいんですよね。条件を1行変えるだけで通信が許可されたり遮断されたりするので、設問のバリエーションを作りやすい。

で、典型的な落とし穴は3つ。①standardとextendedの違いを理解していない。②配置場所のルールが逆。③implicit deny anyの存在を忘れて「permitだけ書けばOK」と思い込む。この3つ全部やられると、本番で2問は確実に落とす。

💡 現場での体験談

CCNA初受験で本番のACL問題、図を見てサッと「standard ACLだから送信元の近くだろ」と書いて即bookmark。あとで見返したら、それextended ACLだった。図に「TCP port 80のみ遮断」って書いてあったのに見落としたんです。プロトコル/ポートが指定された時点でstandardはほぼあり得ない。当たり前なんですけど焦るとこういうミスをやる。

Standard ACLとExtended ACLの違いを30秒で見分ける

Standard ACLとExtended ACLの違いを30秒で見分ける

最大の見分けポイントは「何を条件にしているか」。送信元IPだけを見るのがstandard、送信元と宛先IP+プロトコル+ポートまで見られるのがextended。番号も違って、standardは1〜99と1300〜1999、extendedは100〜199と2000〜2699。試験では番号からタイプを当てる問題も出るので暗記必須。

項目Standard ACLExtended ACL
番号範囲1〜99 / 1300〜1999100〜199 / 2000〜2699
条件にできる要素送信元IPのみ送信元/宛先IP・プロトコル・ポート
配置のセオリー宛先(destination)に近いI/F送信元(source)に近いI/F
用途の例VTYアクセス制限など簡易的な制御サーバへのHTTP/HTTPS制御など細かい制御
名前付きACL対応(ip access-list standard)対応(ip access-list extended)
📝 補足情報

番号付きACL(番号で識別)と名前付きACL(任意の名前で識別)の違いも問われます。Cisco IOS 12.3以降は名前付きACLの方が編集しやすく、現場では圧倒的に名前付き派。試験では両方の構文を見せられるのでどちらも書けるように。

ACL配置場所のセオリー|standardは宛先・extendedは送信元

ACL配置場所のセオリー|standardは宛先・extendedは送信元

これがCCNA最頻出の引っ掛けポイント。覚え方は単純で「standard = 宛先側」「extended = 送信元側」。理由も理屈で押さえればまず忘れない。

standardは送信元IPしか見られないから、送信元の近くに置くと「他の宛先への通信まで巻き添えで遮断」しちゃう。だから宛先の直前まで持っていくのが正解。一方extendedは宛先IPもプロトコルも指定できるので、送信元の近くで早めに弾けば無駄な転送を減らせる。要はリソースの節約という観点。

図1: ACL配置場所のイメージ(standard vs extended)

配置の的確さ(standard)

宛先近く

配置の的確さ(extended)

送信元近く

逆置きしたときの被害

通信壊滅

⚠ よくあるミス

試験で「Server2に対する10.1.1.0/24からのアクセスだけ拒否したい」みたいな問題が出たら、これはextended ACL一択。でも「最も効率的な配置は?」と聞かれて宛先近くを選んでしまうと不正解。standardかextendedかを先に判定する癖をつけておくと事故が減ります。

implicit deny anyとワイルドカードマスクの暗算

implicit deny anyとワイルドカードマスクの暗算

ACLの末尾には目に見えない「deny ip any any」が必ず付く。これがimplicit deny。試験では「permit文だけ書いた構成で、書いていない通信はどうなる?」と聞かれて「通る」を選んだら即アウト。書かれていないものは全部落ちます。

で、implicit denyはshow access-listsには表示されない。だから初学者が「カウンタが進んでないからACL効いてない」と勘違いしがち。実際は最後の行がカウントアップしないだけで、しっかり遮断されてます。

ワイルドカードマスクの30秒暗算法

サブネットマスクのビットを「反転」させたものがワイルドカードマスク。255.255.255.0 → 0.0.0.255、255.255.255.240 → 0.0.0.15。これだけ。覚え方は「ホスト部のビット数を10進に直したものが末尾にくる」。/24なら8bit分のホスト部=255、/28なら4bit分=15、/30なら2bit分=3。

プレフィックスサブネットマスクワイルドカードマスク
/24255.255.255.00.0.0.255
/26255.255.255.1920.0.0.63
/28255.255.255.2400.0.0.15
/30255.255.255.2520.0.0.3
/16255.255.0.00.0.255.255
単一ホスト255.255.255.2550.0.0.0(=hostキーワード)

ちなみに「any」は「0.0.0.0 255.255.255.255」と等価で、「host 192.168.1.10」は「192.168.1.10 0.0.0.0」と等価。試験ではこの言い換えを混ぜて出してくるので、両方読めるように。

CCNA頻出問題パターン3選|実機コマンド付きで解いてみる

CCNA頻出問題パターン3選|実機コマンド付きで解いてみる

パターン1: 特定セグメントだけVTY経由のSSHを許可する

「管理セグメント192.168.10.0/24からのSSHだけ許可」というシナリオ。これは送信元IPだけ見ればよいのでstandard ACLでもOKだけど、現場ではextended+ポート指定の方が安全。試験は問題文どおりにstandardで解く問題が多い。

R1(config)# access-list 10 permit 192.168.10.0 0.0.0.255
R1(config)# line vty 0 4
R1(config-line)# access-class 10 in
R1(config-line)# transport input ssh
パターン2: 営業セグメントから経理サーバへのHTTPだけ拒否
R1(config)# ip access-list extended BLOCK-HTTP
R1(config-ext-nacl)# deny tcp 192.168.20.0 0.0.0.255 host 10.10.10.50 eq 80
R1(config-ext-nacl)# permit ip any any
R1(config-ext-nacl)# exit
R1(config)# interface gi0/0
R1(config-if)# ip access-group BLOCK-HTTP in

ポイントは「permit ip any any」を末尾に書くこと。これを忘れるとimplicit denyで全通信が落ちて、教室や試験会場で「ACLかけたら全部繋がらなくなった」事案が発生する。設定後にpingが通らなくなったら、まずこの行が抜けてないか疑う。

パターン3: 名前付きACLで途中行を編集する

名前付きACLは行番号(sequence number)を指定して挿入・削除できるのが強み。CCNAでも問われます。番号付きACLだと末尾追加しかできないので、現場で名前付きが好まれる理由でもある。

R1# show ip access-lists BLOCK-HTTP
Extended IP access list BLOCK-HTTP
    10 deny tcp 192.168.20.0 0.0.0.255 host 10.10.10.50 eq www
    20 permit ip any any

R1(config)# ip access-list extended BLOCK-HTTP
R1(config-ext-nacl)# 15 deny tcp 192.168.20.0 0.0.0.255 host 10.10.10.50 eq 443
R1(config-ext-nacl)# end
R1# show ip access-lists BLOCK-HTTP
Extended IP access list BLOCK-HTTP
    10 deny tcp 192.168.20.0 0.0.0.255 host 10.10.10.50 eq www
    15 deny tcp 192.168.20.0 0.0.0.255 host 10.10.10.50 eq 443
    20 permit ip any any
⚠ 注意

番号付きACLは1行追加すると問答無用で末尾に追加されるので、途中に挟みたい時は一旦no access-list 100で全削除して書き直すしかない。本番運用中の機器で全削除は通信断のリスクが高いので、現場では名前付きで作るのが鉄則。試験でもこの違いはよく問われます。

show access-listsの読み方とトラブルシュート

show access-listsの読み方とトラブルシュート

設定が反映されているかは「show access-lists」と「show ip interface gi0/0 | include access list」のセットで確認する。前者でACLの中身、後者でI/Fへの適用状況を見る。試験では出力例を見せて「どのACLが何のI/Fにinかoutで適用されているか」を答えさせる問題が定番。

R1# show ip interface gi0/0 | include access list
  Outgoing access list is not set
  Inbound  access list is BLOCK-HTTP

R1# show access-lists
Extended IP access list BLOCK-HTTP
    10 deny tcp 192.168.20.0 0.0.0.255 host 10.10.10.50 eq www (47 matches)
    20 permit ip any any (1283 matches)

「(47 matches)」がカウンタ。マッチした回数なので、ここが0のままなら本当にトラフィックが通ってない可能性が高い。逆に47件マッチしている=想定通り遮断できている。クリアしたいときは「clear ip access-list counters BLOCK-HTTP」。

図2: ACLトラブル時の切り分けフロー

①番号/名前の確認

必須

②I/F適用方向(in/out)

最重要

③カウンタ確認

推奨

④implicit deny影響範囲

要点

症状よくある原因確認コマンド
全通信が落ちるimplicit denyに引っかかった(permit any忘れ)show access-lists
ACLは存在するが効かないI/Fに適用されていないshow ip interface | inc access list
想定外の通信を遮断ワイルドカードマスクの計算ミスshow running-config | sec access-list
in/outを取り違え適用方向がトラフィックと逆show ip interface gi0/0
💡 ポイント

実機検証中に「設定したのに効かない」となったら、9割はI/F適用忘れか方向ミス。私はこれをやらかすたびに「ip access-group XXX in」を声に出して確認するようにしました。地味ですが意外と効きます。

まとめ|ACL問題は「タイプ→配置→implicit deny」の順で考える

まとめ|ACL問題は「タイプ→配置→implicit deny」の順で考える

📋 まとめ

CCNAのACL問題は、①番号/条件からstandardかextendedかを判定 → ②standardは宛先近く・extendedは送信元近くの原則で配置を決める → ③implicit deny anyで弾かれていないか確認、の3ステップで解ける。ワイルドカードマスクはサブネットマスクの反転と覚えれば暗算可能。show access-listsとshow ip interfaceのセットで設定確認できれば本番でも怖くない。

よくある質問(FAQ)

Q. standard ACLの番号と extended ACLの番号、覚えにくいんですが…

私は「1〜99はstandard、100〜199はextended、その後の拡張領域もそれぞれ近い側」というざっくり覚え方で乗り切りました。1300〜1999もstandardの仲間、2000〜2699はextendedの仲間。番号の最初の桁で見当をつける感じです。

Q. ACLとはそもそも何のために使うものですか?

フィルタリング(通信制御)が一番有名な用途ですが、CCNAではNATやroute-mapの参照リストとして「対象IPを絞る」目的で使われる場面も問われます。「ACL=パケットを通す/落とすだけのもの」と思っていると、NATの問題でつまずきます。

Q. CCNA試験当日に時間がなくなった時、ACL問題は捨てるべき?

捨てるのはもったいない。standard/extendedの判定とimplicit denyの存在を覚えていれば、消去法で2択まで絞れる問題が多いです。配点も他の問題と変わらないので、最後の数分で取り返せる科目だと思います。

Q. 名前付きACLって試験で出ますか?

出ます。番号付きと名前付きの構文の違い、sequence numberを使った行の挿入、両者の編集制限の違いはどれも頻出。実機で一回手を動かすと一気に覚えやすくなるので、Packet Tracerでもいいので試してみてください。