复习ACL时发现有些参数不理解,由于本人自学,没有老师,无从问起。于是百度了又百度,G了又G.最后还是给我找到了想要比较详细的资料。好东西呢本人从不敢藏私,现与大家一起分享。
    1.1.1   acl
【命令】
acl { number acl-number | name acl-name [ advanced | basic | link |
user ] }[ match-order { config | auto } ]
undo acl { number acl-number | name acl-name | all }
【视图】
系统视图
【参数】
number acl-number:访问列表序号,取值范围为:
2000~2999:表示基本访问控制列表。
3000~3999:表示高级访问控制列表。
4000~4999:表示二层访问控制列表。
5000~5999:表示用户自定义访问控制列表。
name  acl-name:字符串参数,必须以英文字母(即[a-z,A-Z])开始,而且中间
不能有空格和引号;不区分大小写,不允许使用all、any 关键字。
advanced:表示高级访问控制列表。
basic:表示基本访问控制列表。
link:表示二层访问控制列表。
user:表示用户自定义访问控制列表。 config:表示匹配访问列表的规则时按用户的配置顺序。
auto:表示匹配访问列表的规则时按深度优先顺序。
all:表示要删除所有的访问列表(包括数字标识的和名字标识的)。
【描述】
acl 命令用来定义一条数字或名字标识的访问控制列表,并进入相应的访问控制
列表视图,undo acl 命令用来删除一条数字或名字标识的访问控制列表的所有
子项,或者删除全部访问控制列表。
缺省情况下,按照config 顺序匹配访问控制列表。
acl 命令可以创建一个以“acl-name”命名的访问控制列表,此访问控制列表的
类型由“advanced”、“basic”、“link”、“user”关键字决定。无论数字
型还是名字型,进入相应的访问列表视图之后,可以用rule 命令增加此命名访
问列表的子项(用quit 命令退出访问列表视图)。
可以使用 match-order 指定匹配顺序是按照用户配置的顺序还是按照深度优先
顺序(优先匹配范围小的规则),如果不指定则缺省为用户配置顺序。用户一旦
指定一条访问列表的匹配顺序后,就不能再更改,除非把该访问列表的子项全部
删除,再重新指定其匹配顺序。注意,访问控制列表的匹配顺序特性只在该访问
控制列表被软件引用用作数据过滤和分类时有效。
由于芯片不同,各款交换机的子规则硬件匹配顺序不同。具体描述见下表。
                                                                                                                                                           表1-1 交换机 ACL子规则的硬件匹配顺序
交换机  ACL子规则的硬件匹配顺序
S3000-EI
同一个 ACL配置了多个子规则时,硬件匹配顺序是后下发
的子规则将会先匹配。
  相关配置可参考命令 rule。
【举例】
# 下面的命令指定 2000 号访问列表的规则匹配顺序为深度优先顺序:
[Quidway] acl number 2000 match-order auto
1.1.2   display acl config
【命令】
display acl config { all | acl-number | acl-name }
【视图】
任意视图
【参数】
all:表示要显示所有的访问列表(包括数字标识的和名字标识的)。
acl-number:要显示的访问列表序号,2000 到 3999 之间的一个数值。
acl-name:要显示的访问列表名字,字符串参数,必须以英文字母(即[a-z,A-Z])
开始,而且中间不能有空格和引号。
【描述】
display acl config命令用来显示访问控制列表的详细配置信息,包括每一个
子规则及其序号和该语句匹配的数据包的个数和字节数。
本命令显示信息中的匹配次数是软件匹配次数,即需要经过交换机 CPU 处理的访
问控制列表匹配次数。数据包转发过程中的硬件匹配次数可以使用命令
traffic-statistic 统计。 【举例】
# 下面的命令显示所有访问列表的内容。
<Quidway>display acl config all
1.1.3   display acl running-packet-filter all
【命令】
display acl running-packet-filter all
【视图】
任意视图
【参数】

