ACL配置与管理实战——1

ACL是由一个或多个用于报文过滤的规则组成的规则集合。根据ACL所过滤的报文类型和功能的不同又分为:基本ACL、高级ACL、基本ACL6、高级ACL6、二层ACL、用户自定义ACL,还有一种特殊的动态ACL技术——自反ACL。

ACL基础

ACL(AccessControl List,访问控制列表)是一组报文过滤规则的集合,以允许或阻止符合特定条件的报文通过。根据设备在实现该功能时的处理方式(硬件处理或者软件处理),ACL可以被分为基于硬件的应用和基于软件的应用。也就是说,ACL可以硬件实现,也可以软件实现,硬件实现速度应该快,软件应该比较灵活。

按照创建ACL时的命名方式分数字型ACL和命名型ACL:创建ACL时如果仅指定了一个编号,则所创建的是数字型ACL;创建ACL时如果指定了一个名字,则所创建的是命名型ACL。


命名型ACL可使用户通过ACL名称唯一的标识一个ACL。但每个ACL最多只能有一个名称,且ACL创建后不允许用户修改或者删除ACL名称,也不允许为未命名的ACL添加名称。ACL的名称对于ACL全局唯一,但允许基本ACL与基本ACL6,高级ACL与高级ACL6使用相同的名称。在指定命名型ACL时也可以同时配置对应编号。如果没有配置对应编号,系统在记录此命名型ACL时会自动为其分配一个数字型ACL的编号。所以命名型的ACL也肯定有一个ACL编号,但数字型ACL却不会有对应的ACL名称。

ACL规则编号

一个ACL内可以有一条或多条规则每条规则都有自己的编号,这是系统在进行规则匹配的缺省匹配顺序。且要求每个规则的编号在整个ACL中是唯一的。在创建规则时,可以人为的为每个规则指定一个唯一的编号,也可以由系统为其自动分配一个唯一的编号。ACL规则编号的编号规则:

1、自动分配规则编号

在自动分配规则编号时,系统通常会在相邻编号之间留下一定的空间,称为ACL的步长。

2、插入新规则时的规则编号

想在原来的两规则之间插入一条新的规则,则插入的这条规则的编号必须手工指定,且其编号必须位于原来两条规则编号之间。

3、新步长的应用

缺省值5,可手工设置。当步长改变后,ACL中的规则编号会自动从新的步长值开始重新排列。

ACL规则的匹配顺序

一个ACL可以由多条“deny | permit”语句组成,每一条语句描述一条规则。将一个报文与ACL的各条规则进行匹配时,需要有明确的匹配顺序来确定规则执行的优先级。

华为S系列交换机的ACL规则匹配顺序有“配置顺序”“自动排序”两种。

(1)配置顺序:按照用户配置规则编号的大小顺序进行匹配。缺省采用配置顺序进行匹配。

(2)自动排序:按照“深度优先”原则由深到浅进行匹配。“深度优先”即根据规则的精确度排序,匹配条件(如协议类型、源和目的IP地址范围等)限制越严格越精确,优先级越高。例如可以比较地址的通配符掩码(wildcard,每位也是由“1”和“0”组成,“0”表示要精确匹配的位,“1”表示不需要匹配的位),通配符越小(“0”的位数越多),则指定的主机的范围就越小(通配符全为0时表示要精确匹配地址中的每一位,相当于只有一个地址符合匹配条件,所以说主机地址的通配符为0),限制就越严格。若“深度优先”的顺序相同,则匹配该规则时按照规则编号从小到大排列。

无论哪种匹配顺序,一旦匹配上某条规则,都不会再继续匹配下去,系统将依据该规则对该报文执行相应的操作。每个报文实际匹配的规则只有一条。华为的ACL在最后都有一条permit any any,即允许所有报文通过的规则,当前面所有规则都匹配不上时将直接采用最后这条规则,允许通过。

ACL配置

所有ACL的配置任务主要包括以下几项:

1、配置ACL的生效时间段(可选)

时间段的配置包括以下两种方式:

(1)相对时间段(周期时间段):采用每个星期固定时间段的形式;

(2)绝对时间段:采用从某年某月某日某时某分起至某年某月某日某时某分结束的形式。

2、创建ACL

3、配置ACL规则

ACL配置好后还需在对应位置或功能中应用,多数情况下是通过基于ACL的简化流策略的方式在交换机所有端口/所有VLAN,或者指定VLAN、指定端口的出或入方向上应用。

