QinQ知識全攻略,QinQ的基礎(chǔ)知識你了解多少?
定義
QinQ(802.1Q-in-802.1Q)技術(shù)是一項擴展VLAN空間的技術(shù),通過在802.1Q標(biāo)簽報文的基礎(chǔ)上再增加一層802.1Q的Tag來達到擴展VLAN空間的功能,可以使私網(wǎng)VLAN透傳公網(wǎng)。由于在骨干網(wǎng)中傳遞的報文有兩層802.1Q Tag(一層公網(wǎng)Tag,一層私網(wǎng)Tag),即802.1Q-in-802.1Q,所以稱之為QinQ協(xié)議。
如下圖所示用戶報文在公網(wǎng)上傳遞時攜帶了兩層Tag,內(nèi)層是私網(wǎng)Tag,外層是公網(wǎng)Tag。
目的
隨著以太網(wǎng)技術(shù)在網(wǎng)絡(luò)中的大量部署,利用802.1Q VLAN對用戶進行隔離和標(biāo)識受到很大限制。因為IEEE802.1Q中定義的VLAN Tag域只有12個比特,僅能表示4096個VLAN,無法滿足以太網(wǎng)中標(biāo)識大量用戶的需求,于是QinQ技術(shù)應(yīng)運而生。
QinQ是通過在原有的802.1Q報文的基礎(chǔ)上增加一層802.1Q標(biāo)簽來實現(xiàn)的,使得VLAN數(shù)量增加到4094×4094,擴展了VLAN空間。
隨著以太網(wǎng)的發(fā)展以及精細化運作的要求,QinQ的雙層標(biāo)簽又有了進一步的使用場景。它的內(nèi)外層標(biāo)簽可以代表不同的信息,如內(nèi)層標(biāo)簽代表用戶,外層標(biāo)簽代表業(yè)務(wù)。另外,QinQ報文帶著兩層Tag穿越公網(wǎng)時,內(nèi)層Tag透明傳送,也是一種簡單、實用的VPN技術(shù)。因此它又可以作為核心MPLS VPN在以太網(wǎng)VPN的延伸,最終形成端到端的VPN技術(shù)。
優(yōu)點
- 擴展VLAN,對用戶進行隔離和標(biāo)識不再受到限制。
- QinQ內(nèi)外層標(biāo)簽可以代表不同的信息,如內(nèi)層標(biāo)簽代表用戶,外層標(biāo)簽代表業(yè)務(wù),更利于業(yè)務(wù)的部署。
- QinQ封裝、終結(jié)的方式很豐富,幫助運營商實現(xiàn)業(yè)務(wù)精細化運營。
- 解決日益緊缺的公網(wǎng)VLAN ID 資源問題
- 用戶可以規(guī)劃自己的私網(wǎng)VLNA ID
- 提供一種較為簡單的二層VPN解決方案
- 使用戶網(wǎng)絡(luò)具有較高的獨立性
QinQ封裝結(jié)構(gòu)
QinQ封裝報文是在無標(biāo)簽的以太網(wǎng)數(shù)據(jù)幀的源MAC地址字段后面加上兩個VLAN標(biāo)簽構(gòu)成。
字段解釋
QinQ抓包示例
QinQ工作原理
在公網(wǎng)的傳輸過程中,設(shè)備只根據(jù)外層VLAN Tag轉(zhuǎn)發(fā)報文,并根據(jù)報文的外層VLAN Tag進行MAC地址學(xué)習(xí),而用戶的私網(wǎng)VLAN Tag將被當(dāng)作報文的數(shù)據(jù)部分進行傳輸。即使私網(wǎng)VLAN Tag相同,也能通過公網(wǎng)VLAN Tag區(qū)分不同用戶。
企業(yè)A和企業(yè)B的私網(wǎng)VLAN分別為VLAN 1~10和VLAN 1~20。公網(wǎng)為企業(yè)A和企業(yè)B分配的公網(wǎng)VLAN分別為VLAN 3和VLAN 4。當(dāng)企業(yè)A和企業(yè)B中帶VLAN Tag的報文進入公網(wǎng)時,報文外面就會被分別封裝上VLAN 3和VLAN 4的VLAN標(biāo)簽。這樣,來自不同企業(yè)網(wǎng)絡(luò)的報文在公網(wǎng)中傳輸時被完全分開,即使這些企業(yè)網(wǎng)絡(luò)各自的VLAN范圍存在重疊,在公網(wǎng)中傳輸時也不會產(chǎn)生沖突。當(dāng)報文穿過公網(wǎng),到達公網(wǎng)另一側(cè)PE設(shè)備后,報文會被剝離公網(wǎng)為其添加的公網(wǎng)VLAN標(biāo)簽,然后再傳送給用戶網(wǎng)絡(luò)的CE設(shè)備。
1.QinQ封裝
QinQ封裝是指如何把單層Q報文轉(zhuǎn)換成雙層Q報文。根據(jù)不同的封裝數(shù)據(jù),QinQ可以分為幾種不同類型,包括基本QinQ和靈活QinQ兩大類。其中基本QinQ是指基于接口的QinQ,靈活QinQ包括基于VLAN ID的QinQ和基于802.1p優(yōu)先級的QinQ,具體如下:
(1) 基于接口的QinQ封裝
基于接口的封裝是指進入一個接口的所有流量全部封裝一個相同的外層VLAN Tag,封裝方式不夠靈活,用戶業(yè)務(wù)區(qū)分不夠細致,這種封裝方式也稱作基本QinQ。
(2) 基于VLAN ID的QinQ封裝(靈活QinQ)
基于VLAN ID的QinQ封裝可以對不同的數(shù)據(jù)流選擇是否封裝外層Tag、封裝何種外層Tag,因此這種封裝方式也稱作靈活QinQ。
例如:當(dāng)同一用戶的不同業(yè)務(wù)使用不同的VLAN ID時,可以根據(jù)VLAN ID區(qū)間進行分流。假設(shè)PC上網(wǎng)的VLAN ID范圍是101~200;IPTV的VLAN ID范圍是201~300;VoIP的VLAN ID范圍是301~400。根據(jù)VLAN ID范圍,對PC上網(wǎng)業(yè)務(wù)封裝上外層Tag 100,對IPTV封裝上外層Tag 300,對VoIP封裝上外層Tag 500。
(3) 基于802.1p優(yōu)先級的QinQ封裝(基于流的靈活QinQ)
基于802.1p優(yōu)先級的QinQ封裝可以對不同優(yōu)先級的數(shù)據(jù)流選擇是否封裝外層Tag、封裝何種外層Tag,因此這種封裝方式也稱作靈活QinQ。
例如:當(dāng)同一用戶的不同業(yè)務(wù)使用不同的優(yōu)先級,如語音、視頻、數(shù)據(jù)等??梢愿鶕?jù)優(yōu)先級為這些業(yè)務(wù)建立不同的數(shù)據(jù)傳輸通道,方便對業(yè)務(wù)進行區(qū)分。
2.TPID(Tag Protocol Identifier)
標(biāo)簽協(xié)議標(biāo)識TPID(Tag Protocol Identifier)是VLAN Tag中的一個字段,表示VLAN Tag的協(xié)議類型,IEEE 802.1Q協(xié)議規(guī)定該字段的取值為0x8100。
IEEE802.1Q協(xié)議定義的以太網(wǎng)幀的VLAN Tag。802.1Q Tag位于SA(Source Address)和Length/Type之間。通過檢查對應(yīng)的TPID值,設(shè)備可確定收到的幀承載的是運營商VLAN標(biāo)記還是用戶VLAN標(biāo)記。接收到幀之后,設(shè)備將配置的TPID值與幀中TPID字段的值進行比較。如果二者匹配,則該幀承載的是對應(yīng)的VLAN標(biāo)記。例如,如果幀承載TPID值為0x8100的VLAN標(biāo)記,而用戶網(wǎng)絡(luò)VLAN標(biāo)記的TPID值配置為0x8200,設(shè)備將認(rèn)為該幀沒有用戶VLAN標(biāo)記。也就是說,設(shè)備認(rèn)為該幀是Untagged報文。
另外,不同運營商的系統(tǒng)可能將QinQ幀外層VLAN標(biāo)記的TPID設(shè)置為不同值。為實現(xiàn)與這些系統(tǒng)的兼容性,可以修改TPID值,使QinQ幀發(fā)送到公網(wǎng)時,承載與特定運營商相同的TPID值,從而實現(xiàn)與該運營商設(shè)備之間的互操作性。以太網(wǎng)幀的TPID與不帶VLAN標(biāo)記的幀的協(xié)議類型字段位置相同。為避免在網(wǎng)絡(luò)中轉(zhuǎn)發(fā)和處理數(shù)據(jù)包時出現(xiàn)問題,不可將TPID值設(shè)置為下表中的任意值:
**QinQ實現(xiàn)方式 **
1.基本QinQ
基本QinQ是基于端口方式實現(xiàn)的。開啟端口的基本QinQ功能后,當(dāng)該端口接收到報文,設(shè)備會為該報文打上本端口缺省VLAN 的VLAN Tag。如果接收到的是已經(jīng)帶有VLAN Tag的報文,該報文就成為雙Tag的報文;如果接收到的是不帶VLAN Tag的報文,該報文就成為帶有端口缺省VLAN Tag的報文。
基于端口的QinQ的缺點是外層VLAN Tag封裝方式固定,不能根據(jù)業(yè)務(wù)種類選擇外層VLAN Tag封裝的方式,從而很難有效支持多業(yè)務(wù)的靈活運營。
基本QinQ的報文處理過程:
- SW1收到VLAN ID為10和20的報文,將該報文發(fā)給SW2。
- SW2收到該報文后,在該報文原有Tag的外側(cè)再添加一層VLAN ID 為100的外層Tag。
- 帶著兩層Tag的用戶數(shù)據(jù)報文在網(wǎng)絡(luò)中按照正常的二層轉(zhuǎn)發(fā)流程轉(zhuǎn)發(fā)。
- SW3收到VLAN100的報文后,剝離報文的外層Tag(VLAN ID 為100)。將報文發(fā)送給SW4,此時報文只有一層Tag(VLAN ID 為10或20)。
- SW4收到該報文,根據(jù)VLAN ID和目的MAC地址進行相應(yīng)的轉(zhuǎn)發(fā)。
基本QinQ的報文處理過程
2.靈活QinQ
靈活QinQ(Selective QinQ)可根據(jù)流分類的結(jié)果選擇是否打外層VLAN Tag,打上何種外層VLAN Tag。靈活QinQ可根據(jù)用戶的VLAN標(biāo)簽、優(yōu)先級、MAC地址、IP協(xié)議、IP源地址、IP目的地址、或應(yīng)用程序的端口號進行流分類。
- 基于VLAN ID的靈活QinQ:為具有不同內(nèi)層VLAN ID的報文添加不同的外層VLAN Tag。
- 基于802.1p優(yōu)先級的靈活QinQ:根據(jù)報文的原有內(nèi)層VLAN的802.1p優(yōu)先級添加不同的外層VLAN Tag。
- 基于流策略的靈活QinQ:根據(jù)QoS策略添加不同的外層VLAN Tag?;诹鞑呗缘撵`活QinQ能夠針對業(yè)務(wù)類型提供差別服務(wù)。
靈活QinQ功能是對基本QinQ功能的擴展,它比基本QinQ的功能更靈活。二者之間的主要區(qū)別是:
- 基本QinQ:對進入二層QinQ接口的所有幀都加上相同的外層Tag。
- 靈活QinQ:對進入二層QinQ接口的幀,可以根據(jù)不同的內(nèi)層Tag而加上不同的外層Tag,對于用戶VLAN的劃分更加細致
QinQ配置命令介紹
(1) 配置接口類型為dot1q-tunnel
[Huawei-GigabitEthernet0/0/1] port link-type dot1q-tunnel
(2) 配置接口類型為dot1q-tunnel,該接口可以是物理接口,也可以是Eth-Trunk接口。
使能接口VLAN轉(zhuǎn)換功能;
Huawei-GigabitEthernet0/0/1] qinq vlan-translation enable
(3) 配置配置靈活QinQ
[Huawei-GigabitEthernet0/0/1] port vlan-stacking vlan vlan-id1 [ to vlan-id2 ] stack-vlan vlan-id3 [ remark-8021p 8021p-value ]
配置不同的內(nèi)層VLAN疊加不同的外層VLAN,缺省情況下,外層VLAN優(yōu)先級與內(nèi)層VLAN優(yōu)先級保持一致。
QinQ配置舉例
1.基本QinQ
實驗要求:
- 企業(yè)1與企業(yè)2接入同一個ISP網(wǎng)絡(luò),并使用了重疊的VLAN空間。
- ISP通過QinQ技術(shù),實現(xiàn)同一個企業(yè)的不同站點之間的數(shù)據(jù)交互。
- 為企業(yè)1規(guī)劃的VLAN ID為100,為企業(yè)2規(guī)劃的VLAN ID為200。
SW1配置如下:
[SW1] vlan batch 100 200
[SW1] interface GigabitEthernet 0/0/1
#配置GE0/0/1外層TAG為100
[SW1-GigabitEthernet0/0/1] port link-type dot1q-tunnel
[SW1 -GigabitEthernet0/0/1] port default vlan 100
[SW1] interface GigabitEthernet 0/0/2
#配置GE0/0/2外層TAG為200
[SW1-GigabitEthernet0/0/2] port link-type dot1q-tunnel
[SW1-GigabitEthernet0/0/2] port default vlan 200
[SW1] interface GigabitEthernet 0/0/3
[SW1-GigabitEthernet0/0/3] port link-type trunk
[SW1-GigabitEthernet0/0/3] port trunk allow-pass vlan 100 200
#配置外層VLAN tag的TPID值
[SW1-GigabitEthernet0/0/3] qinq protocol 9100
SW2配置與SW1類似,此處省略
2.靈活QinQ
靈活QinQ拓?fù)?/p>
實驗要求:
- 上網(wǎng)用戶和VoIP用戶通過SW1和SW2接入ISP網(wǎng)絡(luò),通過ISP的網(wǎng)絡(luò)互相通信;企業(yè)為PC分配的內(nèi)部VLAN為100,為VoIP電話分配的內(nèi)部VLAN為300。
- 上網(wǎng)用戶和VoIP用戶分別以VLAN2和VLAN3通過ISP網(wǎng)絡(luò)。
SW1配置如下:
[SW1] vlan batch 2 3
[SW1] interface GigabitEthernet 0/0/1
[SW1-GigabitEthernet0/0/1] port link-type hybrid
[SW1-GigabitEthernet0/0/1] port hybrid untagged vlan 2 3
[SW1-GigabitEthernet0/0/1] qinq vlan-translation enable
[SW1-GigabitEthernet0/0/1] port vlan-stacking vlan 100 stack-vlan 2
[SW1-GigabitEthernet0/0/1] port vlan-stacking vlan 300 stack-vlan 3
[SW1-GigabitEthernet0/0/1] quit
[SW1] interface GigabitEthernet 0/0/2
[SW1-GigabitEthernet0/0/2] port link-type trunk
[SW1-GigabitEthernet0/0/2] port trunk allow-pass vlan 2 3
[SW1-GigabitEthernet0/0/2] quit
SW2配置與SW1類似,此處省略。