本檔案介紹如何在執行Cisco IOS® XE軟體的Catalyst 9000交換器上設定802.1Q通道(QinQ)和L2PT並疑難排解。
有關限制、限制、配置選項和注意事項的最新資訊,以及有關此功能的任何其他相關詳細資訊,請參閱思科官方發行說明和配置指南。
思科建議您瞭解以下主題:
本文件中的資訊是以下列硬體與軟體版本為依據:
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
本文件也適用於以下硬體和軟體版本:
本節介紹Catalyst 9000交換機上IEEE 802.1Q隧道(QinQ)部署的基本拓撲,以及每個Catalyst交換機的配置示例。
在所示的拓撲中,有兩個站點,站點A和站點B,這兩個站點被使用服務虛擬LAN (SVLAN) 1010的服務提供商交換網路物理隔離。提供商邊緣(PE)交換機ProvSwitchA和ProvSwitchB分別將站點A和站點B的訪問許可權授予提供商網路。站點A和站點B使用客戶VLAN (CVLAN) 10、20和30,並且要求這些VLAN在第2層(L2)進行擴展。站點A透過客戶邊緣(CE)交換機CusSwitchA連線到提供商網路,站點B透過CE交換機CusSwitchB連線到提供商網路。
站點A將帶有所用CVLAN的IEEE 802.1Q標籤(也稱為內部標籤)的流量傳送到PE交換機ProvSwitchA,該交換機充當QinQ隧道接入。ProvSwitchA將收到的流量轉發到具有SVLAN的第二個IEEE 802.1Q標籤(也稱為外部標籤或Metro標籤)的提供商交換網路,該標籤增加在CVLAN 802.1Q標籤之上。此程式也稱為VLAN堆疊,此範例顯示2個標籤的VLAN堆疊。提供者網路中的L2隻會根據SVLAN媒體存取控制(MAC)表格資訊,轉送雙重標籤的流量。一旦雙標籤流量到達QinQ隧道的遠端端,同樣充當QinQ隧道接入的遠端PE交換機ProvSwitchB從流量中去除SVLAN標籤,並將其轉發到僅使用CVLAN 802.1Q標籤標籤的站點B,從而實現遠端站點間VLAN的第2層擴展。L2協定隧道還用於在CE交換機CusSwitchA和CusSwitchB之間交換思科發現協定(CDP)幀。
當流量從站點B轉發到站點A時,將發生同樣的過程,並且相同的配置、驗證和故障排除步驟適用於PE交換機ProvSwitchB。假定提供商交換機網路和客戶站點內的所有其他裝置僅配置了access/trunk命令,不執行任何QinQ功能。
以下示例假設QinQ隧道接入交換機中只接收到具有一個802.1Q標籤的流量,但是,收到的流量可以具有零個或多個802.1Q標籤。SVLAN標籤會增加到接收的VLAN堆疊中。裝置不需要額外的QinQ、VLAN和TRUNK配置來支援帶有零個或更多802.1Q標籤的流量,但是,必須更改裝置上的最大傳輸單元(MTU)以支援增加到流量中的額外位元組(故障排除部分中描述的額外詳細資訊)。
有關IEEE 802.1Q隧道的其它資訊如下所示:
第2層配置指南,Cisco IOS XE阿姆斯特丹版17.3.x(Catalyst 9500交換機)