【描述】
display acl running-packet-filter all 命令用来显示访问控制列表的下发应
用信息。显示内容包括访问控制列表名、子项名和下发状态。
【举例】
# 下面的命令显示所有接口的访问列表下发应用信息。
<Quidway> display acl running-packet-filter all
acl std1 rule 0   running
acl std1 rule 1   running
                                                                                                                                                                                    表 1-2 显示信息描述表 域名  解释
acl std1 rule 0   running
表示访问控制列表 std1 的子规则 0 正在运行。std1 是访
问控制列表的名字,rule 0 表示子规则 0。
下面的显示信息类似,不再一一介绍。
 
1.1.4   display time-range
【命令】
display time-range[ all | name ]
【视图】
任意视图
【参数】
all:显示所有的时间段。
name:为时间段的名称,以[a-z,A-Z]为起始字母的字符串,取值范围为 1~32
个字符。
【描述】
display time-range命令用来显示当前时间段的配置和状态,对于当前处在激
活状态的时间段将显示 active,对于非激活状态显示 inactive。
注意,由于系统更新访问控制列表状态有一个延时,大约 1 分钟,而 display
time-range会采用当前时间对其进行判断,所以有可能出现display time-range
看到一个时间段已经激活,而引用它的访问控制列表没有激活。这种情况是正常
的。 相关配置可参考命令 time-range。
【举例】
# 显示所有时间段。
<Quidway> display time-range all
Current time is 14:36:364-3-2003 Thursday
 
Time-range : hhy ( Inactive )
 from 08:302-5-2005 to 18:002-19-2005
 
Time-range : hhy1 ( Inactive )
 from 08:302-5-2003 to 18:002-19-2003
                                                                                                                                                                                    表 1-3 显示信息描述表
域名  解释
Current time is 14:36:364-3-2003
Thursday
系统的当前时间。
Time-range : hhy ( Inactive )
 from 08:302-5-2005 to
18:002-19-2005
时间范围 hhy,Inactive表示该时间范围目前处于非
活动状态(active则反之),时间范围为从 2005 年 2
月 5 日 8 点 30 分到 2005年 2月 19 日 18 点。
下面的显示信息类似,不再一一介绍。
  # 显示名字为 tm1 的时间段。
<Quidway> display time-range tm1
Current time is 14:37:314-3-2003 Thursday
 
Time-range : tm1 ( Inactive )
 from 08:302-5-2005 to 18:002-19-2005
                                                                                                                                                                                    表 1-4 显示信息描述表
域名  解释
Current time is 14:36:364-3-2003
Thursday
系统的当前时间。
Time-range : tm1 ( Inactive )
 from 08:302-5-2005 to
18:002-19-2005
时间范围 hhy,Inactive表示该时间范围目前处于非
活动状态(active则反之),时间范围为从 2005 年 2
月 5 日 8 点 30 分到 2005年 2月 19 日 18 点。
下面的显示信息类似,不再一一介绍。
 
