VLAN技術淺談

1 前言

VLAN技術的出現不僅僅給我們在網絡設計和規劃上提供了更多的選擇,也更爲安全和方便的管理網絡,同時由VLAN技術引出的各種相關應用也是層出不窮。可以說VLAN技術是以太網技術的一個革命性的變革,同時也是以太網中最爲基礎和關鍵的技術。

本文主要針對VLAN技術產生的背景、VLAN技術的原理、VLAN的相關應用等幾個部分來逐一進行介紹。

2 爲什麼需要VLAN?

爲什麼需要VLAN技術,它的優點在哪裏呢?

TCPIP協議規範中,沒有VLAN的定義。當第二層網絡交換機發展到一定程度的時候,傳統的路由器由於在性能上的不足,它作爲網絡節點的統治地位受到了很大的挑戰。既然傳統路由器是網絡的瓶頸,而交換機又有如此優越的性能,爲什麼不用交換機取代傳統路由器,來構造網絡呢?我們都知道,位於協議第2層的交換機雖然能隔離衝突域,提高每一個端口的性能,但並不能隔離廣播域,不能進行子網劃分,不能層次化規劃網絡,更無法形成網絡的管理策略,因爲這些功能全都屬於網絡的第三層———網絡層。因此,如果只用交換機來構造一個大型計算機網絡,將會形成一個巨大的廣播域,結果是,網絡的性能反而降低以至無法工作,網絡的管理束手無策,這樣的網絡是不可想象的。按照TCPIP的原理,一般來說,廣播域越小越好,一般不應超過200個站點。那麼,如何在一個交換網絡中劃分廣播域呢?交換機的設計者們借鑑了路由結構中子網的思路,得出了虛網的概念,即通過對網絡中的IP地址或MAC地址或交換端口進行劃分,使之分屬於不同的部分,每一個部分形成一個虛擬的局域網絡,共享一個單獨的廣播域。這樣就可以把一個大型交換網絡劃分爲許多個獨立的廣播域,即VLAN

VLANVirtual LAN)中文叫做虛擬局域網,它的作用就是將物理上互連的網絡在邏輯上劃分爲多個互不相干的網絡,這些網絡之間是無法通訊的,就好像互相之間沒有連接一樣,因此廣播也就隔離開了。VLAN的實現原理非常簡單,通過交換機的控制,某一VLAN成員發出的數據包交換機只發給同一VLAN的其它成員,而不會發給該VLAN成員以外的計算機。簡言之,一個VLAN就是一個廣播域。

VLAN的優點如下:

l         廣播域被限制在一個VLAN內,節省了帶寬,提高了網絡處理能力。

l         增強局域網的安全性:VLAN間不能直接通信,即一個VLAN內的用戶不能和其它VLAN內的用戶直接通信,而需要通過路由器或三層交換機等三層設備。

l         靈活構建虛擬工作組:用VLAN可以劃分不同的用戶到不同的工作組,同一工作組的用戶也不必侷限於某一固定的物理範圍,網絡構建和維護更方便靈活。

3 VLAN的基礎知識

3.1 802.1Q

VLAN技術最爲顯著的優點就是所有VLAN成員不用侷限在一個物理範圍之內,VLAN的劃分可以跨越多個交換機,如圖1所示,在網絡規劃時將VLAN 10VLAN 20分別部署在兩臺不在同一地點的交換機上。這種跨設備的VLAN成員互連的組網,就必然涉及到不同VLAN流量識別的問題。

20091116_878038_image001_655250_97665_0.

                                                                                                                                                                  圖1 跨設備的VLAN互連

那麼如何解決這種跨設備的流量區分問題呢?其實解決辦法也很簡單,在跨設備轉發時給報文打上VLAN信息,如打上VLAN標籤,標識報文所屬的VLAN,交換機通過對報文中VLAN信息的識別進行相應的轉發。

IEEE 提出了802.1Q標準,這個標準也可以稱爲VLAN技術的標準,在這個標準中定義了上面提到的VLAN標籤,同時吸納了802.1P的成果,在以太網上引入了優先級的概念,並制定了VLAN標準在未來一段時間內的發展方向,形成的802.1Q標準在業界獲得了廣泛的推廣,它成爲VLAN史上的一塊里程碑。802.1Q的出現打破了虛擬網依賴於單一廠商的僵局,從一個側面推動了VLAN的迅速發展。

