日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

VLAN是為解決以太網的廣播問題和安全性而提出的一種協議,它在以太網幀的基礎上增加了VLAN頭,用VLAN ID把用戶劃分為更小的工作組,限制不同工作組間的用戶二層互訪,每個工作組就是一個虛擬局域網。虛擬局域網的好處是可以限制廣播范圍,并能夠形成虛擬工作組,動態管理網絡。

mac地址

MAC(Media Access Control,介質訪問控制)地址是網絡設備的硬件標識,具有唯一性。MAC地址也稱為物理地址或硬件地址,由網絡設備制造商生產時燒入NIC(網絡接口控制器)中。MAC地址長48比特,分成塊ID和設備ID兩部分,前24位是OUI(Organizationally unique identifier,機構唯一標識符),后24位由廠商自行分配。MAC地址采用點分十六進制表示,如圖1所示。

基于VLAN的二三層轉發原理

 

MAC地址格式

MAC地址通常分為:

單播MAC地址:單播MAC地址唯一標識以太網上的一個終端,該地址固化在硬件(如網卡)內部。

組播MAC地址:首字節最后一位為1(通常以0x01開頭)的MAC地址,標志一組設備。

廣播MAC地址:48位全1的MAC地址,標志本網段內所有設備。

網絡中按照大字節序傳輸報文(即先傳輸高字節),而字節內先傳輸低位比特。因此,若發送的首位比特為0就是單播,否則為組播或廣播。

MAC地址按生存期也可分為:

動態MAC地址:交換機在網絡中通過數據幀學習到,有老化時間,MAC地址和端口的對應關系會隨著設備所連的交換機的端口的變化而變化。交換機關電重啟后會消失,需重新學習。

靜態MAC地址:通過配置產生,不會被老化,MAC地址和端口的對應關系始終不變,但交換機關電重啟后也會消失,需重新配置。

永久MAC地址:通過配置產生,不會被老化,MAC地址和端口的對應關系始終不變,且交換機關電重啟后也不會消失。

沖突域和廣播域

沖突域(物理層):不同主機或設備同時發出的幀可能會互相沖突的網絡區域。一條導線上所有工作站的集合,或一個物理網段上所有節點的集合,或以太網上競爭同一帶寬的節點的集合都是一個沖突域。當沖突發生時,傳送的幀可能遭到破壞或干擾,發生沖突的主機將根據802.3以太網的CSMA/CD規則在一段隨機的時間內停止發送后續幀。其缺點是每臺主機得到的可用帶寬很低,當沖突域內主機設備數量增加時,網絡沖突將成倍增加,信息傳輸安全得不到保證。集線器連接的各設備就是一個典型沖突域,如圖2所示。

基于VLAN的二三層轉發原理

 

典型的HUB構成的沖突域

廣播域(數據鏈路層):網絡中能接收任一設備發出的廣播幀的所有設備集合。所有需要接收其他廣播的節點被劃分為同一廣播域或邏輯網段。連接在HUB和傳統交換機端口上的所有節點構成一個廣播域。當交換機收到廣播幀時,它將該幀轉發到自己除接收該幀的端口外的每一個端口,每個連接設備都會接收并處理該幀。

隨著網絡規模的擴大,廣播域中廣播報文相遇的次數也隨之增加。所有這些廣播報文會嚴重影響網絡性能,若管理不當,甚至會導致整個網絡的崩潰。

集線器、交換機、路由器

* 集線器

以太網集線器(HUB)從任一端口收到以太網數據幀后,都會將該幀廣播到其它所有端口。集線器對應物理層,不同端口所連接的設備同時傳數據時會引起沖突,故其沖突域和廣播域是所有端口,既不能隔離沖突域也不能隔離廣播域。非交換式HUB不能劃分物理網段,因為它沒有劃分沖突域。

* 網橋和交換機

網橋和交換機位于數據鏈路層,基于MAC地址進行數據轉發。網橋和交換機的每個物理端口屬于一個沖突域,所有端口在一個廣播域。兩者均能隔離沖突域,但不能隔離廣播域,不能阻止廣播并對網絡進行邏輯分段。

網橋與交換機有以下不同之處:

網橋只有少數幾個端口;交換機卻可有上百個端口。

網橋速度比交換機慢,交換機采用硬件ASIC芯片進行線速轉發交換,比網橋速度快。

網橋采取存儲轉發的機制,等收到全部數據后再進行轉發;而交換機除存儲機制外還有直接轉發機制,只需幀頭到達處理后就可轉發,不必等到所有數據都到達,故交換機處理速度比網橋快些。

鑒于網橋的局限性,現代交換LAN中已很少使用網橋。

* 路由器

路由器位于網絡層,可以隔離沖突域和廣播域。每個子網(subnet)屬于一個廣播域,不同子網間不能發送廣播。因此,對廣播進行控制就必須使用路由器(或具有路由功能的三層交換機)。使用路由器后,可以路由器上的網絡接口(LAN Interface)為單位分割廣播域。

一般使用路由器和交換機把LAN分段為大量更小的沖突域和廣播域。傳統交換機對LAN分段的方法如圖3所示。

基于VLAN的二三層轉發原理

 

傳統LAN的分割

雖然交換機可縮小沖突域的規模(每個端口就是一個沖突域),但連接到交換機的所有端口的主機仍然處于一個廣播域中。傳統交換機相連構成的一個廣播域內廣播幀的轉發過程如圖4所示。

基于VLAN的二三層轉發原理

 

傳統交換機上的廣播

圖中是一個由5臺二層交換機(SW1~5)連接了大量客戶主機構成的網絡。假設主機PC1要與主機PC2通信。以太網通信中必須在數據幀中指定目標MAC地址才能正常通信,故PC1必須先廣播ARP請求信息,來嘗試獲取PC2的MAC地址。交換機SW1收到ARP廣播幀后,將其轉發到除入幀端口外的其他所有端口,于是SW2和SW3收到廣播幀,它們也將幀轉發到各自的所有端口……最終同一網絡中與交換機相連的所有主機(PC2-PC8)都接收到該ARP請求。可見,本應發往PC2的ARP請求擴散至整個網絡,不僅消耗了網絡整體帶寬,而且收到廣播幀的主機還要消耗一部分CPU時間對其進行處理。在網絡規模較大時,大量廣播幀將嚴重影響網絡性能,造成廣播風暴問題。此外,由于整個網絡在一個廣播域,所有用戶都能不受控制地直接訪問和影響網絡所有部分,進而威脅到網絡安全性。

默認情況下,路由器不轉發廣播流量,因此可用于分割廣播域。用路由器創建廣播域將減少廣播流量,并為單播通訊提供更多的帶寬,每個路由器端口都連接到單獨的網絡,廣播流量僅限于發出該廣播的LAN網段內。但通常路由器網絡接口較少(1~4個左右),所能分割的廣播域個數有限,且路由器相對交換機成本也較高。而二層交換機一般帶有多個網絡接口,若能用其分割廣播域,則會大大提高網絡設計的自由度。

VLAN

VLAN(Vitual Local Area Network,虛擬局域網)是將物理網絡劃分成多個邏輯局域網的技術。一個VLAN就是一個廣播域,亦即一個邏輯子網,在其內的站點可位于不同物理LAN上,但站點間像在同一個普通局域網上那樣自由通信而不受物理位置的限制。利用VLAN技術,網絡管理者可根據實際應用需要,在二層交換機上把同一物理局域網中的用戶邏輯劃分成不同廣播域,使具有相同需求或業務的用戶處于同一廣播域,不同需求或業務的用戶處于不同的廣播域。

在未設置任何Vlan的二層交換機上,任何廣播幀都會被轉發給除接收端口外的所有其他端口。配置Vlan后,當交換機屬于某Vlan的一個端口收到廣播幀后,為保證同屬一個Vlan的所有主機都收到該廣播幀,交換機必須按照如下原則轉發:

1) 發送給本交換機中同一個Vlan中的其它端口;

2) 發送給本交換機的包含該Vlan的所有匯聚鏈路,以便其它交換機上同一Vlan的端口也發送該幀。

圖5給出交換機上創建兩個Vlan后,主機發出的廣播幀被轉發的示例。為便于說明,以紅、藍兩色識別不同Vlan(實際使用中以Vlan ID來區分)。其中端口1、2屬于紅色Vlan,端口3、4屬于藍色Vlan。

基于VLAN的二三層轉發原理

 

Vlan分割廣播域

可見,從PC1發出的廣播幀僅被轉發給同一Vlan內的其他端口,即同屬于紅色Vlan的端口2,而不會再轉發給屬于藍色Vlan的端口。就這樣,Vlan通過限制廣播幀轉發的范圍分割廣播域,進而改善網絡效率和安全性。

Vlan可理解為在邏輯上將一臺交換機分割成數臺虛擬交換機,且這些虛擬交換機互不相通。Vlan是廣播域,而通常兩個廣播域間由路由器連接,廣播域間來往的數據幀由路由器中繼。因此,Vlan間的通信也需要路由器(或三層交換機)提供中繼服務,即“Vlan間路由”。在Vlan之間配置路由器,使Vlan內部流量仍通過原來Vlan的內部二層網絡進行,從一個Vlan到另一Vlan的通信流量通過路由進行三層轉發,轉發到目的網絡后再通過二層交換網絡把數據幀最終發送給目的主機。路由器不轉發以太網廣播幀,故Vlan間配置的路由器不會改變劃分Vlan所達到的隔離廣播的目的。

VLAN幀格式

* 以太網V2 MAC幀格式

以太網MAC幀格式有兩種標準,即DIX(DEC,Intel,Xerox) Ethernet V2標準(RFC894)和IEEE 802.3標準。圖6所示的是常用的以太網V2的MAC幀格式(事實標準):

基于VLAN的二三層轉發原理

 

以太網V2的MAC幀格式

以太網幀在鏈路層傳輸,故源和目的MAC地址又稱鏈路層地址(link layer address),也稱L2地址、二層地址或硬件地址。

類型(Type)字段表明上層使用什么協議。常用協議類型值如表1所示:

表1 常用協議類型值

基于VLAN的二三層轉發原理

 

數據(Data)字段為幀承載的數據內容,由一個上層協議的協議數據單元PDU構成。數據長度在46~1500之間,若上層協議數據單元長度少于46 字節,則必須填充該字段的其余部分,以保證MAC幀長度不小于64字節。

可見,一個以太網幀長范圍為64~1518字節。

注意:發包工具如Testcenter設置發包長度時會將CRC考慮在內,即幀長包含CRC的4字節;而抓包工具如Wireshark顯示的幀長不包括CRC字段。

* 帶VLAN的以太網幀格式

IEEE 802.1Q(俗稱Dot One Q)標準在以太網數據幀中“發送源MAC地址”與“類別域(Type Field)”之間附加4字節的Vlan識別信息(標簽),如圖7所示:

基于VLAN的二三層轉發原理

 

插入Vlan后的以太網幀格式

TPID(Tag Protocol Identifier,標簽協議標識)值規定為0x8100。設備缺省采用協議規定的TPID值,交換機通過TPID來確定數據幀是否附加基于IEEE802.1Q的VLAN信息。

TCI(Tag Control Information,標簽控制信息)字段分為Pri、CFI和VLAN三部分。Pri表示報文優先級(也稱1p優先級、COS或1q優先級),CFI(Canonical Format Indicator)標識MAC地址在不同傳輸介質中是否以標準格式進行封裝,通常為0(標準格式)。Vlan ID標識該報文所屬的VLAN編號,取值范圍為 0~4095,一般0和4095保留(中興設備Vid=0表示priority-tagged幀)。

在交換網絡環境中,以太網幀有兩種格式:有些幀未附加四字節標簽,稱為未標記幀(ungtagged frame),有些幀附加四字節標簽,稱為帶標記幀(tagged frame)。

在基于端口劃分的Vlan中,每個802.1Q端口都會分配一個默認的Vlan ID,稱為PVID(Port Vlan ID)或端口默認Vlan ID(default Vid),CISCO稱之為native Vlan。端口接收到的所有untagged幀都認為屬于端口默認Vlan ID,并在端口默認Vlan ID內轉發。

注意,插入或剝除Vlan標簽時均會對數據幀重新計算CRC。

VLAN鏈路與端口

* VLAN鏈路類型

Vlan內的鏈路可分為:

接入鏈路(Access Link,或稱訪問鏈路):將沒有也無法識別Vlan標簽的設備(如用戶主機)連接到配置Vlan的交換機端口。它只能傳送不帶標簽(untagged)的以太網幀,且只與一個Vlan關聯。

匯聚鏈路(Trunk Link,或稱干道鏈路、中繼鏈路) :連接兩個能夠識別Vlan標簽的設備(如交換機),可傳輸發往多個Vlan的帶標簽(tagged)幀,可與多個Vlan相關聯。

混合鏈路(Hybrid Link):既可傳送不帶標簽的幀,也可傳送帶標簽的幀。但對于一個特定Vlan,傳送的所有幀必須類型相同,即對于一個Vlan,傳送的幀要么不帶標簽,要么攜帶相同標簽。

顯示三種鏈路的區別:

基于VLAN的二三層轉發原理

 

Vlan鏈路類型

規劃企業級網絡時,很有可能會遇到隸屬同一部門的用戶分散在同一座建筑中不同樓層的情況,此時可能需要考慮如何跨越多臺交換機設置Vlan。如在下圖所示網絡中,通過匯聚鏈路將不同樓層的四臺主機設置為同一Vlan。

基于VLAN的二三層轉發原理

 

匯聚鏈路

如圖所示,PC1發送的數據幀從SW1經過匯聚鏈路到達SW2時,幀內附加了表示屬于紅色Vlan的標簽。SW2收到數據幀后,檢查Vlan標簽發現該幀屬于紅色Vlan,故剝除標簽后根據需要(單播、廣播或組播)將復原的數據幀轉發給其他屬于紅色Vlan的端口。

若不使用匯聚鏈路,則需在兩臺交換機上各設一個紅、藍Vlan專用接口并用網線互聯(接入鏈路)。但建筑樓層間的縱向布線比較麻煩,一般不能由基層管理人員隨意進行。而且,VLAN越多,樓層間(嚴格地說是交換機間)互聯所需的端口越多,端口利用率低,也限制網絡的擴展。

匯聚鏈路承載多個Vlan的數據,負載較重,故匯聚鏈路必須支持100Mbps以上的傳輸速度。

默認情況下,匯聚鏈路會轉發交換機上所有Vlan的數據,亦即匯聚鏈路同時屬于交換機上所有的Vlan。實際應用中可能并不需要轉發所有Vlan數據,因此為減輕交換機負載并減少帶寬浪費,用戶可設定限制能經由匯聚鏈路互聯的Vlan。

VLAN端口類型

根據對Vlan幀的識別情況,交換機端口的類型(模式)分為Access端口、Trunk端口及Hybrid端口。

Access端口:交換機上連接用戶主機的端口,只能連接接入鏈路。Access端口只屬于一個Vlan,且僅向該Vlan轉發數據幀。該Vlan的Vid = 端口PVid,故Vlan內所有端口都處于untagged狀態。Access端口在從主機接收幀時,給幀加上Tag標簽;在向主機發送幀時,將幀中的Tag標簽剝掉。

Trunk端口:交換機上與其他交換機或路由器連接的端口,只能連接匯聚鏈路。Trunk端口允許多個Vlan的帶標簽幀通過,在收發幀時保留Tag標簽。在它所屬的這些Vlan中,對于Vid = 端口PVid的Vlan,它處于Untagged port狀態;對于Vid ≠ 端口PVid的Vlan,它處于Tagged port狀態。

