S12500/S9500E ACL使用之庖丁解牛术
ACL(Access Control List,访问控制列表)的在网络设备上的使用如同人们一日三餐一般频繁。作为一名常年混迹于网络江湖的工程师,怎么能对acl的使用不了然于胸呢?下面就介绍一下我司S12500/S9500E的acl使用注意事项。
一、ACL常用场景及注意事项
ACL是一或多条规则的集合,用于识别报文流。所谓规则,是指描述报文匹配条件的判断语句,这些条件可以是报文的源地址、目的地址、端口号等。网络设备在不同的策略中对acl进行调用,起到匹配流量进而执行相应动作的作用。
1. packet-filter
ACL最基本的应用就是对报文进行过滤,即通过将ACL规则应用到指定接口的入或出方向上,从而对该接口收到或发出的报文进行过滤。在packet-filter对ACL的调用中,需要注意:配置包过滤时符合ACL中DENY规则的流量会被过滤,其他匹配配置permit的规则的流量将可以通过,且此时ACL的默认规则为permit,若包过滤选择只允许个别流量通过的方式请务必记得在ACL 规则的最后一条添加deny 其他流量的动作。
2. policy-based-route
PBR(policy-based-route,策略路由)对于ACL的调用过程中与packet-filter存在差异,该ACL的作用仅用于识别流量,ACL中具体RULE中的Permit和Deny参数没有意义,只用来定义一条符合规则的流量。Policy中的permit和deny才是对策略是否起作用的关键。
3. MQC
MQC(Modular QoS Command)包含三个要素:流分类(Classifier)、流行为(Behavior)、策略(Policy),其中ACL在流分类中关联;用户通过MQC将指定的类和流行为绑定起来;支持动态修改流分类、流行为、策略内容;支持动态修改ACL配置内容。与PBR类似,在MQC中流分类中调用的ACL同样是进行流量的匹配,但是需要注意的是MQC应用中ACL规则中参数deny表示QOS策略取消C-B对中的动作;ACL规则中permit表示QOS策略中执行C-B对中的动作。
由于历史原因S12500/S9500E产品并非所有版本的ACL在被MQC调用时都遵循上述规则。
S12500/S9500E V1R1(R11XX)版本,及R1228之前版本,MQC配置中,ACL规则字段中的“permit”和“deny”是没有区别,都表示命中分类规则,执行behavior中的动作;从R1228版本开始,MQC配置中的ACL规则字段中的“permit”和“deny”是有区别的:“permit”表示命中分类规则,执行behavior中的动作;“deny”表示没有命中分类规则,忽略behavior中的动作;
应用 | ACL Permit | ACL Deny | |
packet-filter | 流量不被过滤 | ||
policy-based-route | 只匹配流量 | 只匹配流量 | |
MQC | R1228之前 | 匹配流量,执行动作 | 匹配流量,执行动作 |
R1228及以后 | 匹配流量,执行动作 | 匹配流量,不执行动作 |
二、资源使用情况介绍
1. packet-filter,MQC和PBR对ACL的调用中,由于这些策略下发的位置存在差异,ACL占用硬件资源的情况也是不一样的。S12500/S9500E系列交换机的ACL可以被应用在三个位置,分别为全局、接口和VLAN。优先级由高至低的顺序为全局>端口>VLAN。
1) 对于基于端口下发的策略(例如物理接口下配置包过滤策略、物理接口下配置的重定向),只在端口所属的单个芯片下发。
2) 对于基于全局或VLAN下发的策略(例如全局模式下配置的全局QOS策略、全局模式下配置的VLAN QOS策略、VLAN虚接口下配置的包过滤策略、VLAN虚接口下配置的策略路由),产品将在全局下发,即在所有的芯片下发,占用所有芯片的资源。
3) 对于基于全局或VLAN下发的策略整框的ACL规格受限于整框中规格最小的单板,即所谓“短板效应”。
2. S12500/S9500E系列交换机的ACL按照芯片为单位计算和显示ACL资源的占用情况。通过执行以下命令可以查看:
独立运行模式:
display acl resource [ slot slot-number ]
IRF模式:
display acl resource [ chassis chassis-number slot slot-number ]
命令执行结果如下:
[H3C]display acl resource slot 2
Interface:
GE2/0/1 to GE2/0/24
---------------------------------------------------------------------
Type Total Reserved Configured Remaining Usage
---------------------------------------------------------------------
ACL rule 8192 96 3 3997 2%
Inbound ACL 8192 96 3 3997 2%
Outbound ACL 8192 0 0 3997 0%
Interface:
GE2/0/25 to GE2/0/48
---------------------------------------------------------------------
Type Total Reserved Configured Remaining Usage
---------------------------------------------------------------------
ACL rule 8192 96 3 3997 2%
Inbound ACL 8192 96 3 3997 2%
Outbound ACL 8192 0 0 3997 0%
ACL资源中有一部分为系统预留,在“Reserved”一栏显示。此外根据配置的单板和缺省使能的功能不同,在“Configured”一栏下也可能存在少量的占用。用户手工配置并应用的ACL在“Configured”一栏下统计,而“Remaining”则为剩余可使用的ACL资源。S12500/S9500E系列交换机的ACL资源为出/入两个方向共享。
3. 在R1825以后的版本对于S12500设备的EB/EC2类型单板与S9500E设备的EB类型单板,用户可以通过配置ACL工作模式来改变单板的ACL规格数由2K增加到4K。
1) 当工作在ACL标准模式时,单板的ACL规则长度为24字节,且仅支持二层ACL、IPv4基本ACL和IPv4高级ACL。
2) 当工作在ACL高级模式时,单板的ACL规则长度为48字节,且支持二层ACL、IPv4基本ACL、IPv4高级ACL、IPv6基本ACL、IPv6高级ACL和用户自定义ACL。
3) 切换ACL工作模式会改变单板的ACL规则长度和支持的ACL规则总数(ACL标准模式下支持的ACL规则总数比ACL高级模式下增加一倍,2K增加到4K),可能会导致ACL相关的配置失效,请谨慎使用。具体修改命令如下:acl mode { standard | advanced },且修改后必须保存配置方可生效。