简介
本文档介绍每种故障类型以及您看到此故障时的步骤。在思科以应用为中心的基础设施(ACI)交换矩阵的正常运行期间,管理员可能会看到某些类型的丢包故障。
托管对象
在思科ACI中,所有故障都在托管对象(MO)下产生。 例如,故障“F11245 - ingress drop packets rate(l2IngrPktsAg15min:dropRate)”与MO l2IngrPktsAg15min中的参数dropRate有关。
本节介绍一些与丢包故障相关的受管对象(MO)示例。
|
示例 |
描述 |
示例参数 |
MO示例 引发哪些故障 |
l2IngrPkts |
l2IngrPkts5min l2IngrPkts15min l2IngrPkts1h 等…… |
这表示每个VLAN在每个时间段内的入口数据包统计信息 |
dropRate floodRate multicastRate 单播速率 |
vlanCktEp(VLAN) |
l2IngrPktsAg |
l2IngrPktsAg15min l2IngrPktsAg1h l2IngrPktsAg1d 等…… |
这表示每个EPG、BD、VRF等的入口数据包统计信息。 例如) EPG统计信息表示属于EPG的VLAN统计信息的聚合 |
dropRate floodRate multicastRate 单播速率 |
fvAEPg(EPG) fvAp(应用配置文件) fvBD(BD) l3extOut(L3OUT) |
eqptIngrDropPkts |
eqptIngrDropPkts15min eqptIngrDropPkts1h eqptIngrDropPkts1d 等…… |
这表示每个时间段内每个接口的入口丢包统计信息 |
*1转发速率 *1错误率 *1 bufferRate
|
l1PhysIf(物理端口) pcAggrIf(端口通道) |
*1:由于多个Nexus 9000平台的ASIC限制,eqptIngrDropPkts中的这些计数器可能会被错误地引起,因为SUP_REDIRECT数据包被记录为转发丢弃。另请参阅CSCvo68407
和CSCvn72699
了解更多详细信息和固定版本。
硬件丢弃计数器类型
在以ACI模式运行的Nexus 9000交换机上,ASIC上有3个主要硬件计数器,用于指示入口接口丢弃原因。
l2IngrPkts、l2IngrPktsAg中的dropRate包括这些计数器。上表中eqptIngrDropPkts的三个参数(forwardingRate、errorRate、bufferRate)代表每三个接口计数器。
转发
转发丢弃,是在ASIC的LookUp块(LU)上丢弃的数据包。在LU块中,根据分组报头信息做出分组转发决策。如果决定丢弃数据包,则会计入转发丢弃。这种情况可能发生有多种原因,但我们来谈谈主要原因:
SECURITY_GROUP_DENY
由于缺少允许通信的合同而丢弃。
当数据包进入交换矩阵时,交换机会查看源EPG和目的EPG,看是否有允许此通信的合同。 如果源和目标位于不同的EPG中,并且它们之间没有允许此数据包类型的合同,则交换机将丢弃该数据包并将其标记为SECURITY_GROUP_DENY。这会增加转发丢弃计数器。
VLAN_XLATE_MISS
因VLAN不当而丢弃。
当数据包进入交换矩阵时,交换机会查看数据包,以确定端口上的配置是否允许此数据包。 例如,帧进入带802.1Q标记10的交换矩阵。如果交换机在端口上有VLAN 10,它将检查内容并根据目标MAC做出转发决策。但是,如果VLAN 10不在端口上,则会丢弃该帧并将其标记为VLAN_XLATE_MISS。将递增转发丢弃计数器。
“XLATE”或“转换”的原因是,在ACI中,枝叶交换机将采用带802.1Q封装的帧,并将其转换为新VLAN,用于VXLAN和交换矩阵内的其他规范化。 如果帧进入未部署的VLAN,“转换”将失败。
ACL_DROP
因sup-tcam而下降。
ACI交换机中的sup-tcam包含要应用于正常L2/L3转发决策之上的特殊规则。sup-tcam中的规则是内置的,不可由用户配置。sup-tcam规则的目标主要是处理某些异常或某些控制平面流量,而不打算由用户检查或监控。当数据包达到sup-tcam规则且规则为丢弃数据包时,丢弃的数据包被计为ACL_DROP,并且它将增加Forward Drop计数器。当出现这种情况时,通常意味着数据包即将根据基本ACI转发原则转发。
请注意,即使丢弃名称为ACL_DROP,此“ACL”也与可在独立NX-OS设备或任何其他路由/交换设备上配置的普通访问控制列表不同。
SUP_REDIRECT
这不是一滴。
即使数据包被正确处理并转发到CPU,也可将sup重定向的数据包(即CDP/LLDP/UDLD/BFD等)计为转发丢弃。
这可能仅在 — EX平台(如N9K-C93180YC-EX)中发生。这些不应计为“丢弃”,但是,这是由于 — EX平台中的ASIC限制。
Error
当交换机在其中一个前面板接口上收到无效帧时,该帧会作为错误丢弃。 这包括带有FCS或CRC错误的帧。查看上行链路/下行链路枝叶端口或主干端口时,最好使用“show interface”检查FCS/CRC错误。
但是,在正常操作下,预期会看到枝叶或主干端口的上行链路/下行链路端口上增加的错误数据包,因为此计数器还包括系统修剪的帧,且预期不会从接口发送出去的帧。
示例:路由数据包的TTL故障,相同的接口广播/泛洪帧。
缓冲区
当交换机收到帧,且入口或出口没有可用的缓冲区信用时,该帧将被丢弃为“缓冲区”。 这通常表明网络中某处出现拥塞。 显示故障的链路可能已满,或者包含目的地的链路可能拥塞。
在CLI中查看丢弃统计信息
托管对象
安全外壳(SSH)连接到其中一个APIC并运行以下命令。
apic1# moquery -c l2IngrPktsAg15min
这将提供此类l2IngrPktsAg15min的所有对象实例。
下面是一个包含过滤器的示例,用于查询特定对象。在本示例中,过滤器仅显示具有属性dn的对象,该属性包括“tn-TENANT1/ap-APP1/epg-EPG1”。
此外,本示例使用egrep仅显示所需属性。
输出1示例:租户TENANT1、应用配置文件APP1、epg EPG1的EPG计数器对象(l2IngrPktsAg15min)。
apic1# moquery -c l2IngrPktsAg15min -f 'l2.IngrPktsAg15min.dn*"tn-TENANT1/ap-APP1/epg-EPG1"' | egrep 'dn|drop[P,R]|rep'
dn : uni/tn-TENANT1/ap-APP1/epg-EPG1/CDl2IngrPktsAg15min
dropPer : 30 <--- number of drop packet in the current periodic interval (600sec)
dropRate : 0.050000 <--- drop packet rate = dropPer(30) / periodic interval(600s)
repIntvEnd : 2017-03-03T15:39:59.181-08:00 <--- periodic interval = repIntvEnd - repIntvStart
repIntvStart : 2017-03-03T15:29:58.016-08:00 = 15:39 - 15:29
= 10 min = 600 sec
或者,如果您知道对象dn,我们可以使用另一个选项 — d代替 — c来获取特定对象。
输出2示例:租户TENANT1、应用配置文件APP1、epg EPG2的EPG计数器对象(l2IngrPktsAg15min)。
apic1# moquery -d uni/tn-TENANT1/ap-APP1/epg-EPG2/CDl2IngrPktsAg15min | egrep 'dn|drop[P,R]|rep'
dn : uni/tn-jw1/BD-jw1/CDl2IngrPktsAg15min
dropPer : 30
dropRate : 0.050000
repIntvEnd : 2017-03-03T15:54:58.021-08:00
repIntvStart : 2017-03-03T15:44:58.020-08:00
硬件计数器
如果您看到故障,或想使用CLI检查交换机端口上的数据包丢弃,最好的方法是查看硬件中的平台计数器。大多数(但并非所有)计数器都使用show interface显示。 3个主要丢弃原因只能使用平台计数器查看。 要查看这些信息,请执行以下步骤:
枝叶
通过SSH连接到枝叶并运行这些命令。
ACI-LEAF# vsh_lc
module-1# show platform internal counters port <X>
*其中X代表端口号
以下1/31的输出示例:
ACI-LEAF# vsh_lc
vsh_lc
module-1#
module-1# show platform internal counters port 31
Stats for port 31
(note: forward drops includes sup redirected packets too)
IF LPort Input Output
Packets Bytes Packets Bytes
eth-1/31 31 Total 400719 286628225 2302918 463380330
Unicast 306610 269471065 453831 40294786
Multicast 0 0 1849091 423087288
Flood 56783 8427482 0 0
Total Drops 37327 0
Buffer 0 0
Error 0 0
Forward 37327
LB 0
AFD RED 0
----- snip -----
主干
对于盒型主干(N9K-C9336PQ),它与枝叶完全相同。
对于模块化主干(N9K-C9504等),必须先连接特定线卡,然后才能查看平台计数器。 通过SSH连接到主干并运行这些命令
ACI-SPINE# vsh
ACI-SPINE#连接模块<X>
module-2# show platform internal counters port <Y>。
*其中X表示要查看的线卡的模块编号
Y表示端口号
以太网2/1的输出示例:
ACI-SPINE# vsh
Cisco iNX-OS Debug Shell
This shell should only be used for internal commands and exists
for legacy reasons. User should use ibash infrastructure as this
will be deprecated.
ACI-SPINE#
ACI-SPINE# attach module 2
Attaching to module 2 ...
To exit type 'exit', to abort type '$.'
Last login: Mon Feb 27 18:47:13 UTC 2017 from sup01-ins on pts/1
No directory, logging in with HOME=/
Bad terminal type: "xterm-256color". Will assume vt100.
module-2#
module-2# show platform internal counters port 1
Stats for port 1
(note: forward drops includes sup redirected packets too)
IF LPort Input Output
Packets Bytes Packets Bytes
eth-2/1 1 Total 85632884 32811563575 126611414 25868913406
Unicast 81449096 32273734109 104024872 23037696345
Multicast 3759719 487617769 22586542 2831217061
Flood 0 0 0 0
Total Drops 0 0
Buffer 0 0
Error 0 0
Forward 0
LB 0
AFD RED 0
----- snip -----
故障
F112425 — 入口丢弃数据包速率(l2IngrPktsAg15min:dropRate)
描述:
此故障的一个常见原因是第2层数据包因“转发丢弃”而被丢弃。原因有很多,但最常见的原因是:
在某些平台上(请参见CSCvo68407
),需要重定向到CPU的L2数据包(例如CDP/LLDP/UDLD/BFD等)将记录为“转发丢弃”并复制到CPU时存在限制。这是由于这些型号中使用的ASIC的限制。
解决方案:
上述滴液纯粹是化妆品,所以 最佳实践建议是增加故障的阈值,如“统计信息阈值”部分所示。 为此,请参阅统计阈值中的说明。
F100264 — 入口缓冲区丢弃数据包速率(eqptIngrDropPkts5min:bufferRate)
描述:
当数据包在端口上丢弃时,由于“缓冲区”原因,此故障可能会增加。如上所述,当接口在入口或出口方向出现拥塞时,通常会发生这种情况。
解决方案:
此故障表示由于拥塞而在环境中实际丢弃的数据包。 丢弃的数据包可能导致ACI交换矩阵中运行的应用出现问题。网络管理员应隔离数据包流,并确定拥塞是否由意外的流量、低效的负载均衡等引起;或这些端口的预期利用率。
F100696 — 入口转发丢弃数据包(eqptIngrDropPkts5min:forwardingRate)
注意:如上所述,F11245的ASIC限制也会导致这些故障。请参阅 CSCvo68407
以获取更多详细信息。
此故障是由几种情况引起的。最常见的一个是:
说明1)主干丢弃
如果在主干接口上发现此故障,则可能是由于流向未知终端的流量。
当ARP或IP数据包转发到主干以进行代理查找,并且交换矩阵中的终端未知时,将生成特殊的glean数据包,并将其发送到相应BD(内部)组播组地址上的所有枝叶。这将触发网桥域(BD)中每个枝叶的ARP请求以发现终端。 由于限制,枝叶接收的glean数据包也会再次反映回交换矩阵,并在连接到枝叶的主干链路上触发转发丢弃。此场景中的转发丢弃仅在第1代主干硬件上递增。
决议1)
由于已知问题是由向ACI交换矩阵发送不必要数量的未知单播流量的设备引起的,因此需要找出导致此问题的设备,并查看其是否可以阻止。这通常是由扫描或探测子网上IP地址以用于监控目的的设备引起的。 为了查找发送此流量的IP,请将SSH连接到枝叶,枝叶连接到显示故障的主干接口。
从那里,您可以运行以下命令来查看触发glean数据包的源IP地址(sip):
ACI-LEAF# show ip arp internal event-history event | grep glean | grep sip | more
[116] TID 11304:arp_handle_inband_glean:3035: log_collect_arp_glean;sip = 192.168.21.150;dip = 192.168.20.100;info = Received glean packet is an IP packet
[116] TID 11304:arp_handle_inband_glean:3035: log_collect_arp_glean;sip = 192.168.21.150;dip = 192.168.20.100;info = Received glean packet is an IP packet
在本示例输出中,glean数据包由192.168.21.150触发,建议查看是否可以缓解此问题。
说明2)枝叶丢弃
如果在枝叶接口上发现此故障,最可能的原因是提到的SECURITY_GROUP_DENY丢弃。
决议2)
ACI枝叶会保留因违反合同而被拒绝的数据包日志。此日志不会捕获所有数据包以保护CPU资源,但它仍会为您提供大量日志。
要获取所需日志,如果发生故障的接口是端口通道的一部分,则需要使用此命令并为端口通道使用grep。否则,物理接口可以损坏。
根据合同丢包的数量,此日志可以快速滚动。
ACI-LEAF# show logging ip access-list internal packet-log deny | grep port-channel2 | more
[ Sun Feb 19 14:16:12 2017 503637 usecs]: CName: jr:sb(VXLAN: 2129921), VlanType: FD_VLAN, Vlan-Id: 59, SMac: 0x8c604f0288fc, DMac:0x0022bdf819ff, SIP: 192.168.21.150, DIP: 192.168.20.3, SPort: 0, DPort: 0, Src Intf: port-channel2, Pr
oto: 1, PktLen: 98
[ Sun Feb 19 14:16:12 2017 502547 usecs]: CName: jr:sb(VXLAN: 2129921), VlanType: FD_VLAN, Vlan-Id: 59, SMac: 0x8c604f0288fc, DMac:0x0022bdf819ff, SIP: 192.168.21.150, DIP: 192.168.20.3, SPort: 0, DPort: 0, Src Intf: port-channel2, Pr
oto: 1, PktLen: 98
在本例中,192.168.21.150尝试将ICMP消息(IP协议编号1)发送到192.168.20.3。但是,两个EPG之间没有允许ICMP的合同,因此数据包会被丢弃。 如果应允许ICMP,则可以在两个EPG之间添加合同。
统计阈值
本节介绍如何更改统计信息对象的阈值,这些对象可能会针对丢弃计数器引发故障。
每个对象(即l2IngrPkts、eqptIngrDropPkts)统计信息的阈值通过监控策略针对各种对象进行配置。
如开头的表中所述,eqptIngrDropPkts在下监控,例如l1PhysIf对象通过监控策略。
eqptIngrDropPkts中的转发丢包率
这有两个部分。
+访问策略(指向外部设备的端口)。即前面板端口)
+交换矩阵策略(枝叶和主干之间的端口,即交换矩阵端口)