Hybrid端口:交換機上既可連接用戶主機又可連接其他交換機的端口,它既可連接接入鏈路又可連接匯聚鏈路。Hybrid 端口允許多個Vlan的幀通過,并可在出端口方向將某些Vlan幀的Tag標簽剝掉。

注意,Access、Trunk和Hybrid端口是廠家對某種端口的稱謂,并非IEEE802.1Q協議標準定義。

Access端口只屬于一個Vlan,PVid就是其所在Vlan,故不用設置;Trunk和Hybrid端口屬于多個Vlan,故需要設置PVid(缺省為1)。若設置端口PVid,則當端口收到不帶Vlan Tag的數據幀時,對該幀加上Tag標記(Vid設置為端口所屬的默認Vlan編號)并轉發到屬于PVid的端口;當端口發送Vlan Tag的數據幀時,若收幀的Vlan Tag和端口PVid相同,剝除Vlan Tag后再發送該幀。

Hybrid端口與Trunk端口在接收數據時處理方法相同,區別在于發送數據時:Hybrid端口允許多個Vlan的數據幀發送時不帶標簽,而Trunk端口只允許默認Vlan的數據幀發送時不帶標簽。在同一交換機上Hybrid端口和Trunk端口不能并存,實際使用中可用Hybrid代替Trunk。

本Hybrid端口的PVid和相連的對端交換機Hybrid端口的PVid必須一致。

由于端口類型不同,交換機對幀的處理過程也不同。下表根據不同的端口類型分別介紹。

表2 不同端口類型的Vlan幀處理方式

基于VLAN的二三層轉發原理

 

VLAN端口狀態

交換機端口可配置為屬于某個或某幾個Vlan。端口狀態指其在某個Vlan中的狀態,該狀態決定端口接收到tagged或untagged幀時對該幀的處理方式。針對每個Vlan,端口有兩種狀態,即Tagged port和Untagged port。同一端口可根據不同Vlan ID設置Tagged或Untagged。

當為該端口配置其所屬的Vlan時,若該Vlan的Vid = 端口PVid時,則端口在此Vlan中處于Untagged port狀態;若Vid ≠ 端口PVid,則端口在此Vlan中處于Tagged port狀態。

PVid只與報文的入口方向有關,對于進入交換機的無標簽幀會打上進入端口的PVid標簽;交換機內每個數據幀都帶標簽。Tagged/Untagged只與幀的出口方向有關,對于出端口為Untagged port的,轉發幀時要剝除幀中的標簽,否則保留標簽。

VLAN劃分方式

接入鏈路可事先設定,稱為“靜態Vlan”;也可根據所連主機而動態設定,稱為“動態Vlan”。

* 靜態VLAN

靜態Vlan又稱基于端口的Vlan (Port Based Vlan),即明確指定各端口屬于哪個Vlan,如下圖所示。

基于VLAN的二三層轉發原理

 

基于端口劃分Vlan

根據端口劃分Vlan因其簡單而最為常用。但由于需要逐個端口地指定Vlan,因此當網絡中主機數目較多時,操作就變得非常煩雜。并且,主機每次變更所連端口時,必須同時更改該端口所屬Vlan的設定——這顯然不適合那些需要頻繁改變拓撲結構的網絡。

* 動態VLAN

動態Vlan主要有:

基于MAC地址的Vlan (MAC Based Vlan)

基于子網的Vlan (Subnet Based Vlan)

基于用戶的Vlan(User Based Vlan)

……

其差異主要在于根據OSI參照模型哪一層的信息決定端口所屬的Vlan。決定端口所屬Vlan時利用的信息在OSI中的層面越高,就越適于構建靈活多變的網絡。

網絡設備廠商可能使用私有協議實現基于子網和基于用戶的Vlan,因此不同廠商的設備間互聯時可能出現兼容性問題。

* 基于MAC地址的VLAN

基于MAC地址的Vlan,就是通過查詢并記錄端口所連主機網卡的MAC地址來決定端口所屬Vlan。假定MAC-A地址被交換機設定為屬于Vlan10,則不論MAC-A地址的主機連在交換機哪個端口,該端口都會被劃分到Vlan10內,如下圖所示。

基于VLAN的二三層轉發原理

 

基于MAC地址劃分Vlan

基于MAC地址劃分Vlan,在初始設定時必須調查所連接的所有主機MAC地址并加以記錄,工作量很大。而且這種劃分方法會降低交換機執行效率,因為交換機每個端口都可能存在很多個Vlan組的成員,這樣就無法限制廣播包。此外,若主機(如筆記本電腦)經常更換網卡,則不得不經常更改Vlan設定。

* 基于子網的VLAN

基于子網的Vlan,就是通過所連主機的IP地址來決定端口所屬Vlan。同一子網的所有數據幀屬于同一Vlan,從而將同一子網內的用戶劃分在一個Vlan內(與路由器相似)。即使主機MAC地址改變,只要其IP地址不變,就仍可加入原先設定的Vlan,如下圖所示。

基于VLAN的二三層轉發原理

 

基于子網劃分Vlan

基于IP子網劃分Vlan可按傳輸協議劃分網段,有利于針對具體應用的服務來組織用戶。再者,用戶可在網絡內部自由移動而不用重新配置主機,尤其是使用TCP/IP的用戶。

這種方法的缺點是效率,因為檢查每個數據包的網絡層地址比較費時。同時由于一個端口也可能存在多個Vlan的成員,對廣播報文也無法有效抑制。

* 基于用戶的VLAN

基于用戶的Vlan,則是根據交換機各端口所連的主機上當前登錄的用戶,來決定該端口屬于哪個Vlan。用戶識別信息一般是主機操作系統登錄的用戶,如windows域中使用的用戶名。

* 基于協議的VLAN

基于協議的Vlan將物理網絡劃分為基于協議的邏輯Vlan。在端口接收幀時,它的Vlan由幀中的協議類型決定。例如,IP、IPX和Appletalk可能有各自獨立的Vlan,IP 廣播幀只被送到IP Vlan中的所有端口。

* 基于組播地址的VLAN

基于組播地址的Vlan由組播分組動態創建的。如每個組播分組對應一個不同Vlan,保證組播數據幀只被那些連接到相應組播分組成員的端口接收到。這種劃分方式效率不高,不適合局域網。但因其將Vlan擴大至廣域網,故靈活性更高,且易于通過路由器進行擴展。

* 基于策略的VLAN

基于策略的Vlan是Vlan的最基本的定義。每個輸入(無標簽)幀都在策略數據庫查看,該數據庫決定該幀所屬的Vlan。如建立公司管理人員之間往來電子郵件的特別Vlan策略,以便不在其他地方被看見。

這種劃分方式最為靈活,具有自動配置能力,能夠把相關用戶連成一體,在邏輯劃分上稱為“關系網絡”。網絡管理員只需在網管軟件中確定劃分Vlan的規則(或屬性),則站點加入網絡時將會被“感知”,并被自動包含進正確的Vlan中。同時,也可自動識別和跟蹤站點的移動和改變。

基于VLAN的轉發與路由

Vlan內通信的主機同屬一個廣播域,主機之間的流量通過二層網絡直接轉發;Vlan間通信的主機位于不同廣播域,主機無法直接通過ARP廣播請求到對方的地址,此時必須借助三層路由器來完成通信。

路由器可視為各個Vlan的網關,因此通過路由器來互相通信的主機必須知道路由器的存在及其在本Vlan上的接口地址(默認網關)。在主機上配置默認網關后,對于跨Vlan的通信,主機會自動尋找默認網關,并把報文交給默認網關轉發而不是直接發給目的主機。