下面我們重點介紹一下802.1Q封裝。

802.1Q定義了一個新的以太網幀字段,這個字段添加在以太網幀的源MAC之後,長度/類型字段之前。封裝具體內容如圖2所示:

20091116_878039_image002_655250_97665_0.

                                                                                                                                                                             圖2 802.1Q封裝

802.1Q封裝共4個字節,包含2個部分:TPID(Etype),Tag Control Info

l         TPID:長度爲2個字節,固定爲0x8100,標識報文的封裝類型爲以太網的802.1Q封裝;

l         Tag Control Info:包含三個部分:802.1P優先級、CFIVLAN-ID

802.1P Priority:這3位指明幀的優先級。一共有8種優先級,取值範圍爲0~7,主要用於當交換機出端口發生擁塞時,交換機通過識別該優先級,優先發送優先級高的數據包。

CFI:以太網交換機中,規範格式指示器總被設置爲0。由於兼容特性,CFI常用於以太網類網絡和令牌環類網絡之間,如果在以太網端口接收的幀具有CFI,那麼設置爲1,表示該幀不進行轉發,這是因爲以太網端口是一個無標籤端口。

VIDVLAN ID是對VLAN的識別字段,在標準802.1Q中常被使用。該字段爲12位。支持40962^12VLAN的識別。在4096可能的VID中,VID0用於識別幀優先級,4095FFF)作爲預留值,所以VLAN配置的最大可能值爲4094

3.2 VLAN成員連接方式

VLAN成員的連接方式分爲三種:Access,Trunk,Hybrid;

l         Access連接:報文不帶tag標籤,一般用於和tag-unaware(不支持802.1Q封裝)設備相連,或者不需要區分不同VLAN成員時使用;

l         Trunk連接:在PVID所屬的VLAN不帶tag標籤轉發,其他VLAN中的報文都必須帶tag標籤,用於tag-aware(支持802.1Q封裝)設備相連,一般用於交換機之間的互連;

l         Hybrid連接:可根據需要設置某些VLAN報文帶tag,某些報文不帶tag。與trunk連接最大的不同在於,trunk連接只有PVID所屬的VLAN不帶tag,其他VLAN都必須帶tag,Hybrid連接是可以設置多個VLAN不帶tag

實際應用中,根據設置設備端口的AccessTrunkHybrid屬性來實現各種不同的連接方式。端口屬性的應用也遠遠超出了簡單的VLAN成員互連,特別是我司,用端口屬性來實現了一些相對複雜的功能,比如isolated-user VLAN,組播VLAN

3.3 Tag/Untag報文的處理原則

爲了理解VLAN內報文的轉發,就必須要知道交換機對於不同VLAN報文的tag/untag的處理原則。

首先,需要明確一點就是,在交換機的內部,爲了快速高效的處理,報文都是帶tag轉發的。其實,這點很好理解,因爲交換機上很可能會配置多個VLAN,那不同VLAN流量區分只有依靠tag標籤。

下面從報文入和報文出兩個方向來介紹。

l         報文入方向:

在入方向上,交換機的根本任務就是決定該報文是否允許進入該端口,根據入報文的tag/untag的屬性以及端口屬性,細分爲如下情況:

1)        報文爲untag:允許報文進入該端口,並打上PVIDVLAN tag,與端口屬性無關;

2)        報文爲tag:在這種情況下,需要交換機來判斷是否允許該報文進入端口;

         Access端口: PVID和報文中tag標明的VLAN一致,接收並處理報文;否則丟棄。

         Trunk/Hybrid端口:如果端口允許tag中標明的VLAN 通過,則接收並處理報文;否則丟棄。

l         報文出方向:

在出方向上,交換機已經完成對報文的轉發,其根本任務就是在轉發出端口時,是否攜帶tag轉發出去,根據出端口屬性,細分爲如下情況:

1)        Access端口:將標籤剝掉,不帶tag轉發;

2)        Trunk端口:報文所在VLANPVID相同,則報文不帶tag;否則帶tag

