在实际校园网络环境中,各种上层访问应用,归根结底是通过PC和服务器之间的报文交互进行的,而报文则是通过交换机,路由器等各种网络设备进行传输的。随着网络的普及,网络安全问题日益突出,如各种针对交换机的恶意攻击、病毒肆虐等等,对正常的网络通讯造成很大影响。以上种种原因使得需要对网络中的数据流进行监控、控制,确保网络运行安全,或将安全风险降低到最低程度。
ACL技术分析
ACL根据使用方式的不同主要分为两大类型:安全ACL和QoS ACL。本文主要介绍安全ACL。
安全ACL主要分为两大类型:基于接口的ACL和基于VLAN的ACL。
基于接口的ACL,顾名思义,ACL的运用对象是接口,这里的端口包含的种类很多,主要分为二层接口和三层接口。运用于二层接口的ACL又被称为Port ACL或基于二层接口的ACL,运用于三层接口的ACL又称为基于三层接口的ACL。二层接口主要包括Access口,Trunk口,L2 AP口。三层接口主要包括Routed Port,SVI口,L3 AP口。不同层次的交换机所支持的接口类型范围不同。
基于VLAN的ACL,ACL的运用对象是VLAN,又称为VACL。简单的说就是如果一个VLAN运用上一个ACL,当有报文进入或者离开这个VLAN时,就要受到该ACL的过滤。下文详细介绍原理。
安全ACL种类
ACL的主要功能就是过滤报文,那ACL是根据什么来区分哪些报文需要过滤,哪些不需要的呢?就是根据报文中的特定信息。这些特定信息一般是报文中的IP,MAC,二层协议类型,三层协议类型,TOS,VID等等。
根据可以匹配的信息的不同,ACL有以下6种类型:IP 标准ACL,IP 扩展ACL,MAC 扩展ACL,EXPERT(专家级) ACL,用户自定义ACL(ACL80),IPV6 ACL(过滤IPV6报文)。
ACL过滤报文原理
无论是基于端口的ACL,还是基于VLAN的ACL,其工作原理相同。
ACL是由一系列ACE组成,每个ACE都有一个唯一的序列号,代表它的优先级,当交换机收到一报文,进行解析后,就按照ACE的优先级逐一匹配,若报文内容和某个ACE中的内容匹配,则按照相应的动作处理,若不符合,则匹配下一条ACE,直到匹配到合适的ACE。若报文符合某个ACE定义的内容,则报文不再匹配这条ACE之后的所有ACE。请看以下ACL:
ip access-list extended example
10 deny ip host 192.168.1.1 any
20 permit ip host 192.168.1.1 any
这条ACL具有两个ACE,但这两个ACE对同一种报文的动作却是相反的。同样是针对源IP是192.168.1.1的IP报文,一条是允许转发,另一条是过滤该类型报文。这两条ACE唯一的区别就是它们的优先级。
当交换机收到源IP是192.168.1.1的IP报文时,ACL按照ACE的优先级进行匹配,此时先匹配序列号为10的ACE,发现该报文的内容可以匹配ACE的内容,源IP为192.168.1.1,此时查看动作,为deny,所以该报文被过滤,不再进行匹配,所以序列号为20的ACE没有对该报文进行匹配。
当交换机又收到源IP是1.1.1.1的IP报文时,ACL还是按照ACE的优先级进行匹配,先匹配序列号为10的ACE,发现报文内容和ACE中的不符合,按照原理,查看下一条ACE,发现内容还是不匹配,但此时ACL中已没有ACE了,怎么办?这里要注意,当应用一个ACL时,交换机会自动在ACL的末尾加上一条丢弃所有报文的ACE,而且该ACE优先级最低,是最后才匹配的,这样也提高了安全性,因此如图所示的ACL,最后还有这样一条ACE:deny ip any any,且优先级最低,因此此时交换机收到的源IP为1.1.1.1的报文,最后匹配这条ACE,内容可以匹配,因为该ACE针对所有的IP报文,此时查看动作是deny,所以该报文被丢弃。
由于ACE是按照优先级匹配的,此时添加一条序列号小于10的ACE。
S8600(config)#ip access-list extended example
S8600(config-ext-nacl)#1 permit ip any any
S8600(config-ext-nacl)#end
S8600#show access-lists
ip access-list extended example
1 permit ip any any
10 deny ip host 192.168.1.1 any
20 permit ip host 192.168.1.1 any
动态添加了一条序列号为1的ACE:permit ip any any,所以当交换机收到任意IP报文时,由于该ACE的优先级最高,最优先匹配,所以所有IP报文都允许转发,而不会去匹配后面两条ACE。
ACE之后都可以匹配一个时间戳,而后ACL会根据系统的时钟来确认该ACE是否能生效,如果该ACE的时间戳中规定的时间和系统时钟不符合,则该ACE就不生效,也就是不进行匹配,如果相符,则进行匹配,匹配时也是按照优先级关系进行,原理相同。如下所示:
S8600_V10.3#show clock
Clock: 2008-4-22 9:38:2
S8600_V10.3#show time-range
time-range entry: week_day (active)
periodic Weekdays 9:00 to 18:00
time-range entry: week_end (inactive)
periodic Sunday 9:00 to 18:00
S8600_V10.3#show access-lists
ip access-list extended example
10 permit ip host 1.1.1.1 any time-range week_day (active)
20 deny ip any host 2.2.2.2 time-range week_end (inactive)
如上所示,ACE:permit ip host 1.1.1.1 any所对应的时间戳week_day和系统时间相符,则该ACE生效,show信息显示状态为:active,而ACE:deny ip any host 2.2.2.2所对应时间戳week_end 和系统时间不符合,则不生效,show信息显示状态为:inactive,运用时该ACE就不参与过滤报文。
特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。