◆ Reflexive ACL(再帰ACL)とは
リフレキシブACLとは、IPパケットを上位層のセッション情報に基づいて、戻りのトラフィックに対して
許可するACLのことです。リフレキシブACLは、ネットワーク内部から発生するIPトラフィックに対して
outbound で許可して「再帰」の準備をして、内部から発信された戻りのトラフィックのみを許可します。
下図では、Gi0/0 でリフレキシブACLを実装しています。Gi0/0 から発信されるトラフィックは許可して
評価対象となるようにそのACLエントリを「reflexive」とします。Gi0/0 に着信してくるトラフィックは、
発信する際に reflexive 対象としたトラフィックであるのかを「evaluate」します。※ reflexive = 再帰
リフレキシブACLの動作自体は、拡張ACLで指定できる「established」キーワードを使用した動作と類似
していますが、establishedキーワードの場合、TCPヘッダ内の「 ACKとRST 」だけを見ていることから
UDPトラフィックには対応していません。一方、リフレキシブACLはTCP、UDP、ICMPに対応しています。
ただし、ポート番号が変化するようなFTPでは適切に動作しないため、リフレキシブACLよりCBACが推奨。
◆ Reflexive ACL(再帰ACL)- コンフィグ設定
発信トラフィックを再帰させるアウトバウンド用のACLを定義します。reflect キーワードによって
再帰するトラフィックを指定します。一般的にアウトバウンドで作成するACLは「再帰するACL」です。
(config)# ip access-list extended name1
(config-ext-nacl)# permit protocol source destination reflect name timeout-seconds
先ほど作成した「再帰するACL」に対して「評価するACL」を定義します。戻りのトラフィックに対して
インバウンド用のACLを定義します。evaluateキーワードでは、reflect で指定した name を指定します。
(config)# ip access-list extended name2
(config-ext-nacl)# evaluate name
アウトバウンド用のACLを「out」、インバウンド用のACLを「in」でインターフェースに適用します。
(config)# interface interface-id
(config-if)# ip access-group name1 out
(config-if)# ip access-group name2 in
Ciscoで紹介されている設定例では、OUTもINもicmpを許可している例が多いので、それをそのまま紹介。
◆ リフレキシブACLのコンフィグ設定例
Cisco(config)# ip access-list extened OUTBOUND
Cisco(config-ext-nacl)# permit icmp any any
Cisco(config-ext-nacl)# permit tcp any any reflect TCPACL timeout 120
Cisco(config)# ip access-list extened INBOUND
Cisco(config-ext-nacl)# permit icmp any any
Cisco(config-ext-nacl)# evaluate TCPACL
Cisco(config)# interface GigabitEthernet0/0
Cisco(config-if)# ip access-group OUTBOUND out
Cisco(config-if)# ip access-group INBOUND in
|
※ 再帰ACLでは個々のACLにタイムアウト値を定義できますが、全体に対するタイムアウトを ip reflexive-list timeout で設定可。
|