1.1.5   packet-filter
【命令】
packet-filter { user-group { acl-number | acl-name } [ rule rule ] |
{  ip-group  {  acl-number  |  acl-name  } [  rule  rule  ] |  link-group  {  acl-number
| acl-name } [ rule rule ] }* } undo packet-filter { user-group { acl-number | acl-name } [ rule rule ]
| { ip-group { acl-number | acl-name } [ rule rule ] | link-group
{ acl-number | acl-name } [ rule rule ] }* }
【视图】
系统视图
【参数】
user-group  {  acl-number  |  acl-name  }:表示激活用户自定义的访问控制列表。
acl-number:访问控制列表序号,5000 到 5999 之间的一个数值。acl-name:访
问控制列表名字,字符串参数,必须以英文字母(即[ a~z,A~Z])开头,而
且中间不能有空格和引号。
ip-group  {  acl-number  |  acl-name  }:表示激活 IP 访问控制列表,包括基本、
高级访问控制列表。acl-number:访问控制列表序号,2000 到 3999 之间的一个
数值。acl-name:访问控制列表名字,字符串参数,必须以英文字母(即[ a~z,
A~Z])开头,而且中间不能有空格和引号。
link-group { acl-number | acl-name }:表示激活二层访问控制列表。
acl-number:访问控制列表序号,4000 到 4999 之间的一个数值。acl-name:访
问控制列表名字,字符串参数,必须以英文字母(即[a~z,A~Z])开头,而且
中间不能有空格和引号。
rule rule:可选参数,指定激活访问列表中的哪个子项,取值范围为 0~127,
如果不指定则表示要激活访问列表中的所有子项。
【描述】
packet-filter 命令用来激活访问控制列表,undo packet-filter命令用来取
消激活。 packet-filter 命令支持同时激活二层和IP 访问控制列表,但是要求各访问控
制列表的动作不互相冲突,如果动作冲突(例如一个是 permit 另一个是 deny)
则不能同时激活这些访问控制列表。
【举例】
# 下面的命令同时激活 2000 号访问控制列表和 4000 号访问控制列表。
[Quidway] packet-filter ip-group 2000 link-group 4000 rule 0
1.1.6   reset acl counter
【命令】
reset acl counter { all | acl-number | acl-name }
【视图】
用户视图
【参数】
all:表示所有的访问列表(包括数字标识的和名字标识的)。
acl-number:访问列表序号,2000 到 3999 之间的一个数值。
acl-name:访问列表名字,字符串参数,必须以英文字母(即[a-z,A-Z])开始,
而且中间不能有空格和引号;不区分大小写,不允许使用 all、any关键字。
【描述】
reset acl counter 命令用来清除对软件处理的报文过滤和流分类的访问控制列
表的统计信息。本命令把访问控制列表被匹配的次数信息清零。
                                                                                                                                                                   表 1-5 统计信息的 reset 命令的比较 命令  功能
reset acl counter
清除访问控制列表的统计信息。本命令适用于对软件处理
的报文过滤和流分类的访问控制列表。ACL被软件引用的
情况包括:路由策略引用 ACL、对登录用户进行控制时引
用 ACL等。在这种情况下,ACL序号的取值范围为 2000~
3999。
reset traffic-statistic
清除流量统计信息。本命令适用于直接下发到交换机的硬
件中用于数据转发过程中的过滤和流分类的访问控制列
表。一般情况下,本命令用于将命令 traffic-statistic 统
计的信息清除。
 
【举例】
# 下面的命令清除 2000 号访问列表的统计信息。
<Quidway> reset acl counter 2000
1.1.7   rule
【命令】
1. 定义或删除基本访问控制列表的子规则
rule [ rule-id ] { permit | deny } [ source source-addr wildcard | any ]
[ fragment ] [ time-range name ]
undo rule rule-id[ source ] [ fragment ] [ time-range ] 
2. 定义或删除高级访问控制列表的子规则 rule  [  rule-id  ] {  permit  |  deny  }  protocol  [  source  source-addr wildcard
| any ] [ destination dest-addr wildcard | any ] [ source-port operator
port1  [  port2  ] ] [  destination-port  operator port1  [  port2  ] ] [  icmp-type
type  code  ]  [  established  ] [ [  precedence  precedence  |  tos  tos  ]* |  dscp
dscp ] [ fragment ] [ time-range name ]
undo rule rule-id[ source ] [ destination ] [ source-port ]
[ destination-port ] [ icmp-type ] [ precedence ] [ tos ] [ dscp ]
[ fragment ]  [ time-range ]
3. 定义或删除二层访问控制列表的子规则
rule [ rule-id ]{  permit | deny } [ protocol ] [  cos vlan-pri ] [ ingress
{ { source-vlan-id | source-mac-addr source-mac-wildcard | interface
{ interface-name | interface-type interface-num } }* | any } ] [ egress
{ { dest-mac-addr dest-mac-wildcard | interface { interface-name |
interface-type interface-num } }* | any } ] [ time-range name ]
undo rule rule-id
4. 定义或删除用户自定义访问控制列表的子规则
rule  [  rule-id  ] {  permit  |  deny  } {  rule-string  rule-mask  offset  }&<1-8>
[ time-range name ]
undo rule rule-id
【视图】
相应的访问控制列表视图
【参数】
rule-id:指定访问控制列表的子项,取值范围为0~127。 permit:表明允许满足条件的报文通过。
deny:表明禁止满足条件的报文通过。
time-range name:时间段的名称,可选参数,表示该规则在此时间段内有效。
  说明:
