二層Vlan-QinQ技術簡析

參考博客:https://blog.csdn.net/dadoneo/article/details/8349417

QinQ技術(也稱Stacked VLAN 或Double VLAN)是指將用戶私網VLAN標籤封裝在公網VLAN標籤中,使報文帶着兩層VLAN標籤穿越運營商的骨幹網絡,在公網中只根據外層VLAN標籤傳播,私網VLAN標籤被屏蔽,這樣,不僅對數據流進行了區分,而且由於私網VLAN標籤被透明傳送,不同的用戶VLAN標籤可以重複使用,只需要外層VLAN標籤的在公網上唯一即可,實際上也擴大了可利用的VLAN標籤數量。

QinQ的標準是IEEE802.1ad(IEEE802.1ad的全稱是:Virtual Bridged Local Area Networks Amendment 4: Provider Bridges)該標準是在2006年5月份才形成正式標準的,所以當前我們常見的各廠商實現的QinQ和該標準有較大的不同,但各廠商的實現均大同小異。

本文分爲兩大部分,第一部分主要介紹當前常見的QinQ的各個方面,第二部分介紹802.1ad以及該標準同當前我們所常見的QinQ的區別。

 

1         QinQ

1.1        QinQ的產生

1、隨着三層交換機的不斷成熟和大量應用,許多企業網和小型城域網用戶都傾向於使用三層交換機來搭建骨幹網,由於以下三個原因,這些用戶一般都不願意使用基於MPLS或者IP協議的VPN:

·           配置、維護工作相對比較繁雜;

·           許多廠商的三層交換機不支持MPLS功能,如果用戶搭建基於MPLS的VPN,勢必要淘汰這些設備,浪費資源;

·           支持MPLS功能的單板一般價格昂貴,小型用戶難以承受。

而QinQ可以提供一種廉價、簡潔的二層VPN解決方案,不需要信令協議的支持,可以通過純靜態配置實現,而且只需要網絡邊緣設備支持QinQ,內部只需要可以支持802.1Q的設備即可,所以越來越多的小型用戶傾向於使用該功能構建自己的VPN網絡。

 

2、運營商在通過Ethernet提供Internet接入業務時需要對客戶標識,做到精細化管理,而且隨着新業務的開展(如Triple-Play、Wholesale、VPN),運營商還需要對業務進行細分,以區別提供不同的管道、QoS策略。原有基於802.1Q只有4096個vlan標識不能滿足這樣的需要,QinQ正好可以擴展這樣的標識,同時還可以利用不同的VLAN來區分運營商的服務和不同的客戶。利用QinQ提供接入時具用以下的優點:

· 可以解決日益緊缺的公網VLAN ID資源問題;

· 用戶可以規劃自己的私網VLAN ID,不會導致與公網VLAN ID衝突;

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

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

· 可以按不同層次的VLAN ID來區分不同的業務;

· QinQ技術上完全可以多層嵌套,沒有限制,僅受Ethernet報文長度的限制,具有很好的擴充性。

 

本文分爲兩個部分,第一部分介紹當前常見的QinQ的實現及應用,第二部分介紹802.1ad的基本概念和知識以及同常見的QinQ的異同。

1.2        QinQ報文封裝

QinQ的報文封裝就是在原有802.1Q報文中的TAG頭上再加上一層TAG封裝,用來擴展VLAN的範圍,如圖1所示:

 

                                                                                                                                                                          圖1 QinQ報文封裝

 

 

1.3        QinQ的報文轉發過程

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

                                                                                                                                                                    圖2 QinQ報文轉發過程

圖2中在運營商網中使用VLAN20來標識客戶A、VLAN30標識客戶B,當客戶A的報文到達運營商的邊緣交換機時,邊緣交換機均給客戶A的報文打上一個外層標籤(VLAN20),然後在VLAN20中轉發,不會轉發到VLAN30,報文在離開運營商網絡時再剝離掉外層的標籤,轉發到用戶A的網絡,從而實現一個簡單二層VPN功能。

 

1.4        QinQ報文的TPID值可調功能

TPID(Tag Protocol Identifier,標籤協議標識)是VLAN Tag中的一個字段,IEEE 802.1Q協議規定該字段的取值爲0x8100。IEEE 802.1Q協議定義的以太網幀的Tag報文結構如下:

                                                                                                                                                                圖3 IEEE 802.1Q報文結構

通常在QinQ中設備的內外層標籤的TPID值均採用協議規定的0x8100,但是某些廠商的設備將QinQ報文外層Tag的TPID值設置爲0x9100或0x9200,爲了和這些設備兼容,並提供較高的靈活性,我司支持QinQ功能的交換機基本上均提供了QinQ報文TPID值可調功能(需要注意有的設備整機支持,有的設備是端口支持),能修改QinQ設備的外層標籤的TPID值。(在本文的802.1ad部分我們將會看到802.1ad所規定的TPID爲0x88a8,所以當設備同標準802.1ad設備作QinQ對接時也需要TPID可調功能)。

 

1.5        靈活QinQ(Selective QinQ)

在前面我們所講的QinQ中,通常是以物理端口來劃分用戶或用戶網絡,當多個不同用戶以不同的VLAN接入到同一個端口時則無法區分用戶。另外前面的QinQ方案是一種簡單二層VPN的應用,在運行營商接入環境中往往需要根據用戶的應用或接入地點(設備)來區分用戶,基於這種應用產生了靈活QinQ方案。

簡單講靈活QinQ就是根據用戶報文的Tag或其他特徵(IP/MAC等),給用戶報文打上相應的外層Tag,以達到區分不同用戶或應用的目的。

當前靈活QinQ主要應用在運營商的接入網絡中,在運營商網絡中給接入用戶分配一個VLAN,以達到便於問題追蹤和防止不同用戶間互訪,用外層標籤區分用戶的應用;或在接入的環境中用外層標籤來區分不同的接入地點,用內外兩層標籤唯一標識出一個接入用戶。在這樣的應用中需要BRAS/SR設備支持QinQ的應用(能夠終結雙Tag)。

下面我們以S9500爲例,看一下靈活QinQ的應用場景:

在S9500上實施QinQ,並在S9500上進行業務分流,分流的方式是利用靈活QinQ功能,靈活QinQ分流的依據有下面幾種:

1) 根據端口的VLAN區間分流:比如PC的VLAN範圍1~1000,STB的VLAN範圍1001~2000,網吧的VLAN範圍2001~3000;

2) 根據報文的協議號分流:比如PC採用PPPoE、STB採用IPoE,這些終端都通過一個VLAN上行,可以根據PPPoE和IPoE報文不同的協議號作爲QinQ的分流依據;

3) 根據報文的目標IP地址分流:對於相同源IP地址,相同報文封裝不同的業務應用報文,比如PC上的SoftPhone產生的報文,需要根據報文目的IP地址實施靈活QinQ進行業務分流;

4) 根據QinQ的內層標籤的區間,在某些級聯交換機的組網模式中,下連的交換機已經實施了基於端口的QinQ,爲了實現業務分流,可以根據QinQ的內層VLAN標籤的區間實施靈活QinQ進行業務分流。 上述應用場景可以用圖4來直觀的加以描述:

 

S9500

                                                                                                                                                    圖4 靈活QinQ對多業務的識別標記

 

1.6        BPDU Tunnel(L2 Protocol Tunnel)

QinQ網絡中,運營商網絡對客戶透明,當客戶和運營商網絡之間的連接有冗餘時必然導致環路問題,如QinQ應用示意圖2中的A客戶。這就需要運營商網絡能透明傳輸STP/RSTP/MSTP報文,這樣客戶可以跨運營商網絡構建自己的STP樹,切斷冗餘鏈路。另外爲了保證客戶全網VLAN配置的一致性,動態VLAN協議如GVRP、VTP等也要求通過運營商網絡透傳,如果客戶使用GMRP作組播應用的話,GMRP報文也要求透傳。同時在透傳這些報文時,需要區分開不同用戶的二層協議報文。

我們知道以上這些BPDU報文是橋設備的二層控制報文(基本上是以LLC封裝的),是與設備全局相關的,不帶VLAN Tag,所以需要一種機制來傳輸用戶的二層控制報文,從而引入了BPDU Tunnel (Cisco:Layer 2 Protocol Tunneling)的概念,通過Tunnel來傳播用戶的二層控制報文。

通常BPDU Tunnel是這樣實現的:當Tunnel端口收到一個用戶的BPDU後,把目的MAC修改爲一個組播MAC,然後再給協議報文打上用戶所屬VLAN的Tag信息,組播MAC保證報文在VLAN內廣播,同時標識這個報文是個BPDU-Tunnel報文,交換機在收到這個報文時上送CPU處理,還原其BPDU身份,並根據報文中用戶所屬的VLAN信息,把報文送到相應的客戶網絡。

當前我司的實現就採取了上述這種方法,收到用戶的BPDU報文後,給這個報文的目的MAC修改爲:01-00-0c-cd-cd-d0,再加上運營商分配該用戶的VLAN Tag,如圖5所示:

                                                                                                                                                              圖5 BPDU-Tunnel報文封裝

 

2         802.1ad

IEEE 802.1ad的全稱是“Virtual Bridged Local Area Networks Amendment 4: Provider Bridges”,該協議的目標是業務提供商在爲客戶提供業務時使客戶間的服務相互獨立,沒有相互依賴關係,同時儘量做到業務提供商透明地爲客戶提供業務。該標準描述了業務提供商(運營商)如何利用和擴展802.1Q在一個統一的網絡中爲相互獨立的客戶提供以太網業務。

2.1        標準化過程