配置基本ACL

基本ACL是应用于IPv4协议网络的,且基本ACL的地址过滤信息中一定不会包括目的的IP地址,只包括源IP地址,这是基本ACL的最显著特点。

time-range time-name {start-time to end-time days | from time1 date1  [ to time2 date2 ] }

acl [ number ] acl-number [ match-order { auto | config } ]

acl name acl-name { basic | acl-nmuber } [ match-order { auto | config } ]

description text

step step

rule [ rule-id ] { deny | permit } [ source { source-address source-wildcard | any } | fragment | logging | time-range time-name ]

rule rule-id description description

配置高级ACL

高级ACL除了可以根据基本ACL中的报文源IP地址进行规则匹配之外,还可以根据报文的目的IP地址信息、IP承载的协议类型、协议的特性(如TCP或UDP的源端口、目的端口,ICMP协议的消息类型、消息码等)信息进行匹配。

高级ACL还支持QoS中所需的优先级设置,用于指定符合对应优先级的IP数据包通过。高级ACL主要用于QoS中的流分类,因为通过它可以精确地对流量进行分类。

在IPv4网络中,IPv4报文中有三种承载QoS优先级标签的方式基于二层的CoSClass of Service,服务等级)字段(即通常所说的802.1p优先级)基于IP层(三层)的IP优先级字段(即IP优先级)和ToS(服务类型)字段,以及基于IP层(三层)的DSCPDifferentiated Services Code Point,差分服务代码点)字段(即DSCP优先级)。华为交换机的高级ACL支持ToS优先级、IP优先级和DSCP优先级这三种优先级。

1、高级ACL的创建

同样可以创建数字型的,或者命名型的ACL。

acl [ number ] acl-number [match-order {auto | config}]命令, acl-number只能在3000~3999之间。

创建命名型高级ACL:acl name acl-name {advance | acl-number} [match-order {auto | config}]

2、高级ACL规则的配置

高级ACL规则的配置比基本ACL中的规则配置复杂许多,因为可用来匹配的过滤条件参数非常之多,而且基本上是可同时配置的。

(1)当参数Protocol为ICMP(即要过滤ICMP协议报文时),命令格式:

Rule [rule-id] {deny | permit} {protocol-number|icmp}[destination {destination-address destination-wildcard |any} | { {precedence precedence | tos tos} * |dscp dscp} | fragment |logging |icmp-type {icmp-name|icmp-type icmp-code} |source {source-address source-wildcard |any} | time-range time-name | ttl-expired]*

(2)当参数Protocol为TCP时(即要过滤TCP协议报文时),命令格式:

Rule [rule-id] {deny | permit} {protocol-number|tcp} [destination {destination-address destination-wildcard |any} |destination-port{ eq port | gt port | lt port |range port-start port-end} |  { {precedence precedence |tos tos} * |dscp dscp} | fragment |logging |source {source-address source-wildcard |any} |source-port { eq port |gt port | lt port| range port-start port-end} |tcp-flag{ ack | fin | psh | rst | syn | urg}* | time-range time-name |ttl-expired]*

(3)当参数Protocol为UDP(即要过滤UDP协议报文时),命令格式:

Rule [rule-id] {deny|permit} {protocol-number|udp} [destination {destination-addressdestination-wildcard |any} |destination-port { eq port | gt port| lt port |range port-start port-end} |  { {precedence precedence |tos tos} * |dscp dscp} | fragment |logging |source {source-addresssource-wildcard |any} |source-port { eq port |gt port| lt port | range port-start port-end} |tcp-flag { ack | fin | psh | rst | syn | urg }* | time-range time-name |ttl-expired]*

(4)当参数Protocol为GRE、IGMP、IP、IPINIP、OSPF时,命令格式:

Rule [rule-id] {deny | permit} {protocol-number|gre | igmp | ip | ipinip | ospf} [destination {destination-address destination-wildcard |any} |  { { precedence precedence | tos tos} * | dscp dscp} | fragment |logging |source {source-address source-wildcard |any} | time-range time-name | ttl-expired]*

配置二层ACL

二层ACL是根据报文的源MAC地址、目的MAC地址、802.1p优先级、二层协议类型等二层信息进行规则匹配、处理的。二层ACL的序号取值为4000~4999。

1、二层ACL的创建

acl [number] acl-number [match-order { auto | config}]

acl name acl-name {link | acl-number} [match-order { auto | config}]