以下的参数是数据包携带的各种属性参数,访问控制列表就是根据这些属性参数的取值制定规则。
 
               下面是基本访问控制列表特有的参数:
source source-addr wildcard | any:source-addr wildcard 表示源 IP 地址
和源地址通配位,点分十进制表示;any 表示所有源地址。本参数适用于定义基
本访问控制列表。
fragment:表示此条规则仅对分片报文有效。如果不选择本参数则表示本规则
不以报文是否分片作为依据对报文进行过滤。 本参数适用于定义基本访问控制列
表。
               下面是高级访问控制列表特有的参数:
protocol:本参数用来指定协议类型。协议类型可以使用名字表示,也可以使用
数字表示。在使用名字表示时,该参数可以取值icmp、igmp、tcp、udp、ip、
gre、ospf、ipinip 等。如果本参数取值为 IP,表示所有的 IP 协议。在使用数
字表示时,数字的取值范围为 1~255。本参数适用于定义高级访问控制列表。
source source-addr wildcard | any:source-addr wildcard 表示源 IP 地址
和源地址通配位,点分十进制表示;any 表示所有源地址。本参数适用于定义高
级访问控制列表。 destination dest-addr wildcard | any:dest-addr wildcard 表示目的 IP 地
址和目的地址通配位,点分十进制表示;any 表示所有目的地址。本参数适用于
定义高级访问控制列表。
source-port operator port1 [ port2 ]:表示报文使用的源 TCP 或者 UDP 端口
号。其中 operator 表示端口操作符,包括 eq(等于)、gt(大于)、lt(小于)、
neq (不等于)、range(在某个范围内)。注:本参数在 protocol 参数取值为 TCP
或 UDP 时才可用。port1 [ port2 ]:报文使用的 TCP 或者 UDP 源端口号,用字
符或数字表示。数字的取值范围为 0~65535,字符取值请参看端口号助记符表。
只有操作符为 range 时才会同时出现 port1 port2 两个参数,其它操作符只需
port1。本参数适用于定义高级访问控制列表。
destination-port operator port1 [ port2 ]:表示报文使用的目的 TCP或者
UDP 端口号。具体描述同 source-port operator port1 [ port2 ]。
icmp-type type code:当 protocol 参数取值 icmp 时出现。type code 指定一
ICMP 报文。type 代表 ICMP 报文类型,用字符或数字表示,数字取值范围为 0~
255; code 代表 ICMP 码,在协议为 icmp 且没有使用字符表示 ICMP 报文类型时
出现,取值范围是0~255。本参数适用于定义高级访问控制列表。
established:表示此条规则仅对 TCP 建立连接的第一个 SYN 报文有效,可选参
数,当 protocol 参数取值 tcp 时出现。本参数适用于定义高级访问控制列表。
precedence precedence:可选参数,表示IP 优先级,取值为 0~7 的数值或名
字。
tos tos:可选参数,数据包可以根据TOS 值来分类,取值为0~15 的数值或名
字。本参数适用于定义高级访问控制列表。
dscp  dscp:可选参数,数据包可以根据 DSCP 值来分类,取值为0~63 的数值或
名字。本参数适用于定义高级访问控制列表。 fragment:表示此条规则仅对分片报文有效。如果不选择本参数则表示本规则
不以报文是否分片作为依据对报文进行过滤。 本参数适用于定义高级访问控制列
表。
               下面是二层访问控制列表特有的参数:
