本產品的文件集力求使用無偏見用語。針對本文件集的目的,無偏見係定義為未根據年齡、身心障礙、性別、種族身分、民族身分、性別傾向、社會經濟地位及交織性表示歧視的用語。由於本產品軟體使用者介面中硬式編碼的語言、根據 RFP 文件使用的語言,或引用第三方產品的語言,因此本文件中可能會出現例外狀況。深入瞭解思科如何使用包容性用語。
思科已使用電腦和人工技術翻譯本文件,讓全世界的使用者能夠以自己的語言理解支援內容。請注意,即使是最佳機器翻譯,也不如專業譯者翻譯的內容準確。Cisco Systems, Inc. 對這些翻譯的準確度概不負責,並建議一律查看原始英文文件(提供連結)。
本文說明如何對Catalyst 6500/6880系列即時接入網路中的資料包轉發進行故障排除。
建議使用者充分瞭解基於即時接入網路的設計、VNTAG格式和資料包轉發邏輯。
有關Catalyst 6500/6880即時接入的即時接入架構的其他資訊,請訪問:
已對此拓撲進行了所有進一步分析:
警告:此處所述的步驟僅在實驗室設定中運行或在Cisco TAC工程師的直接監督下運行。
要成功運行此處顯示的某些命令,請在Cisco Catalyst 6500/6880控制器上啟用「service internal」(隱藏命令),解鎖一些隱藏/TAC特定命令:
6880#configure terminal 6880(config)#service internal
啟用對FEX的完全訪問(內部服務是必需的)的指定分鐘數:
6880#test platform software console fex <fex-id> enable timeout <minutes>
在本節中,資料包從即時接入/FEX(交換矩陣擴展器)介面(連線到Gi1/0/1的主機)流到Cisco Catalyst 6500/6880系列控制器,其中描述了最終資料包轉發決策。
要確定FEX入口介面(Gi1/0/1)上是否收到資料包,可使用以下方法:
生成資料包數並驗證這些資料包在FEX上是否可見:
6880#show int gi101/1/0/1 | in packets input 101 packets input, 151894 bytes, 0 no buffer 6880#show counters interface gi101/1/0/1 delta | in InPackets|InUcastPkts|InMcastPkts 1. InPackets = 104 3. InUcastPkts = 102 4. InMcastPkts = 2
注意:根據設計,FEX上的MAC地址表始終為空,因為MAC學習僅發生在控制器上。
如果需要從FEX捕獲資料包以進行進一步的故障排除,則可以在FEX上直接配置SPAN會話(以便在FEX自身上執行資料包複製)。主要要求是SPAN目的地連線到SPAN來源的FEX相同:
6880#attach fex 101 Attach FEX:101 ip:192.168.1.101 Trying 192.168.1.101 ... Open User Access Verification Password: cisco FEX-101>enable Password: cisco FEX-101#conf t FEX-101(config)#monitor session 1 source interface gi1/0/1 FEX-101(config)#monitor session 1 destination interface gi1/0/2
此設定與直接在6880上以這種方式設定封包擷取(即SPAN作業階段)的案例不同:
6880#configure terminal 6880(config)#monitor session 1 source interface gi101/1/0/1 6880(config)#monitor session 1 destination interface gi101/1/0/2
在FEX上配置資料包捕獲後,FEX自身也會進行資料包複製,如果FEX和控制器之間出現通訊問題,則目標埠上也會觀察到資料包。如果直接在6880上配置資料包捕獲(請參閱第二個示例),則控制器自身上將進行資料包複製,如果控制器與FEX之間存在通訊問題,則可能導致錯誤分析。使用此方法,SPAN目的地可以連線到任何連線埠(FEX)。
這可以透過兩種情況下檢查6880上的複製SPAN計數器來確認。
直接在FEX上配置SPAN會話-所有等於0的計數器:
6880#clear platform hardware capacity rewrite-engine counter Clear rewrite-engine counter for both switches [confirm] 6880#sh platform hardware capacity rewrite-engine performance | in SPAN RX 1/5 0 0x210 SPAN RX 0 0 0 1/5 0 0x211 SPAN RX 1 0 0 (...)
直接在控制器上設定的SPAN作業階段-計數器對應於複製封包的數目。在入口控制器模組上執行複製,該模組不必屬於活動的VSS機箱。(示例:機箱2/模組5)。
6880#clear platform hardware capacity rewrite-engine counter Clear rewrite-engine counter for both switches [confirm] 6880#sh platform hardware capacity rewrite-engine performance | in SPAN RX (...> 2/5 0 0x211 SPAN RX 1 0 0 2/5 1 0x210 SPAN RX 0 0 0 2/5 1 0x211 SPAN RX 1 0 0 2/5 2 0x210 SPAN RX 0 102 0 (...)
點2中提供的SPAN替代方法是將資料包重定向到FEX CPU。使用log語句建立ACL並將其附加到入口介面(在本場景中:Gi1/0/1)上,然後運行debug命令捕獲這些資料包。 這還允許收集有關FEX上的資料包轉發決策的其他詳細資訊。
注意:如果資料包過多,此調試也會導致控制器交換機上的CPU使用率過高。
注意:如果存在即時接入交換機堆疊,需要在受監控埠的本地交換機上運行調試。透過運行命令「session where switch-no recording to switch number(session)」,登入到堆疊中的另一台交換機(例如,介面gi2/0/1,交換機-no為2;介面5/0/11,交換機-no為5,依此類推)。
6880#attach fex 101 Attach FEX:101 ip:192.168.1.101 Trying 192.168.1.101 ... Open User Access Verification Password: cisco FEX-101>en Password: cisco FEX-101#conf t FEX-101(config)#access-list 100 permit ip host 10.0.0.2 host 10.0.0.1 log FEX-101(config)#access-list 100 permit ip any any FEX-101(config)#int gi1/0/1 FEX-101(config-if)#ip access-group 100 in ! FEX-101#debug platform cpu-queues logging-q
當主機生成資料包時,資訊將增加到日誌記錄緩衝區,日誌記錄緩衝區提供資料包特徵(例如,源和目標MAC地址、源和目標IP地址)、資料包轉儲和內部資料包特徵。
Jun 7 14:05:23.059: Pak recvd on LOGGING-Q: Local Port Fwding L3If: L2If:GigabitEthernet1/0/1 DI:0x1E19, LT:7, Vlan:10 SrcGPN:1, SrcGID:1, ACLLogIdx:0x1, MacDA:0000.0000.0001, MacSA: 0000.0000.0002 IP_SA:10.0.0.2 IP_DA:10.0.0.1 IP_Proto:1 (FEX-101) TPFFD:F3800001_000A400A_01A00076-00011E19_5F5F0000_00002001 (FEX-101) (FEX-101) Jun 7 14:05:23.059: Raw FEX packet Dump: (FEX-101) Jun 7 14:05:23.059: 00 00 00 00 00 01 00 00 00 00 (FEX-101) Jun 7 14:05:23.059: 00 02 08 00 45 00 00 64 04 D3 (FEX-101) Jun 7 14:05:23.059: 00 00 FF 01 A2 C3 0A 00 00 02 (FEX-101) Jun 7 14:05:23.059: 0A 00 00 01 08 00 42 9D 00 13 (FEX-101) Jun 7 14:05:23.062: 00 00 00 00 00 00 38 96 03 04 (FEX-101)
要驗證轉發的決定,請運行此檢查(基於此日誌中提供的DI -目標索引,其中St1和St2對應於堆疊埠,Te1/0/1和Te1/0/2是屬於埠通道的上行鏈路):
FEX-101#show platform port-asic dest-map index 0x1E19 Ports: Te1/0/1 St1 Te1/0/2 St2
若要判斷從連線埠通道到控制器使用的是哪個連線埠(其編號透過執行命令「show etherchannel summary」來確認),請使用此方法。(此範例適用於IP封包,在使用非IP的情況下,會使用MAC位址):
FEX-101#show etherchannel load-balance EtherChannel Load-Balancing Configuration: src-dst-ip EtherChannel Load-Balancing Addresses Used Per-Protocol: Non-IP: Source XOR Destination MAC address IPv4: Source XOR Destination IP address IPv6: Source XOR Destination IP address ! FEX-101#test etherchannel load-balance interface po1 ip 10.0.0.2 10.0.0.1 Would select Te1/0/2 of Po1
傳送到控制器的封包已新增VNTAG,以反映輸入介面。為了確定此值,請按照以下方法操作(對介面Gi1/0/1使用VIF+1):
FEX-101#show platform fex ucast-entries vif sw_idb portname GPN handle res_index ==== ========== ====================== ==== ========= ========= 1 0x5CAC278 GigabitEthernet1/0/1 1 0x5 0x30F0000
封包到達控制器時,入口轉送引擎會進一步處理封包,並進一步決定如何處理封包。
例如,根據在點2.1中提供的分析,資料包透過介面Te1/0/2離開FEX。要確定另一端連線的控制器介面,請使用此命令:
6880#show fex infra | in FEX Uplink|FLGS FLGS: Te1/5/13, FLGS: 0x3F FEX Uplink: Te1/0/1 Te2/5/13, FLGS: 0x1F FEX Uplink: Te1/0/2
封包是在連線埠Te2/5/13上接收的,因此可以進行以下檢查:
當在控制器上收到資料包時,會進行MAC地址學習,並且會在所有模組上學習主機MAC地址(這僅顯示了來自活動Supervisor的一個示例):
6880#show mac address-table interface gi101/1/0/1 Legend: * - primary entry age - seconds since last seen n/a - not available S - secure entry R - router's gateway mac address entry D - Duplicate mac address entry Displaying entries from active supervisor: vlan mac address type learn age ports ----+----+---------------+-------+-----+----------+----------------------------- * 10 0000.0000.0002 dynamic Yes 10 Gi101/1/0/1
(...)
如第2.1.2點所述,在控制器上資料包捕獲的配置方式如下:
6880#configure terminal 6880(config)#monitor session 1 source interface gi101/1/0/1 6880(config)#monitor session 1 destination interface gi101/1/0/2
如果資料包在目標介面上可見,則表明資料包已成功從FEX傳送到控制器。
除了標準SPAN作業階段之外,還可以設定內部封包擷取,以便將封包擷取到內部緩衝區:
6880(config)#monitor session 1 type capture 6880(config-mon-capture)#source interface gi101/1/0/1 ! 6880#monitor capture start %SPAN-SW1-5-PKTCAP_START: Packet capture session 1 started 6880#show monitor capture buffer 1 IP: s=10.0.0.2 , d=10.0.0.1, len 100 2 IP: s=10.0.0.2 , d=10.0.0.1, len 100 3 IP: s=10.0.0.2 , d=10.0.0.1, len 100 4 IP: s=10.0.0.2 , d=10.0.0.1, len 100 (...)
有關此功能的詳細資訊,請參閱:迷你協定分析器
在Catalyst 6500/6880系列上,內建內部封包擷取(Internal Packet Capture)可提供控制器對封包所採取封包轉送決定的進一步洞察。
註:有關對6500/SUP2T和6880有效的ELAM的詳細資訊,請參閱帶Supervisor引擎2T的Catalyst 6500系列交換機的ELAM過程
當捕獲資料包時,確定資料包的來源(即,是否正確指向基於VIF對映完成的FEX介面),以及轉發資料包的位置。
在本示例中,在備用VSS機箱上收到資料包:
第一次登入時,
6880#remote login standby Trying Switch ... Entering CONSOLE for Switch Type "^C^C^C" to end this session User Access Verification Password: 6880-sdby#^e Standby console enabled
執行ELAM:
6880-sdby#show platform capture elam asic eureka slot 5 Assigned asic_desc=eu50 6880-sdby#show platform capture elam trigger master eu50 dbus dbi ingress ipv4 if ip_sa = 10.0.0.2 6880-sdby#show platform capture elam start cap_commands: Default ELAM RBI PB1 added to list
當資料包從主機傳送並到達入口轉發引擎時(在我們的案例中為chassis-2上的eu50),將觸發捕獲並獲取資料量(&colon);
6880-sdby#sh platform capture elam status ELAM Mode: local ID# Role ASIC Slot Inst Ver ELAM Status ----- ---- ------- ---- ---- --- --------- ------ eu50 M EUREKA 5 0 1.3 DBI_ING Capture Completed eu50 s EUREKA 5 0 1.3 RBI_PB1 Capture Completed ID# ELAM Trigger ----- --------- ---------- eu50 DBI_ING FORMAT=IP L3_PROTOCOL=IPV4 IP_SA = 10.0.0.2 eu50 RBI_PB1 TRIG=1 ! 6880-sdby#show platform capture elam data | in IP_SA|IP_DA|SMAC|DMAC|SRC_INDEX|DEST_INDEX|data DBUS data: SRC_INDEX ....................... [19] = 0x2000 [Po101[Te1/5/13,Te2/5/13],Gi101/1/0/1] DEST_INDEX ...................... [19] = 0xC [Te1/1/13] DMAC ............................ = 0000.0000.0001 SMAC ............................ = 0000.0000.0002 IP_SA ........................... = 10.0.0.2 IP_DA ........................... = 10.0.0.1 RBUS data: DEST_INDEX ...................... [19] = 0x380 [Switch/Router]
根據捕獲輸出,FEX的Gi101/1/0/1(DBUS SRC_INDEX欄位)上已接收到具有MAC/IP地址(如圖所示)的資料包,並透過控制器上配置的Po101將其傳遞給控制器。決定將此資料包轉發到VSS CPU (RBUS DEST_INDEX欄位)。
註:VIF和源索引之間的對映由VNTAG管理器完成並且可以檢查(在這種情況下,VIF=1用於在FEX上從埠Gi1/0/1傳遞單播幀;運行狀態始終為2,型別可以是單播或組播):
6880#test platform software switch virtual vntag_mgr vif-map vif 1 detail VIF INFO: VIF# 1 Type UNICAST VIF LTL# 2000 OperStatus # 2
本節介紹從控制器Cisco Catalyst 6500/6880系列入口轉發引擎到即時接入/FEX(交換矩陣擴展器)介面的資料包流。
為確定Catalyst 6500/6880交換機是否成功接收資料包,使用標準方法排除獨立/VSS交換機的故障。這些方法包括封包擷取(SPAN作業階段等)。如需有關這些工具的詳細資訊,請參閱:
為了確定將轉發資料包的決策是否將其傳送到具有有效VIF識別符號的FEX,在控制器上為入口轉發引擎(即處理已接收資料包的介面的轉發引擎)執行資料包捕獲。
有關對6500/SUP2T以及6880有效的ELAM的詳細資訊,請訪問:
採用Supervisor引擎2T ELAM的Catalyst 6500系列交換機過程
在本例中,這是有效的ELAM配置。(當資料包源自CPU時,在觸發器中使用「shim」關鍵字;對於傳輸流量,不使用此關鍵字):
6880#show platform capture elam asic eureka slot 5 6880#show platform capture elam trigger master eu50 dbus dbi ingress shim ipv4 if ip_sa = 10.0.0.1 ip_da=10.0.0.2 6880#sh platform capture elam start 6880#sh platform capture elam status ELAM Mode: local ID# Role ASIC Slot Inst Ver ELAM Status ----- ---- ------- ---- ---- --- --------- ------ eu50 M EUREKA 5 0 1.3 DBI_ING Capture Completed eu50 s EUREKA 5 0 1.3 RBI_PB1 Capture Completed ID# ELAM Trigger ----- --------- ---------- eu50 DBI_ING FORMAT=OTHERS SHIM_ETYPE=E8_SHIM_ETYPE ETYPE=IPV4_ETYPE IP_SA = 10.0.0.1 IP_DA=10.0.0.2 eu50 RBI_PB1 TRIG=1
以下是擷取的結果:
6880#show platform capture elam data | in IP_SA|IP_DA|SMAC|DMAC|SRC_INDEX|DEST_INDEX|data DBUS data: SRC_INDEX ....................... [19] = 0x380 [Switch/Router,Po255[Te2/5/1,Te2/5/5,Te2/5/6]] DEST_INDEX ...................... [19] = 0x0 [Te1/1/1] DMAC ............................ = 0000.0000.0002 SMAC ............................ = 0000.0000.0001 IP_SA ........................... = 10.0.0.1 IP_DA ........................... = 10.0.0.2 IP_DATA [224] RBUS data: DEST_INDEX ...................... [19] = 0x2000 [Po101[Te1/5/13,Te2/5/13],Gi101/1/0/1]
從CPU收到資料包(DBUS SRC_INDEX的交換機/路由器條目),轉發決策是透過Po101(連線控制器與FEX的埠通道)傳送資料包,然後透過FEX101上的介面Gi1/0/1傳送。
在此例中使用的VIF識別符號可以透過命令進行檢查,其中LTL值取自RBUS的DEST_INDEX欄位:
6880#test platform software switch virtual vntag_mgr vif-map ltl 0x2000 detail VIF INFO: VIF# 1 Type UNICAST VIF LTL# 2000 OperStatus # 2
因為控制器上的輸出介面是port-channel,所以可以執行這些命令來確定使用的是哪個物理鏈路。
6880#show etherchannel load-balance EtherChannel Load-Balancing Configuration: src-dst-ip enhanced mpls label-ip EtherChannel Load-Balancing Mode on FEX Modules: src-dst-ip EtherChannel Load-Balancing Addresses Used Per-Protocol: Non-IP: Source XOR Destination MAC address IPv4: Source XOR Destination IP address IPv6: Source XOR Destination IP address MPLS: Label or IP ! 6880#test etherchannel load-balance interface po101 ip 10.0.0.1 10.0.0.2 Computed RBH: 0x3 Would select Te1/5/13 of Po101
對於從控制器收到資料包並要傳送到FEX主機介面的情況,對FEX進行故障排除的方法與第2部分中介紹的方法相同。提到的唯一差異與2.1.3 -資料包重定向到FEX CPU有關。
有關此方法的詳細說明,請參考2.1.3節。
在本例中,為了捕獲從控制器接收的資料包,此配置在FEX上完成(如果介面最初被正確辨識,則將ACL附加到單個介面,如第3.1.2點所述)。
6880#attach fex 101 Attach FEX:101 ip:192.168.1.101 Trying 192.168.1.101 ... Open User Access Verification Password: cisco FEX-101>en Password: cisco FEX-101#conf t Enter configuration commands, one per line. End with CNTL/Z. FEX-101(config)#access-list 100 permit ip host 10.0.0.1 host 10.0.0.2 log FEX-101(config)#access-list 100 permit ip any any FEX-101(config)#int te1/0/1 FEX-101(config-if)#ip access-group 100 in FEX-101(config-if)#int te1/0/2 FEX-101(config-if)#ip access-group 100 in FEX-101#debug platform cpu-queues logging-q debug platform cpu-queue logging-q debugging is on
注意:如果存在即時接入交換機堆疊,那麼在擁有到控制器的上行鏈路的交換機上運行調試。透過運行命令「session where switch-no recording to switch number(session)」,登入到堆疊中的另一台交換機(例如,介面gi2/0/1,switch-no為2,介面5/0/11,switch-no為5,等等)。
當來自控制器的資料包成功傳送到FEX時,系統日誌中生成以下資訊:
Pak recvd on LOGGING-Q: Local Port Fwding L3If: L2If:TenGigabitEthernet1/0/1 DI:0x1F2A, LT:0, Vlan:10 SrcGPN:456, SrcGID:456, ACLLogIdx:0x1, MacDA:0000.0000.0002, MacSA: 0000.0000.0001 Non (IPv4/IPv6/ARP/RARP) TPFFD:F38001C8_000A400A_01A00080-00011F2A_F5F50000_00002BFD Jun 7 15:37:24.482: Raw FEX packet Dump: Jun 7 15:37:24.482: 00 00 00 00 00 02 00 00 00 00 Jun 7 15:37:24.482: 00 01 89 26 80 01 0B FD 81 00 Jun 7 15:37:24.482: 00 0A 08 00 45 00 00 64 76 87 Jun 7 15:37:24.482: 00 00 FF 01 31 0F 0A 00 00 01 Jun 7 15:37:24.482: 0A 00 00 02 08 00 A9 FF 00 12
12位(與其對應的十六進位制值在即時接入白皮書中參照VNTAG資料包格式)對應到資料包自身中傳遞的目標VIF值。此值(更改為小數)與FEX上的退出點進一步互動參照。
此命令用於確定退出點:這將考慮單播VIF(請參閱第2.2.3點中有關VNTAG管理器的說明)。
FEX-101#sh platform fex ucast-entries vif sw_idb portname GPN handle res_index ==== ========== ====================== ==== ========= ========= 1 0x5CAC278 GigabitEthernet1/0/1 1 0x5 0x30F0000 2 0x5CAE2E0 GigabitEthernet1/0/2 2 0x6 0x30F0000
(...)
對於組播流量,邏輯:
1)確定特定組播VIF的出口介面集。
FEX-101#sh platform fex mcast-entries (...) Entry : 2 ================= Mcast VIF = 3072 : destid = 0x23DF : handle = 0x37 : result_index = 0x4D DestId 23DF details with GPN list index next flags cmi #GPN GPN 0x23DF 0xFFFF 0x00 0x0000 3 1 2 464 (...)
在本例中,對於VIF=3072,選擇了三(3)個具有內部GPN編號的出口介面:1、2和464。 為了將這些內部GPN埠號轉換為物理介面,可以使用以下命令:
FEX-101#show platform pm if-numbers interface gid gpn lpn port slot unit slun port-type lpn-idb gpn-idb ---------------------------------------------------------------------- Gi1/0/1 1 1 1 0/2 1 1 1 local Yes Yes Gi1/0/2 2 2 2 0/1 1 2 2 local Yes Yes (...) Po2 464 464 0 16/0 9 2 2 local No No
這些輸出意味著組播目標VIF等於3072接收的資料包被轉發到介面:Gi1/0/1、Gi1/0/2和Port-channel 2。
如果存在與fex相關的任何問題,這些命令輸出將收集並在打開TAC案例時增加到:
6880#show tech-support 6880#show tech-support fex infra 6880#attach fex <fex-id> Password: cisco FEX-101>en Password: cisco FEX-101#show tech-support
修訂 | 發佈日期 | 意見 |
---|---|---|
1.0 |
12-May-2022 |
初始版本 |