VACL详解

    有些刚接触ACL(Access Control Lists)的朋友听到VACL可能有些陌生,本文将对VACL在Cisco COS和IOS版本的交换机上的使用,进行一个比较全面的描述。

  VACL(VLAN ACL)和定时访问列表、动态访问列表、自反访问列表一样都属于ACL扩展应用的一部分,它定义了基于三层以上的信息流量,而所对应的参数则用于两层的VLAN。VACL多是针对硬件中应用,比传统的路由器访问列表处理速度明显快得多。目前,Cisco 6000(Policy Feature Card,策略特性卡,如图1)、3750、3650、3550和2950G系列的交换机都支持VACL。


基于COS VACL的配置

  VACL与普通的ACL相同,列表也是按照顺序进行匹配的。ACL号相同的所有ACL形成一个组,在判断一个数据帧时,使用同一组中的条目从上到下逐一进行判断,一遇到满足的条目就终止对该数据帧的判断。基本的配置方法如下:

1.配置ACL

  Set security acl ip {acl_name} {permit |deny |redirect mod/port} {protocol} {sourceaddress mask} [op] [srcport] {dest mask} [op] [destport] [before editbuffer_index |modify editbuffer_index] [log]b 

 Set security acl ip命令后面指定IP ACL的名字,后面是协议的说明和采取的措施。Permit|deny分别对应为:Permit是允许通过,deny是丢弃包。如果加上Redirect选项就代表不使用CAM(Content Addressable Memory),而把流量发送到交换机上一个指定的mod/port对应的端口上。对于COS的交换机来说,ACL直到被提交之前都首先写入一个特殊的缓冲区,并不作为交换机当前运行的条目,before和modify参数是指将配置的acl条目放到某条列表之前或者修改其参数。

2.写入到TCAM

  在配置完ACL之后,它只在编辑缓冲区里面,我们必须通过commit security acl命令将配置写入到TCAM(ternary content addressable memory)。完整的命令参数如下:

  commit security acl {name | all }

  name 选项为只提交指定的名称列表(可以使用show security acl ip name editbuffer 查看编辑缓冲区内未被提交到内容的控制条目),all选项指提交所有未写入的VACL。

3.映射到VLAN

  VACL与ACL都需要在提交之后把它们对应到作用对象上,如interface vlan1///ip access-group 101 out:这两句将access-list 101应用到vlan1接口的out方向。其中101是ACL号,和相应的ACL进行关联。out是对路由器该接口上哪个方向的包进行过滤,可以有in和out两种选择。COS VACL的配置同上面的道理一样,具体体现在:一个VLAN只能有一个VACL映射对其起作用,但一个VACL可以同时被多个VLAN同时调用。命令参数如下:

  Set security acl map acl_name vlan


基于IOS VACL的配置

  对于中小企业和校园网的用户来说,3750、3550和2950的交换机的数量相对较多,前面基于COS系统的VACL的配置并不具备普遍性。那么,我们将着重讲解基于IOS系统的交换机上VACL配置的方法。

配置不同的访问列表

1.基于编号的访问列表

  标准IP访问控制列表:一个标准IP访问控制列表匹配IP包中的源地址或源地址中的一部分,可对匹配的数据包采取“拒绝”或“允许”两个操作。编号范围为1~99的访问控制列表是标准IP访问控制列表。命令格式:

  router(config)#access-list [list number][permit | deny | remark][host/any][source address][wildcard-mask][log]

  list number表示编号范围:1~99;permit/deny用来表示满足访问表项的报文是允许通过接口,还是要过滤掉;source address源地址;host/any表示为主机匹配地址,host表示一种精确的匹配,其屏蔽码为0.0.0.0,any表示任何主机。

  扩展访问列表:扩展访问列表主要增加报文过滤能力,一个扩展的IP访问表允许用户根据内容过滤报文的源和目的地址的协议、端口以及特定报文字段。协议项定义了需要被过滤的协议,例如IP、TCP、UDP、ICMP等,协议选项是区别标准访问列表的特征之一。除此之外, 扩展的列表标号从100~199、2000~2699。语法如下:

  router(config)#access-list Access-List-Number [ permit | deny ] [ Protocol | Protocol-Number ] source source-wildcard [ Source-Port ] destination destination-wildcard [ Destination-Port ] [ established ]

2.基于名称的访问列表

  基于名称的访问列表遵守和编号IP访问控制列表一样的逻辑,名字可以更加容易地记住访问控制列表的功能,命名的列表允许使用超过99个标准控制列表和100个扩展控制列表。优于编号的控制列表的特点是可以删除特定的一条语句,而编号访问控制列表只能删除整个访问控制。语法如下:

  router(config)#ip access-list {standard | extended} name

  ip access-list {standard | extended} name表示要进入的name所指定的列表配置模式,所有的permit和deny操作都是进入到这个模式下进行配置的。

创建VLAN映射

VACL主要区别于标准ACL的作用方式,就是将已经创建好的ACL映射到一个VLAN上。创建映射分为三步:

 

(global) vlan access-map name [number]
  (vlan-map) match ip address {aclname | aclnumber}
  (vlan-map) action {drop | forward}

  第一步vlan access-map后面的名字定义的时候最好有针对性或者提示性,而后续设置的子句都使用number选项。如果在这里进行了分组的设置,每一个子句都要经过匹配检测,直到没有发现匹配语句才丢弃分组。

  执行完第一步实际上是进入了访问映射的配置模式。match ip address后面的参数是您在前面配置ACL的名称或编号。

  第三步,交换机根据匹配ACL确定的匹配,action命令后面的参数才是代表流量是允许(forward)还是丢弃(drop)。

应用到交换机

之前的配置完成以后,最后需要用vlan filter命令把访问列表应用到交换机。格式如下:

  (global) vlan filter mapname vlan-list list

  Mapname参数对应的是vlan access-map命令创建的映射名称,list是vlan的序号。都配置完成以后可以利用show命令进行检查:

 

show ip access-lists [number | name]
  show vlan access-map [mapname]
  show vlan filter [access-map name | vlan vlan-id]
  show ip interface type number


vacl的配置方法!


一、VACL 简单介绍:

VACL又称为VLAN访问映射表,应用于VLAN中的所有通信流。VACL支持基于ETHERTYPE和MAC地址的过滤。与基于CISCO IOS的路由映射表一样,VACL中条目的顺序并非无关紧要。目前, CATALYST6500系列交换机支持多种VACL操作:转发,丢弃,重定向。


二、配置步骤:

1. 指定VLAN访问映射表的名称和序列号: 
vlan access-map map_name [seq#] 
2. 配置MATCH子句 
match ip address................................ 
3. 配置ACL操作 
action .................................................... 
4. 将VLAN 访问映射表应用于VLAN 
vlan filter map_map vlan_list list



三、举个例子:

confit t 
access-list 111 permit tcp any any eq ftp 
vlan access-map mm 100 
match ip address 100 
action drop 
exit 
vlan filter mm vlan-list 1