VLAN之間ACL和VACL的區別

2021-04-13 09:48:33 字數 3495 閱讀 4303

最近經常碰到有人問起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.

sy0-101

510-601

1y0-973

510-305

訪問控制要求: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

310-301

e20-090

ee0-200 ******** 完畢 ********

(二)     通過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系列的交換機支援。 

VLAN之間ACL和VACL的區別

最近經常碰到有人問起cisco交換機上如何實現vlan之間的訪問控制,一般我都會告訴對方,在三層交換機上直接把acl應用到相應vlan的虛埠就ok了,其實我自己也沒有機會去真正實踐過。眼下正巧有個專案涉及到這方面的需求,於是對如何實現vlan之間的訪問控制仔細研究了一番,這才發現vlan訪問控制列表...

不同vlan之間的通訊

想實現不同vlan間通訊時,都有什麼方法呢?單臂路由是由二層交換機和路由器構成,原理是路由器重新封裝mac位址,轉換vlan標籤。交換機與pc機用access,與路由器用trunk。如圖要使pc1與pc2不在相同vlan,若想相同,該如何配置?這裡就可以用到單臂路由。交換機配置 路由器配置 最後pc...

VLAN和子網之間的區別與聯絡

通常來說,子網和vlan的相似之處在於它們都處理網路的一部分的分段或分割槽。但是,vlan是資料鏈路層 osi l2 的構造,而子網是網路層 osi l3 的ip構造,它們解決網路上的不同問題。儘管在vlan和子網之間建立一對一關係是一種常見的做法,但是它們是獨立的第2層和第3層構造,這在設計網路時...