ACL(AccessControlList)とは
ルータで通過するパケットをチェックし、許可された通信だけを転送するために使用されるもの。
ルータに送られてくる通信を許可するか拒否するか分けることをパケットフィルタリングという。
ワイルドカードマスク
ACLではフィルタリングの条件となる送信元や宛先を指定する際に、ワイルドカードマスクを使用する。
ACLの種類
標準ACL
パケットの送信元IPアドレスをチェックする。
番号付き標準ACLと名前付き標準ACLがある。
-
番号付き標準ACL
番号で識別される標準ACL。作成時に1~99、1300~1900の値を指定する。 -
名前付き標準ACL
名前で識別される標準ACL。作成時に名前を示す文字列を指定する。
拡張ACL
パケットの送信元IPアドレス、宛先IPアドレス、プロトコル番号、送信元ポート番号、宛先ポート番号をチェックする。
番号付き拡張ACLと名前付き拡張ACLがある。
-
番号付き拡張ACL
番号で識別される拡張ACL。作成時に100~199、2000~2699の値を指定する。 -
名前付き拡張ACL
名前で識別される拡張ACL。作成時に名前を示す文字列を指定する。
今回は標準ACLに焦点を当てて設定を行っていく
拡張ACLについてはこちら
標準ACLの設定例

この構成でネットワーク192.168.0.0から172.16.0.0の通信を制御する標準ACLの設定をしていく。
ACLのルール
- 設定を入力した順番に検索していく
ACLを作成する際、フィルタリングする条件を1行ずつ記述していく。
この設定をした順番にルータが検索するため、上に該当する行があった場合にそれより下にある設定を無視してしまう。
例えば、
Router1(config)#access-list 1 permit any
Router1(config)#access-list 1 deny 192.168.0.0 0.0.0.255
と打ってしまった場合、上から順番に適応されるため2行目に拒否のエントリがあっても気づかれずに通信してしまう。
- ACLの最後には自動で「すべて拒否(deny)」という行が必ず保存される
ACLのどの行にも該当しなかった通信は、最後の行にある暗黙のdenyに該当するため通信が拒否される。
例えば、
Router1(config)#access-list 1 deny 192.168.0.0 0.0.0.255
と打ってしまった場合、最後に暗黙のdenyが存在しているため、結果すべての通信を拒否するようになってしまう。
標準ACLの作成
Router1(config)#access-list 1 deny 192.168.0.0 0.0.0.255
Router1(config)#access-list 1 permit any
1行目で192.168.0.0からの通信を拒否
2行目でその他のすべての通信を許可する
ACLのルールにのっとった書き方をしないと思ったような動きをしないため注意
インターフェースへの適応
Router1(config)#interface giga0/0
Router1(config)#ip access-group 1 out
outとinや適応させるインターフェースを間違えたら想定外の動きになるため注意
同様のことを名前付き標準ACLで行った場合
Router1(config)#ip access-list standard TEST Router1(config-std-nacl)#deny 192.168.0.0 0.0.0.255 Router1(config-std-nacl)#permit any Router1(config-std-nacl)#exit Router1(config)#interface giga0/0 Router1(config-if)#ip access-group TEST out
ACLの設定はこれで終わり。
ACLの適用
ACLは作成後、各インターフェースにインバウンドとアウトバウンドそれぞれ1つずつACLを適用できる。
設定は、それぞれの標準ACLで最後に設定していた
ip access-group ACL番号またはACL名 inまたはout
で設定する。
標準ACLの確認
Router1#show access-lists 1
これでACL番号1の内容を確認できる。
ACLの削除
Router1(config)#no access-list 1
これでACL番号1を削除することができる。
参考
林口 裕志; 浦川 晃. シスコ技術者認定教科書 CCNA 完全合格テキスト&問題集[対応試験]200 -301. 株式会社 翔泳社.

