一、题目
关于访间控制列表编号与类型的对应关系,下面描述正确的是()。
A. 基本的访问控制列表编号范围是1000-2999
B. 二层的访问控制列表编号范围是4000-4999
C. 高级的访间控制列表编号范围是3000-4000
D. 基于接口的访问控制列表编号范围是1000-2000
二、答案
B
三、解析
接口ACL
编号范围是1000~1999,即支持1000个接口ACL。
主要根据接收报文的入接口定义过滤规则。
2.基本ACL
编号范围是2000~2999,即支持1000个基本ACL。
主要根据报文的源地址定义过滤规则。
3.高级ACL
数字型高级ACL的编号范围是3000~3999,即支持1000个数字型高级ACL。
命名型高级ACL的编号范围是42768~75535,即支持32768个命名型高级ACL。
主要根据报文的源或目的地址、协议类型、源或目的端口号定义过滤规则。
4.基于以太帧头的ACL
编号范围是4000~4999,即支持1000个基于以太帧头的ACL。
主要根据报文的源或者目的MAC地址、以太帧协议类型定义过滤规则。
5.基于MPLS的ACL
编号范围是10000~10999,即支持1000个基于MPLS的ACL。
主要根据MPLS报文的Exp值、Label值、TTL值定义过滤规则。
6.用户ACL
编号范围是6000~9999
ACL6分类:
1. 接口ACL6
编号范围是1000~1999,即支持1000个接口ACL6。
主要根据接收报文的入接口定义过滤规则。
2. 基本ACL6
编号范围是2000~2999,即支持1000个基本ACL6。
主要根据报文的源地址定义过滤规则。
3.高级ACL6
数字型高级ACL6的编号范围是3000~3999,即支持1000个数字型高级ACL6。
命名型高级ACL6的编号范围是42768~75535,即支持32768个命名型高级ACL6。
主要根据报文的源或目的地址、协议类型、源或目的端口号定义过滤规则。
四、扩展–ACL
访问控制列表
随着网络的飞速发展,网络安全和网络服务质量问题日益突出。例如:企业重要服务器资源被随意访问,企业机密信息容易泄露,造成安全隐患。网络带宽被各类业务随意挤占,服务质量要求最高的语音、视频业务的带宽得不到保障,造成用户体验差。以上这些问题都对正常的网络通信造成了很大的影响。因此,提高网络安全性服务质量迫在眉睫。访问控制列表(ACL)在这种情况下应运而生。
ACL的基本原理
ACL本质上是一种报文过滤器。设备基于规则进行报文匹配,根据ACL的处理策略来允许或阻止该报文通过。ACL由一条或多条规则组成的集合。所谓规则,是指描述报文匹配条件的判断语句,这些条件可以是报文的源地址、目的地址、端口号等。
ACL配置完成后,必须应用在业务模块中才能生效,可以用于过滤流量、匹配流量等应用,根据不同的需求实施在接口、Telnet服务、路由等模块中。
ACL的组成
一条ACL策略的结构组成,如图所示。
ACL名称:通过名称来标识ACL,更加方便记忆。
ACL编号:用于标识ACL,可以单独使用数字编号,表明该ACL是数字型。
规则:即描述报文匹配条件的判断语句。
- 规则编号:用于标识ACL规则。可以自行配置规则编号,也可以由系统自动分配。一旦匹配上一条规则即停止匹配。
- 动作:报文处理动作,包括permit/deny两种,表示允许/拒绝。
- 匹配项:ACL定义了极其丰富的匹配项。包括IP地址、MAC地址、端口等都可以作为匹配项。
ACL的匹配机制
如图所示,从整个ACL匹配流程可以看出,报文与ACL规则匹配后,会产生 “匹配”或者“不匹配”两个结果。匹配(命中规则)规则后,则执行该规则后的动作,包括“permit”或者“deny”。 不匹配(未命中规则),则继续往下遍历其他规则,直至匹配或完全不匹配则执行默认动作。
对于规则之间存在重复或矛盾的情形,报文的匹配结果与ACL规则匹配顺序是息息相关的,包含以下两种匹配顺序:
- 配置顺序
按照ACL规则编号从小到大的顺序进行报文匹配,编号越小越容易被匹配。后插入的规则,如果你指定的规则编号更小,那么这条规则可能会被先匹配上。
- 自动排序
是指系统使用“深度优先”的原则,将规则按照精确度从高到底进行排序,系统按照精确度从高到低的顺序进行报文匹配。
注:在自动排序的ACL中配置规则,不允许自行指定规则编号。系统能自动识别出该规则在这条ACL中对应的优先级,并为其分配一个适当的规则编号。
例如,在自动排序模式下的ACL 3010中,存在以下两条规则。
acl number 3010 match-order auto rule 5 permit ip destination 10.1.1.0 0.0.0.255 rule 10 deny ip destination 10.1.1.0 0.0.255.255 |
如果在ACL 3010中插入rule deny ip destination 10.1.1.1 0.0.0.0(目的IP地址是主机地址,优先级高于上图中的两条规则),系统将按照规则的优先级关系,重新为各规则分配编号。插入新规则后,新的排序如下。
acl number 3010 match-order auto rule 5 deny ip destination 10.1.1.1 0.0.0.0 rule 10 permit ip destination 10.1.1.0 0.0.0.255 rule 15 deny ip destination 10.1.0.0 0.0.255.255 |
可以看到,rule deny ip destination 10.1.1.1 0的优先级最高,排列最靠前。
ACL的分类
ACL主要可分为基本ACL和高级ACL。基本ACL只能根据源IP地址来进行匹配流量,而高级ACL则可以根据报文的五元组信息,即源IP地址、目的IP地址、源端口、目的端口和应用协议来匹配流量。因此高级ACL的精度比基本ACL来的更高。
在编号ACL中,可通过不同的编号来区分基本ACL和高级ACL。基本ACL的编号范围是2000~2999。高级ACL的编号是3000~3999。而命名ACL则可以通过basic、advace关键字来区分是否是高级ACL。
配置ACL规则
ACL分为基本ACL与高级ACL,两者的规则配置语法不同。基本ACL只能基于IP报文的源IP地址、报文分片标记和时间段信息来定义规则。而高级ACL则可以根据报文的五元组信息来定义规则。
基本ACL的配置
基本配置ACL规则的命令的结构如下。
rule [ rule-id ] { deny | permit } [source { source-address source-wildcard | any } | logging | time-range time-name ] |
命令中各个组成项的解释如下:
rule:标识这是一条规则。
rule-id:标识这个规则的编号。
deny | permit:这是一个二选一选项,表示与这条规则相关联的处理动作。deny表示“拒绝”;permit表示“允许”。
source:表示源IP地址信息。
source-address:表示具体的源IP地址。
source-wildcard:表示与source-address相对应的通配符。source-wildcard和source-address结合使用,可以确定出一个IP地址的集合。
any:表示源IP地址可以是任意地址。
logging:表示需要将匹配上该规则的IP报文进行日志记录。
time-range time-name:表示该规则的生效时间段为time-name。
基本ACL典型配置如下:
基本编号ACL:
acl 2000 rule 10 permit source 192.168.10.0 0.0.0.255 //允许192.168.10.0/24整个网段流量 rule 20 deny source 192.168.20.0 0.0.0.255 //拒绝192.168.20.0/24整个网段的流量 |
基本命名ACL:
acl name test1 basic //启用基本acl,名称为test1 rule 10 permit source 192.168.10.0 0.0.0.255 //允许192.168.10.0/24整个网段流量 rule 20 deny source 192.168.20.0 0.0.0.255 //拒绝192.168.20.0/24整个网段的流量 |
值得注意的是在典型配置中“0.0.0.255”,它的名称是通配符,代表掩码取反。即如果一个网段的掩码是255.255.255.0,换算成二进制为11111111. 11111111. 11111111.00000000,取反后为00000000. 00000000. 00000000.11111111,计算成十进制为0.0.0.255。
高级ACL的配置
高级ACL规则的命令结构如下:
rule [ rule-id ] { deny | permit }ip [source { source-address source-wildcard | any ] [source { source-address source-wildcard | any ] |
即 rule 编号 允许或拒绝 协议 源地址段 端口 目的地址段 端口。高级ACL的典型配置如下:
高级编号ACL:
acl 3000 rule 10 permit ip source 192.168.10.0 0.0.0.255 destination 192.168.20.0 0.0.0.255 //允许所有192.168.10.0/24到192.168.20.0/24的流量 rule 20 permit tcp source 192.168.20.0 0.0.0.255 destination 192.168.30.0 0.0.0.255 destination-port 80 //允许192.168.20.0/24网段到192.168.30.0/24网段前往端口80的流量 rule 30 deny host 192.168.1.1 any //拒绝主机192.168.1.1到达任意地址的流量 |
高级命名ACL:
acl name test02 advance ////启用高级acl,名称为test2 rule 10 permit ip source 192.168.10.0 0.0.0.255 destination 192.168.20.0 0.0.0.255 //允许所有192.168.10.0/24到192.168.20.0/24的流量 |
上面的配置中用到了两个关键字,host和any。Host代表一台主机,即掩码为255.255.255.255。any代表任意地址,即掩码为255.255.255.255。使用这两个关键字,可以简化配置。
基本ACL与高级ACL相比,基本ACL只能关注源地址,而高级ACL可以关注源地址和目的地址以及端口,因此高级ACL对流量的控制与管理精度比基本ACL更高。
值得注意的是,华为ACL默认动作为拒绝所有流量。即配置了ACL以后,假如没有任何一条规则匹配,那么将匹配拒绝动作。从某种意义上来说,一个ACL条目中如果都是deny动作,而没有permit动作,将拒绝掉所有的流量。
应用ACL
ACL通常用于过滤流量、匹配流量等用途。当用于过滤流量时,除了必要的定义规则以外,还需应用在接口之上。应用时是区分方向的,以配置该命令的设备为视角,进入到该设备的方向为inbound,离开该设备的方向为outbound,如图 所示。
例如将某个ACL应用在接口的inbound方向命令示例为:
interface GigabitEthernet 0/0/3 traffic-filter inbound acl 2000 //在G0/0/3接口的inbound方向上应用acl 2000 |
ACL还可以应用在vty线路上。当应用于VTY线路时,可以起到允许或拒绝哪些网段远程登录的作用,具体配置如下:
acl 2000 rule 10 permit source 192.168.10.0 0.0.0.255 //允许192.168.10.0/24整个网段流量 user-interface vty 0 4 acl 2000 inbound //在vty接口上应用acl2000,结合rule10规则,即代表允许192.168.10.0/24网段远程登录 |
ACL的应用建议
使用ACL控制网络流量时,先考虑是使用基本ACL还是使用高级ACL。如果只基于数据包源IP地址进行控制,就是用基本ACL。如果需要基于数据包的源IP地址、目标IP地址、协议、目标端口进行控制,那就需要使用高级ACL。然后再考虑在哪个路由器上的哪个接口的哪个方向进行控制。确定了这些才能确定ACL规则中的哪些IP地址是源地址,哪些IP地址是目标地址。
在创建ACL规则前,还要确定ACL中规则的顺序。如果每条规则中的地址范围不重叠,则规则编号顺序无关紧要;如果多条规则中用到的地址有重叠,就要把地址块小的规则放在前面,地址块大的放在后面。在路由器的每个接口的出向和入向的每个方向只能绑定一个ACL,一个ACL可以绑定到多个接口。
我们常常推荐当采用高级ACL时,将该ACL放置于靠近流量源地址的地方。因为高级ACL精度更高,不容易误伤其他流量。而基本ACL由于精度更低,因此建议放置于靠近流量目的地址的地方。