該協議於2002年12月第一稿,中間歷經了多個Draft,並於2006年5月形成正式標準(Amendment to IEEE Std 802.1Q-2005)。文檔可從這裏獲得:http://tech/article.php/4360

 

2.2        基本概念

•            C-VLAN:Customer VLAN,是用戶網絡內部使用的VLAN;

•            S-VLAN:Service VLAN,服務提供商網絡中使用的VLAN,該VLAN標識VPN用戶或者是用戶的業務;

•            Customer Bridge:Customer網絡中的Bridge,只能識別C-VLAN;

•            Provider Bridge:服務提供商網絡中的Bridge,根據處理內容的不同又分爲S-VLAN Bridge和Provider Edge Bridge。其中S-VLAN Bridge只能識別S-VLAN; Provider Edge Bridge可以同時識別C-VLAN和S-VLAN;

•            C-VLAN Component:在Bridge內可識別、插入、刪除C-VLAN的實體,每個端口一個,對C-VLAN的操作互相獨立(兩個端口上接收到相同的C-VLAN,但由於屬於不同的客戶最後的處理結果會不同);

•            S-VLANComponent:在Bridge內可識別、插入、刪除S-VLAN的實體,由於在一個Bridge內不存在相同的S-VLAN屬於不同服務提供商的情況,因此在一個橋內只有一個S-VLAN的實體。

 

2.3        報文格式

802.1ad的報文格式,基本同前面我們所講的QinQ報文格式一致,主要的區別就是802.1ad中重新定義了TPID的值和把原來的CFI位修改爲DEI(丟棄標識)位。

                                                                                                                                                                      圖6 802.1ad報文封裝

同前面所述的QinQ相比,在802.1ad中明確規定了用戶報文和運營商報文的TPID值,從而可以簡單的區分用戶報文和運營商報文:

Tag Type

Name

Value

C-VLAN Tag

IEEE 802.1Q Tag Protocol Type(802.1Q Tag Type)

81-00

S-VLAN Tag

IEEE 802.1Q Server Tag Type(802.1Q S-Tag Type)

88-a8

表格 1 802.1ad Ethernet Type allocations

 

同時標準中對S-VLAN的TCI位修改爲DEI(Drop Eligible Indicator),豐富了QoS特性,當用戶報文進入運營商網絡時會打上以88a8標識的外層標籤,在離開運營商網絡時會剝離這個外層標籤。

 

2.4        802.1ad如何解決Tunnel問題

在傳統的QinQ Tunnel中是通過修改原協議報文的目的地址及加上用戶所屬VLAN標識來傳遞用戶L2協議報文的(這樣做的缺點在於需要在邊緣設備上對報文進行修改加重設備CPU的負擔)。

在802.1ad中爲C-VLAN及S-VLAN分配了不同的保留地址,在S-VLAN中處理C-VLAN中的協議報文和處理普通的數據報文一樣,從而不需要Tunnel就可以透明傳輸用戶二層協議報文。

Assignment

Value

Bridge Group Address

01-80-C2-00-00-00

IEEE 802.3 Full Duplex PAUSE operation

01-80-C2-00-00-01

IEEE 802.1X PAE address

01-80-C2-00-00-03

Provider Bridge Group Address

01-80-C2-00-00-08

Provider Bridge GVRP Address

01-80-C2-00-00-0D

IEEE 802.1AB Link Layer Discovery Protocol multicast address

01-80-C2-00-00-0E

表格 2:保留的地址

 

Spanning Tree Protocol

Provider網絡的STP操作和Customer網絡的STP操作完全獨立運行,相互不關聯。在Provider網絡內部採用不同的Bridge Group Address(01-80-C2-00-00-08),對於用戶的BPDU報文(01-80-C2-00-00-00)作爲普通數據報文透傳,不進行識別和處理。Provider網絡邊緣的C-VLAN component端口可以參與用戶STP拓撲的計算和用戶BPDU的處理。

GVRP

Provider網絡的GVRP操作和Customer網絡的GVRP的操作完全獨立運行,相互不關聯。在Provider網絡內部採用不同的Provider Bridge GVRP Address(01-80-C2-00-00-0D),對於用戶GVRP報文(01-80-C2-00-00-21)以及其他的GARP保留地址作爲普通數據報文透傳,不進行識別和處理。Provider網絡邊緣的C-VLAN component端口可以參與用戶的GARP報文的處理。

 

2.5        802.1ad對靈活QinQ的支持

802.1ad對靈活QinQ的支持同當前常見的靈活QinQ基本一致,在802.1ad中提供了兩種確定用戶所屬S-VLAN的方式:

1、基於端口(Port-based service interface),在這種模式下用戶是根據接入的端口來選擇S-VLAN(Service Instance)的

2、基於C-VLAN(C-Tagged service interfaces),在這種模式下是根據用戶使用的C-VID來先擇S-VLAN(Service Instance),即同當前我們所見的靈活QinQ類似。

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