Case Study:Fundamental
Reflexive ACL于Cisco IOS Release 11.3引入,且只支持扩展的命名IP ACL.
Reflexive ACL用于在router上基于IP上层协议-"session"进行网络流量过滤。
它是普通的带established后缀的ACL的一种扩展。
用extablished参数只能实现对TCP会话的过滤。它只是简单的匹配TCP header内的ACK/RST bits来查看会话是否结束(ACK/RST bits指示此包不是一个初始化包)。且它不能对相应的源/目的地址进行匹配检测。

What Is a Reflexive Access List:
1>reflexive acl与其它的acl相似。
2>reflexive acl只包括临时的ACEs,这些临时的ACEs在一个IP会话初始时动态的建立,并且在会话结束时被移除。
3>reflexive acl不是自己直接应用到相应的接口,而是嵌入到一个extended named IP acl中,由它直接应用到接口。
4>reflexive acl没有一般acl中最后的隐含deny any语句,因为它是嵌入到其它acl中的。

About Reflexive Access Lists:
1>reflexive acl提供基于上层session信息过滤IP数据包的功能。
它允许permit内网产生的初始IP流会话,但deny外网产生的初始IP流会话。
2>reflexive acl只能用extended named acl来定义。
3>可以将relfexive acl与其它standard或extended acl共同使用。

Benefits of Reflexive Access Lists:
reflexive acl提供了一种预防spoofing和certain denial-of-service***的安全措施。


Where to Configure Reflexive Access Lists:
一般在网络边缘router(firewall routers)上配置reflexive acl。


Case Study:How Reflexive Access Lists Work
1>当内网的一个设备初始化一个IP上层会话(UDP/TCP)到外网时,reflexive acl被触发。
2>当reflexive acl被触发时,它会产生一个新的,临时的ACE。这个条目会permit那些回到你网络的同一会话的流量。
临时的ACEs的特征:
(1)所有的这些条目都是permit操作
(2)IP上层协议与外出流量使用的相同
(3)源/目的地址与外出流量使用的相反
(4)源/目的port与外出流量使用的port相反。
(5)当接口接收到会话的最后一个包时,这个临时的ACE就会被过期移除。
(6)在一定时间内(timeout),没 有检测到任何属于这个会话的流量,则这个临时的ACE被过期移除。
2>目的地的数据流返回时,router将响应数据流与临时的ACE比较,匹配则允许进入内网,否则丢弃。

When the Session Ends:
For TCP:
1>在会话结束时移除临时的ACE。
如TCP会话在检测到FIN bits后5秒,就移除该临时ACE。
2>在一定时间内(timeout)没有检测到任何该ACE指定的会话,则该临时ACE就被移除。
For UDP:
由于UDP这些协议是无连接的,所以packets内没有会话tracking信息,所以只能根据timeout来移除相应的临时ACE。

Restrictions on Using Reflexive Access Lists:
Reflexive Access Lists不支持那些在同一会话中变更port number的应用.如:FTP
所以在使用FTP时只能使用Passive FTP模式.


Case Study:Command Syntax
!
interface  
 ip access-group {name} {in|out}
!
ip access-list extended name
 permit protocol any any reflect {name} [timeoutseconds]
ip access-list extended name
 evaluate name
!
ip reflexive-list timeout {seconds}
!

show access-list


Case Study:Prework-Before You Configure Reflexive Access Lists
Choosing an Interface: Internal or External:
Reflexive acl经常应用于两种拓扑结构:
1> simple topology
一般将reflexive acl配置于external interface
即:所有内网都限制访问
2>DMZ topology
一般将reflxeive acl配置于internal interface
即:允许部分内网被外网访问



Case Study:Outbound & Inbound
配置中和概念中的这些inbound与outbound可能有些迷惑,其实这些都是以不同的参考点来说的:
配置reflexive acl在internal interface上:
outbound为流量进入到配置了reflect acl的接口,ip access-group {name} in
inboud为返回的流量到达配置了reflect acl的接口,ip access-group {name} out
配置reflexive acl在external interface上:
outbound为流量进入到配置了reflect acl的接口,ip access-group {name} out
inboud为返回的流量到达配置了reflect acl的接口,ip access-group {name} in



Case Study:Configuration Example
RTA:
interface Serial1/1
 ip address 192.168.1.5 255.255.255.252
 ip access-group s1 in
 ip access-group s2 out
!
ip access-list extended s1
 permit ip 192.168.1.4 0.0.0.3 192.168.1.0 0.0.0.3 reflect ss
 permit ip any any
ip access-list extended s2
 evaluate ss
!
----------------------------------------------------------------------------
rtc#ping 192.168.1.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 44/77/140 ms
-----------------------------------------------------------------------------
rtb#ping 192.168.1.6

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.6, timeout is 2 seconds:
U.U.U
Success rate is 0 percent (0/5)
rtb#ping 192.168.1.5

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.5, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 32/45/80 ms
------------------------------------------------------------------------------
rta#sh access-lists
Extended IP access list s1
    10 permit ip 192.168.1.4 0.0.0.3 192.168.1.0 0.0.0.3 reflect ss (51 matches)
    20 permit ip any any (35 matches)
Extended IP access list s2
    10 evaluate ss
Reflexive IP access list ss
     permit icmp host 192.168.1.2 host 192.168.1.6  (59 matches) (time left 297)

注:
reflexive acl是动态触发建立的,如果没有相应的流量经过,show access-list是不显示这个空的reflexive acl的。


Case Study:反向访问列表 的实际应用(转自泰克)

有5个VLAN,分别为 管理(63)、办公(48)、业务(49)、财务(50)、家庭(51)。
要求: 管理可以访问其它,而其它不能访问管理,并且其它VLAN之间不能互相访问!
其它的应用不受影响,例如通过上连进行INTERNET的访问

方法一: 只在管理VLAN的接口上配置,其它VLAN接口不用配置。
在入方向放置reflect
ip access-list extended infilter
permit ip any any reflect cciepass
!
在出方向放置evaluate
ip access-list extended outfilter
evaluate cciepass
deny ip 10.54.48.0 0.0.0.255 any
deny ip 10.54.49.0.0.0.0.255 any
deny ip 10.54.50.0 0.0.0.255 any
deny ip 10.54.51.0 0.0.0.255 any
permit ip any any
!应用到管理接口
int vlan 63
ip access-group infilter in
ip access-group outfilter out

方法二:在管理VLAN接口上不放置任何访问列表,而是在其它VLAN接口都放。
以办公VLAN为例:
在出方向放置reflect
ip access-list extended outfilter
permit ip any any reflect cciepass
!
在入方向放置evaluate
ip access-list extended infilter
deny ip 10.54.48.0 0.0.0.255 10.54.49.0 0.0.0.255
deny ip 10.54.48.0 0.0.0.255 10.54.50.0 0.0.0.255
deny ip 10.54.48.0 0.0.0.255 10.54.51.0 0.0.0.255
deny ip 10.54.48.0 0.0.0.255 10.54.63.0 0.0.0.255
evaluate cciepass
permit ip any any
!
应用到办公VLAN接口:
int vlan 48
ip access-group infilter in
ip access-group outfilter out
总结:
1) Reflect放置在允许的方向上(可进可出)
2) 放在管理VLAN上配置简单,但是不如放在所有其它VLAN上直接。
3) 如果在内网口上放置: 在入上设置Reflect
如果在外网口上放置: 在出口上放置Reflect

LAN WAN
-
inbound outbound


4)reflect不对本地路由器上的数据包跟踪,所以对待进入的数据包时注意,要允许一些数据流进入