標準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 logexit標準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 logexit拡張ACLは通信の内容をより細かく指定できる。インターフェースのパケットフィルタやPBRの対象選択に向いている。
named ACLとnumbered ACL
Section titled “named ACLとnumbered ACL”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 logexit最後には暗黙の deny がある。明示的な deny ip any any log を置くと、何が落ちているか確認しやすい。
inとout
Section titled “inとout”インターフェースACLは ip access-group NAME in または out で適用する。
| 方向 | 評価されるタイミング |
|---|---|
in |
パケットがインターフェースへ入った直後 |
out |
ルーティング後、パケットがインターフェースから出る直前 |
拡張ACLは、不要なパケットを早く落とせるように送信元に近い場所へ置くことが多い。標準ACLは宛先を見られないため、置き場所を誤ると広く落としすぎる。
route-mapで使うACL
Section titled “route-mapで使う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.10exit
route-map PBR permit 10 match ip address PBR-TARGET set ip next-hop 192.0.2.1exitこの場合、ACL の permit はパケットをその場で通すという意味ではなく、route-map の条件に一致させるための permit である。