如上图所示,每个端口对象(l1PhysIf、pcAggrIf)都可通过接口策略组分配自己的监控策略。
默认情况下,在APIC GUI中,交换矩阵>访问策略和交换矩阵>交换矩阵策略下都有默认的监控策略。这些默认监控策略分别分配给所有端口。访问策略(Access Policies)下的默认监控策略(Monitoring Policy)用于前面板端口(Front Panel Ports),而交换矩阵策略(Fabric Policies)下的默认监控策略(Monitoring Policy)用于交换矩阵端口(Fabric Ports)。
除非需要更改每个端口的阈值,否则可以直接修改每个部分中的默认监控策略,以便对所有前面板端口和/或交换矩阵端口应用更改。
以下示例将更改交换矩阵端口(交换矩阵策略)上eqptIngrDropPkts中转发丢弃的阈值。 请在“交换矩阵”>“前面板端口访问策略”下执行相同的操作。
1.导航至“交换矩阵”>“交换矩阵策略”>“监控策略”。
2.右键单击并选择“创建监控策略”。
(如果阈值更改可应用于所有交换矩阵端口,请导航至默认值,而不是创建新的端口)
3.展开新的监控策略或默认策略,并导航至统计收集策略。
4.单击右窗格中Monitoring Object的铅笔图标,选择Layer 1 Physical Interface Configuration(l1.PhysIf)。
(使用默认策略时可跳过此步骤4)
5.从右侧窗格的Monitoring Object下拉列表中,选择Layer 1 Physical Interface Configuration(l1.PhysIf)和Stats Type,选择Ingress Drop Packets

