簡介
本檔案介紹如何在執行Cisco IOS® XE軟體的Catalyst 9000交換器上設定802.1Q通道(QinQ)和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堆疊。提供者網路中的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驗證命令包括:
- 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 -列出在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本地VLAN標籤全局狀態和配置為標籤802.1Q本地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地址。LAN裝置的MAC地址在SVLAN中獲知,而不考慮使用的CVLAN。
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上運行其他平台和調試命令,並且對網路沒有功能影響。建議在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。
注意:嵌入式資料包捕獲(EPC)也可用於捕獲802.1Q隧道環境中的流量。但是,使用EPC的出口資料包捕獲發生在使用IEEE 802.1Q標籤流量之前(802.1Q標籤插入發生在出口方向的埠級別)。因此,提供商邊緣裝置的上行鏈路中繼上的出口EPC無法顯示提供商交換網路中使用的SVLAN標籤。使用EPC收集雙標籤流量的一種方法是在鄰居提供商裝置上使用入口EPC捕獲流量。
有關EPC的更多資訊,請參閱以下文檔:
網路管理配置指南,Cisco IOS XE阿姆斯特丹版17.3.x(Catalyst 9500交換機)
若要設定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。
注意:網路分析器上的某些網路介面卡(NIC)可以刪除所接收標籤流量上的802.1Q標籤。如需如何在收到的訊框上維護802.1Q標籤的特定資訊,請連絡NIC廠商的支援。
如果懷疑是QinQ交換網路中的流量丟失,請考慮以下事項:
- 不支援將流量傳送到802.1Q隧道內部裝置上的CPU。在802.1Q環境中,需要流量檢查的功能可能會導致資料包丟失或資料包洩漏。這些功能的示例包括用於DHCP流量的DHCP監聽、用於IGMP流量的IGMP監聽、用於MLD流量的MLD監聽以及用於ARP流量的動態ARP檢測。建議停用用於透過提供商交換網路傳輸流量的SVLAN上的這些功能。
其他調試命令
附註:使用 debug 指令之前,請先參閱有關 Debug 指令的重要資訊。
- debug pm port -顯示埠管理器(PM)埠轉換和程式設計模式。可用於調試QinQ埠配置狀態。
相關資訊