可見,當報文的目的MAC地址是網關地址(路由器或三層交換機MAC地址)時,該報文為三層報文。

* 二層轉發

基于Vlan的二層轉發流程主要包括:確定和查找Vlan、查找和學習源MAC、查找目的MAC并轉發數據幀。

1) 確定和查找Vlan:交換機端口接收到一個數據幀時,首先通過TPID值判斷該幀是否帶標簽[1]。

若是tagged幀,且Vid≠0,則在端口所屬的Vlan表中查找該幀標簽中的Vid是否存在,若存在,則進入下一步,否則丟棄該幀(或提交CPU處理);

若是tagged幀,且Vid=0(即priority幀[2]),則對該幀附加端口PVid使之成為tagged幀;

若是untagged幀,則對該幀附加端口PVid并指定優先級使之成為tagged幀。

注:①為提高處理效率,交換機內部所有數據幀均攜帶Vlan標簽,以統一方式處理。故需對輸入交換機的數據幀進行標簽檢查并按需加上標簽。

②802.1Q Vlan環境下,幀可分為tagged、untagged和priority-tagged三種。Tagged幀根據其攜帶的標簽Vid進行MAC學習轉發。Untagged和Priority-tagged幀進入交換機端口后根據PVid進行MAC學習轉發。

2) 查找和學習源MAC:交換機在MAC轉發表(Mac+Vid+Port)中查找收幀Vid對應的源MAC表項,未找到則學習收幀源MAC (將“源MAC+Vid+Port”添加到MAC表中);若找到則更新該表項的老化時間。

注:MAC地址學習只學習單播地址,對于廣播和組播地址不進行學習。組播MAC表項通過CPU配置建立。

3) 查找目的MAC:若目的MAC是廣播或組播,則在所屬的Vlan中廣播或組播;否則在MAC表中查找是否存在Vid對應的目的MAC表項。

4) 轉發數據幀:若在MAC表中查找到完全匹配的DMAC+Vid表項,則將該幀轉發到表項中的相應端口(若相應端口為收幀端口,則應丟棄該幀);否則向所屬Vlan內除收包端口外的其他所有端口洪泛該幀(洪泛廣播的是未知單播幀而不是廣播幀)。

圖所示為二層轉發的一般流程。

基于VLAN的二三層轉發原理

 

二層轉發流程

【例】數據幀從PC1經過一臺交換機轉發到與另一臺交換機相連的PC2并得到響應,如下圖所示。

基于VLAN的二三層轉發原理

 

PC1向PC2發送信息

假設兩臺交換機剛剛開機(此時MAC地址表為空),其具體的轉發過程如下:

①PC1發出的數據幀進入交換機SW1的Access端口后,按照端口PVid加上Vid=100的標簽。交換機將該幀源MAC地址存入MAC地址表(學習),并將該幀洪泛到Vid=100的所有端口(除入端口外);

②SW1的Trunk端口屬于Vid=100的Vlan,故接受這個標記為100的Tagged數據幀;而該端口在Vid=100上為Tagged port,因此在發送數據幀出交換機SW1時,不改變Tagged幀的結構;

③Tagged幀到達交換機SW2的Trunk端口,由于Trunk端口擁有VID=100的Vlan,故接受該幀;該Trunk端口不改變Tagged幀的結構,而是學習源MAC地址后把該數據幀洪泛給所有Vid=100的端口(除入端口外);

④SW2的Access端口接收到該幀,剝除該幀的Tag標簽后發送給PC2。

⑤PC2收到PC1發送的數據幀,并發送響應幀給PC1。

⑥經過與前述過程類似的轉發,響應幀到達交換機SW1。交換機發現該幀的目的MAC地址已在MAC地址表中,則僅轉發給PC1。

可見,收發雙方同屬一個Vlan的通信,一切處理均在二層網絡內完成。

三層路由

* 路由器路由

使用路由器進行Vlan間路由時,大致有以下兩種:

1) 用多個路由器端口分別與每個Vlan相連接。

2) 單個路由器接口與交換機的Trunk端口相連(稱為dot1Q連接),使多個Vlan共享同一條物理連接到路由器。

方式1將交換機上用于和路由器互聯的每個端口設為接入鏈路,再分別用網線與路由器上的獨立端口互聯。如下圖所示,交換機上有兩個Vlan,需在交換機上預留兩個端口用于與路由器互聯;路由器上同樣需要有兩個端口;兩者之間用兩條網線分別連接。

基于VLAN的二三層轉發原理

 

每個Vlan一個物理連接

如圖,每個Vlan都要獨占一個交換機端口和一個路由器端口,并需重新布設一條網線。而路由器上通常LAN接口有限,這無疑帶來擴展性問題。

方式2將用于連接路由器的交換機端口設為匯聚端口,而路由器上的端口也必須支持匯聚鏈路。雙方用于匯聚鏈路的協議也必須相同。接著在路由器上定義對應各Vlan的“子接口(Sub Interface)”。盡管實際與交換機連接的物理端口只有一個,但在理論上可將其分割為多個虛擬端口。如下圖所示。

基于VLAN的二三層轉發原理

 

Vlan Trunking

使用這種Vlan Trunking技術,可使多個Vlan的業務流共享相同的物理連接,通過在匯聚鏈路上傳遞帶標簽的幀來區分各Vlan的流量。通常情況下,Vlan間路由的流量不足以達到鏈路的線速度,使用Vlan Trunking的配置,可提高鏈路的帶寬利用率,節省端口資源以及簡化管理(網絡新增Vlan時只需在路由器上新設一個對應新Vlan的子接口,無需重新布線)

【例】不同Vlan間通信時數據的流程,如下圖所示。

基于VLAN的二三層轉發原理

 

不同Vlan間通信流程

主機PC1通過通信目標IP地址(192.168.2.1) 與子網掩碼計算比較發現PC2與本機不屬于同一網段,不能直接訪問。根據IP通信規則,PC1查找本機路由表尋找相應的網關。在實際網絡中,主機通常只配置默認網關(Default Gateway,GW),故PC1找到默認網關。然后,PC1在本機ARP高速緩存中查找默認網關(即路由器)的MAC地址,若沒有則向外廣播發送一個ARP請求幀,其目的MAC地址為全1,源MAC地址為本機MAC地址,請求的IP地址為網關192.168.1.100。從路由器返回的ARP單播應答幀中得到路由器MAC地址R后,接下來就按圖中所示的步驟向PC2發送數據幀①,其目的MAC地址是路由器地址R、但目的IP地址仍是最終要通信的對象PC2的地址。

交換機在端口1上收到數據幀①后,檢索MAC地址表中與端口1同屬一個Vlan的表項。匯聚鏈路被視為屬于所有的Vlan,因此端口6也屬于檢索對象。檢索后交換機得知往MAC地址R發送數據幀時,需經過端口6轉發。

從匯聚端口6發送數據幀時,會附加Vlan識別信息。圖中數據幀②被加上原屬的紅色Vlan標簽后,進入匯聚鏈路。路由器收到數據幀②后,確認其Vlan標簽,交由負責紅色Vlan的子接口接收。

接著,根據路由器內部的路由表,判斷該向哪里轉發。由于目標網絡192.168.2.0/24屬于藍色Vlan,且該網絡通過子接口與路由器直連,因此只需從負責藍色Vlan的子接口轉發即可。此時數據幀的目的MAC地址被改成PC2的MAC地址;由于需要經過匯聚鏈路轉發,故附加屬于藍色Vlan的識別信息(數據幀③)。

交換機收到數據幀③后,根據Vlan標簽從MAC地址表中檢索屬于藍色Vlan的表項。由于通信目標PC2連接在端口3上且該端口為接入端口,因此交換機剝除數據幀的Vlan標簽后(數據幀④)轉發給端口3,最終PC2成功收到PC1發來的數據幀。