protocol:为以太网帧承载的协议类型,可选参数,取值范围为ip、arp、rarp、
pppoe-control 和 pppoe-data。
cos vlan-pri:802.1p优先级,取值范围为 0~7。
ingress { { [ source-vlan-id ] [ source-mac-addr source-mac-wildcard ]
[  interface  {  interface-name  |  interface-type interface-num  } ] } |  any  }:
数据包的源信息,[ source-vlan-id ]表示的是数据包的源 VLAN,
[  source-mac-addr  source-mac-wildcard  ]表示的是数据包的源 MAC 地址和 MAC
地址的通配符,这两个参数共同作用可以得到用户感兴趣的源 MAC 地址的范围,
比如 source-mac-wildcard 取值为 0.0.ffff,则表示用户只对源 MAC 地址的前
32个bit (即通配符中数字0对应的比特位)感兴趣, interface  {  interface-name
| interface-type interface-num }表示的是接收该报文的二层端口,any 表示
从所有端口接收到的所有报文。
egress { { [ dest-mac-addr dest-mac-wildcard ] [ interface
{ interface-name | interface-type interface-num } ] } | any }:数据包
的目的信息,dest-mac-addr dest-mac-wildcard 表示该报文的目的 MAC 地址和
目的 MAC 地址通配符,这两个参数共同作用可以得到用户感兴趣的目的 MAC 地址
的范围,比如 dest-mac-wildcard 取值为 0.0.ffff,则表示用户只对目的 MAC
地址的前 32 个 bit(即通配符中数字 0 对应的比特位)感兴趣,interface
{ interface-name | interface-type interface-num }表示转发该报文的二层
端口,any 表示从所有端口转发的所有报文。
               下面是用户自定义访问控制列表特有的参数: { rule-string rule-mask offset }&<1-8>:rule-string 是用户自定义的规则
字符串,必须是 16 进制数组成,字符必须是偶数个;rule-mask  offset 用于提
取报文的信息,rule-mask 是规则掩码,用于和数据包作“与”操作,offset
是偏移量,它以数据包的头部为基准,指定从第几个字节开始进行“与”操作,
rule-mask offset 共同作用,将从报文提取出来的字符串和用户定义的
rule-string 比较,找到匹配的报文,然后进行相应的处理。&<1-8>表示则一次
最多可以定义 8 个这样的规则。此参数用于用户自定义的访问控制列表。
【描述】
rule 命令用来增加访问控制列表的一条子规则,undo rule 命令用来删除一条访
问控制列表的其中一个子规则。  
   
