こんにちは、インフラエンジニアのryuです。
この記事は、CCNAの勉強をしていて、ACL(アクセスコントロールリスト)の問題になると正解率が下がってしまう人に向けて書いています。
ACLは、コマンドの形そのものはそれほど難しくありません。それでも問題で間違えるのは、ワイルドカードマスクの計算と、どのインターフェースにどの向きで適用するかの2つがあいまいなまま覚えているからです。
そこでこの記事では、ACLを読むときの順番を先に整理してから、オリジナルの練習問題を8問解いてもらいます。
CCNA全体の勉強の進め方は、CCNAの勉強方法の記事にまとめています。ワイルドカードマスクはサブネットマスクの計算と考え方がつながっているので、計算に自信がない人はCCNAのサブネット計算の練習問題もあわせて見てください。
CCNAでACLはどこまで問われる?¶
まずは試験の範囲を確認しておきます。CCNA(200-301 v1.1)の出題範囲では、ACLは「5.0 Security Fundamentals」の分野に入っていて、この分野は試験全体の15%です。
項目としては「5.6 Configure and verify access control lists」と書かれています。つまり、ACLの意味を知っているだけでなく、設定できて、設定が正しいかを確認できることが求められています。
| 試験で見られるところ | 具体的な内容 |
|---|---|
| 設定(Configure) | 標準ACL・拡張ACLの書き方、番号付きと名前付き、インターフェースへの適用 |
| 確認(Verify) | show access-lists や show ip interface の出力から、どの行に一致したか、どこに適用されているかを読む |
なお、現行の200-301 v1.1の最終受験日は2027年2月2日で、2027年2月3日からはv2.0に切り替わります。v2.0では分野の名前と配分が変わると案内されているので、受験日が決まったらCiscoの公式ページで出題範囲をもう一度確認しておきましょう。
ACLを読むときの4つのルールとは?¶
ACLの問題で迷ったら、次の4つのルールに当てはめて考えます。どれも基本ですが、問題文の中でどれか1つを見落とすと答えがずれます。
| ルール | 内容 |
|---|---|
| 上から順に照合する | ACLの行は上から1行ずつ比べられ、最初に一致した行の permit か deny で処理が決まる |
| 一致したらそこで終わり | 一致した行より下の行は見られない。行の順番を入れ替えると結果が変わる |
| 最後に暗黙の deny がある | どの行にも一致しなかったパケットは破棄される。この行は設定にも表示にも出てこない |
| 1つのインターフェース・1つの向きに1つ | 同じインターフェースの同じ向き(in か out)に、IPv4のACLは1つしか適用できない |
暗黙の deny は目に見えないので、問題で特に見落としやすいところです。permit の行が1つも無いACLを適用すると、そのインターフェースのその向きの通信はすべて止まります。
この4つの中でも、最初に一致した行で処理が決まるというルールは、ほとんどの問題で使います。ACLの問題は、上から1行ずつ読んで、どの行で止まるかを確かめるだけで解けることが多いです。
ワイルドカードマスクの読み方¶
ワイルドカードマスクは、アドレスのどのビットを比べるかを指定する値です。0のビットは一致していなければならず、1のビットは何でもよい、という意味になります。
サブネットマスクと0と1の意味が逆になっている、と覚えておくと分かりやすいです。よく使う値は次のとおりです。
| 範囲 | サブネットマスク | ワイルドカードマスク |
|---|---|---|
| 1台だけ(/32) | 255.255.255.255 |
0.0.0.0(host と書いても同じ) |
| /30 | 255.255.255.252 |
0.0.0.3 |
| /26 | 255.255.255.192 |
0.0.0.63 |
| /24 | 255.255.255.0 |
0.0.0.255 |
| /16 | 255.255.0.0 |
0.0.255.255 |
| すべて | なし | 255.255.255.255(any と書いても同じ) |
計算するときは、255.255.255.255 からサブネットマスクを1オクテットずつ引きます。たとえば /27 なら、最後のオクテットは 255 - 224 = 31 なので、ワイルドカードマスクは 0.0.0.31 です。
標準ACLと拡張ACLの違い¶
ACLには標準と拡張の2種類があり、見られる情報と番号の範囲が違います。
| 種類 | 見られる情報 | 番号の範囲 | 置く場所の目安 |
|---|---|---|---|
| 標準ACL | 送信元IPアドレスだけ | 1〜99、1300〜1999 | 宛先に近いところ |
| 拡張ACL | 送信元・宛先のIPアドレス、プロトコル、ポート番号 | 100〜199、2000〜2699 | 送信元に近いところ |
標準ACLは送信元しか見られないので、送信元の近くに置くと、ほかの宛先への通信まで止めてしまいます。だから宛先の近くに置きます。
拡張ACLは宛先やポートまで指定できるので、送信元の近くで止めれば、不要なパケットがネットワークの中を流れずに済みます。この置き場所の考え方は、選択肢の問題でよく出てきます。
ACLの設定と確認のコマンドを見てみよう¶
問題に入る前に、設定と確認のコマンドを1つの例で見ておきます。
ここでは、192.168.10.0/24 のPCのうち 192.168.10.5 だけを止めて、残りは通す標準ACLを作り、ルーターの G0/1 に出ていく向きで適用します。
R1(config)# access-list 10 deny host 192.168.10.5
R1(config)# access-list 10 permit 192.168.10.0 0.0.0.255
R1(config)# interface GigabitEthernet0/1
R1(config-if)# ip access-group 10 out
ip access-group の最後の in と out は、ルーターから見た向きです。in はそのインターフェースにパケットが入ってくるとき、out はそのインターフェースからパケットが出ていくときに照合されます。
名前付きACLでも同じことができます。名前付きにすると、行に番号(シーケンス番号)がつくので、あとから行を途中に入れたり消したりしやすくなります。
R1(config)# ip access-list extended WEB-ONLY
R1(config-ext-nacl)# permit tcp 192.168.10.0 0.0.0.255 host 10.0.0.10 eq 80
R1(config-ext-nacl)# permit tcp 192.168.10.0 0.0.0.255 host 10.0.0.10 eq 443
R1(config-ext-nacl)# exit
R1(config)# interface GigabitEthernet0/0
R1(config-if)# ip access-group WEB-ONLY in
この拡張ACLは、192.168.10.0/24 からWebサーバー 10.0.0.10 へのHTTPとHTTPSだけを通します。それ以外の通信は、最後の暗黙の deny で止まります。
設定が終わったら、次の2つのコマンドで確認します。show access-lists ではACLの中身と、各行に一致したパケットの数を見られます。show ip interface では、そのインターフェースに inbound と outbound のどちらでどのACLが適用されているかを見られます。
ルーターやスイッチの基本のコマンドを見直したい人は、Ciscoルーターのコマンド一覧も参考にしてください。
CCNAのACLの練習問題8問¶
ここからはオリジナルの練習問題です。正解と解説は、それぞれの問題のすぐ下の引用ブロックにまとめています。先に自分で答えを決めてから読んでください。
問題1:ワイルドカードマスクの計算¶
172.16.32.0/20 のネットワーク全体に一致させたいとき、ACLで指定するワイルドカードマスクはどれですか。
- A.
0.0.15.255 - B.
0.0.31.255 - C.
255.255.240.0 - D.
0.0.16.255
正解:A /20 のサブネットマスクは
255.255.240.0です。255.255.255.255から1オクテットずつ引くと、0.0.15.255になります。C はサブネットマスクそのもので、ワイルドカードマスクではありません。
問題2:最初に一致した行で決まる¶
次のACLを適用したインターフェースに、送信元 192.168.1.20 のパケットが届きました。このパケットはどうなりますか。
access-list 20 permit 192.168.1.0 0.0.0.255
access-list 20 deny host 192.168.1.20
- A. 1行目に一致して許可される
- B. 2行目に一致して破棄される
- C. 両方に一致するので破棄される
- D. 暗黙の deny で破棄される
正解:A ACLは上から照合され、最初に一致した行で処理が決まります。
192.168.1.20は1行目の範囲に入るので、そこで許可されます。2行目は見られません。192.168.1.20だけを止めたいなら、deny の行を先に書く必要があります。
問題3:暗黙の deny¶
次のACLだけを、あるインターフェースの in に適用しました。送信元 10.1.1.1 のパケットはどうなりますか。
access-list 30 deny 10.2.0.0 0.0.255.255
- A. どの行にも一致しないので許可される
- B. 暗黙の deny で破棄される
- C. 標準ACLなので宛先を見て判断される
- D. 送信元が 10.0.0.0/8 なので1行目に一致して破棄される
正解:B
10.1.1.1は10.2.0.0/16の範囲に入らないので、1行目には一致しません。どの行にも一致しないパケットは、最後の暗黙の deny で破棄されます。deny だけのACLを作ると、すべての通信が止まるので注意してください。
問題4:番号から種類を見分ける¶
次のうち、拡張IP ACLとして使える番号はどれですか。
- A. 99
- B. 150
- C. 1500
- D. 1999
正解:B 拡張IP ACLの番号は 100〜199 と 2000〜2699 です。99 と 1500 と 1999 は、標準IP ACLの範囲(1〜99、1300〜1999)に入ります。
問題5:標準ACLを置く場所¶
PC-A(192.168.1.10)からサーバー(192.168.3.10)への通信だけを止めたいです。PC-Aはほかのネットワークとは通信できるようにしておきたいので、送信元だけを見る標準ACLを使います。どこに適用するのがよいですか。
- A. PC-Aがつながるルーターの、PC-A側インターフェースの in
- B. サーバーがつながるルーターの、サーバー側インターフェースの out
- C. どこに置いても結果は同じ
- D. 標準ACLでは通信を止められない
正解:B 標準ACLは送信元しか見られないので、PC-Aの近くに置くと、PC-Aからほかのネットワークへの通信まで止まってしまいます。宛先のサーバーに近いインターフェースの out に置けば、サーバーへ向かう通信だけを止められます。
問題6:拡張ACLの読み方¶
次の行について、正しい説明はどれですか。
access-list 110 permit tcp any host 10.0.0.10 eq 22
- A.
10.0.0.10から外へ出ていくSSHを許可する - B. 送信元を問わず、
10.0.0.10の宛先ポート22への TCP を許可する - C.
10.0.0.10へのすべての TCP を許可する - D. 送信元ポートが22のパケットだけを許可する
正解:B 拡張ACLは、プロトコル、送信元、宛先の順に書きます。この行では送信元が
any、宛先がhost 10.0.0.10で、eq 22は宛先側に書かれているので宛先ポートが22という意味です。
問題7:in と out¶
ルーターの G0/0 にはLAN 192.168.10.0/24 が、G0/1 にはWANがつながっています。LANから入ってくるパケットを、ルーティングする前にチェックしたいです。正しい設定はどれですか。
- A.
G0/0でip access-group 100 in - B.
G0/0でip access-group 100 out - C.
G0/1でip access-group 100 in - D. グローバル設定モードで
ip access-group 100
正解:A LANから届くパケットは、
G0/0にとっては入ってくるパケットです。そこでinを指定すれば、ルーティングの前にACLで照合されます。G0/1のoutでもLANからWANへの通信は止められますが、ルーティングしたあとに照合されます。
問題8:確認コマンド¶
G0/1 に適用されているACLの名前と向きを確認したいです。最も適したコマンドはどれですか。
- A.
show access-lists - B.
show ip interface GigabitEthernet0/1 - C.
show ip route - D.
show vlan brief
正解:B
show ip interfaceの出力には、そのインターフェースに適用されている inbound と outbound のACLが表示されます。show access-listsはACLの中身と一致した数を見るコマンドで、どこに適用されているかは分かりません。
ACLの問題で間違えたときの見直し方¶
8問のうち間違えた問題があれば、どのルールで迷ったのかを確認しておきましょう。次の表に当てはめると、見直す場所がはっきりします。
| 間違えた問題 | 見直すところ |
|---|---|
| 問題1 | ワイルドカードマスクの計算。/20 や /27 のように、オクテットの途中で区切れる値を何問か計算する |
| 問題2・3 | 上から照合するルールと暗黙の deny。ACLを上から1行ずつ読む練習をする |
| 問題4 | 標準と拡張の番号の範囲。表を1回書き出して覚える |
| 問題5 | 標準は宛先の近く、拡張は送信元の近く。理由まで説明できるようにする |
| 問題6 | 拡張ACLの書く順番(プロトコル → 送信元 → 宛先 → ポート) |
| 問題7・8 | in と out の向き、show ip interface で適用場所を確認する方法 |
ACLは、実際にパケットを流して確かめると理解が早い分野です。
今日やる練習とInfraAcademyで続ける方法¶
今日の練習として、次の3つをやってみてください。どれも紙と自分のパソコンだけでできます。
- /19、/25、/28 のワイルドカードマスクを計算して、
255.255.255.255から引いた結果と一致するか確かめる - 問題2のACLを、
192.168.1.20だけ止めて残りは通すように、行の順番を直して書き直す - 問題6の行を、送信元を
192.168.10.0/24に限定する形に書き換える
実際にルーターに設定して、ping で通るか通らないかを確かめたい人は、CCNAのハンズオン課題の記事にACLを使った構築課題があります。
InfraAcademy のネットワークの講座では、講座の中のシミュレーターでルーターやスイッチを設定して、ping で疎通を確認できます。ネットワークの学習の順番はネットワークのロードマップで確認できます。
問題演習を続けたい人は、トップページのInfraAcademy の資格模擬問題から「CCNA模擬試験200問」を解けます。Security Fundamentalsの分野で間違えた問題があれば、この記事の4つのルールに戻って、どこで迷ったのかを確認してみてください。
経路の選び方の問題は、CCNAのルーティングの練習問題で別にまとめています。
まとめ¶
CCNAのACLの問題で、押さえておきたいところを振り返ります。
- ACLは上から照合され、最初に一致した行で permit か deny が決まる
- どの行にも一致しないパケットは、最後の暗黙の deny で破棄される
- ワイルドカードマスクは
255.255.255.255からサブネットマスクを引いて求める - 標準ACLは 1〜99・1300〜1999 で送信元だけを見る。宛先の近くに置く
- 拡張ACLは 100〜199・2000〜2699 で宛先やポートも見る。送信元の近くに置く
ip access-groupの in と out は、ルーターのインターフェースから見た向き
ACLの問題は、行を上から読み、ワイルドカードマスクで範囲を確かめるという2つの手順で、ほとんど解けます。
間違えた問題は、正解を覚えるだけでなく、どのルールで判断を誤ったのかを言えるようにしておきましょう。合格に向けて、一緒に進んでいきましょう。