可見,Vlan間通信時,即使雙方都連接在同一臺交換機上,也必須經過“發送方→交換機→路由器→交換機→接收方”這樣一個流程。在進行三層路由轉發時,數據包IP地址保持不變,MAC地址則在每個節點都會改變。

* 三層交換機路由

使用VLAN Trunking后,用傳統路由器進行Vlan間路由在性能上存在一定的不足:由于路由器采用通用CPU,轉發完全依靠軟件處理,同時支持各種通信接口,給軟件帶來較大負擔。軟件要處理包括報文接收、校驗、查找路由、選項處理、報文分片等,導致性能不可能很高。就Vlan間路由而言,流量會集中到路由器和交換機互聯的匯聚鏈路部分,該部分容易成為速度瓶頸。

由于Vlan間通信比較簡單,只需查下路由表,所以可將交換機集成查路由表的專用芯片(ASIC),實現二層交換和三層路由的功能集成,即三層交換機(Layer 3 Switch)。

三層交換機的設計基于對IP路由的仔細分析,提取出IP路由中每個報文都必經的簡化過程:

IP路由中絕大多數報文不包含IP選項,因此多數情況下無需處理報文IP選項;

不同的網絡報文長度不同,為支持各種異構網絡的互連,IP實現了報文分片功能,但在全以太網環境中,數據幀(報文)長度固定,因此可裁減報文分片功能;

三層交換機采用與路由器最長地址掩碼匹配不同的方法,使用精確地址匹配的方式處理,有利于硬件實現快速查找;

三層交換機采用Cache方法,將最近經常使用的主機路由放入硬件查找表。只有在該Cache中無法匹配到的條項才通過軟件轉發。這樣,只有每個流的第一個報文通過軟件轉發,其后的大量數據流則在硬件中得以完成,極大提升轉發性能。

三層交換機的內部結構可參照下面的簡圖。

基于VLAN的二三層轉發原理

 

三層交換機內部結構簡圖

如圖,內置的路由模塊與交換模塊相同,使用ASIC硬件處理路由。因此,與傳統的路由器相比,可實現高速路由。并且,路由與交換模塊由內部匯聚鏈路連接,可確保相當大的帶寬。

對應到IP網絡模型中,每個Vlan對應一個IP網段,三層交換機中的三層轉發引擎在各網段(Vlan)間轉發報文,實現Vlan之間的互通,因此三層交換機的路由功能通常叫做Vlan間路由(Inter-VLAN Routing)。

使用路由器連接時,一般需要在LAN接口上設置對應各Vlan的子接口;三層交換機則是在內部生成“VLAN接口(VLAN Interface)”,用于各Vlan收發數據。在Cisco的Catalyst系列交換機上,VLAN接口被稱為SVI(Switched Virtual Interface,交換虛擬接口)。三層交換機每創建一個Vlan就會自動生成一個SVI。在SVI接口設置默認網關后,并將主機網關配置成與交換機SVI相同,即可實現不同Vlan間的路由。

使用三層交換機進行Vlan間路由與使用匯聚鏈路連接路由器與交換機相似,即需經過“發送方→交換模塊→路由模塊→交換模塊→接收方”的流程。

【例】假設網絡按圖19連接好后,所有設備均為初始狀態,也未向外發送過任何報文。若PC1已知PC2的IP地址,則可通過ping命令發送ICMP報文來獲知PC1能否到達PC2。以下分析該過程。

基于VLAN的二三層轉發原理

 

ping流程網絡拓撲

⑴ PC1將自身IP和子網掩碼255.255.255.0相與得到網絡號1.1.1.0,將PC2的IP與子網掩碼相與得到網絡號2.2.2.0,得知PC2與自己不在同一網段。于是PC1檢索路由表得到默認網關。PC1欲向網關傳遞信息,但此時PC1中ARP表為空,所以向默認網關(交換機三層接口)發出ARP請求幀,請求網關MAC地址。該幀目的MAC地址為全1,源MAC地址為本機MAC地址,請求的IP地址為網關1.1.1.1;

⑵ SW收到ARP請求幀,對其附加端口PVid(10)的標簽;

⑶ SW用ARP請求幀的Mac1和Vid10查找MAC轉發表,發現沒有該項,則進行學習,即在表中添加“Mac1—Vid10—Port1”的記錄;并將源IP和MAC的對應關系(“1.1.1.2—Mac1”)記錄到ARP表,表明目的IP為1.1.1.2的數據幀轉發時目的MAC為Mac1,同時需路由到端口Port1;

⑷ ARP請求的目的地址是廣播地址,SW將其洪泛到該Vlan的每個端口(除入端口);同時SW自身截獲一份上送CPU(網關),發現是詢問自己的MAC,于是回復ARP單播應答幀,目的MAC為PC1的Mac1,源MAC為網關的MAC地址GwMac1,源IP為1.1.1.1,目的IP為PC1的1.1.1.2;

⑸ PC1收到SW發來的ARP應答幀,得到SW三層網關MAC地址,將“1.1.1.1—GwMac1”記錄到ARP表。PC1向SW發送ICMP請求幀,目的IP為PC2的IP(2.2.2.2),目的MAC為網關MAC,源IP和源MAC為PC1的;

⑹ SW收到ICMP請求幀,對其附加端口PVid(10)的標簽,然后進行源MAC地址學習,發現二層轉發表有該條目,更新老化時間。因該幀目的MAC地址是網關,SW送交三層路由處理。

⑺ 在三層首先檢查IP報文的版本、IP首部檢驗和TTL是否正確,若不正確則標記丟棄并交由CPU處理;正確則在三層主機路由表(又稱L3表)中查找目的IP(即PC2的IP 2.2.2.2)。此時L3表中只包含與自己直連的32位地址(包括自身接口)及步驟⑶中ARP表學習后下發的PC1信息,而找不到PC2的信息。進而按最長前綴匹配算法查找子網路由表(又稱Longest Prefix Match即LPM表)得到2.2.2.1目的網段的條目,下一跳的IP地址為 2.2.2.1;

⑻ 索引回L3表查找2.2.2.1,得到該條目,發現要提交CPU處理(CPU也需要看作是一個端口);

⑼ CPU沒有到PC2的路由,但PC2的目的IP屬于自己接口地址2.2.2.1的網段,故向接口Vlan20所包含的所有物理端口廣播一個ARP請求幀,源MAC地址為交換機接口的三層MAC地址GwMac2,源IP地址為2.2.2.1,請求IP地址2.2.2.2的MAC地址;

⑽ PC2收到ARP請求,學習“2.2.2.1—GwMac2”加入ARP表;并回復ARP應答幀,目的IP為交換機接口Vlan20的IP地址2.2.2.1,目的MAC為交換機接口Vlan20的MAC地址GwMac2;

⑾ SW收到PC2發送的ARP應答幀,附加端口PVid(20)后在MAC表中查找“Mac2+Vid20”,沒找到則學習源地址,在MAC轉發表中添加PC2相關記錄。因該幀目的MAC為網關地址,故提交三層處理;

⑿ 三層首先檢查報文正確性,無誤則在L3表中查找目的IP。由于目的IP為本機,故上送CPU處理。CPU對報文處理后得到“2.2.2.2—Mac2”將相關信息加入ARP表(CPU下發給L3表進行記錄)。

⒀ PC1向SW發送的第一個ICMP請求幀存儲在內存中,此時交由CPU進行IP報文頭部修改(TTL減1,FCS重新計算封裝)和MAC封裝(目的MAC地址改為PC2的MAC地址,源MAC地址改為SW三層MAC地址)并發送給PC2,如果超時則丟棄,CPU發送ICMP超時給PC1;