3)        Hybrid端口:報文所在VLAN配置爲tag,則報文帶tag;否則不帶tag

3.4 VLAN劃分方式

VLAN在交換機上的實現方式,主要有以下幾種:

基於端口:

最爲常用的劃分方式,[lizhaohui1] 據以太網交換機的端口來劃分。這種劃分的方法[lizhaohui2] 優點是定義VLAN成員時非常簡單,只要將所有的端口都指定一下就可以了。它的缺點是,如果VLAN A的用戶離開了原來的端口,到了一個新的交換機的某個端口,那麼就必須重新定義。

基於子網:

這種劃分VLAN的方法是根據每個主機的網絡層地址劃分的,雖然這種劃分方法是根據網絡地址,比如IP地址,但它不是路由,與網絡層的路由毫無關係。這種方法的優點是用戶的物理位置改變了,不需要重新配置所屬的VLAN,還有,它不需要附加的幀標籤來識別VLAN,這樣可以減少網絡的通信量。這種方法的缺點是效率低,因爲檢查每一個數據包的網絡層地址是需要消耗處理時間的,一般的交換機芯片都可以自動檢查網絡上數據包的以太網幀頭,但要讓芯片能檢查IP幀頭,需要更高的技術,同時更費時。

基於MAC

這種劃分VLAN的方法是根據每個主機的MAC地址來劃分,即對每個MAC地址的主機都配置它屬於哪個組。這種劃分VLAN的方法的最大優點就是當用戶物理位置移動時,即從一個交換機換到其他的交換機時,VLAN不用重新配置,可以認爲這種根據MAC地址的劃分方法是基於用戶的VLAN,這種方法的缺點是初始化時,所有的用戶都必須進行配置,如果有幾百個甚至上千個用戶的話,配置量是很大的,而且這種劃分的方法也導致了交換機執行效率的降低,因爲在每一個交換機的端口都可能存在很多個VLAN組的成員,這樣就無法限制廣播包了。

我司的Voice VLAN也是基於MAC地址的一種應用,對於它的實現在本文的下一部分會重點介紹。CISCO有一個成熟的基於MAC地址的VLAN實現方式爲VMPS,本文不再熬述。

基於協議:

協議VLAN與上面介紹的兩種實現方式的原理類似,都是根據數據報文的某個特徵進行VLAN的劃分,只是關注的特徵不同。基於協議的VLAN通過識別報文的協議類型和封裝格式進行VLAN的劃分,IPIPXAppleTalk協議族;Ethernet II802.3802.3/802.2 LLC 802.3/802.2 SNAP等封裝格式。這種實現方式的優缺點與上面的實現方式類似,效率不高。目前,IEEE 802.1v規定了基於端口和協議(port-and-protocal based VLAN)的標準草案,我司的協議VLAN也是這種劃分方式的完整實現,在本文的後面會對協議VLAN做一個詳細的介紹。

其他劃分:比如基於組播地址的VLAN,基於業務的VLAN,基於應用的VLAN

4 動態VLAN配置技術

動態VLAN配置技術,顧名思義,不需要網絡管理員手工的在網絡中各個設備上進行VLAN的配置,各個設備通過動態VLAN配置技術達到網絡中VLAN的統一。

動態VLAN配置技術在用戶接入的VLAN有不確定性和時效性時尤其有用,如圖3所示的應用場景:

20091116_878040_image003_655250_97665_0.

                                                                                                                                                                  圖3 動態VLAN配置應用

LSW5連接一個開放性區域,PC用戶上線時通過802.1xVMPS認證自動配置到不同的VLAN,從而連入不同的用戶組。用戶下線則在LSW5上刪除對應的VLAN

在圖3中,如果採用靜態配置,考慮到STP可能切換,則必須在LSW2/3/4上配置所有用到的VLAN,即使LSW5沒有對應VLAN的接入用戶,實際上無謂的擴大了廣播域。如果採用動態VLAN配置技術,可以只在LSW5上有該用戶時自動在LSW2/3/4上配置該VLAN,用戶下線則自動刪除。

