コンテンツにスキップ

標準ACLと拡張ACL

ACL はパケットや経路制御の条件として使うリストである。標準ACLは主に送信元を見て、拡張ACLは送信元、宛先、プロトコル、ポートまで見る。

ACL は Access Control List の略である。インターフェースに適用すれば通信の permit / deny になる。route-map から参照すれば、処理対象を選ぶ条件になる。


標準ACLは、IPv4パケットの送信元アドレスを条件にする。

ip access-list standard MGMT-SOURCE
permit 192.168.10.0 0.0.0.255
deny any log
exit

標準ACLは宛先やポートを見ない。そのため、インターフェースACLとして使う場合は、意図しない通信までまとめて落とさないように注意する。


拡張ACLは、送信元、宛先、プロトコル、ポートなどを条件にできる。

ip access-list extended INSIDE-TO-SERVER
permit tcp 192.168.10.0 0.0.0.255 host 192.168.20.10 eq 443
permit icmp 192.168.10.0 0.0.0.255 host 192.168.20.10
deny ip any any log
exit

拡張ACLは通信の内容をより細かく指定できる。インターフェースのパケットフィルタやPBRの対象選択に向いている。


Cisco IOSでは、ACLは名前でも番号でも作れる。

種類 代表的な番号範囲 named形式
標準ACL 1-99, 1300-1999 ip access-list standard NAME
拡張ACL 100-199, 2000-2699 ip access-list extended NAME

named ACL は名前で用途を表しやすく、既存エントリの編集もしやすい。学習用でも運用用でも、基本は named ACL を使う方が読みやすい。


ACL は上から順に評価され、最初に一致した行で処理が決まる。

ip access-list extended WEB-ONLY
deny tcp any any eq 23
permit tcp 192.168.10.0 0.0.0.255 any eq 443
deny ip any any log
exit

最後には暗黙の deny がある。明示的な deny ip any any log を置くと、何が落ちているか確認しやすい。


インターフェースACLは ip access-group NAME in または out で適用する。

方向 評価されるタイミング
in パケットがインターフェースへ入った直後
out ルーティング後、パケットがインターフェースから出る直前

拡張ACLは、不要なパケットを早く落とせるように送信元に近い場所へ置くことが多い。標準ACLは宛先を見られないため、置き場所を誤ると広く落としすぎる。


route-map で ACL を参照する場合、ACL の permit は「route-map の match 対象にする」という意味になる。

ip access-list extended PBR-TARGET
permit ip 192.168.10.0 0.0.0.255 host 203.0.113.10
exit
route-map PBR permit 10
match ip address PBR-TARGET
set ip next-hop 192.0.2.1
exit

この場合、ACL の permit はパケットをその場で通すという意味ではなく、route-map の条件に一致させるための permit である。