Reflexive ACLs



 ◆ 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 で設定可。



ACL - 時間ベースACL / ダイナミックACL / 再帰ACL / TCPインターセプト / CBAC / PACL VACL RACL

ネットワークエンジニアとして

Copyright (C) 2002-2019 ネットワークエンジニアとして All Rights Reserved.