QinQ技術誕生的背景
QinQ最初主要是為擴展VLAN ID空間而産生的,但随着城域以太網的發展以及運營商精細化運作的要求,QinQ的雙層标簽又有了進一步的使用場景。它的内、外層标簽可以代表不同的信息,如内層标簽代表用戶,外層标簽代表業務。另外,QinQ數據幀帶着兩層标簽穿越運營商網絡,内層标簽透明傳送,也可以看作是一種簡單、實用的VPN技術。因此它又可以作為核心MPLS VPN在城域以太網VPN的延伸,最終形成端到端的VPN技術。由于QinQ方便易用的特點,現在已經在各運營商中得到了廣泛的應用,如QinQ技術在城域以太網解決方案中和多種業務相結合。特别是靈活QinQ(Selective QinQ/VLAN Stacking)的出現,使得QinQ業務更加受到了運營商的推崇和青睐。
QinQ封裝和終結
QinQ是在傳統802.1Q VLAN标簽頭基礎上再增加一層新的802.1Q VLAN标簽頭,如圖所示。由此可知,QinQ幀比傳統的802.1Q幀多了四個字節,即新增的802.1Q VLAN标簽。
QinQ幀封裝的過程就是把單層802.1Q标簽的數據幀轉換成雙層802.1Q标簽的數據幀。封裝過程主要發生在城域網側連接用戶的交換機端口上進行的。根據不同的VLAN标簽封裝依據,QinQ可以分為“基本QinQ”和“靈活QinQ”兩種類型。具體說明如下。
01
基本QinQ封裝
“基本QinQ封裝”是将進入一個端口的所有流量全部封裝一個相同的外層VLAN标簽,是一種基于端口的QinQ封裝方式,也稱“QinQ二層隧道”。開啟端口的基本QinQ功能後,當該端口接收到已經帶有VLAN标簽的數據幀時,則該數據幀就将封裝成雙層标簽的幀;如果接收到的是不帶VLAN标簽的數據幀,則該數據幀将封裝成為帶有端口缺省VLAN的一層标簽的幀。
02
靈活QinQ封裝
“靈活QinQ”是對QinQ的一種更靈活的實現,是基于端口封裝與基于VLAN封裝的結合方式。除了能實現所有基本QinQ的功能外,靈活QinQ對于同一個端口接收的數據幀還可以根據不同的内層VLAN标簽執行不同的外層标簽封裝。它又可分為以下三個子類:
基于VLAN ID的靈活QinQ:
它是基于數據幀中不同的内層标簽的VLAN ID來添加不同的外層标簽。即具有相同内層标簽的幀添加相同的外層VLAN标簽,具有不同内層标簽的幀添加不同的外層VLAN标簽。這就要求不同用戶的内層VLAN ID或VLAN ID範圍絕對不能重疊或交叉。華為S系列交換機中的S2700、S3700、S5700、S6700僅支持基于VLAN ID的靈活QinQ功能。
基于802.1p優先級的靈活QinQ:
它是基于數據幀中不同的内層标簽的802.1p優先級來添加不同的外層标簽。即具有相同内層VLAN 802.1p優先級的幀添加相同的外層标簽,具有不同内層VLAN 802.1p優先級的幀添加不同的外層标簽。這就要求不同用戶的内層VLAN的802.1p優先級或802.1p優先級範圍絕對不能重疊或交叉。基于802.1p優先級的靈活QinQ在華為S系列交換機中僅S7700、S9300和S9700系列支持。
基于流策略的靈活QinQ:
它是根據所定義的QoS策略為不同的數據幀添加不同的外層标簽。基于流策略的靈活QinQ是基于端口與VLAN相結合的方式實現的,能夠針對業務類型提供差别服務。基于流策略的靈活QinQ在華為S系列交換機中僅S7700、S9300和S9700系列支持。
03
QinQ/Dot1q終結子接口
QinQ/Dot1q終結是指設備對數據幀的雙層或者單層VLAN标簽進行識别,根據後續的轉發行為對幀中的雙層或者單層VLAN标簽進行剝離,然後繼續傳送。
也就是這些VLAN标簽僅在此之前生效,後面的數據傳輸和處理不再依據幀中的這些VLAN标簽。
【經驗之談】VLAN終結的實質包括兩個方面:
終結一般在路由子接口上執行,即終結子接口,如我們在單臂路由中就要配置路由子接口的802.1Q的VLAN終結。如果路由子接口是對數據幀的單層VLAN标簽終結,那麼該子接口稱為Dot1q 終結子接口;如果路由子接口是對數據幀的雙層VLAN标簽終結,那麼該子接口稱為QinQ終結子接口。QinQ終結子接口根據終結的用戶VLAN标簽的類型,通常分為兩種子接口:
實驗
基本QinQ和靈活QinQ結合實驗
拓撲:
實驗步驟:
1.配置4台PC的IP地址,子網掩碼。
2.在交換機sw5上創建VLAN 1000和VLAN 2000分别加入到GE0/0/1和GE0/0/2中,GE0/0/3配置為Trunk端口并放行對應的vlan
system-viewsysname sw5Vlan batch 1000 2000interface GigabitEthernet0/0/1 port link-type access port default vlan 1000interface GigabitEthernet0/0/2 port link-type access port default vlan 2000interface GigabitEthernet0/0/3 port link-type trunk port trunk allow-pass vlan 1000 2000
3.在交換機sw6上創建VLAN 1000和VLAN 2000分别加入到GE0/0/1和GE0/0/2中,GE0/0/3配置為Trunk端口并放行對應的vlan
system-viewsysname sw6Vlan batch 1000 2000interface GigabitEthernet0/0/1 port link-type access port default vlan 2000interface GigabitEthernet0/0/2 port link-type access port default vlan 1000interface GigabitEthernet0/0/3 port link-type trunkport trunk allow-pass vlan 1000 2000
4.在交換機sw3上,創建VLAN 100、200,将GE0/0/2配置為Trunk端口并允許VLAN 100、200的流量通過,将G0/0/3設置為靈活QinQ
system-viewsysname sw3Vlan batch 100 200interface GigabitEthernet0/0/2 port link-type trunk port trunk allow-pass vlan 100 200interface GigabitEthernet0/0/3 qinq vlan-translation enableport hybrid untagged vlan 100 200 port vlan-stacking vlan 1000 stack-vlan 100 port vlan-stacking vlan 2000 stack-vlan 200
5.在交換機sw4上,創建VLAN 100、200,将GE0/0/2配置為Trunk端口并允許VLAN 100、200的流量通過,将G0/0/3設置為靈活QinQ
system-viewsysname sw4Vlan batch 100 200interface GigabitEthernet0/0/2 port link-type trunk port trunk allow-pass vlan 100 200interface GigabitEthernet0/0/3 qinq vlan-translation enable port hybrid untagged vlan 100 200 port vlan-stacking vlan 1000 stack-vlan 100 port vlan-stacking vlan 2000 stack-vlan 200
6.在交換機sw1上,創建VLAN 500,将GE0/0/1配置為Trunk端口并允許VLAN 500的流量通過,将G0/0/2設置為接口QinQ
system-viewsysname sw1Vlan 500interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 500interface GigabitEthernet0/0/2 port link-type dot1q-tunnelport default vlan 500
7.在交換機sw2上,創建VLAN 500,将GE0/0/1配置為Trunk端口并允許VLAN 500的流量通過,将G0/0/2設置為接口QinQ
system-viewsysname sw2Vlan 500interface GigabitEthernet0/0/1port link-type trunk port trunk allow-pass vlan 500interface GigabitEthernet0/0/2 port link-type dot1q-tunnelport default vlan 500
實驗結果:
要求同一VLAN内的PC可以互相通信
PC1 ping PC4 通,反之也可以。
PC2 ping PC3 通,反之也可以。
p1 ping不同PC2、3
p2 ping不同PC1、4
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!