•  华为设备防病毒 acl配置
2007-03-13 22:43:20
现创建 acl
acl number 100
禁 ping
rule  deny icmp source any destination any  
用于控制 Blaster 蠕虫的传播
rule  deny udp source any destination any destination-port eq 69  
rule  deny tcp source any destination any destination-port eq 4444  
用于控制冲击波病毒的扫描和***
rule  deny tcp source any destination any destination-port eq 135  
rule  deny udp source any destination any destination-port eq 135
rule  deny udp source any destination any destination-port eq netbios-ns
rule  deny udp source any destination any destination-port eq netbios-dgm
rule  deny tcp source any destination any destination-port eq 139
rule  deny udp source any destination any destination-port eq 139
rule  deny tcp source any destination any destination-port eq 445
rule  deny udp source any destination any destination-port eq 445
rule  deny udp source any destination any destination-port eq 593
rule  deny tcp source any destination any destination-port eq 593
用于控制振荡波的扫描和***
rule  deny tcp source any destination any destination-port eq 445
rule  deny tcp source any destination any destination-port eq 5554
rule  deny tcp source any destination any destination-port eq 9995
rule  deny tcp source any destination any destination-port eq 9996
用于控制 Worm_MSBlast.A 蠕虫的传播
rule  deny udp source any destination any destination-port eq 1434 下面的不出名的病毒端口号  (可以不作)
rule  deny tcp source any destination any destination-port eq 1068
rule  deny tcp source any destination any destination-port eq 5800
rule  deny tcp source any destination any destination-port eq 5900
rule  deny tcp source any destination any destination-port eq 10080
rule  deny tcp source any destination any destination-port eq 455
rule  deny udp source any destination any destination-port eq 455
rule  deny tcp source any destination any destination-port eq 3208
rule  deny tcp source any destination any destination-port eq 1871
rule  deny tcp source any destination any destination-port eq 4510
rule  deny udp source any destination any destination-port eq 4334
rule  deny tcp source any destination any destination-port eq 4331
rule  deny tcp source any destination any destination-port eq 4557
然后下发配置
packet-filter ip-group 100              
目的:针对目前网上出现的问题,对目的是端口号为 1434的 UDP报文进行过滤的配置方法,详细和复杂
的配置请看配置手册。
λ            NE80 的配置:
NE80(config)#rule-map r1 udp any any eq 1434    
//r1 为 role-map的名字,udp 为关键字,any any 所有源、目的 IP,eq为等于,1434 为 udp端口号  
NE80(config)#acl a1 r1 deny          
//a1 为 acl 的名字,r1 为要绑定的 rule-map的名字,
NE80(config-if-Ethernet1/0/0)#access-group acl a1  
//在 1/0/0 接口上绑定 acl,acl为关键字,a1 为 acl 的名字
λ            NE16 的配置:
NE16-4(config)#firewall enable all      
//首先启动防火墙
NE16-4(config)#access-list 101 deny udp any any eq 1434  
//deny为禁止的关键字,针对 udp报文,any any 为所有源、目的 IP,eq为等于,  1434 为 udp端口号
NE16-4(config-if-Ethernet2/2/0)#ip access-group 101 in   //在接口上启用 access-list,in 表示进来的报文,也可以用 out 表示出去的报文
λ           中低端路由器的配置
[Router]firewall enable
[Router]acl 101
[Router-acl-101]rule deny udp source any destion any destination-port eq 1434
[Router-Ethernet0]firewall packet-filter 101 inbound
λ            6506 产品的配置:
旧命令行配置如下:
6506(config)#acl extended aaa deny protocol udp any any eq 1434  
6506(config-if-Ethernet5/0/1)#access-group  aaa  
国际化新命令行配置如下:
[Quidway]acl number 100
[Quidway-acl-adv-100]rule deny udp source any destination any destination-port eq 1434
[Quidway-acl-adv-100]quit
[Quidway]interface ethernet  5/0/1
[Quidway-Ethernet5/0/1]packet-filter inbound ip-group 100 not-care-for-interface
 
λ            5516 产品的配置:
旧命令行配置如下:
5516(config)#rule-map  l3 aaa protocol-type udp ingress any egress any eq 1434
5516(config)#flow-action fff deny
5516(config)#acl bbb aaa fff
5516(config)#access-group  bbb
国际化新命令行配置如下:  
[Quidway]acl num 100
[Quidway-acl-adv-100]rule deny udp source any destination any destination-port eq 1434  
[Quidway]packet-filter ip-group 100
 
λ            3526 产品的配置:
旧命令行配置如下: rule-map l3 r1 0.0.0.0 0.0.0.0 1.1.0.0 255.255.0.0 eq 1434                            
flow-action f1 deny                                                                                
acl acl1 r1 f1                                                                                      
access-group acl1
国际化新命令配置如下:
acl number 100                                                                                        
rule 0 deny udp source 0.0.0.0 0 source-port eq 1434 destination 1.1.0.0 0
packet-filter ip-group 101 rule 0
注:3526 产品只能配置外网对内网的过滤规则,其中 1.1.0.0 255.255.0.0是内网的地址段。
 
λ            8016 产品的配置:
旧命令行配置如下:
8016(config)#rule-map intervlan aaa udp  any  any    eq 1434
8016(config)#acl bbb aaa deny
8016(config)#access-group acl bbb vlan 10 port all
国际化新命令行配置如下:
8016(config)#rule-map intervlan aaa udp  any  any    eq 1434
8016(config)#eacl bbb aaa deny
8016(config)#access-group eacl bbb vlan 10 port all
 
 
 
后记:我学东西的时候喜欢把参数弄清楚是什么意思,一旦弄清了,我到什么时候都记得,但自学的时候,苦于没有老师,只得自己一步一步摸索。
个人感觉,弄清楚每条命令的参数的含义是很有必要的。
 附上本文PDF版