目錄

簡介

必要條件

需求

採用元件

設定

網路圖表

驗證

疑難排解

其他debug命令

相關資訊

簡介

本檔案介紹如何在執行Cisco IOS® XE軟體的Catalyst 9000系列交換器上設定802.1Q通道(QinQ)和第2層通訊協定通道(L2PT)，並對其進行驗證和疑難排解。

請參閱思科正式版本說明和配置指南，瞭解限制、限制、配置選項和警告的最新資訊，以及有關此功能的任何其他相關詳細資訊。

必要條件

需求

思科建議您瞭解以下主題：

- Catalyst 9000系列交換器架構

- Cisco IOS XE軟體架構

- 虛擬區域網(VLAN)、VLAN中繼和IEEE 802.1Q封裝

- 第2層通訊協定，例如思科探索通訊協定(CDP)、連結層探索通訊協定(LLDP)、跨距樹狀目錄通訊協定(STP)、連結彙總控制通訊協定(LACP)和連線埠彙總通訊協定(PAgP)。

- QinQ隧道、選擇性QinQ隧道和第2層協定隧道(L2PT)的基本知識

- 交換器連線埠分析器(SPAN)和嵌入式封包擷取(EPC)

採用元件

本檔案中的資訊是根據以下硬體和軟體版本：

- 採用Cisco IOS XE 17.3.3的Cisco Catalyst C9500-12Q

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路運作中，請確保您瞭解任何指令可能造成的影響。

相關產品

本文件也適用於以下硬體和軟體版本：

- 具備Cisco IOS XE軟體的Catalyst 3650和3850系列交換機

- 具備Cisco IOS XE軟體的Catalyst 9200、9300、9400和9600系列交換機

設定

本節介紹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堆疊。雙重標籤的流量僅根據SVLAN媒體存取控制(MAC)表資訊由提供者網路中的L2轉送。一旦雙標籤流量到達QinQ隧道的遠端，同樣充當QinQ隧道接入的遠端PE交換機ProvSwitchB從流量中去除SVLAN標籤，並將其轉發到僅使用CVLAN 802.1Q標籤標籤的站點B，從而實現遠端站點間VLAN的第2層擴展。L2協定隧道也用於在CE交換機CusSwitchA和CusSwitchB之間交換Cisco發現協定(CDP)幀。

當流量從站點B轉發到站點A時，將發生相同的過程，並且應用於PE交換機ProvSwitchB的相同配置、驗證和故障排除步驟。假設提供商交換機網路中的所有其他裝置和客戶站點僅配置了access/trunk命令，並且不執行任何QinQ功能。

以下示例假設在QinQ隧道接入交換機中僅接收有一個802.1Q標籤的流量，但是，接收的流量可以具有零個或多個802.1Q標籤。SVLAN標籤會新增到接收的VLAN堆疊中。裝置不需要額外的QinQ、VLAN和TRUNK配置來支援零個或更多802.1Q標籤的流量，但是，必須更改裝置上的最大傳輸單元(MTU)以支援新增到流量中的其他位元組（在故障排除一節中介紹的其他詳細資訊）。

有關IEEE 802.1Q通道的其他資訊，請參閱適用於Catalyst 9500和Cisco IOS XE Amsterdam-17.3.x的第2層配置指南文檔：

https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst9500/software/release/17-3/configuration_guide/lyr2/b_173_lyr2_9500_cg/configuring_ieee_802_1q_tunneling.html

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 native VLAN，但可以在介面級別禁用該標籤，並且不配置switchport trunk native vlan標記。

驗證

QinQ通道和L2PT的連線埠組態可以從Cisco IOS XE視角驗證到轉送應用特定積體電路(FWD-ASIC)視角，即可在Catalyst交換器上進行轉送決策。基本的Cisco IOS XE驗證命令包括：

- show dot1q-tunnel — 列出配置為QinQ通道訪問的介面。

ProvSwitchA# show dot1q-tunnel

dot1q-tunnel mode LAN Port(s)

-----------------------------

Te1/0/2

- show vlan id {svlan-number} — 顯示分配給指定VLAN的介面。

ProvSwitchA# show vlan id 1010

VLAN Name                             Status    Ports

---- -------------------------------- --------- -------------------------------

1010 QinQ-VLAN                        active    Te1/0/1, Te1/0/2

- show interfaces trunk — 列出在中繼模式下配置的介面。

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

- show vlan dot1q tag native — 列出802.1Q native VLAN標籤全域性狀態以及配置為標籤802.1Q native VLAN的中繼介面。

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

- show mac address-table vlan {svlan-number} — 顯示在SVLAN中獲知的MAC地址。無論使用哪個CVLAN，都會在SVLAN中獲知來自LAN裝置的MAC地址。

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

