vlan的應用在網絡項目中是非常廣泛的,基本上大部分的項目都需要劃分vlan,前幾天我們講到vlan的配置,有朋友就提到有沒有更基礎一些的内容,今天我們就從基礎的vlan的知識開始,了解vlan的劃分原理。
一、為什麼需要VLAN
1、什麼是VLAN?
VLAN(Virtual LAN),翻譯成中文是“虛拟局域網”。LAN可以是由少數幾台家用計算機構成的網絡,也可以是數以百計的計算機構成的企業網絡。VLAN所指的LAN特指使用路由器分割的網絡——也就是廣播域。
簡單來說,同一個VLAN中的用戶間通信就和在一個局域網内一樣,同一個VLAN中的廣播隻有VLAN中的 成員才能聽到,而不會傳輸到其他的VLAN中去,從而控制不必要的廣播風暴的産生。同時, 若沒有路由,不同VLAN之間不能相互通信,從而提高了不同工作組之間的信息安全性。網絡 管理員可以通過配置VLAN之間的路由來全面管理網絡内部不同工作組之間的信息互訪。
2、未分割VLAN時将會發生什麼?
那麼,為什麼需要分割VLAN(廣播域)呢?那是因為,如果僅有一個廣播域,有可能會影響到網絡整體的傳輸性能。具體原因,請參看附圖加深理解。
圖中,是一個由5台二層交換機(交換機1~5)連接了大量客戶機構成的網絡。假設這時,計算機A需要與計算機B通信。在基于以太網的通信中,必須在數據幀中指定目标MAC地址才能正常通信,因此計算機A必須先廣播“ARP請求(ARP Request)信息”,來嘗試獲取計算機B的MAC地址。
交換機1收到廣播幀(ARP請求)後,會将它轉發給除接收端口外的其他所有端口,也就是泛濫了。接着,交換機2收到廣播幀後也會泛濫。交換機3、4、5也還會泛濫。最終ARP請求會被轉發到同一網絡中的所有客戶機上,這也就是網絡風暴。
我們分析下,這個計算A的ARP請求原本是為了獲得計算機B的MAC地址而發出的。也就是說:隻要計算機B能收到就萬事大吉了。可是事實上,數據幀卻傳遍整個網絡,導緻所有的計算機都收到了它。如此一來,一方面廣播信息消耗了網絡整體的帶寬,另一方面,收到廣播信息的計算機還要消耗一部分CPU時間來對它進行處理。造成了網絡帶寬和CPU運算能力的大量無謂消耗,可能會造成網絡癱瘓。
二、VLAN的原理
1、實現VLAN的機制
在理解了“為什麼需要VLAN”之後,接下來讓我們來了解一下交換機是如何使用VLAN分割廣播域的。
首先,在一台未設置任何VLAN的二層交換機上,任何廣播幀都會被轉發給除接收端口外的所有其他端口上泛濫。例如,計算機A發送廣播信息後,會被轉發給端口2、3、4。
這時,如果在交換機上生成紅、藍兩個VLAN;
同時設置端口1、2屬于紅色VLAN、端口3、4屬于藍色VLAN。
再從A發出廣播幀的話,交換機就隻會把它轉發給同屬于一個VLAN的其他端口——也就是同屬于紅色VLAN的端口2,不會再轉發給屬于藍色VLAN的端口。
同樣,C發送廣播信息時,隻會被轉發給其他屬于藍色VLAN的端口,不會被轉發給屬于紅色VLAN的端口。
就這樣,VLAN通過限制廣播幀轉發的範圍分割了廣播域。上圖中為了便于說明,以紅、藍兩色識别不同的VLAN,在實際使用中則是用“VLAN的ID”來區分的。
但是,VLAN生成的邏輯上的交換機是互不相通的。因此,在交換機上設置VLAN後,如果未做其他處理,VLAN間是無法通信的。
2、需要VLAN間通信時怎麼辦?
那麼,當我們需要在不同的VLAN間通信時又該如何是好呢?
VLAN是廣播域。而通常兩個廣播域之間由路由器連接,廣播域之間來往的數據包都是由路由器中繼的。因此,VLAN間的通信也需要路由器提供中繼服務,這被稱作“VLAN間路由”。
VLAN間路由,可以使用普通的路由器,也可以使用三層交換機。大家可以記住不同VLAN間互相通信時需要用到路由功能。
二、VLAN的劃分方式
1、靜态VALN
靜态VLAN也叫做基于端口的VLAN。從意思也能理解,它是固定不變的,就是明确指定交換機各端口屬于哪個VLAN的設定方法。
基于端口的vlan這種方法,主要的優點就是定議vlan的成員很簡單明了,思路清楚,直接針對交換機現有的端口設置vlan,哪些端口屬于同一個vlan,很清楚的理解。
那麼它的缺點呢?
由于需要一個個端口地指定,因此當網絡中的計算機數目超過一定數字(比如數百台)後,設定操作就會變得煩雜無比。并且,計算機每次變更所連端口,都必須同時更改該端口所屬VLAN的設定——這顯然靜态VLAN不适合那些需要頻繁改變拓補結構的網絡和大型網絡。
2、動态VLAN
動态VLAN則是根據每個端口所連的計算機,随時改變端口所屬的VLAN。這就可以避免上述的更改設定之類的操作。動态VLAN可以大緻分為3類:
● 基于MAC地址的VLAN(MAC Based VLAN)
● 基于子網的VLAN(Subnet Based VLAN)
● 基于用戶的VLAN(User Based VLAN)
①、基于MAC地址的VLAN,就是通過查詢并記錄端口所連計算機上網卡的MAC地址來決定端口的所屬。假定有一個計算機的MAC地址為“A”被交換機設定為屬于VLAN“10”,那麼不論MAC地址為“A”這台計算機連在交換機哪個端口,該端口都會被劃分到VLAN10中去。
例如:計算機連在端口1時,端口1屬于VLAN10;而計算機連在端口2時,則是端口2屬于VLAN10。
②、基于子網的VLAN,則是通過所連計算機的IP地址,來決定端口所屬VLAN的。不像基于MAC地址的VLAN,即使計算機因為交換了網卡或是其他原因導緻MAC地址改變,隻要它的IP地址不變,就仍可以加入原先設定的VLAN。
說白了,隻要電腦ip地址不變,那麼它的vlan就不變,很方便,計算機可以換交換機端口,也可以MAC地址了,都不影響。
③、基于用戶的VLAN,則是根據交換機各端口所連的計算機上當前登錄的用戶,來決定該端口屬于哪個VLAN。這裡的用戶識别信息,一般是計算機操作系統登錄的用戶,比如可以是Windows域中使用的用戶名。這些用戶名信息,屬于OSI第四層以上的信息。
3、總結
綜上所述,vlan的設定手法有靜态VLAN和動态VLAN兩種,其中動态VLAN又可以繼續細分成幾個小類。
其中基于子網的VLAN和基于用戶的VLAN有可能是網絡設備廠商使用獨有的協議實現的,不同廠商的設備之間互聯有可能出現兼容性問題;因此在選擇交換機時,一定要注意事先确認。
三、交換機之間的連接方式
那麼,如果需要設置跨越多台交換機的VLAN時又如何呢?
1、方法一
在規劃企業級網絡時,很有可能會遇到隸屬于同一部門的用戶分散在同一座建築物中的不同樓層的情況,這時可能就需要考慮到如何跨越多台交換機設置VLAN的問題了。假設有如下圖所示的網絡,且需要将不同樓層的A、C和B、D設置為同一個VLAN。
如下圖:
這時最關鍵的就是“交換機1和交換機2該如何連接才好呢?”
最簡單的方法,自然是在交換機1和交換機2上各設一個紅、藍VLAN專用的接口并互聯了。
但是,這個辦法從擴展性和管理效率來看都不好。例如,在現有網絡基礎上再新建VLAN時,為了讓這個VLAN能夠互通,就需要在交換機間連接新的網線。建築物樓層間的縱向布線是比較麻煩的,一般不能由基層管理人員随意進行。并且,VLAN越多,樓層間(嚴格地說是交換機間)互聯所需的端口也越來越多,交換機端口的利用效率低是對資源的一種浪費、也限制了網絡的擴展。
2、方法2
為了避免上面這種低效率的連接方式,人們想辦法讓交換機間互聯的網線集中到一根上,這時使用的就是彙聚鍊接(Trunk Link)。
何謂彙聚鍊接?
彙聚鍊接(Trunk Link)指的是能夠轉發多個不同VLAN的通信的端口。
彙聚鍊路上流通的數據幀,都被附加了用于識别分屬于哪個VLAN的特殊信息。
現在再讓我們回過頭來考慮一下剛才那個網絡如果采用彙聚鍊路又會如何呢?用戶隻需要簡單地将交換機間互聯的端口設定為彙聚鍊接就可以了。這時使用的一根網線還是普通的UTP線,而不是什麼其他的特殊布線。圖例中是交換機間互聯,因此需要用交叉線來連接。
接下來,讓我們具體看看彙聚鍊接是如何實現跨越交換機間的VLAN的。
A發送的數據幀從交換機1經過彙聚鍊路到達交換機2時,在數據幀上附加了表示屬于紅色VLAN的标記。
交換機2收到數據幀後,經過檢查VLAN标識發現這個數據幀是屬于紅色VLAN的,因此去除标記後根據需要将複原的數據幀隻轉發給其他屬于紅色VLAN的端口。這時的轉送,是指經過确認目标MAC地址并與MAC地址列表比對後隻轉發給目标MAC地址所連的端口。隻有當數據幀是一個廣播幀、多播幀或是目标不明的幀時,它才會被轉發到所有屬于紅色VLAN的端口。
藍色VLAN發送數據幀時的情形也與此相同。
四、VLAN間通信的原理
1、同一VLAN内的通信
接下來,我們繼續學習使用彙聚鍊路連接交換機與路由器時,VLAN間路由是如何進行的。如下圖所示,為各台計算機以及路由器的子接口設定IP地址。
紅色VLAN(VLANID=1)的網絡地址為192.168.1.0/24,藍色VLAN(VLANID=2)的網絡地址為192.168.2.0/24。各計算機的MAC地址分别為A/B/C/D,路由器彙聚鍊接端口的MAC地址為R。交換機通過對各端口所連計算機MAC地址的學習,生成如下的MAC地址列表。
首先考慮計算機A與同一VLAN内的計算機B之間通信時的情形。
計算機A發出ARP請求信息,請求解析B的MAC地址。交換機收到數據幀後,檢索MAC地址列表中與收信端口同屬一個VLAN的表項。結果發現,計算機B連接在端口2上,于是交換機将數據幀轉發給端口2,最終計算機B收到該幀。收發信雙方同屬一個VLAN之内的通信,一切處理均在交換機内完成。
2、不同VLAN間通信時數據的流程
接下來是這一講的核心内容,不同VLAN間的通信。讓我們來考慮一下計算機A與計算機C之間通信時的情況。
過程1、計算機A從通信目标的IP地址(192.168.2.1)得出C與本機不屬于同一個網段。因此會向設定的默認網關(Default Gateway,GW)轉發數據幀。在發送數據幀之前,需要先用ARP獲取路由器的MAC地址。
過程2、得到路由器的MAC地址R後,接下來就是按圖中所示的步驟發送往C去的數據幀。①的數據幀中,目标MAC地址是路由器的地址R、但内含的目标IP地址仍是最終要通信的對象C的地址。
過程3、交換機在端口1上收到①的數據幀後,檢索MAC地址列表中與端口1同屬一個VLAN的表項。由于彙聚鍊路會被看作屬于所有的VLAN,因此這時交換機的端口6也屬于被參照對象。這樣交換機就知道往MAC地址R發送數據幀,需要經過端口6轉發。
過程4、從端口6發送數據幀時,由于它是彙聚鍊接,因此會被附加上VLAN識别信息。由于原先是來自紅色VLAN的數據幀,因此如圖中②所示,會被加上紅色VLAN的識别信息後進入彙聚鍊路。路由器收到②的數據幀後,确認其VLAN識别信息,由于它是屬于紅色VLAN的數據幀,因此交由負責紅色VLAN的子接口接收。
過程5、接着,根據路由器内部的路由表,判斷該向哪裡中繼。
由于目标網絡192.168.2.0/24是藍色VLAN,,且該網絡通過子接口與路由器直連,因此隻要從負責藍色VLAN的子接口轉發就可以了。這時,數據幀的目标MAC地址被改寫成計算機C的目标地址;并且由于需要經過彙聚鍊路轉發,因此被附加了屬于藍色VLAN的識别信息。這就是圖中③的數據幀。
過程6、交換機收到③的數據幀後,根據VLAN标識信息從MAC地址列表中檢索屬于藍色VLAN的表項。由于通信目标——計算機C連接在端口3上、且端口3為普通的訪問鍊接,因此交換機會将數據幀除去VLAN識别信息後(數據幀④)轉發給端口3,最終計算機C才能成功地收到這個數據幀。
進行VLAN間通信時,即使通信雙方都連接在同一台交換機上,也必須經過:發送方——交換機——路由器——交換機——接收方
這樣一個流程。
最新弱電資料更新—弱電工程各系統施工報價清單(12月21日)
,