⒁ PC2收到PC1發來的ICMP請求后,回復ICMP應答幀,目的IP為PC1的IP 1.1.1.2,同樣PC2發現該地址和自己不在同一子網,需要網關進行轉發。之前PC2已學習到交換機接口Vlan20的ARP,此時根據該ARP將ICMP應答幀目的MAC地址填為網關MAC地址GwMac2發送出去。交換機收到幀后,發現目的MAC地址是網關地址,取出幀中的目的IP地址1.1.1.1查找路由。之前交換機已學習到該IP的路由,所以會查找到主機路由表中相應的路由并將幀目的MAC地址換成Mac1,源MAC地址換成網關MAC地址GwMac2,發送到端口Port1上。最終,PC1就收到PC2的ICMP應答。

⒂ 經過以上流程后,PC1和PC2分別學到各自網關接口的ARP,交換機也有了分別到達PC1和PC2的路由。后續的報文不再通過路由,而直接由L3表中對應的表項進行硬件轉發。

注意,此例步驟說明相比“路由器路由”一節稍為詳細,所補充的部分并非差異。

* VLAN間通信加速

Vlan間路由時,并非所有數據都需要經過外部路由器或三層交換機的內置路由模塊。例如,使用FTP(File Transfer Protocol,文件傳輸協議)傳輸容量為數兆字節以上的較大文件時,由于MTU(Maximum Transfer Unit,最大傳輸單元)的限制,IP協議會將數據分割成小塊后傳輸并在接收方重新組合。這些被分割的數據具有相同的源/目的IP地址和(TCP/UDP)端口號。這樣一連串數據流被稱為“流(Flow)”。只要將流最初的數據正確地路由以后,后繼數據理應也會被同樣地路由,實際上無需路由器處理。

三層交換機進行高速Vlan間路由時,整個流的第一塊數據仍舊由交換模塊轉發→路由模塊路由→交換模塊轉發到目標所連端口。這時,將第一塊數據路由結果記錄到緩存里保存下來。需記錄的信息有源/目的IP地址和(TCP/UDP)端口號、交換機收發端口號及轉發目標MAC地址等。

同一個流的第二塊及后續的數據到達交換機后,直接通過查詢先前保存在緩存中的信息查出轉發端口號后即可轉發給目標所連端口。這樣,就無需反復經由內部路由模塊中繼,而僅憑交換機內部的緩存信息就足以判斷應該轉發的端口。這時,交換機對數據幀進行由路由器中繼時相似的處理,如改寫MAC地址、IP包頭中的TTL和Check Sum校驗碼信息等。

若Vlan間路由信息變化,路由模塊會發送控制信息給交換模塊,交換機重新建立轉發路徑,按照常規方式轉發。

通過在交換機上緩存路由結果,可實現以纜線速度(Wired Speed)接收發送方傳輸來的數據、并且能夠全速路由、轉發給接收方。

* 路由器和交換機配合構建LAN

雖然三層交換機能提供比傳統型路由器更為高速的路由處理,但網絡中仍有使用路由器的必要性。其必要性主要表現在以下幾個方面:

用于與WAN連接。絕大多數三層交換機只配有LAN(以太網)接口。少數高端交換機上也有用于連接WAN的串行接口或ATM接口,但大多數情況下連接WAN需要用到路由器。

保證網絡安全。在三層交換機上,通過數據包過濾也能確保一定程度的網絡安全。但使用路由器所提供的各種網絡安全功能(數據包過濾、基于IPSec構建VPN、利用RADIUS進行用戶認證等),用戶可構建更為安全可靠的網絡。

支持TCP/IP以外的網絡架構。盡管TCP/IP已成為當前主流的網絡協議架構,但還有不少網絡利用Novell Netware下的IPX/SPX或Macintosh下的Appletalk等網絡協議。三層交換機中,除部分高端機型外基本上只支持TCP/IP。路由器對于需要其他網絡協議的環境必不可少。

注:少數高端交換機也能支持上述路由器的功能。例如Cisco的Catalyst6500系列就可選擇與WAN連接的接口模塊;還有可選的基于IPSec實現VPN的模塊;并且也能支持TCP/IP以外的其他網絡協議。

下圖是一個路由器和交換機搭配構建LAN的實例。

基于VLAN的二三層轉發原理

 

路由器和交換機搭配構建局域網

利用在各樓層配置的二層交換機定義Vlan,連接TCP/IP客戶主機。各樓層間的Vlan間通信利用三層交換機的高速路由加以實現。若網絡環境要求高可靠性,還可考慮冗余配置三層交換機。與WAN的連接,則通過帶有各種網絡接口的路由器進行,并通過路由器的數據包過濾和VPN等功能實現網絡安全。此外,使用路由器還能支持Novell Netware等TCP/IP之外的網絡。

通過使用Vlan構建局域網,用戶能夠不受物理鏈路的限制而自由地分割廣播域。通過路由器與三層交換機提供的Vlan間路由,能夠適應靈活多變的網絡結構。但由于利用Vlan容易導致網絡復雜化,因此也會造成整個網絡的組成難以把握。特別是由于數據流縱橫交錯,一旦發生故障時,準確定位并排除故障會比較困難。

VLAN擴展

* VLAN Translation

Vlan轉換又稱Vlan翻譯或Vlan映射,它允許用于邊緣接入的不同以太網交換機的Vlan ID設置互相重疊,通過以太網交換機的Vlan轉換功能,將不同交換機的重復Vlan ID修改為不同的Vlan ID,并從上聯端口發送出去,從而在二層核心交換機中也實現用戶的隔離,以簡化邊緣接入交換機的設置。

例如PON系統中,通過Vlan轉換模式,OLT或ONU設備將上行以太網幀中用戶自行添加的Vlan標簽(Vid可能不是其獨用的,可能在同一個系統內有其他用戶使用相同的Vid)轉換為唯一的網絡側Vlan標簽;并在下行方向執行相反的操作。

* QinQ

隨著以太網技術在運營商網絡中的大量部署(城域以太網),利用IEEE 802.1Q Vlan對用戶進行隔離和標識受到很大限制。因為802.1Q定義的Vlan標簽域僅能表示4096個Vlan(12比特),對于城域網中需要標識的大量用戶捉襟見肘,于是QinQ技術應運而生。

QinQ(也稱Stacked Vlan即Vlan堆疊或Double Vlan)技術出自IEEE 802.1ad標準,是對基于IEEE 802.1Q封裝的隧道協議的形象稱呼。QinQ實現在原有802.1Q Vlan標簽(內層標簽,也稱Customer Vlan,CVlan)之外再增加一個Vlan標簽(外層標簽,也稱Service Provider Vlan,SVlan),外層公網標簽將內層用戶私網標簽屏蔽起來,使報文攜帶兩層Vlan標簽穿越運營商骨干網絡(公網),到達用戶另一端網絡邊緣交換機時再剝除外層公網Vlan標簽,還原出內層用戶標簽便于用戶進行下一步的通信。可見,QinQ技術不僅可有效拓展Vlan的數量空間(多達4096×4096個),而且可提供簡單的二層VPN(虛擬專用網)隧道,特別適合以三層交換機為骨干的小型企業網或小型局域網。

* QinQ報文格式

QinQ報文封裝格式如下圖所示。公網傳輸時內層Vlan標簽為用戶私網Vlan標簽,外層Vlan標簽由運營商分配給用戶。私網Vlan標簽被透明傳輸,故不同的用戶Vlan標簽可重復使用,只需外層Vlan標簽在公網上唯一即可。

基于VLAN的二三層轉發原理

 

QinQ報文封裝格式

某些廠商將QinQ報文外層標簽的TPID值設置為0x9100或其他數值。為和這些設備互通,用戶應可自行配置TPID值,使發送到公網中的QinQ幀攜帶的TPID值與其他廠商相同。由于TPID字段在以太網幀中所處位置與不帶Vlan標簽的幀中協議類型(Type)字段所處位置相同,為避免造成網絡中數據幀轉發和接收混亂,不允許用戶將TPID值配置為常用協議類型值。