2、二层ACL规则的配置

Rule [rule-id] {permit | deny } [ [ether-ii |802.3 | snap] | l2-protocol type-value [type-mask ] | destination-mac dest-mac-address [ dest-mac-mask ] | source-mac source-mac-address [source-mac-mask ] | vlan-id vlan-id [ vlan-id-mask ] |8021p 802.1p-value | cvlan-id cvlan-id [cvlan-id-mask ] |cvlan-8021p 802.1p-value| double-tag ]* [time-range time-name]

配置用户自定义ACL

用户自定义ACL(简称UCL)可以根据用户自定义的规则对数据报文做出相应的处理。

1、用户自定义ACL的创建

也可创建数字型或者命名型的ACL,不同之处就是取值范围是在5000~5999。

2、用户自定义ACL规则的配置

Rule [Rule-id] {deny | permit } [ [ l2-head | ipv4-head | ipv6-head |l4-head ] { rule-string rule-mask offset } & <1-8> ] [ time-range time-range

基于ACL的简化流策略

ACL只有在具体位置或功能上得到应用后才会生效。ACL可以在交换机全局、VLAN或具体接口上应用,在华为S系列交换机中不是直接应用,是通过一种称之为“基于ACL的简化流策略来进行的。如可把ACL应用于简化流策略中的多种流行为应用中,如报文过滤、流量监管、流量镜像、流量重定向、报文重标记等。

基于ACL的简化流策略概述

“基于ACL的简化流策略”是指通过将报文信息与ACL规则进行匹配,为符合ACL规则的报文提供相同的QoS服务,实现对不同类型业务的差分服务。在用户希望对进入网络的流量进行控制时,可以配置根据报文的源IP地址、分片标记、目的IP地址、源端口号、源MAC地址、目的MAC地址等信息的ACL规则对报文进行匹配,进而配置基于ACL的简化流策略实现对匹配ACL规则的报文的过滤监管、重标记、统计、流镜像或重定向

QoS中基于流分类的流策略相比基于ACL的简化流策略不需要单独创建流分类、流行为或流策略,直接通过一条命令把所采用的的基于ACL的流分类和对应的流行为进行关联,达到最终的QoS流策略的目的,配置更为简洁。由于仅基于ACL规则对报文进行匹配,因此,匹配规则没有基于QoS流分类的流策略那样丰富。

华为S系列交换机中的“基于ACL的简化流策略”包括报文过滤、流量监管、流量镜像、流量统计、流量重定向、报文重标记、流量统计等几方面,也可算是ACL在QoS流策略中的几种主要应用。这些基于ACL的简化流策略都可以应用在交换机全局、具体VLAN或具体交换机接口上。

配置基于ACL的报文过滤

通过配置基于ACL的报文过滤,可对匹配ACL规则报文进行禁止/允许动作,进而实现对网络流量的控制。注意,这里是强调对报文的过滤功能,又可分为对入方向或出方向上的流量进行过滤,分不同设备型号区别对待

在基于ACL的简化流策略的报文过滤应用中,用户可以根据以下原则选择使用traffic-filtertraffic-secure命令配置报文过滤。也就是说,有两条不同的命令来进行报文过滤的配置。

为什么要设置两条不同的命令完成同样的工作??有什么区别??)网上查询有这样描述的:traffic-secure为简化QoS配置命令——通过简化QoS配置命令配置QoS功能,不需要单独创建流分类、流行为、流策略等步骤,配置步骤更加简洁,但是traffic-filter也是简化QoS配置

traffic-filter和traffic-secure命令在做流量过滤选择原则参考如下,另外traffic-secure相比traffic-filter会占用更多ACL资源,当设备ACL资源有限的场景下建议选择traffic-filter。

●如果traffic-filter或traffic-secure关联的ACL没有同时被其他基于ACL的简化流策略所关联,且报文不会同时匹配报文过滤和其他简化流策略关联的ACL规则时,traffic-filter和traffic-secure可以任选其一。

●如果traffic-filter或traffic-secure关联的ACL同时被其他基于ACL的简化流策略所关联,或者报文同时匹配了报文过滤和其他简化流策略关联的ACL,traffic-filter和traffic-secure的区别如下:

• 当traffic-secure和其他基于ACL的简化流策略同时配置,且ACL规则中的动作为Deny,仅traffic-secure、traffic-mirror和traffic-statistics命令生效,报文被过滤

