Ethernet 虛擬區域網路 Q-in-Q 虛擬網路 乙太網路 VLAN 交換器 封包

實現大規模VLAN環境 Q-in-Q協定突破侷限

2018-01-16
虛擬網路可以有效地透過隔絕廣播封包網域來提升整體網路效能,但是虛擬網路仍然有它的限制。不過,在虛擬網路被大量使用之後,許多衍生的改善協定也逐漸被開發出來,本文將介紹其中一種稱之為Q-in-Q的協定。

VMPS內部包含一個資料庫,用來儲存哪些MAC位址是屬於哪個虛擬區域網路的對應關係,所以動態虛擬區域網路可說是依照MAC位址來分割虛擬區域網路的,也就是MAC-based,而靜態虛擬區域網路則根據埠來區分是哪個虛擬區域網路,亦即Port-based。

但是,對於動態虛擬區域網路而言,一個埠底下的所有電腦必須全都屬於同一個虛擬區域網路,這樣才能正常運作,因為這樣一來,這個埠所連接的電腦的MAC位址都是對應的同一個虛擬區域網路,當Switch設備要決定丟到哪個虛擬區域網路時,才不會搞錯。

不過,一般而言,多數都會採用靜態VLAN的方式來分割虛擬區域網路,因為設定方便快速,而且也因為動態虛擬區域網路的方式還要架設另一台VMPS,這種方式的成本過高,而且設定相當麻煩,所以不建議使用動態虛擬區域網路的方式來架設VLAN。

虛擬區域網路必須解決的問題

由上面的介紹來看,虛擬區域網路應該不會有什麼太大的問題,看起來都很不錯。虛擬區域網路的問題在於,它使用的VLAN ID的空間是有限的,限制於4,096個。

當然,這對於企業網路環境來說,應該都還是相當足夠的。不過,對於更大的網路環境,例如電信業者的網路,那就不敷使用了。也因為這樣,而產生了階層式虛擬網路。

何謂階層式虛擬網路

階層式虛擬網路(HVLAN)是一種乙太網路(Ethernet)標準,用於延伸VLAN 802.1Q標準來運用於網路內。

過去幾年以來,由於階層式虛擬網路彈性化的設計與低成本的封包運載技術,階層式虛擬網路已經被瘋狂廣泛地使用。也因此發展出許多用於這樣環境的標準與協定,例如Q-in-Q(也就是IEEE 802.1ad)、PBB(也就是IEEE 802.1ah)、PBT(Provider Backbone Transport)以及PBB-TE(Provider Backbone Bridge Traffic Engineering)。

這些協定把既有乙太網路的品質做了極大幅度的提升,以達到所謂的五個九(也就是99.999%)的系統穩定度,這樣的穩定度等級也稱為Carrier-grade。基本上,階層式網路就是新增階層式的資訊與概念到虛擬網路的標籤內,以提供更多種不同的應用來提升整體的品質。

階層式虛擬網路把階層式的資訊放在虛擬網路的標籤內,有點像是所謂的CIDR(Classless Inter-Domain Routing),它所帶來的好處是使用「轉發網路封包到最符合結果的目的地」的方式,來減少主要核心交換機的轉發網路封包的次數。

除此之外,在大部分的情況下,階層式虛擬區域網路還可以免除網路資料封裝的過程,進而避免這些封裝所帶來的負擔。

階層式虛擬區域網路最重要的資料就是HVID。在階層式虛擬區域網路的環境中,網路封包可以只用HVID這個資訊就讓交換機了解如何轉發,或是用MAC位址的資訊讓交換機知道如何轉發,或是同時使用HVID和MAC位址資訊來知道如何轉發。 此外,階層式虛擬區域網路一個重要的設計好處就是,可以讓核心交換機在沒必要的情況下,避免去學習MAC位址。

HVID還可以提供Summarization功能,例如有些HVID可以是1.2.3.4,也可以是1.x.x.x,後者代表將後面三段的HVID都總結起來,只要是1開頭都是。由於這樣的設計,可以減少在轉發表格(Forwarding Table)中的資料比數。

Q-in-Q解決方案出現

現在大家應該都已經知道虛擬網路的特性、運作方式以及設計緣由,當然也知道了它所帶來的限制。現在,就著重在其中的一種解決方案Q-in-Q。

Q-in-Q是IEEE 802.1ad協定,等於是IEEE 802.1Q的延伸。簡單來說,剛才上述所提到的資料傳遞方式都是只能透過一個虛擬網路標籤,所以在網路封包中就只有一個虛擬網路表頭(Header),這個做法也就是802.1Q所規範的內容。而802.1ad則允許兩個虛擬網路標籤同時被使用,同時放在同一個網路封包內。這裡稱之為Q-in-Q的意思,應該就是指802.1Q-in-802.1Q,雙層虛擬網路標籤的意思。

剛才有提到,虛擬網路的個數被限制於4,096個,也就是12位元的空間(2的12次方等於4096),因為這裡使用雙層虛擬網路標籤,所以等於是可以支援4,096 × 4,096個虛擬網路,也就是1,677萬多個虛擬網路,大幅延伸了可使用的虛擬網路個數。

這樣的設計也就是剛才提到階層式虛擬網路的設計方式:虛擬網路中的虛擬網路。採用這種方式,更能大幅度地減少廣播封包流量的影響。而這種直接用兩個標籤的原因,也是因為對交換機而言,這種方式最簡單。 因為交換機可以直接使用對Stack的基本操作如Push及Pop來對標籤欄位做擷取資料的動作,不需要更改太多交換機技術的細節。

這麼一來,用在其他虛擬網路的相關技術也變得簡單許多,例如應用在QoS(Quality of Service)相關協定上。另外這樣的設計還有一個好處,就是Q-in-Q(IEEE 802.1ad)可以直接相容於原本802.1Q協定。

事實上,雖然這裡都是說「雙層虛擬網路標籤」或是說「Q-in-Q」,但是802.1ad的設計並沒有限制於只能有兩層,甚至可以是Q-in-Q-in-Q三層的方式。

換言之,兩層已經可以把虛擬網路的個數從4,096個很有效地延伸到了16,777,216個,對現在的使用環境而言,應該已經是非常足夠了。

結語

這篇文章從虛擬網路的角度出發,讓大家知道虛擬網路的設計緣由,以及所帶來的影響,接著,當然最重要的是介紹802.1Q,也就是虛擬網路之間資料傳遞的方式。然後,講述以往只有12位元的ID空間造成了最多只能支援4,096個虛擬網路,現在因為802.1Q這種允許虛擬網路之間資料傳遞的設計,所以帶出了階層式虛擬網路的設計需求。而Q-in-Q,也就是802.1ad的產生,就可以用最少的改變(容易與現有其他環境做整合)做到最大效用的解決方案。

整篇文章以介紹敘述的方式讓大家輕鬆地把這些設計的原因與考量因素記錄在腦海裡,讓大家有融會貫通的感覺。雖然在大部分人會碰到的網路,都不太會使用到這麼複雜的階層式虛擬區域網路,但是身為專業的網路管理人員,還是建議必須了解這個東西的存在與設計目的。

<本文作者:胡凱智,目前在Solera Holdings Inc.擔任亞太區首席技術長,曾於美商Mozilla擔任全球技術專案總監,並在趨勢科技任職七年多,有兩年美國矽谷工作經驗,在美國專利局擁有軟體專利。讀者交流建議:https://www.facebook.com/khu.page>


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!