VLAN之间ACL和VACL的区别

news/2024/7/4 9:38:23
 
最近经常碰到有人问起 Cisco 交换机上如何实现 VLAN 之间的访问控制,一般我都会告诉对方,在三层交换机上直接把 ACL 应用到相应 VLAN 的虚端口就 OK 了,其实我自己也没有机会去真正实践过。眼下正巧有个项目涉及到这方面的需求,于是对如何实现 VLAN 之间的访问控制仔细研究了一番,这才发现 VLAN 访问控制列表(VACL)和 VLAN 之间的访问控制列表其实在实现方式上是有很大不同的,虽然从字面上看两者差不多。 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

我们常说的 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 交换机作为实例来详细描述一下两者之间不同的实现方式。

 

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

点击在新窗口查看全图
网络拓扑图

 

网络基本情况是划分了三个 vlan vlan10 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(config)# vlan 10  // 创建 vlan 10

Switch(config-vlan)# vlan 20

Switch(config-vlan)# vlan 30

Switch(config-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 <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />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

 

******** 应用 ACL VLAN 端口 ********

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 之间 ACL VACL 的简单配置实例。我个人认为一般情况下,通过 VLAN 之间 ACL 实现访问控制比较方便,但是当 VLAN 的端口比较分散时,采用 VACL 相对而言就要简单很多。不过使用 VACL 的前提是交换机支持此功能,目前可能只有 Cisco 3550 4500 6500 系列的交换机支持。


http://www.niftyadmin.cn/n/643754.html

相关文章

C++之Qt的信号和槽

C之Qt的信号和槽 信号槽是 Qt 框架引以为豪的机制之一。所谓信号槽&#xff0c;实际就是观察者模式。当某个事件发生之后&#xff0c;比如&#xff0c;按钮检测到自己被点击了一下&#xff0c;它就会发出一个信号&#xff08;signal&#xff09;。这种发出是没有目的的&#xf…

设计模式总结-封装变化、提高复用

又有一段时间没有接触设计模式了&#xff0c;都快忘记了&#xff0c;现在回忆回忆&#xff0c;看看还是否记得。看了设计模式感觉设计模式主要有作用是&#xff1a;1、提高复用 看看GOF的《设计模式可复用面向对象软件的基础》书名就知道2、封装变化 提取潜在的变化&#xff0c…

可视化教学设计就业柱状图

源代码和教案&#xff08;访问密码&#xff1a;7567&#xff09;链接https://url56.ctfile.com/f/34653256-531246797-711850

使用MFC如何在整个磁盘硬盘中查找文件?

使用MFC进行开发&#xff0c;可以使用CFileFind类来进行文件查找&#xff0c;MFC完整的封装了文件查找的功能。用于文件查找的成员函数为&#xff1a; virtual BOOL FindFile( LPCTSTR pstrName NULL, DWORD dwUnused 0 ); 开始查询 virtual BOOL FindNextFile( ); 查找文件…

OUTLOOK EXPRESS出错信息代码表

错误码 意义一般 0x800C01310x800C013E 可能是 Folders.dbx 档案属性错误或损坏.0x800CCC00 身份验证&#xff08;Authentication&#xff09;未载入0x800CCC01 认证&#xff08;Certificate&#xff09;内容错误0x800CCC02 认证日期错误0x800CCC03 使用者已联机0x800CCC05 未…

数据可视化行业柱状图教学设计

源代码和教案&#xff08;访问密码&#xff1a;7567&#xff09;链接https://url56.ctfile.com/f/34653256-531255943-26262e

2020.6.21P72_OpenCV_几何变换_图像平移_缩放_旋转

描述&#xff1a; //2020.6.21P72_OpenCV_图像平移_缩放_旋转 •完成一张图像的几何变换需要两个独立的算法。首先需要一个算法实现空间坐标变换&#xff0c;用它描述每个像素如何从初始位置移动到终止位置&#xff1b;其次&#xff0c;还需要一个插值算法完成输出图像的每个像…

Microsoft AJAX Library对 Boolean的扩展

Microsoft AJAX Library对 Boolean对象添加了一个静态方法来扩展其功能&#xff1a; Boolean.parse 函数 将逻辑值的字符串表示形式转换为其 Boolean 等效对象。 此函数是静态的&#xff0c;可在不创建对象实例的情况下调用。 使用 parse 函数可以根据字符串表示形式创建布尔值…