可見,動態VLAN配置技術簡化了VLAN配置管理,減少了因爲配置不一致而導致的網絡互通問題,而且能智能的根據用戶需要,在一定網絡範圍內,動態配置VLAN並把相關端口加入動態VLAN中,保證VLAN在該網絡範圍內的連通性。

目前,有兩種動態VLAN配置技術:

l         GVRP:GARP VLAN Register Protocol,是GARP協議的一個應用,在IEEE802.1Q中定義

l         VTPVLAN Trunk ProtocolCISCO的私有協議。

4.1 GVRP

GVRPGARP的一種應用。它基於GARP的工作機制,維護設備中的VLAN動態註冊信息,並傳播該信息到其它的設備中。

GARP協議是通過聲明/撤銷聲明(declaration/withdraw-declaration)來實現屬性註冊和註銷的。當端口接收到一個屬性聲明時,該端口將註冊屬性,如果端口接收到撤銷屬性的聲明,該端口將註銷屬性。很明顯,GARP協議的屬性註冊和註銷僅僅是對於接收到GARP BPDU的端口而言的。之所以採取這樣的一種方式,優越性可以從圖4中看出來。圖中有兩個屬性聲明的源,也就是說,只有這兩臺終端設備才需要屬性A的相關內容。因爲只有接收到BPDU的端口才註冊該屬性,那麼當註冊過程平衡以後,只能在這兩臺設備間建立必要的雙向通路,而其他的都是單向通路,這樣,與屬性A相關的流量被限制在必要的雙向圖路上。另外一點就是,屬性的聲明註冊過程是沿着STP樹單向傳播的。

20091116_878041_image004_655250_97665_0.

                                                                                                                                                                         圖4 GARP工作機制

GVRP作爲GARP的一個應用,協議機制和GARP完全一樣,只是定義了自己獨有的屬性及其語義語法、報文封裝等。GVRP中的屬性是VLAN ID信息。

設備啓動GVRP特性後,能夠接收來自其它設備的VLAN註冊信息,並動態更新本地的VLAN註冊信息,包括當前的VLAN成員、這些VLAN成員可以通過哪個端口到達等。此外,設備能夠將本地的VLAN註冊信息向其它設備傳播,以便使同一局域網內所有設備的VLAN信息達成一致。GVRP傳播的VLAN註冊信息既包括本地手工配置的靜態註冊信息,也包括來自其它設備的動態註冊信息。

4.2 VTP(VLAN TRUNKING PROTOCOL)

VLAN中繼協議(VTPVLAN TRUNKING PROTOCOL)是CISCO專用協議,只有CISCO的交換機支持該協議。VTP負責在VTP域內同步VLAN信息,這樣就不必在每個交換機上配置相同的VLAN信息。VTP最重要的作用是,將進行變動時可能會出現的配置不一致的概率降至最低。

VTP是一種消息協議,使用第2層幀,通過在全網的基礎上管理VLAN的添加、刪除和重命名,以實現VLAN配置的一致性。有了VTP,就可以在一臺交換機上集中的進行配置改變,所作的改變會被自動傳播到網絡中所有其他的交換機上。(前提是在同一個VTP域)

爲了實現此功能,必須先建立一個VTP管理域,以使它能管理網絡上當前的VLAN。在同一管理域中的交換機共享它們的VLAN信息,並且,一個交換機只能參加到一個VTP管理域,不同域中的交換機不能共享VTP信息。

要使用VTP,就必須爲每臺交換機指定VTP域名,VTP信息只能在VTP域內保持,一臺交換機可屬於並且只屬於一個VTP域。缺省情況下,CATALYST交換機不屬於任何管理域,直到交換機通過中繼鏈路接收了關於一個域的通告,或者在交換機上配置了一個VLAN管理域,交換機才能在VTP服務器上把創建或者更改VLAN的消息通告給本管理域內的其他交換機。如果在VTP服務器上進行了VLAN配置變更,所做的修改會傳播到VTP域內的所有交換機上。控制VTP功能的一項關鍵參數是VTP配置修改編號,這個32位的數字表明瞭VTP配置的特定修改版本,配置修改編號的取值從0開始,每修改一次,就增加1直到達到4294967295,然後循環歸0,並重新開始增加,每個VTP設備會記錄自己的VTP配置修改編號;VTP數據包會包含發送者的VTP配置修改編號,這一信息用於確定接收到的信息是否比當前的信息更新。要將交換機的配置修改號置爲0,需要禁止中繼,改變VTP的名稱,並再次啓用中繼。

