最近經常碰到有人問起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層構造,這在設計網路時...