ProvSwitchA(QinQ隧道PE裝置)上的配置:
!
version 17.3
!
hostname ProvSwitchA
!
vtp domain QinQ
vtp mode transparent
!
vlan dot1q tag native
!
vlan 1010
name QinQ-VLAN
!
interface TenGigabitEthernet1/0/1
switchport trunk allowed vlan 1010
switchport mode trunk
!
interface TenGigabitEthernet1/0/2
switchport access vlan 1010
switchport mode dot1q-tunnel
no cdp enable
l2protocol-tunnel cdp
!
ProvSwitchB(QinQ隧道PE裝置)上的配置:
!
version 17.3
!
hostname ProvSwitchB
!
vtp domain QinQ
vtp mode transparent
!
vlan dot1q tag native
!
vlan 1010
name QinQ-VLAN
!
interface TeGigabitEthernet1/0/1
switchport trunk allowed vlan 1010
switchport mode trunk
!
interface TeGigabitEthernet1/0/2
switchport access vlan 1010
switchport mode dot1q-tunnel
no cdp enable
l2protocol-tunnel cdp
!
CusSwitchA(CE裝置)上的配置:
!
version 17.3
!
hostname CusSwitchA
!
vtp domain SiteA
vtp mode transparent
!
vlan dot1q tag native
!
vlan 10
name Data
!
vlan 20
name Voice
!
vlan 30
name Mgmt
!
interface TenGigabitEthernet1/0/2
switchport trunk allowed vlan 10,20,30
switchport mode trunk
!
CusSwitchB(CE裝置)上的配置:
!
version 17.3
!
hostname CusSwitchB
!
vtp domain SiteB
vtp mode transparent
!
vlan dot1q tag native
!
vlan 10
name Data
!
vlan 20
name Voice
!
vlan 30
name Mgmt
!
interface TenGigabitEthernet1/0/2
switchport trunk allowed vlan 10,20,30
switchport mode trunk
!
請注意,提供商裝置中未定義CVLAN,CE交換機上也未定義SVLAN。提供商裝置僅根據SVLAN轉發流量,不考慮用於任何轉發決策的CVLAN資訊,因此提供商裝置無需知道在QinQ隧道訪問中收到哪些VLAN(除非使用選擇性QinQ)。這也意味著,用於CVLAN標籤的VLAN ID可用於提供商交換網路內的流量,反之亦然。在這種情況下,建議您在全局配置模式下配置vlan dot1q tag native,以防止任何資料包丟失或流量洩漏問題。預設情況下,vlan dot1q tag native允許在所有中繼介面上標籤802.1Q本地VLAN,但可以在介面級別停用no switchport trunk native vlan tag配置。
QinQ通道和L2PT的連線埠組態可以從思科IOS XE的角度,驗證到轉送應用特定積體電路(FWD-ASIC)的角度,在Catalyst交換器上進行轉送決策。基本Cisco IOS XE驗證命令包括:
ProvSwitchA# show dot1q-tunnel dot1q-tunnel mode LAN Port(s) ----------------------------- Te1/0/2
ProvSwitchA# show vlan id 1010 VLAN Name Status Ports ---- -------------------------------- --------- ------------------------------- 1010 QinQ-VLAN active Te1/0/1, Te1/0/2
ProvSwitchA# show interfaces trunk Port Mode Encapsulation Status Native vlan Te1/0/1 on 802.1q trunking 1 Port Vlans allowed on trunk Te1/0/1 1010
ProvSwitchA# show vlan dot1q tag native
dot1q native vlan tagging is enabled globally
Per Port Native Vlan Tagging State
----------------------------------
Port Operational Native VLAN
Mode Tagging State
-------------------------------------------
Te1/0/1 trunk enabled
ProvSwitchA#show mac address-table vlan 1010
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1010 701f.539a.fe46 DYNAMIC Te1/0/2
Total Mac Addresses for this criterion: 3
ProvSwitchA#show l2protocol-tunnel
COS for Encapsulated Packets: 5 Drop Threshold for Encapsulated Packets: 0 Port Protocol Shutdown Drop Encaps Decaps Drop Threshold Threshold Counter Counter Counter ------------------- ----------- --------- --------- --------- --------- --------- Te1/0/2 cdp ---- ---- 90 97 0 --- ---- ---- ---- ---- ----
CusSwitcha#show cdp neighbors Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID CusSwitchB.cisco.com Ten 1/0/2 145 S I C9500-12 Ten 1/0/2
當介面透過命令列介面(CLI)配置為QinQ隧道訪問時,Cisco IOS XE會觸發埠管理器(PM)進程,以指定的模式和VLAN配置交換機埠。可使用show pm port interface {interface-name}命令在PM中檢查交換機埠資訊。
ProvSwitchA# show pm port interface TenGigabitEthernet1/0/2 port 1/2 pd 0x7F9E317C3A48 swidb 0x7F9E30851320(switch) sb 0x7F9E30852FE8 if_number = 2 hw_if_index = 1 snmp_if_index = 2(2) ptrunkgroup = 0(port) admin up(up) line up(up) operErr none port assigned mac address 00a3.d144.200a idb port vlan id 1010 default vlan id 1010 speed: 10G duplex: full mode: tunnel encap: native flowcontrol receive: on flowcontrol send: off sm(pm_port 1/2), running yes, state dot1qtunnel
為介面Te1/0/2分配的介面號(if_number)為2。這是介面識別符號(IF-ID),是標識特定埠的內部值。還可以使用show platform software pm-port switch 1 R0 interface {IF-ID}命令在PM上驗證交換機埠配置。
ProvSwitchA# show platform software pm-port switch 1 R0 interface 2 PM PORT Data: Intf PORT DEFAULT NATIVE ALLOW MODE PORT PORT ID ENABLE VLAN VLAN NATIVE DUPLEX SPEED --------------------------------------------------------- 2 TRUE 1010 1010 TRUE tunnel full unknown
一旦PM應用交換機埠配置,PM將埠資訊中繼到轉發引擎驅動程式(FED),以便相應地程式設計專用積體電路(ASIC)。
在FED中,可以使用show platform software fed switch {switch-number} port if_id {IF-ID}命令檢查埠,以確認其已程式設計為QinQ隧道接入埠:
ProvSwitchA# show platform software fed switch 1 port if_id 2
FED PM SUB PORT Data :
if_id = 2
if_name = TenGigabitEthernet1/0/2
enable: true
speed: 10Gbps
operational speed: 10Gbps
duplex: full
operational duplex: full
flowctrl: on
link state: UP
defaultVlan: 1010
port_state: Fed PM port ready
mode: tunnel
與接入模式下的交換機埠不同(交換機埠預期只接收未標籤的流量),在802.1Q隧道模式下配置的交換機埠也接受802.1Q標籤的流量。FED在QinQ隧道接入埠的埠上允許此功能,並可透過show platform software fed switch {switch-number} ifm if-id {IF-ID}進行確認:
C9500-12Q-PE1# show platform software fed switch 1 ifm if-id 2
Interface Name : TenGigabitEthernet1/0/2
Interface State : Enabled
Interface Type : ETHER
Port Type : SWITCH PORT
Port Location : LOCAL
Port Information
Type .............. [Layer2]
Identifier ........ [0x9]
Slot .............. [1]
Port Physical Subblock
Asic Instance ..... [0 (A:0,C:0)]
Speed ............. [10GB]
PORT_LE ........... [0x7fa164777618]
Port L2 Subblock
Enabled ............. [Yes]
Allow dot1q ......... [Yes]
Allow native ........ [Yes]
Default VLAN ........ [1010]
Allow priority tag ... [Yes]
Allow unknown unicast [Yes]
Allow unknown multicast[Yes]
Allow unknown broadcast[Yes]
FED還提供一個十六進位制格式的控制代碼值,稱為埠邏輯實體(埠LE)。埠LE是指向轉發ASIC (fwd-asic)中程式設計的埠資訊的指標。show platform hardware fed switch 1 fwd-asic abstraction print-resource-handle {Port-LE-handle} 1命令顯示ASIC級別的埠上啟用的不同功能:
C9500-12Q-PE1# show platform hardware fed switch 1 fwd-asic abstraction print-resource-handle 0x7f79548c3718 1 Detailed Resource Information (ASIC_INSTANCE# 0) ---------------------------------------- LEAD_PORT_ALLOW_BROADCAST value 1 Pass LEAD_PORT_ALLOW_DOT1Q_TAGGED value 1 Pass LEAD_PORT_ALLOW_MULTICAST value 1 Pass LEAD_PORT_ALLOW_NATIVE value 1 Pass LEAD_PORT_ALLOW_UNICAST value 1 Pass LEAD_PORT_ALLOW_UNKNOWN_UNICAST value 1 Pass¡ LEAD_PORT_SEL_QINQ_ENABLED value 0 Pass LEAD_PORT_DEFAULT_VLAN value 1010 Pass ==============================================================
此輸出在ASIC級別確認QinQ隧道接入交換機埠配置為允許來自LAN的未標籤流量和802.1Q標籤流量,並指定SVLAN 1010透過提供商交換網路進行轉發。請注意,「導引_埠_選取_秦q_啟用」欄位未設定。此位只為選擇性QinQ配置設定,而不為傳統QinQ隧道配置設定(如本文檔所述)。
本節提供可用於對配置進行故障排除的步驟。疑難排解802.1Q通道流量問題最有用的工具是交換器連線埠分析器(SPAN)。SPAN擷取可用於驗證從LAN接收的CVLAN的802.1Q標籤和新增到QinQ通道存取裝置的SVLAN。
若要設定SPAN以使用802.1Q標籤擷取流量,請務必設定monitor session {session-number} destination interface {interface-name} encapsulation replicate命令。如果沒有設定encapsulation replicate關鍵字,則使用SPAN映象的流量可能包含不正確的802.1Q標籤資訊。有關SPAN配置的示例,請參閱配置部分。
有關SPAN的詳細資訊,請參閱網路管理配置指南,Cisco IOS XE阿姆斯特丹版17.3.x(Catalyst 9500交換機)
ProvSwitchA上的SPAN設定範例:
!
monitor session 1 source interface Te1/0/1 , Te1/0/2
monitor session 1 destination interface Te1/0/3 encapsulation replicate
!
在網路分析器裝置中,可以檢查收到的映象流量,以確認QinQ隧道接入入口中是否存在CVLAN 10:

同樣,在連線到提供商交換網路的介面中繼中,可以確認出口方向是否存在CVLAN 10和SVLAN 1010。

如果懷疑是QinQ交換網路中的流量丟失,請考慮以下事項: