VLAN之間ACL和VACL的區別

VLAN之間ACL和VACL的區別
 
最近經常碰到有人問起Cisco交換機上如何實現VLAN之間的訪問控制,一般我都會告訴對方,在三層交換機上直接把ACL應用到相應VLAN的虛端口就OK了,其實我自己也沒有機會去真正實踐過。眼下正巧有個項目涉及到這方面的需求,於是對如何實現VLAN之間的訪問控制仔細研究了一番,這才發現VLAN訪問控制列表(VACL)和VLAN之間的訪問控制列表其實在實現方式上是有很大不同的,雖然從字面上看兩者差不多。
我們常說的VLAN之間的訪問控制,它的實現方式是將ACL直接應用到VLAN的虛端口上,與應用到物理端口的ACL實現方式是一樣的。而VLAN訪問控制(VACL),也稱爲VLAN訪問映射表,它的實現方式與前者完全不同。它應用於VLAN中的所有通信流,支持基於ETHERTYPEMAC地址的過濾,可以防止未經授權的數據流進入VLAN。目前支持的VACL操作有三種:轉發(forward),丟棄(drop),重定向(redirect)
VACL很少用到,在配置時要注意以下幾點:
1)最後一條隱藏規則是deny ip any any,與ACL相同。
2)VACL沒有inboundoutbound之分,區別於ACL
3)ACL列表中是permit,而VACL中爲drop,則數據流執行drop
4)VACL規則應用在NAT之前。
5)一個VACL可以用於多個VLAN中;但一個VLAN只能與一個VACL關聯。
6)VACL只有在VLAN的端口被激活後纔會啓用,否則狀態爲inactive

下面,我以Cisco3550交換機作爲實例來詳細描述一下兩者之間不同的實現方式。


網絡拓撲圖
網絡基本情況是劃分了三個vlanvlan10vlan20vlan30vlan虛端口的IP地址分別爲192.168.10.1/24192.168.20.1/24192.168.30.1/24
訪問控制要求:vlan10vlan20之間不能訪問,但都能訪問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

******** 應用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對數據流沒有inboundoutbound之分,所以要把允許通過某vlanIP數據流都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 355045006500系列的交換機支持。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章