• 当traffic-secure和其他基于ACL的简化流策略同时配置,且ACL规则中的动作为Permit时,traffic-secure命令和其他基于ACL的简化流策略均生效

• 当traffic-filter和其他基于ACL的简化流策略同时配置,且ACL规则中的动作为Deny,仅traffic-filter、traffic-mirror和traffic-statistics命令生效,报文被过滤

• 当traffic-filter和其他基于ACL的简化流策略同时配置,且ACL规则中的动作为Permit时,先配置的简化流策略生效

traffic-filtertraffic-secure的区别,主要在于动作为permit时,即报文被允许通过时,traffic-secure允许其他基于ACL的简化流策略继续起作用,相当于报文串行的通过traffic-secure和其他ACL简化流策略,每个策略都走一便,而traffic-filter则是在报文被允许通过后,不再经过其他ACL简化流策略,相当于并联的关系。这在一些应用中,需要报文过滤通过后,在执行其他策略的场景就不适用了,就需要使用traffic-secure。

Traffic-secure命令的优先级高于其他简化ACL配置命令,即如果traffic-secure命令和其他简化ACL配置命令的配置相冲突时,最终以traffic-secure命令配置为准。

在全局或VLAN上应用基于ACL的报文过滤

ACL可在全局域VLAN上应用,配置报文过滤功能,但每个调用的ACL仅可匹配一个ACL规则,若ACL中包括有许多规则,则必须指出所要应用的具体ACL规则编号。此时需要在系统视图下根据实际需要选择以下对应的命令进行配置:

(1)入方向报文过滤

①在除S2700-52P-EI/2700-52P-PWR-EI系列之外的其他S2700EI交换机上,执行traffic-filter[vlan vlan-id] inbound acl { bas-acl | adv-acl } [ rule rule-id]命令对匹配单个ACL规则的入方向报文进行过滤。

②在S2752P-EI/2752P-PWR-EI/3700SI/3700EI系列交换机上,执行traffic-filter[vlan vlan-id] inbound acl { bas-acl | adv-acl | user-acl } [ rule rule-id]命令对匹配单个ACL规则的入方向报文进行过滤。

③在S5700/6700系列交换机上,执行traffic-filter[vlan vlan-id] inbound acl {[ipv6] { bas-acl | adv-acl | name acl-name} | l2-acl| user-acl | } [ rule rule-id] 命令对匹配单个ACL规则的入方向报文进行过滤。

④在除S7700/9300/9300E/9700系列交换机外的其他所有S系列交换机上,执行traffic-secure[vlan vlan-id] inbound acl { bas-acl | adv-acl | l2-acl | name acl-name } [rule rule-id] 命令对匹配单个ACL规则的入方向报文进行过滤。

⑤在除S7700/9300/9300E/9700系列交换机外的其他所有S系列交换机上,执行traffic-secure[vlan vlan-id] inbound acl { l2-acl | name acl-name } [rule rule-id] acl{bas-acl |adv-acl | name acl-name} [rule rule-id]命令,对同时匹配二层ACL和三层ACL规则的入方向报文进行过滤。

(2)出方向报文过滤

在S5700/6700系列交换机上,执行traffic-filter[vlan vlan-id] outbound acl { [ipv6] {bas-acl | adv-acl | name acl-name} |l2-acl } [rule rule-id]命令对匹配单个ACL规则的出方向报文进行过滤。

(3)入或出方向报文过滤

在S5700/6700系列交换机上,执行traffic-filter[vlan vlan-id] {inbound | outbound} acl { l2-acl | name acl-name} [rule rule-id] acl {bas-acl | adv-acl | name acl-name} [rule rule-id]或traffic-filter[vlan vlan-id] {inbound | outbound} acl {bas-acl | adv-acl | name acl-name} [rule rule-id] acl { l2-acl | name acl-name} [rule rule-id]命令对同时匹配二层ACL和三层ACL规则的入或出方向报文进行过滤。

总结上面的配置命令,不同之处主要是针对不同的设备,所能使用的ACL类型的多寡不同,即可以使用基本ACL、高级ACL、二层ACL、自定义ACL等,同时有些设备还同时支持二层ACL和三层ACL同时使用

示例:在交换机VLAN100中(即将在所有加入了VLAN100的接口上应用)应用基于ACL的报文过滤,仅允许源IP地址为192.168.0.2的主机的IP报文通过,丢弃其他报文。这里需要同时过滤报文协议类型(IP协议)和源IP地址信息,所以采用高级ACL。

