VLAN之間ACL和VACL的區別

2021-09-21 17:23:50 字數 3718 閱讀 3186

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

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層構造,這在設計網路時...