Vlan埠部署ACLVACL的差異

最近經常碰到有人問起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系列的交換機支援。
arrow
arrow
    全站熱搜

    aircsh 發表在 痞客邦 留言(0) 人氣()