简介
本文档介绍在Nexus 7000系列交换机上将交换矩阵扩展器(FEX)与M1父卡配合使用时,如何对因光分布箱(LDB)分配失败而挂起的VLAN进行故障排除。
先决条件
要求
本文档没有任何特定的要求。
使用的组件
本文档中的信息基于以下软件和硬件版本:
- 思科NX-OS版本6.2(x)
- Cisco Nexus 7000系列交换机
- Cisco Nexus 2000系列交换矩阵扩展器
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
背景信息
LDB是一个硬件表,存储转发引擎接收的帧的属性,包括FEX端口通道的中继到VLAN映射。LDB分配失败表示此数据库已用尽。
当FEX模块连接到N7K-M132XP-12(非XL)时,LDB条目的最大数量约为228k。对于XL模块,限制约为512K。
LDB条目总数是每个FEX HIF上定义的VLAN范围之和(HIF上定义的最高VLAN和最低VLAN之间的差异)。
例如:
switchport trunk allowed vlan 1-4 = 4个LDB条目
switchport trunk allowed vlan 1-4、70-80、800 = 800 LDB条目
switchport trunk allowed vlan 200-800 = 600 LDB条目
switchport trunk allowed vlan 200, 800 = 600 LDB条目
如果端口101/1/1到101/1/10配置了switchport trunk allowed vlan 200和800,则使用的LDB条目总数为6000(10x600)。
接入端口使用1个LDB条目(在HIF上定义的接入VLAN)。
使用以下命令检查每个模块的LDB条目:
N7K-A# attach mod 1
Attaching to module 1 ...
To exit type 'exit', to abort type '$.'
module-1#
module-1# show system internal eltmc info ldb summary
LDB allocation summary:
Max dynamic ldb entries: 203776
Total number of entries: 199680
Number of free entries: 197
Number of free regions: 2
Number of allocated entries: 199483
Number of allocated regions: 280
Number of fail allocations: 21
[an error occurred while processing this directive]
在本示例中,有21个LDB分配失败。由于散列机制用于将特定条目散列到数据库的特定部分,因此不需要总条目数达到最大动态LDB条目数来查看失败的分配。
此输出显示每个端口通道或接口使用的LDB条目数(十六进制):
module-1# show system internal eltmc info ldb all
LDB allocation maps :
base size allocation
0xd400 0x1000 Shared
0xe400 0x1000 Shared
0xf400 0x1000 Shared
0x10400 0x1000 Ethernet1/4
0x11400 0x1000 Ethernet1/7
0x12400 0x1 Ethernet179/1/30
0x12401 0x1 port-channel1093
0x12402 0x1 port-channel1564
0x12403 0x1 port-channel1550
0x12404 0x1 port-channel1527
0x12405 0x1 port-channel1546
0x12426 0x1 Ethernet169/1/47
0x12427 0x1 Ethernet169/1/48
0x12428 0x1 Ethernet181/1/33
0x12429 0x1 Ethernet181/1/34
0x1242a 0x1 Ethernet163/1/4
0x1242b 0x1 Ethernet163/1/5
0x1242c 0x506 Ethernet183/1/7
0x12932 0x1 port-channel1096
0x12933 0x1 port-channel1095
0x12934 0x1 port-channel1092
0x12935 0x2c8 port-channel1084
0x12bfd 0x506 Ethernet183/1/8
0x13103 0x2c8 port-channel1086
0x133cb 0x1 port-channel1589
0x133cc 0x1 port-channel1063
0x133cd 0x1 port-channel1654
0x133ce 0x1 port-channel1652
0x133d4 0x1 port-channel1520
0x133d5 0x1 port-channel1560
0x133d6 0x1 port-channel1561
0x133d7 0x506 Ethernet167/1/4
0x138dd 0x506 Ethernet167/1/2
0x13de3 0x403 Ethernet165/1/2
0x141e6 0x403 Ethernet151/1/1
<snip>
[an error occurred while processing this directive]
注意:以上两个命令为NX-OS 6.0.3和5.2.4中的N7K-M132XP-12(非XL)提供了不正确的LDB值。
NX-OS 5.2.5和6.1将更正此问题。
问题:VLAN进入挂起状态,因为连接了Nexus 2000交换矩阵扩展器的Nexus 7000上的LDB分配失败。
症状:
1.日志中的错误消息指示LDB分配失败
2015 Feb 3 00:01:27.260 N7k1 %ETHPORT-5-IF_SEQ_ERROR: Error ("LDB Allocation Failed") communicating with MTS_SAP_ELTM for opcode MTS_OPC_ETHPM_PORT_LOGICAL_BRINGUP (RID_PORT: port-channel1001)
2015 Feb 3 00:01:27.261 N7k1 %ETHPORT-3-IF_ERROR_VLANS_SUSPENDED: VLANs 268,1261-1262,1268 on Interface port-channel1001 are being suspended. (Reason: LDB Allocation Failed)
[an error occurred while processing this directive]
2.与连接到FEX的多台主机的连接丢失
3. show interface status err-vlans的输出显示VLAN因LDB分配失败而挂起
N7kA# show interface status err-vlans
--------------------------------------------------------------------------------
Port Name Err-Vlans Status
--------------------------------------------------------------------------------
Po1001 ***dcn2pclx01a** 268,1261-1262,1268 LDB Allocation
*LOG Failed
[an error occurred while processing this directive]
解决方案
这是与线卡相关的硬件限制,因为软件升级无法解决此问题。
建议从HIF修剪VLAN或减少FEX HIF上的VLAN范围,以减少LDB条目的总数。
每个接口上的每个VLAN实例将消耗LDB条目(例如,如果端口通道1定义了100个VLAN,端口通道中定义了4个物理端口,则消耗的LDB条目总数将为400个,每个端口100个实例)。