此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
本文档介绍如何对Catalyst 6500/6880系列即时接入网络中的数据包转发进行故障排除。
建议用户充分了解基于即时接入网络的设计、VN-Tag格式和数据包转发逻辑。
有关Catalyst 6500/6880即时接入的即时接入架构的其他信息,请访问:
Cisco Catalyst Instant Access解决方案白皮书
已对此拓扑进行了所有进一步的分析:
警告:此处介绍的步骤仅在实验室设置中或在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>
在本节中,数据包从Instant Access/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。使用日志语句创建ACL并将其附加到入口接口(在本场景中:Gi1/0/1),然后运行debug命令捕获这些数据包。 这也允许收集有关FEX上数据包转发决策的其他详细信息。
注意:此调试还会在控制器交换机上造成高CPU使用率情况,以防出现大量数据包。
注意:如果存在即时接入交换机堆叠,则需要在受监控端口的本地交换机上运行调试。通过运行命令'session where switch-no与交换机编号对应(例如,接口gi2/0/1的交换机编号是2;接口5/0/11的交换机编号是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
发送到控制器的数据包已添加反映入口接口的VN-Tag。要确定此值,请遵循以下方法(对接口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地址(这仅显示来自活动管理引擎的一个示例):
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系列交换机步骤
当捕获数据包时,确定数据包的来源(即,如果它正确指向FEX接口,则基于VIF映射完成)和转发数据包的位置。
在本示例中,备用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]
根据捕获输出,FEX的Gi101/1/0/1(DBUS SRC_INDEX字段)上已接收到具有MAC/IP地址(如图所示)的数据包,并已通过控制器上配置的Po101传递到控制器。决定将此数据包转发到VSS CPU(RBUS DEST_INDEX字段)。
注意:VIF和源索引之间的映射由VN-Tag管理器完成,并且可以检查(在这种情况下,当它从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 where switch-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位(及其相应的十六进制值,请参阅即时接入白皮书中的VN-Tag数据包格式)对应数据包中传递的目标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 |
初始版本 |