分享是一种生活态度,求知,求真,分享工作,分享生活!

COPP保护引起的Nexus 7000规律ping丢包

Cisco iqianyue 2946次浏览 0个评论 扫描二维码

n7k

问题描述

用户网络中,经常使用 ping 命令测试设备连通性。在 ping Nexus 7000 设备时,会出现规律性丢包。

使用大包 ping 测试,可以使此现象更明显地重现。

故障诊断步骤

首先,我们需要了解此类 ping 测试数据包是如何在 Nexus 设备上被处理的。Nexus 设备处理数据包分为软件处理和硬件处理。绝大部分数据流量都是通过硬件处理快速转发的。但是一些特殊流量是需要交由软件处理的。包括以下种类的数据包(并不局限于以下类型):

  1. 数据包目的地为设备本地的数据流量,会交由软件处理。
    1. 控制层面流量,包括 STP,CDP,VTP 和 HSRP 等等。
    2. 路由协议流量,包括 RIP,EIGRP,OSPF 和 BGP 等等。
    3. SNMP 管理流量。
    4. Telnet,SSH到本地的流量。
    5. ARP 流量。
  2. 需要特殊进程处理的数据包流量,会交由软件处理。
    1. 包涵特殊 IP option 的数据包,TTL 超时的数据包和非 ARPA 封装的数据包。
    2. 需特殊处理的数据包,例如tunneling。
    3. 分片数据包。
    4. 从 Route processor 或者 Switch processor 发出的,包涵 ICMP 消息的数据包。
    5. MTU 检测失败的数据包。
    6. 包涵 IP 错误的数据包。例如,IP checksum 和 length 错误。

根据此策略,目的地址为对端接口地址的 ping 测试流量会被 Nexus 7000 软件处理。软件处理意味着数据包会被送到设备 CPU,由 CPU 处理和转发。所以无论在 N7K-1,还是 N7K-2 上,ping 流量都是由 CPU 处理转发的。

在了解了 Nexus 处理数据包的行为后,我们开始对此故障进行排查。

我们通过抓包软件,对链路进行抓包,发现数据包已经从 N7K-1 上发出,N7K-2 也已经收到。

据此判断,N7K-2 收到数据包后,由于某种原因,数据包被丢弃。

根据 Nexus 配置文档,Nexus 设备默认配置 CoPP 特性,对设备 CPU 进行保护。于是,我们通过命令检查 N7K-2 上 CoPP 的状态。

通过命令,我们可以很清晰的发现数据包有部分被丢弃了。

解决办法:

  1. 调整 CoPP 参数,保证正常的用户需求流量不被丢弃。
  2. 移除 CoPP。

经验总结

CoPP 功能在 Nexus 设备上是默认开启的,并且会有默认的限制参数设置。主要功能是保护设备 CPU 运行和对正常控制流量的处理。用户配置时,可以结合自身网络需求,对 CoPP 参数进行调整。

官方解释

CoPP is a hardware-based feature that protects the Supervisor from DoS attacks. It controls the rate at which packets are allowed to reach the Supervisor. The CoPP feature is modeled like an input QoS policy attached to the special interface called the control-plane. However, CoPP is a security feature and not part of QoS. In order to protect the Supervisor, the CoPP separates data plane packets from the control plane packets (Exception Logic). It identifies DoS attack packets from valid packets (Classification).

相关命令


iqianyue , 版权所有丨如未注明 , 均为原创,转载请注明iqianyue
喜欢 (2)
[]
分享 (0)
发表我的评论
取消评论

表情 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址