6.单击“配置阈值”旁边的+

7.编辑转发丢弃的阈值

8.建议禁用上升阈值以配置关键、主要、次要和警告转发丢包率。

9.将此新监控策略应用到接口策略组以获取所需端口。请不要忘记在交换矩阵策略中相应地配置接口配置文件、交换机配置文件等。
(使用默认策略时,可跳过此步骤9)

10.如果这是针对前面板端口(访问策略),请对聚合接口(pc.AggrIf)执行与第1层物理接口配置(l1.PhysIf)相同的操作,以便此新的监控策略可应用于端口通道和物理端口。
(使用默认策略时可跳过此步骤10)
l2IngrPktsAg中的入口丢弃数据包速率
这有多个部分。

如上图所示,l2IngrPktsAg在许多对象下受到监控。上图仅显示l2IngrPktsAg的一些示例,但不显示所有对象。但是,统计信息的阈值是通过Monitoring Policy以及l1PhysIf或pcAggrIf下的eqptIngrDropPkts配置的。
每个对象(EPG(fvAEPg)、网桥域(fvBD)等……)都可以分配其自己的监控策略,如上图所示。
默认情况下,除非另有配置,否则租户下的所有这些对象都使用Tenant > common > Monitoring Policies > default下的默认监控策略。
除非需要更改每个组件的阈值,否则可以直接修改租户公用下的默认监控策略,以将更改应用于所有相关组件。
以下示例更改网桥域上l2IngrPktsAg15min中入口丢弃数据包速率的阈值。
1.导航至“租户”>(租户名称)>“监控策略”。
(如果使用默认监控策略或需要跨租户应用新的监控策略,则租户需要是通用的)
2.右键单击并选择“创建监控策略”。
(如果阈值更改可应用于所有组件,请导航至默认值,而不是创建新的组件)
3.展开新的监控策略或默认策略,并导航至统计收集策略。
4.单击右窗格中“监控对象”的铅笔图标,选择 网桥域(fv.BD)。
(使用默认策略时可跳过此步骤4)
5.从右侧窗格的“监控对象”下拉列表中,选择网桥域(fv.BD)和统计类型,选择聚合入口数据包。

6.单击“配置阈值”旁边的+

7.编辑转发丢弃的阈值

8.建议禁用上升阈值以配置关键、主要、次要和警告转发丢包率。

9.将此新监控策略应用到需要更改阈值的网桥域。
(使用默认策略时,可跳过此步骤9)

备注
非默认监控策略可能没有默认监控策略上的配置。如果需要将这些配置与默认监控策略保持相同,则用户需要检查默认监控策略配置并在非默认监控策略上手动配置相同的策略。