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 交換機做爲實例來詳細描述一下二者之間不一樣的實現方式。


網絡拓撲圖
網絡基本狀況是劃分了三個 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 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 系列的交換機支持。
 原文地址 [url]http://musheng.org/ghccms/article/2007/0214/article_381.html[/url]
相關文章
相關標籤/搜索