* QinQ封裝方式

QinQ封裝是指如何把單層Q報文轉換為雙層Q報文, 封裝主要發生在城域網面向用戶的UPE設備,一般在交換式的端口上進行。根據不同的封裝依據,QinQ可分為基于端口的QinQ、基于流的QinQ和路由子接口上進行的特殊QinQ封裝。

* 基于端口的QinQ封裝

基于端口封裝指進入一個端口的所有流量全部封裝一個外層Vlan。當端口收到報文時,無論報文是否帶有Vlan標簽,交換機都會為該報文附加本端口缺省Vlan的標簽。若接收報文已帶標簽,則該報文成為雙標簽報文;若接收報文不帶標簽(untagged),則該報文將攜帶本端口缺省Vlan標簽。基于端口的QinQ封裝容易實現,故業界主流廠家的三層交換機都支持。其缺點是外層Vlan標簽封裝方式死板,當多個不同用戶或用戶網絡以不同的Vlan接入到同一個端口時無法區分用戶,即無法在一個端口上根據業務種類選擇多個外層標簽,從而很難有效支持單端口多業務的靈活運營。

此外,基于端口封裝需增加鏈路,組網復雜,不利于擴展維護。

* 基于流的QinQ封裝

基于流的QinQ封裝先對進入端口的數據進行流分類,然后對于不同的數據流選擇是否插入外層標簽以及插入何種外層標簽,因此也稱靈活QinQ(Smart QinQ或Selective QinQ)。當一些數據流(如組播)出口不添加外層標簽,或單個端口根據內層Vlan添加不同的外層標簽時,就需要用到靈活QinQ。

靈活QinQ根據流分類方法又可細分如下:

1) 根據報文中的Vlan區間分流

當同一用戶的不同業務使用不同Vlan時,可根據Vlan區間進行分流,如PC上網Vlan范圍是101~200,IPTV的Vlan范圍是201~300,VoIP的Vlan范圍是301~400。面向用戶的設備收到用戶數據后,根據Vlan范圍,對上網業務插入100的外層標簽,對IPTV插入300的外層標簽,對VoIP插入500的外層標簽。

2) 根據報文中的Vid+Priority分流

不同業務有不同優先級,當同一用戶的多種業務使用相同Vlan時,可根據不同業務的優先級進行區分,然后插入不同的外層標簽。

3) 根據報文的目的IP地址分流

當同一臺PC既包括上網業務又包括語音業務時,不同業務目的IP不同,可利用ACL對目的IP地址進行分流,然后插入不同的外層標簽。

4) 根據ETYPE進行QinQ封裝

當同一用戶既包括PPPOE的上網業務,又包括IPOE的IPTV業務時,這些終端都通過一個Vlan上行,可根據PPPoE(0x8863/8864)和IPoE(0x0800)報文不同的ETYPE協議號作為QinQ的分流依據。

當前靈活QinQ主要應用于運營商接入網絡。在運營商網絡中給接入用戶分配一個Vlan,以便于追蹤問題和防止不同用戶間互訪,用外層標簽區分用戶應用;或在接入環境中用外層標簽區分不同的接入地點,用內外兩層標簽唯一標識一個接入用戶。

* 路由子接口QinQ封裝

QinQ封裝一般在交換式端口上直接進行,但特殊情況下QinQ也可在路由子接口上進行封裝。

當核心網采用VLL/PWE3透傳用戶數據時,NPE設備上的路由子接口可根據用戶Vlan ID封裝外層Vlan,通過外層Vlan接入VLL/PWE3。可通過一個QinQ Stacking子接口來透傳多個標識用戶的Vlan ID。

該方式也是基于流的QinQ封裝,但QinQ Stacking子接口只能與L2VPN(PWE3/VLL/VPLS)結合起來才有意義,不支持三層轉發功能。

* QinQ報文轉發

三層交換機連接用戶網絡的端口稱為Customer端口,連接骨干網的端口稱為Uplink端口,骨干網的邊緣接入設備稱為PE(Provider Edge)。一般用戶側網絡通過Trunk方式接入骨干邊緣交換機,骨干網絡內Uplink端口通過Trunk方式對稱連接。

在通過QinQ實現簡單二層VPN的過程中,報文按如下方式轉發:

基于VLAN的二三層轉發原理

 

QinQ報文轉發過程

當報文從用戶側網絡1到達運營商骨干網邊緣交換機Switch A的Customer端口時,無論該報文是否攜帶標簽,Switch A都基于端口PVid對其強行插入外層標簽(Vid=10)。在骨干網絡內部,報文沿著Vlan10的Trunk端口傳播,用戶私網標簽在骨干網絡中保持透明狀態,直至到達邊緣交換機Switch B。

Switch B發現與用戶網絡2相連的端口為Customer端口,按照傳統的802.1Q協議剝離外層標簽,恢復成用戶的原始報文,轉發到用戶側網絡2,從而實現一個簡單二層VPN功能。PE接入點用外層SVlan隔離,安全且節省Vlan。對用戶的管理可基于外層SVlan和內層CVlan唯一定位。

易知,若Vlan映射為C→S+C,則為Vlan堆疊;若Vlan映射為C→S,則為Vlan轉換。

注意,MAC地址學習、生成樹等均基于外層SVlan。

* QinQ優缺點

利用QinQ提供接入業務時具有以下優點:

Ÿ可解決日益緊缺的公網Vlan資源問題;

Ÿ用戶可規劃自己的私網Vlan ID,不會與公網Vlan ID沖突;

Ÿ提供一種較為簡單的二層VPN解決方案;

Ÿ使用戶網絡具有較高的獨立性,在服務提供商升級網絡時,用戶網絡不必更改原有配置;

Ÿ可按不同層次的Vlan ID區分不同的業務,以區別提供不同的管道、QoS策略;

ŸQinQ技術上可多層嵌套,僅受以太網幀長度的限制,具有很好的擴充性。

但隨著用戶數量的增加,QinQ模型也會帶來可擴展性問題。某些用戶可能希望在分支機構間傳輸數據時可攜帶自己的Vlan ID,這就使采用QinQ技術的管理服務提供商面臨以下兩個問題:第一個客戶的Vlan標識可能與其他客戶沖突;服務提供商將受到客戶可使用標識數量的嚴重限制。若允許用戶按他們自己的方式使用各自的Vlan ID空間,則核心網絡仍存在4096個Vlan的限制。

* PVlan(Cisco)

PVLAN(Private VLAN,私有VLAN)即所有工作站在同一個子網中,但工作站只能與自己的默認網關通信。PVlan采用兩層Vlan隔離技術,只有上層Vlan全局可見,下層Vlan互相隔離。若將交換機的每個端口劃為一個(下層)Vlan,則實現所有端口的隔離。

每個Private Vlan包含兩種Vlan:主Vlan(Primary Vlan)和輔助Vlan(Secondary Vlan),后者又分為隔離Vlan(Isolated Vlan)和團體Vlan(Community Vlan)。

PVlan通信范圍:

主Vlan可與所有與之關聯的隔離Vlan、團體Vlan通信。不同主Vlan之間的任何端口都不能互相通信(此處“互相通信”指二層連通性)。

團體Vlan可與處于相同團體Vlan內的團體端口通信,也可與PVlan中的混雜端口通信。 每個PVlan可有多個團體Vlan。

隔離Vlan不可與處于相同隔離Vlan內的其它隔離端口通信,只可與混雜端口通信。每個PVlan中只能有一個隔離Vlan。

相應地,交換機物理端口有三種類型:

隔離端口(Isolated port),與用戶相連,屬于隔離Vlan。只可與混雜端口通信,彼此不能通信。

團體端口(Community port),屬于團體Vlan。不僅可與混雜端口通信,也可與同一團體中的其它物理端口進行通信。

