分享

VLAN之间ACL和VACL的区别

 luobo2012 2012-03-20

VLAN之间ACL和VACL的区别

最近经常碰到有人问起Cisco交换机上如何实现VLAN之间的访问控制,一般我都会告诉对方,在三层交换机上直接把acl应用到相应VLAN的虚端口就OK了,其实我自己也没有机会去真正实践过。眼下正巧有个项目涉及到这方面的需求,于是对如何实现VLAN之间的访问控制仔细研究了一番,这才发现VLAN访问控制列表(vacl)和VLAN之间的访问控制列表其实在实现方式上是有很大不同的,虽然从字面上看两者差不多。

  我们常说的VLAN之间的访问控制,它的实现方式是将acl直接应用到VLAN的虚端口上,与应用到物理端口的acl实现方式是一样的。而VLAN访问控制vacl),也称为VLAN访问映射表,它的实现方式与前者完全不同。它应用于VLAN中的所有通信流,支持基于ETHERTYPE和MAC地址的过滤,可以防止未经授权的数据流进入VLAN.目前支持的vacl操作有三种:转发(forward),丢弃(drop),重定向(redirect)。

  vacl很少用到,在配置时要注意以下几点:

  1) 最后一条隐藏规则是deny ip any any,与acl相同。

  2) vacl没有inbound和outbound之分,区别于acl.

  3) 若acl列表中是permit,而vacl中为drop,则数据流执行drop.

  4) vacl规则应用在NAT之前。

  5) 一个vacl可以用于多个VLAN中;但一个VLAN只能与一个vacl关联。

  6) vacl只有在VLAN的端口被激活后才会启用,否则状态为inactive.

  下面,我以Cisco3550交换机作为实例来详细描述一下两者之间不同的实现方式。

  网络基本情况是划分了三个VLANVLAN10、VLAN20和VLAN30,VLAN虚端口的IP地址分别为192.168.10.1/24、192.168.20.1/24和192.168.30.1/24.

  访问控制要求:VLAN10和VLAN20之间不能访问,但都能访问VLAN30.

  (一) 通过VLAN之间acl方式实现

  ******** 配置VLAN ********

  Switch(VLAN)# VLAN 10 // 创建VLAN 10

  Switch(VLAN)# VLAN 20

  Switch(VLAN)# VLAN 30

  Switch(VLAN)# int VLAN 10

  Switch(config-if)# ip address 192.168.10.1 255.255.255.0 // 配置VLAN10虚端口IP

  Switch(config-if)# int VLAN 20

  Switch(config-if)# ip address 192.168.20.1 255.255.255.0

  Switch(config-if)# int VLAN 30

  Switch(config-if)# ip address 192.168.30.1 255.255.255.0

  ******** 配置acl ********

  Switch(config)# access-list 101 permit ip 192.168.10.0 0.0.0.255 192.168.30.0 0.0.0.255

  Switch(config)# access-list 102 permit ip 192.168.20.0 0.0.0.255 192.168.30.0 0.0.0.255

  ******** 应用aclVLAN端口 ********

  Switch(config)# int VLAN 10

  Switch(config-if)# ip access-group 101 in

  Switch(config)# int VLAN 20

  Switch(config-if)# ip access-group 102 in

  ******** 完毕 ********

  (二) 通过vacl方式实现

  ******** 配置VLAN ********

  (同上)

  ******** 配置acl ********

  Switch(config)# access-list 101 permit ip 192.168.10.0 0.0.0.255 192.168.30.0 0.0.0.255

  Switch(config)# access-list 101 permit ip 192.168.30.0 0.0.0.255 192.168.10.0 0.0.0.255

  (不同之处:因为vacl对数据流没有inbound和outbound之分,所以要把允许通过某VLAN的IP数据流都permit才行。VLAN10允许与VLAN30通讯,而数据流又是双向的,所以要在acl中增加VLAN30的网段)

  Switch(config)# access-list 102 permit ip 192.168.20.0 0.0.0.255 192.168.30.0 0.0.0.255

  Switch(config)# access-list 102 permit ip 192.168.30.0 0.0.0.255 192.168.20.0 0.0.0.255

  ******** 配置vacl ********

  第一步:配置VLAN access map

  Switch(config)# VLAN access-map test1 //定义一个VLAN access map,取名为test1

  Switch(config-VLAN-access)# match ip address 101 // 设置匹配规则为acl 101

  Switch(config-VLAN-access)# action forward // 匹配后,设置数据流转发(forward)

  Switch(config)# VLAN access-map test2 //定义一个VLAN access map,取名为test2

  Switch(config-VLAN-access)# match ip address 102 // 设置匹配规则为acl 102

  Switch(config-VLAN-access)# action forward // 匹配后,设置数据流转发(forward)

  第二步:应用vacl

  Switch(config)# VLAN filter test1 VLAN-list 10 //将上面配置的test1应用到VLAN10中

  Switch(config)# VLAN filter test2 VLAN-list 20 //将上面配置的test1应用到VLAN20中

  ******** 完毕 ********

  以上就是关于VLAN之间aclvacl的简单配置实例。我个人认为一般情况下,通过VLAN之间acl实现访问控制比较方便,但是当VLAN的端口比较分散时,采用vacl相对而言就要简单很多。不过使用vacl的前提是交换机支持此功能,目前可能只有Cisco 3550、4500和6500系列的交换机支持。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多