VTP工作模式有3種,分別是:

l         服務器模式(SERVER 缺省)

VTP服務器控制着它們所在域中VLAN的生成和修改,所有的VTP信息都被通告在本域中的其他交換機,而且所有這些VTP信息都是被其他交換機同步接收的。

l         客戶機模式(CLIENT

VTP客戶機不允許管理員創建、修改或刪除VLAN,它們監聽本域中其他交換機的VTP通告,並相應修改它們的VTP配置情況。

l         透明模式(TRANSPARENT

當交換機處於透明模式時,它不通告其VLAN配置信息,而且,它的VLAN數據庫更新與收到的通告也不保持同步,但它可以創建和刪除本地的VLAN。不過,這些VLAN的變更不會傳播到其他任何交換機上。

VTP定義了4種消息類型:

l         Summary advertisements

ServerClient之間週期性的通告VTP域名和當前的配置版本號:如果接收端的域名與發送者不同,接收者將忽略通告;如果域名相同,將比較配置的版本號;如果通告包含一個更大的版本號,則接收端將向發送者請求新的VLAN信息。

l         Subnet advertisements

用於向請求者發送新的VLAN信息。當ServerVLAN配置發生改變時,如創建或刪除VLAN,修改VLAN的名字等,Server端將在Summary advertisement之後發送Subnet advertisements通告新的VLAN信息。

l         Advertisement requests:

用於向鄰居請求最新的VLAN配置信息。當交換機的域配置發生改變或者重起時,交換機發送該消息。

l         VTP join messages:用於VTP Pruning功能中,缺省情況下不開啓。

由上面的介紹,概括一下VTP工作流程:

1.        VTP設備每5分鐘發送一次Summary Advertisement,向相鄰設備通告VTP域名和當前的配置版本號。

2.        鄰接設備收到Summary Advertisement,檢查域名,如果域名和自己的不一樣,丟棄報文;域名相同則進一步比較配置版本號,如果版本號比自己的小或相當,丟棄;比自己的大,則從接收端口發送Advertisement request,請求更新的VLAN配置信息。

3.        設備收到Advertisement request後發送Subset Advertisement報文,其中包含最新的VLAN配置信息。

5 VLAN應用技術

在本節中,主要介紹一下協議VLANVoice VLAN,這兩種應用在我司的產品中均有比較完整的實現,且應用比較廣泛。

5.1 協議VLAN

基於協議的VLAN是根據端口接收到的報文所屬的協議(族)類型及封裝格式來給報文分配不同的VLAN ID。可用來劃分VLAN的協議族有IPIPXAppleTalkAT),封裝格式有Ethernet II802.3802.3/802.2 LLC802.3/802.2 SNAP等。

協議VLAN的實現原理如下:

用戶配置協議VLAN,並指定歸入本VLAN的報文的協議模板;設備上可配置一個端口屬於一個或多個協議VLAN和普通VLAN。協議模板由報文的封裝格式與協議類型共同確定。

設備端口收到untag報文,先識別報文的協議模板,接着確定報文所屬的VLAN:

l         如果端口根本沒有配置屬於某個協議VLAN,則給報文打端口PVIDtag

l         如果端口配置了屬於某些協議VLAN,且報文的協議模板匹配其中某個協議VLAN,則給報文打上該協議VLANtag

l         如果端口配置了屬於某些協議VLAN,但報文的協議模板和所有協議VLAN不匹配 ,則給報文打端口PVIDtag

設備端口接收到tag報文,處理方式和基於端口的VLAN一樣:端口允許該tag標識的VLAN通過則作正常轉發處理;不允許則丟棄報文。

介紹一下協議模板。

上面說過,協議模板由協議類型和封裝格式共同確定。協議類型包括IP,IPX,AppleTalk,而封裝格式包括Ethernet II,802.3raw,802.3/802.2 LLC,802.3/802.2 SNAP,802.3/802.2 SNAP RFC1042 封裝。具體封裝格式結構如下圖所示:

20091116_878042_image005_655250_97665_0.

                                                                                                                                                                                  圖5 封裝格式

每一種協議類型所支持的封裝格式不同,在自定義協議模板時,可以根據協議類型選擇所支持的封裝格式進行定義。比如定義NetBios的協議VLAN,其協議模板可以這樣定義,使用802.3/802.2 LLC封裝,DSAP/SSAP均爲0xF0

另外使用協議VLAN還有一些原則:

l         同一個協議VLAN下不能配置相同的協議模板

l         不同協議VLAN可配置相同的協議模板

l         不同協議VLAN配置相同的協議模板,不能下發到同一個端口

l         只有Hybrid端口支持協議VLAN

5.2 Voice VLAN

Voice VLAN是爲用戶的語音數據流而專門劃分的VLAN。通過劃分Voice VLAN並將連接語音設備的端口加入Voice VLAN,可以爲語音數據配置QoS參數,爲網絡中語音業務提供高優先級提高語音數據報文優先級、保證通話質量。

設備可以根據進入端口的數據報文中的源MAC地址字段來判斷該數據流是否爲語音數據流。源MAC地址符合系統設置的語音設備OUIOrganizationally Unique Identifier,全球統一標識符)地址的報文被認爲是語音數據流,被劃分到Voice VLAN中傳輸,並下發優先級規則,改變語音數據流的優先級。