混雜端口(Promiscuous port),與路由器或三層交換機接口相連,屬于主Vlan。它收到的流量可發往隔離端口和團體端口。

基于VLAN的二三層轉發原理

 

PVlan端口類型

如圖,port1、port2和port3三者之間互相隔離,不允許通信,只能與port6通信;port4和port5間可以通信,也可以與port6通信。所有端口只需分配共享一個IP地址。

PVlan的應用對于保證接入網絡的數據通信安全性非常有效。所有用戶都接入PVlan,每個用戶一個Vlan,用戶間二層互相隔離。用戶只需與自己的默認網關連接,一個PVlan不需要多個Vlan和IP子網就可提供具備二層數據通信安全性的連接。PVlan功能可保證同一個Vlan中的各個端口相互之間不能通信,但可穿過Trunk端口。這樣即使同一Vlan中的用戶,相互之間也不會受到廣播的影響。

對于上層交換機來說,可認為下層交換機中只有幾個主Vlan,而不必關心主Vlan 中的端口實際所屬的Vlan,從而簡化配置并節省Vlan 資源。一個主Vlan中包含的所有Private Vlan處于同一個子網中,可節省子網數目和IP 地址資源。

PVlan通常用于企業內部網,用來阻斷連接到某些接口或接口組的網絡設備間的相互通信,但卻允許與默認網關進行通信。盡管各設備處于不同的PVlan中,但可使用相同的IP子網。

* SuperVlan

不同Vlan間通信需要通過三層路由進行轉發,而每個子網(Vlan)都需要設置一個路由地址。每分配一個子網,就有三個IP地址(子網的網絡號、廣播地址和默認網關)被占用。同時,這種地址分配的固有約束也嚴重降低編址的靈活性,使許多閑置地址被浪費。為提高IP地址的利用率,Super VLAN超網應運而生。

SuperVlan(又稱VLAN Aggregation,即Vlan聚合)把多個子Vlan(SubVlan)聚合成一個SuperVlan,這些SubVlan共同使用一個IP子網和默認網關。通過VLAN聚合可使所有在同一子網上的終端用戶通過統一的路由(同一子網網段地址)而使用不同的廣播域。

利用SuperVlan技術,只需為SuperVlan分配一個子網地址,并為每個用戶或子網建立一個SubVlan。所有SubVlan可靈活分配SuperVlan子網中的IP地址,使用SuperVlan的默認網關。每個SubVlan都是一個獨立的廣播域,保證不同用戶之間的隔離;SubVlan間通信需要通過SuperVlan進行路由。由于各個SubVlan不需要真正的子網網段,可有效提高IP利用率。這樣的子網可分配足夠小且擴展方便,無需重新定義子網大小。

SuperVlan內的主機使用同一個網段的地址,共用同一個上行網關。即使是屬于不同SubVlan的主機,由于其地址同屬一個子網,設備會認為它們是二層互通的,會做二層轉發,而不會送網關進行三層轉發。而實際上SubVlan間在二層互相隔離,因此需要采用ARP代理(Proxy)來實現SubVlan間的互通。Subvlan之間以及和外部通信通過ARP代理,所有Subvlan內主機發送的ARP請求都由SuperVlan的MAC地址作為ARP應答。

注意,SuperVlan并不包含物理端口,可將其視作邏輯的三層概念——若干SubVlan的集合。對交換芯片來說SuperVlan是透明的,仍按芯片中的Vlan進行轉發。在基于端口的Vlan中,二層通信時,無論收發都不會有針對SuperVlan的報文。即進入SubVlan設備的數據幀會附加該SubVlan的標簽,從Trunk端口發出時也不會改為SuperVlan的標簽。

* ARP Proxy原理

一個物理網絡子網(Subnet)中的源主機向另一個物理網絡子網中的目的主機發送ARP request請求,和源主機直連的網關用自己接口的MAC地址代替目的主機回復ARP reply應答,該過程稱為ARP代理。

ARP代理的基本過程如下:

源主機向另一物理網絡的子網中的目的主機發ARP請求;

與源主機網絡相連的網關已使能ARP代理功能,若存在到達目的主機的正常路由,則代替目的主機應答自己接口的MAC地址;

源主機向目的主機發送的IP報文都發給路由器;

路由器對報文做正常的IP路由轉發;

發往目的主機的IP報文通過網絡,最終到達目的主機。

* SubVlan間的三層互通

【例】SuperVlan 2包含SubVlan 21和SubVlan 22,分析PC1與PC2的互通過程(假設PC1的ARP表中無PC2對應表項)。IP地址和MAC地址如下圖所示。

基于VLAN的二三層轉發原理

 

用ARP代理實現不同SubVlan間的三層互通

PC1要發送報文給PC2,則將PC2的IP地址(1.1.1.3)與自己所在網段1.1.1.0 /24進行比較。由于SubVlan 21和SubVlan 22同屬一個SuperVlan所在子網,于是發廣播ARP請求PC2的MAC地址;而PC2并不在SubVlan 21的廣播域內,無法接收到該ARP請求。當PC1在二層發出的ARP請求在其廣播域內沒有回應時,交換機網關運行ARP代理,查找路由表并發現下一跳為直連路由接口(SubVlan 22),則在該接口發送一個ARP請求PC2的MAC地址;得到PC2回應后,就把網關自己的MAC地址GwMac當作PC2的MAC地址(實際是Mac2 )回給PC1 (不同設備實現略有不同)。之后,主機PC1要發給PC2的報文都發給交換機,由三層交換機做正常的三層轉發。

PC2回送給PC1的報文轉發過程和上述的PC1到PC2的報文流程類似。

* SuperVlan與外部的三層通信

【例】交換機1上配置SuperVlan 2、SubVlan 21和22,并有一個正常的Vlan 10。交換機2上配置兩個正常的Vlan 10和20。假設SuperVlan 2下SubVlan 21中的PC1想訪問交換機2下連的PC3,分析其上下行報文的轉發流程。

基于VLAN的二三層轉發原理

 

Super VLAN與外部的三層通信圖例

* 報文上行流程

PC1 (1.1.1.2/24)要訪問PC3(1.1.3.2/24),因為IP地址不在一個網段,故PC1發送ARP請求給自己的網關,請求網關的MAC地址。SubVlan21收到ARP報文后,將其上送CPU。CPU查找SubVlan和SuperVlan的對應關系,知道應回應SuperVlan2的MAC地址(不同設備實現可能略有不同),且知道回應報文應從SubVlan21發送給PC1。

PC1學到網關MAC地址后,開始發送目的MAC為SuperVlan2、目的IP為1.1.3.2的報文。SubVlan21收到報文后,檢測目的MAC后得知應進行三層轉發,于是查找轉發路由表,發現下一跳地址為1.1.2.2,出接口為Vlan10,并通過ARP表項和MAC表項確定出端口,把報文發送給交換機2,交換機2根據正常的轉發流程把報文發送給PC3。

* 報文下行流程

PC3回應的報文,在交換機2上按正常的轉發流程到達交換機1,此時交換機1查找轉發路由表表項,發現目的地址為PC1(1.1.1.2),對應的出接口為SuperVlan2。但SuperVlan2未包含任何端口,那么如何確定報文的出端口呢?

仔細查看可發現,盡管轉發路由表中1.1.1.2/24網段的出接口為SuperVlan2,但在ARP表中IP地址1.1.1.2對應的出接口卻為SubVlan 21。而芯片真正用來構建轉發表時所用的出接口應是ARP表中對應的SubVlan接口,通過在SubVlan下查找目的MAC地址即可找到正確的出端口。于是,PC3的回應報文就可正常到達PC1。

注意,若位于一個SuperVlan內的計算機運行基于廣播或組播的高層應用,則這些應用被限制在SubVlan內。因此,應仔細分析高層應用,在沒有基于組播或廣播的應用時才可使用SuperVlan。

分享到:
標簽:VLAN
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定