先配置VLAN100,将端口G0/0/2、G0/0/3、G0/0/4加入VLAN100,三台PC的IP如图,配置VLANIF100的IP,配置命名高级ACL ——test,在VLAN100上应用此策略,仅允许192.168.0.2的源IP地址报文能够进入VLAN100,此时只有PC2能够ping通VLANIF100的地址,PC1、PC3无法PING通,且PC1、PC2、PC3之间不通。

此时PC1、PC2与VLANIF100之间是互通的。

那么,ACL可在全局域VLAN上应用,配置报文过滤功能,但每个调用的ACL仅可匹配一个ACL规则,若ACL中包括有许多规则,则必须指出所要应用的具体ACL规则编号。这句话中的仅可匹配一个ACL规则是什么意思,后面的若ACL中包括有许多规则,则必须指出所要应用的具体ACL规则编号,???

按照如上配置进行修改,结果所有设备之间都相互连通了。

可以继续增加vlan100上的简化流策略

查询配置

实际应用中,还是应该应用ACL整体过滤策略,也可单独应用ACL中的单条规则。在ENSP上想测试一下traffic-secure和traffic-filter的优先级,思想就是在traffic-secure中应用的策略为禁止所有IP进入VLAN100,traffic-filter中应用的策略允许三台PC都可以通过,最终都应用到VLAN100上,最终看结果如何。但是ENSP中无traffic-secure命令,无法测试。按照traffic-secure优先级最高,猜测结果应该是PC之间互相不通。

[Huawei]acl 3000

[Huawei-acl-adv-3000]rule 5 deny ip source192.168.0.20

[Huawei-acl-adv-3000]quit

[Huawei]traffic-secure inbound acl 3000  #在全局范围应用ACL

在端口上应用基于ACL的报文过滤

ACL还可以在具体以太网端口上应用基于ACL的报文过滤功能。

(1)入方向报文过滤

①在除S2700-52P-EI/2700-52P-PWR-EI系列之外的其他S2700EI交换机上,执行traffic-filter inbound acl { bas-acl | adv-acl } [ rule rule-id]命令对匹配单个ACL规则的入方向报文进行过滤

②在S2752P-EI/2752P-PWR-EI/3700SI/3700EI系列交换机上,执行traffic-filter inbound acl{ bas-acl | adv-acl | user-acl } [ rule rule-id]命令对匹配单个ACL规则的入方向报文进行过滤。

③在S5700/6700系列交换机上,执行traffic-filter inbound acl{[ipv6] { bas-acl | adv-acl | name acl-name} | l2-acl | user-acl  } [ rule rule-id] 命令对匹配单个ACL规则的入方向报文进行过滤。

④在除S7700/9300/9300E/9700系列交换机外的其他所有S系列交换机上,执行traffic-secure inbound acl{ bas-acl | adv-acl | l2-acl | name acl-name } [ rule rule-id] 命令对匹配单个ACL规则的入方向报文进行过滤。

⑤在除S7700/9300/9300E/9700系列交换机外的其他所有S系列交换机上,执行traffic-secure inbound acl{ l2-acl | name acl-name } [rule rule-id] acl {bas-acl |adv-acl | name acl-name} [rule rule-id]命令,对同时匹配二层ACL和三层ACL规则的入方向报文进行过滤。

(2)出方向报文过滤

在S5700/6700系列交换机上,执行traffic-filter outbound acl { [ipv6] {bas-acl | adv-acl | name acl-name} | l2-acl } [rule rule-id]命令对匹配单个ACL规则的出方向报文进行过滤。

(3)入或出方向报文过滤

在S5700/6700系列交换机上,执行traffic-filter {inbound | outbound} acl { l2-acl | name acl-name} [rule rule-id] acl {bas-acl | adv-acl | name acl-name} [rule rule-id]或traffic-filter  {inbound| outbound} acl  {bas-acl| adv-acl | name acl-name} [rule rule-id] acl { l2-acl | name acl-name} [rule rule-id]命令对同时匹配二层ACL和三层ACL规则的入或出方向报文进行过滤

配置命令与全局域VLAN上应用相同,仅仅是因为在具体端口上配置,不需要使用vlan vlan-id选项。

实验:

如上图,在LSW1的GE0/0/1端口上配置acl

配置预计效果是PC2可以与PC1相通,PC3与PC1不通。

实际的效果确是应用ACL后,PC1与PC2不通,不知道什么原因???

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值