- show l2-protocol tunnel — 顯示為L2PT啟用的介面以及每個已啟用的L2協定的計數器。

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

---         ----      ----      ----      ----      ----

- show cdp neighbor — 可以在CE交換機上運行，確認它們可以通過CDP相互看到。

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中檢查交換機埠資訊。

注意：要運行PM命令，必須在全域性配置模式上配置服務內部。此配置允許在CLI上運行其他平台和debug命令，對網路沒有功能影響。建議在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上驗證switchport配置。

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 feed 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

與接入模式下的switchport不同（它們預期只接收未標籤的流量），在802.1Q隧道模式下配置的交換機埠也接受802.1Q標籤的流量。FED在QinQ通道存取連線埠的連線埠上允許此功能，如使用show platform software fed switch {switch-number} 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 abstration 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通過提供商交換網路轉發。請注意，未設定LEAD_PORT_SEL_QINQ_ENABLED欄位。此位只為選擇性QinQ配置設定，而不為傳統QinQ隧道配置設定（如本文檔所述）。

疑難排解

本節提供可對組態進行疑難排解的步驟。疑難排解802.1Q通道中的流量問題最有用的工具是交換式連線埠分析器(SPAN)。SPAN擷取可用於驗證從LAN接收的CVLAN的802.1Q標籤和在QinQ通道存取裝置新增的SVLAN。

註：嵌入式資料包捕獲(EPC)也可用於捕獲802.1Q隧道環境中的流量。但是，使用EPC進行出口資料包捕獲發生在流量使用IEEE 802.1Q標籤之前（在出口方向的埠級別上發生802.1Q標籤插入）。因此，提供商邊緣裝置的上行鏈路中繼上的輸出EPC無法顯示提供商交換網路中使用的SVLAN標籤。使用EPC收集雙標籤流量的選項是在鄰居提供程式裝置上使用輸入EPC捕獲流量。

有關EPC的其他資訊，請參閱使用Cisco IOS XE Amsterdam-17.3.x的Catalyst 9500交換機的網路管理配置指南：

https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst9500/software/release/17-3/configuration_guide/nmgmt/b_173_nmgmt_9500_cg/configuring_packet_capture.html

若要設定SPAN以擷取802.1Q標籤的流量，必須設定monitor session {session-number} destination interface {interface-name} encapsulation replicate命令。如果未配置encapsulation replicate關鍵字，則使用SPAN映象的流量可能包含不正確的802.1Q標籤資訊。有關SPAN設定的範例，請參閱設定一節。

有關SPAN的其他資訊，請參閱搭載Cisco IOS XE Amsterdam-17.3.x的Catalyst 9500交換器的網路管理組態設定指南

https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst9500/software/release/17-3/configuration_guide/nmgmt/b_173_nmgmt_9500_cg/configuring_span_and_rspan.html

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的存在。

注意：網路分析器上的某些網路介面卡(NIC)可以移除接收的已標籤流量上的802.1Q標籤。請聯絡支援網路介面卡供應商，獲取有關如何維護已接收幀上的802.1Q標籤的特定資訊。

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

- 中繼介面上的預設最大傳輸單元(MTU)為1522位元組。這表示IP MTU為1500，乙太網報頭幀為18個位元組，一個802.1Q標籤為4個位元組。所有提供商和提供商邊緣裝置中配置的MTU必須對VLAN堆疊中新增的每個802.1Q標籤額外有4個位元組。例如，對於2標籤的VLAN堆疊，必須配置MTU 1504。若是3標籤VLAN堆疊，必須設定MTU 1508，以此類推。有關MTU配置詳細資訊，請參閱帶有Cisco IOS XE Amsterdam-17.3.x的Catalyst 9500的介面和硬體元件配置指南：https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst9500/software/release/17-3/configuration_guide/int_hw/b_173_int_and_hw_9500_cg/configuring_system_mtu.html

- 不支援在802.1Q隧道內的裝置上傳輸到CPU的流量。需要流量檢查的功能在802.1Q環境中可能導致資料包丟失或資料包洩漏。這些功能的示例包括：用於DHCP流量的DHCP監聽、用於IGMP流量的IGMP監聽、用於MLD流量的MLD監聽以及用於ARP流量的動態ARP檢測。建議在SVLAN上停用這些功能，這些功能用於透過服務提供者交換網路傳輸流量。

其他debug命令

附註：使用 debug 指令之前，請先參閱有關 Debug 指令的重要資訊。

- debug pm port — 顯示埠管理器(PM)埠轉換和程式設計模式。用於調試QinQ埠配置狀態。

相關資訊

- Catalyst 9300交換器 — 設定IEEE 802.1Q通道

- Catalyst 9300交換器 — 設定第2層通訊協定通道

- Catalyst 9300交換器 — 設定EtherChannel

- 技術支援與文件 - Cisco Systems