本產品的文件集力求使用無偏見用語。針對本文件集的目的,無偏見係定義為未根據年齡、身心障礙、性別、種族身分、民族身分、性別傾向、社會經濟地位及交織性表示歧視的用語。由於本產品軟體使用者介面中硬式編碼的語言、根據 RFP 文件使用的語言,或引用第三方產品的語言,因此本文件中可能會出現例外狀況。深入瞭解思科如何使用包容性用語。
思科已使用電腦和人工技術翻譯本文件,讓全世界的使用者能夠以自己的語言理解支援內容。請注意,即使是最佳機器翻譯,也不如專業譯者翻譯的內容準確。Cisco Systems, Inc. 對這些翻譯的準確度概不負責,並建議一律查看原始英文文件(提供連結)。
本文說明如何對Catalyst 6500/6880系列即時存取網路中的封包轉送進行疑難排解。
建議使用者充分瞭解基於Instant Access的網路設計、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登入到堆疊中的另一台交換機,其中交換機no與交換機編號相對應(例如,對於介面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 (...)
有關此功能的詳細資訊,請參閱:Mini-protocol analyzer
在Catalyst 6500/6880系列上,內建內部封包擷取,可進一步深入瞭解控制器對封包所做的封包轉送決定。
註:有關對6500/SUP2T以及6880有效的ELAM的詳細資訊,請參閱:帶Supervisor Engine 2T ELAM的Catalyst 6500系列交換機
當捕獲資料包時,確定資料包的來源(即,如果它正確指向基於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),將觸發捕獲並獲取資料個數(&C);
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]
根據擷取輸出,具有MAC/IP位址(如圖所示)的封包已在FEX的Gi101/1/0/1(DBUS SRC_INDEX欄位)上接收,並透過控制器上設定的Po101傳遞至控制器。決定將此資料包轉發到VSS CPU(RBUS DEST_INDEX欄位)。
註:在VIF和源索引之間對映的內容由VNTAG管理器完成,可以檢查(在這種情況下,從FEX上的埠Gi1/0/1傳遞單播幀時使用VIF=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 Engine 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上完成(如果介面最初正確識別時(如點3.1.2所述),ACL會附加到單一介面)。
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登入到堆疊中的另一台交換機,其中交換機no與交換機編號相對應(例如,對於介面gi2/0/1,交換機no為2,對於介面5/0/11,交換機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位(與其相應的十六進位制值一起,請參閱Instant Access白皮書中的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案例時收集這些命令輸出並將其新增到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 |
初始版本 |