從原理來講,Voice VLAN爲基於MAC劃分VLAN的一種實現,但是在實現細節方面還有很多其實現的特殊之處。

20091116_878043_image006_655250_97665_0.

                                                                                                                                                                 圖6 voice VLAN基本組網

交換機上預先配置Voice VLAN的網關,保證VOIP server system的連通性。VOIP phone發送出來的報文有untagtag兩種,untag報文爲協議報文(交換機上需要保證這些untagged報文能轉發到正確的服務器)tag報文爲語音報文。以下從支持Voice VLAN的交換機的角度來描述一下Voice VLAN在交換機的實現。

Voice VLAN工作模式分爲自動模式與手動模式;安全模式與普通模式;

5.2.1 自動模式與手動模式

自動模式時,用戶使能Voice VLAN後,交換機和ip電話相連的端口,並不加入VLAN中,而是語音報文來了後,通過識別報文的源MAC是否爲OUI地址來自動的把端口加入到VLAN中。自動模式下,需要作以下事情:

1.        用戶首先要在交換機上指定一個VLANVoice VLAN ,並在端口下使能Voice VLAN

2.        如果一個端口下使能Voice VLAN以後,該端口的mac地址學習就變爲軟件學習。

3.        使能Voice VLAN的端口收到一個mac地址匹配OUI地址的Untag報文(DHCP請求報文)時,交換機自動將該端口加入到第1步指定的Voice VLAN中,並下發ACL規則提高語音報文的優先級。

4.        這時用戶可以正常使用VOIP電話。在使用時,VOIP電話發送的語音報文都應該打上這個VLANtag

5.        如果電話的mac地址在交換機上老化後(比如:用戶長期不用電話),交換機會啓用一個定時器。當定時器超時以後,交換機軟件將電話接入的端口從Voice VLAN中刪除。定時器的間隔時間用戶可以配置。

手動模式相對自動模式來說比較簡單。在手動模式下必須手工將端口添加Voice VLAN中,交換機不會自動發現OUI報文和添加端口到Voice VLAN。手動模式相當於分配一個特殊的VLAN給語音報文來使用,同時下發ACL來提高此VLAN中,語音報文的優先級。下發ACL的時機是:當全局使能Voice VLAN的情況下,再在端口上使能Voice VLAN時;或者端口上已經使能了Voice VLAN,再在全局使能Voice VLAN時。

5.2.2 安全模式與普通模式

安全模式下,Voice VLAN中只能有語音流量。用戶設置Voice VLAN爲安全模式以後,這個VLAN的報文都經過軟件過濾,交換機會根據報文的源mac地址是否匹配OUI來過濾所有非語音流量。

在普通模式下,Voice VLAN中允許有業務流量和語音流量並存。

 

 [lizhaohui

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章