目录

简介

一、背景情况

2.排除数据包流故障（FEX ->控制器）

2.1. FEX

2.1.1.接口计数器

2.1.2.数据包捕获

2.1.3.数据包重定向到FEX CPU。

2.2.控制器

2.2.1. MAC地址表

2.2.2.数据包捕获

2.2.3.拉丁美洲

排除数据包流故障（控制器 — > FEX）

3.1.控制器

3.1.1.数据包捕获

3.1.2.拉丁美洲

3.2. FEX

3.2.1.数据包重定向到FEX CPU。

4.总结

简介

本文档介绍如何对Catalyst 6500/6880系列即时接入网络中的数据包转发进行故障排除。

一、背景情况

建议用户完全了解基于即时接入网络的设计、VNTAG格式和数据包转发逻辑。

有关Catalyst 6500/6880即时接入的即时接入架构的其他信息，请访问：

Cisco Catalyst即时接入解决方案白皮书

对此拓扑进行了所有进一步分析：

警告：此处介绍的步骤仅在实验室设置中运行或在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>

2.排除数据包流故障（FEX ->控制器）

在本节中，数据包从即时接入/FEX（交换矩阵扩展器）接口(连接到Gi1/0/1的主机)流到Cisco Catalyst 6500/6880系列控制器，其中描述了最终数据包转发决策。

2.1. FEX

要确定FEX入口接口(Gi1/0/1)上是否收到数据包，可以使用以下方法：

2.1.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学习仅在控制器上进行。

2.1.2.数据包捕获

如果需要捕获来自FEX的数据包以进一步排除故障，可以直接在FEX上配置SPAN会话（以便在FEX上执行数据包复制）。 主要要求是SPAN目的地与SPAN源连接到同一FEX:

6880#attach fex 101

Attach FEX:101 ip:192.1.1.101

Trying 192.1.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.1.3.数据包重定向到FEX CPU。

第2点中介绍的SPAN的替代方法是将数据包重定向到FEX CPU。使用log语句创建ACL，并将其附加到入口接口(在我们的场景中：Gi1/0/1)并运行调试以捕获这些数据包。这还允许收集有关FEX上数据包转发决策的其他详细信息。

注意：此调试可能导致控制器交换机上出现高CPU情况，以防有大量数据包。

注意：如果存在一堆即时接入交换机，则需要在受监控端口的本地交换机上运行调试。通过运行命令“session <switch-no>”登录堆叠中的另一台交换机，其中switch-no对应于交换机编号(例如，对于接口gi2/0/1,switch-no为2;对于接口5/0/11,switch-no为5，依此类推)。

6880#attach fex 101

Attach FEX:101 ip:192.1.1.101

Trying 192.1.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

要确定从port-channel到控制器使用哪个端口（其编号通过运行命令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。要确定此值，请遵循以下方法(将VIF+1用于接口Gi1/0/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.2.控制器

当数据包到达控制器时，入口转发引擎会进一步处理该数据包，该引擎会进一步决定需要如何处理该数据包。

例如，根据第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上接收，因此可以执行以下检查：

2.2.1. MAC地址表

当在控制器上接收数据包时，会发生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.2.2.数据包捕获

如第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

2.2.3.拉丁美洲

在Catalyst 6500/6880系列上，内置了内置的内部数据包捕获功能，可进一步洞察控制器在数据包上做出的数据包转发决策。

注意：有关ELAM（适用于6500/SUP2T和6880）的详细信息，请访问：

带管理引擎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

当数据包从主机发送并到达入口转发引擎时（在本例中，机箱2上为eu50），捕获会触发，我们会获取数据和冒号；

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&colon;

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&colon;

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

排除数据包流故障（控制器 — > FEX）

本节介绍从控制器Cisco Catalyst 6500/6880系列入口转发引擎到即时接入/FEX（交换矩阵扩展器）接口的数据包流。

3.1.控制器

3.1.1.数据包捕获

要确定Catalyst 6500/6880交换机是否成功接收了数据包，请使用标准方法排除独立/VSS交换机故障。这些方法包括数据包捕获（SPAN会话等）。 有关这些工具的详细信息，请访问：

SPAN、RSPAN和ERSPAN

3.1.2.拉丁美洲

为了确定转发数据包的决定是否使用有效的VIF标识符将其发送到FEX，在控制器上为入口转发引擎（即，处理接收数据包的接口的转发引擎）执行数据包捕获。

注意：有关ELAM（适用于6500/SUP2T和6880）的详细信息，请访问：

带管理引擎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&colon;

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&colon;

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

3.2. FEX

对于从控制器接收数据包并发送到FEX主机接口的场景，对FEX进行故障排除的方法与第2节中介绍的方法相符。所提到的唯一区别与2.1.3 — 数据包重定向到FEX CPU有关。

3.2.1.数据包重定向到FEX CPU。

有关此方法的详细说明，请参阅第2.1.3节。

在本示例中，要捕获从控制器接收的数据包，此配置在FEX上完成（如果接口首先正确标识，如第3.1.2点所述，ACL将连接到单个接口）。

6880#attach fex 101

Attach FEX:101 ip:192.1.1.101

Trying 192.1.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 <switch-no>”登录堆叠中的另一台交换机，其中switch-no对应于交换机编号(例如，对于接口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

这些输出意味着，使用等于3072的组播目标VIF接收的数据包会转发到接口：Gi1/0/1、Gi1/0/2和Port-channel 2。

4.总结

如果与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