此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
本文档介绍有关Cisco Nexus交换机上的控制平面策略(CoPP)及其对非默认类违规的相关影响的详细信息。
思科建议您了解有关控制平面策略(CoPP)、其准则和限制以及一般配置的基本信息。以及服务质量(QoS)策略(CIR)功能。有关此功能的详细信息,请参阅适用的文档:
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
通过重定向访问控制列表(ACL)将控制平面流量重定向到管理引擎模块,该访问控制列表(ACL)被编程为传送经过两层保护(硬件速率限制器和CoPP)的匹配流量。如果未选中,任何对管理引擎模块的中断或攻击都可能导致严重的网络中断;因此,CoPP可以用作保护机制。如果控制平面级别存在不稳定,则检查CoPP非常重要,因为由环路或泛洪或欺诈设备产生的异常流量模式可能会对主管征税并阻止其处理合法流量。此类攻击通常涉及发往管理引擎模块或CPU的高流量率。
控制平面策略(CoPP)是保护控制平面的一种功能,它通过对带内(前面板)端口上接收的所有发往路由器地址或需要管理引擎参与的数据包进行分离和分类,并根据承诺的输入速率(CIR)对其进行策略管制。 此功能允许将策略映射应用到控制平面。此策略映射看起来像正常的服务质量(QoS)策略,并应用于从非管理端口进入交换机的所有流量。通过管制保护管理引擎模块,交换机可以通过丢弃数据包和防止交换机过载并影响性能,来缓解超出每个类承诺输入速率的流量泛洪。
持续监控CoPP计数器并证明它们很重要,这是本文档的目的。如果未选中CoPP违规,则可阻止控制平面处理相应受影响类上的正版流量。CoPP配置是一个不断发展且持续不断的过程,必须响应网络和基础设施要求。CoPP有三个默认系统策略。默认情况下,Cisco建议使用默认策略“strict”作为初始起点,并用作本文档的基础。
CoPP仅适用于通过前面板端口接收的带内流量。带外管理端口(mgmt0)不受CoPP限制。Cisco NX-OS设备硬件在每个转发引擎上执行CoPP。因此,请选择速率,这样聚合流量不会淹没管理引擎模块。这对行尾/模块化交换机尤其重要,因为CIR适用于所有模块CPU绑定流量的聚合流量。
本文档中介绍的组件适用于所有Cisco Nexus数据中心交换机。
本文档的重点是解决Nexus交换机上最常见和最严重的非默认类违规问题。
要了解如何解释CoPP,第一个验证必须是确保应用配置文件,并了解交换机上是否应用了默认配置文件或自定义配置文件。
注意:作为最佳实践,所有Nexus交换机必须启用CoPP。如果此功能未启用,则可能导致所有控制平面流量不稳定,因为不同平台可以限制Supervisor(SUP)绑定的流量。例如,如果Nexus 9000上未启用CoPP,则发往SUP的流量的速率限制为50 pps,因此交换机几乎无法运行。CoPP被视为Nexus 3000和Nexus 9000平台的一项要求。
如果CoPP未启用,可以通过运行“setup”命令或通过在配置选项下应用一个标准默认策略,在交换机上重新启用或配置它:copp配置文件[dense|insegtia|medate|strict]。
未受保护的设备无法将流量正确分类并分类到类,因此特定功能或协议的任何拒绝服务行为都不包含在该范围内,并且可能影响整个控制平面。
注意:CoPP策略通过三态内容可寻址存储器(TCAM)分类重定向实现,并可直接在“show system internal access-list input statistics module X | b CoPP”或“show hardware access-list input entries detail”。
N9K1# show copp status
Last Config Operation: None
Last Config Operation Timestamp: None
Last Config Operation Status: None
Policy-map attached to the control-plane: copp-system-p-policy-strict
copp-system-p-policy-strict is one of the system default profiles, in particular the strict profile.
N9K1# show running-config copp
!Command: show running-config copp
!Running configuration last done at: Tue Apr 26 16:34:10 2022
!Time: Sun May 1 16:30:57 2022
version 10.2(1) Bios:version 05.45
copp profile strict
CoPP根据与IP或MAC ACL对应的匹配项对流量进行分类,因此,了解哪类流量属于哪类流量非常重要。
与平台相关的类可能不同。因此,了解如何验证类非常重要。
例如,在Nexus 9000机架顶部(TOR)上:
N9K1# show policy-map interface control-plane
Control Plane
Service-policy input: copp-system-p-policy-strict
...
class-map copp-system-p-class-critical (match-any)
match access-group name copp-system-p-acl-bgp
match access-group name copp-system-p-acl-rip
match access-group name copp-system-p-acl-vpc
match access-group name copp-system-p-acl-bgp6
match access-group name copp-system-p-acl-ospf
match access-group name copp-system-p-acl-rip6
match access-group name copp-system-p-acl-eigrp
match access-group name copp-system-p-acl-ospf6
match access-group name copp-system-p-acl-eigrp6
match access-group name copp-system-p-acl-auto-rp
match access-group name copp-system-p-acl-mac-l3-isis
set cos 7
police cir 36000 kbps , bc 1280000 bytes
module 1 :
transmitted 177446058 bytes;
5-minute offered rate 3 bytes/sec
conformed 27 peak-rate bytes/sec
at Sat Apr 23 04:25:27 2022
dropped 0 bytes;
5-min violate rate 0 byte/sec
violated 0 peak-rate byte/sec
...
在本示例中,类映射copp-system-p-class-critical包括与路由协议相关的流量,如边界网关协议(BGP)、开放最短路径优先(OSPF)、增强型内部网关路由器协议(EIGRP),以及包括其他协议(如vPC)。
IP或MAC ACL的命名约定大多是协议或功能的自解释性约定,前缀为copp-system-p-acl-[protocol|feature]。
要查看特定类,可在运行show命令时直接指定该类。例如:
N9K-4# show policy-map interface control-plane class copp-system-p-class-management
Control Plane
Service-policy input: copp-system-p-policy-strict
class-map copp-system-p-class-management (match-any)
match access-group name copp-system-p-acl-ftp
match access-group name copp-system-p-acl-ntp
match access-group name copp-system-p-acl-ssh
match access-group name copp-system-p-acl-http
match access-group name copp-system-p-acl-ntp6
match access-group name copp-system-p-acl-sftp
match access-group name copp-system-p-acl-snmp
match access-group name copp-system-p-acl-ssh6
match access-group name copp-system-p-acl-tftp
match access-group name copp-system-p-acl-https
match access-group name copp-system-p-acl-snmp6
match access-group name copp-system-p-acl-tftp6
match access-group name copp-system-p-acl-radius
match access-group name copp-system-p-acl-tacacs
match access-group name copp-system-p-acl-telnet
match access-group name copp-system-p-acl-radius6
match access-group name copp-system-p-acl-tacacs6
match access-group name copp-system-p-acl-telnet6
set cos 2
police cir 36000 kbps , bc 512000 bytes
module 1 :
transmitted 0 bytes;
5-minute offered rate 0 bytes/sec
conformed 0 peak-rate bytes/sec
dropped 0 bytes;
5-min violate rate 0 byte/sec
violated 0 peak-rate byte/sec
虽然CoPP默认配置文件通常作为默认配置的一部分隐藏,但您可以看到使用“show running-conf copp all”的配置:
N9K1# show running-config copp all
!Command: show running-config copp all
!Running configuration last done at: Tue Apr 26 16:34:10 2022
!Time: Sun May 1 16:41:55 2022
version 10.2(1) Bios:version 05.45
control-plane
scale-factor 1.00 module 1
class-map type control-plane match-any copp-system-p-class-critical
match access-group name copp-system-p-acl-bgp
match access-group name copp-system-p-acl-rip
match access-group name copp-system-p-acl-vpc
match access-group name copp-system-p-acl-bgp6
match access-group name copp-system-p-acl-ospf
match access-group name copp-system-p-acl-rip6
match access-group name copp-system-p-acl-eigrp
match access-group name copp-system-p-acl-ospf6
match access-group name copp-system-p-acl-eigrp6
match access-group name copp-system-p-acl-auto-rp
match access-group name copp-system-p-acl-mac-l3-isis
(snip)
...
类映射copp-system-p-class-critical引用调用系统ACL的多个匹配语句(默认情况下隐藏),并引用匹配的分类。例如,对于BGP:
N9K1# show running-config aclmgr all | b copp-system-p-acl-bgp
ip access-list copp-system-p-acl-bgp
10 permit tcp any gt 1023 any eq bgp
20 permit tcp any eq bgp any gt 1023
(snip)
这意味着任何BGP流量都与此类匹配,并且被分类为copp-system-p-class-critical,以及同一类上的所有其他协议。
Nexus 7000采用与Nexus 9000非常相似的CoPP功能结构:
N77-A-Admin# show policy-map interface control-plane
Control Plane
service-policy input copp-system-p-policy-strict
class-map copp-system-p-class-critical (match-any)
match access-group name copp-system-p-acl-bgp
match access-group name copp-system-p-acl-rip
match access-group name copp-system-p-acl-vpc
match access-group name copp-system-p-acl-bgp6
match access-group name copp-system-p-acl-lisp
match access-group name copp-system-p-acl-ospf
match access-group name copp-system-p-acl-rip6
match access-group name copp-system-p-acl-rise
match access-group name copp-system-p-acl-eigrp
match access-group name copp-system-p-acl-lisp6
match access-group name copp-system-p-acl-ospf6
match access-group name copp-system-p-acl-rise6
match access-group name copp-system-p-acl-eigrp6
match access-group name copp-system-p-acl-otv-as
match access-group name copp-system-p-acl-mac-l2pt
match access-group name copp-system-p-acl-mpls-ldp
match access-group name copp-system-p-acl-mpls-rsvp
match access-group name copp-system-p-acl-mac-l3-isis
match access-group name copp-system-p-acl-mac-otv-isis
match access-group name copp-system-p-acl-mac-fabricpath-isis
match protocol mpls router-alert
set cos 7
police cir 36000 kbps bc 250 ms
conform action: transmit
violate action: drop
module 1:
conformed 300763871 bytes,
5-min offered rate 132 bytes/sec
peak rate 125 bytes/sec at Sun May 01 09:50:51 2022
violated 0 bytes,
5-min violate rate 0 bytes/sec
peak rate 0 bytes/sec
module 2:
conformed 4516900216 bytes,
5-min offered rate 1981 bytes/sec
peak rate 1421 bytes/sec at Fri Apr 29 15:40:40 2022
violated 0 bytes,
5-min violate rate 0 bytes/sec
peak rate 0 bytes/sec
module 6:
conformed 0 bytes,
5-min offered rate 0 bytes/sec
peak rate 0 bytes/sec
violated 0 bytes,
5-min violate rate 0 bytes/sec
peak rate 0 bytes/sec
请注意,在Nexus 7000上,由于这些交换机是模块化交换机,因此您会看到类按模块划分;但是,CIR适用于所有模块的聚合,CoPP适用于整个机箱。CoPP验证和输出只能从默认或管理虚拟设备环境(VDC)中查看。
如果发现控制平面问题,则检验Nexus 7000上的CoPP尤其重要,因为VDC上的不稳定性会导致CoPP违规,这会影响其他VDC的稳定性。
在Nexus 5600上,类别不同。因此,对于BGP,它是其自己的独立类:
N5K# show policy-map interface control-plane
Control Plane
(snip)
class-map copp-system-class-bgp (match-any)
match protocol bgp
police cir 9600 kbps , bc 4800000 bytes
conformed 1510660 bytes; action: transmit
violated 0 bytes;
(snip)
在Nexus 3100上,有3个路由协议类,因此要验证BGP属于哪个类,请交叉引用引用的4个CoPP ACL:
EIGRP由Nexus 3100上的自己的类处理。
N3K-C3172# show policy-map interface control-plane
Control Plane
service-policy input: copp-system-policy
class-map copp-s-routingProto2 (match-any)
match access-group name copp-system-acl-routingproto2
police pps 1300
OutPackets 0
DropPackets 0
class-map copp-s-v6routingProto2 (match-any)
match access-group name copp-system-acl-v6routingProto2
police pps 1300
OutPackets 0
DropPackets 0
class-map copp-s-eigrp (match-any)
match access-group name copp-system-acl-eigrp
match access-group name copp-system-acl-eigrp6
police pps 200
OutPackets 0
DropPackets 0
class-map copp-s-routingProto1 (match-any)
match access-group name copp-system-acl-routingproto1
match access-group name copp-system-acl-v6routingproto1
police pps 1000
OutPackets 0
DropPackets 0
N3K-C3172# show running-config aclmgr
!Command: show running-config aclmgr
!No configuration change since last restart
!Time: Sun May 1 18:14:16 2022
version 9.3(9) Bios:version 5.3.1
ip access-list copp-system-acl-eigrp
10 permit eigrp any 224.0.0.10/32
ipv6 access-list copp-system-acl-eigrp6
10 permit eigrp any ff02::a/128
ip access-list copp-system-acl-routingproto1
10 permit tcp any gt 1024 any eq bgp
20 permit tcp any eq bgp any gt 1024
30 permit udp any 224.0.0.0/24 eq rip
40 permit tcp any gt 1024 any eq 639
50 permit tcp any eq 639 any gt 1024
70 permit ospf any any
80 permit ospf any 224.0.0.5/32
90 permit ospf any 224.0.0.6/32
ip access-list copp-system-acl-routingproto2
10 permit udp any 224.0.0.0/24 eq 1985
20 permit 112 any 224.0.0.0/24
ipv6 access-list copp-system-acl-v6routingProto2
10 permit udp any ff02::66/128 eq 2029
20 permit udp any ff02::fb/128 eq 5353
30 permit 112 any ff02::12/128
ipv6 access-list copp-system-acl-v6routingproto1
10 permit 89 any ff02::5/128
20 permit 89 any ff02::6/128
30 permit udp any ff02::9/128 eq 521
在这种情况下,BGP与ACL copp-system-acl-routingproto1匹配,因此CoPP类BGP属于copp-s-routingProto1。
CoPP支持QoS统计信息,以跟踪每个模块的流量确认或违反特定类别的承诺输入速率(CIR)的汇聚计数器。
每个类映射根据与其对应的类对CPU绑定的流量进行分类,并为属于该分类的所有数据包附加一个CIR。例如,与BGP流量相关的类用作参考:
在适用于copp-system-p-class-critical的Nexus 9000架顶式(TOR)上:
class-map copp-system-p-class-critical (match-any)
match access-group name copp-system-p-acl-bgp
match access-group name copp-system-p-acl-rip
match access-group name copp-system-p-acl-vpc
match access-group name copp-system-p-acl-bgp6
match access-group name copp-system-p-acl-ospf
match access-group name copp-system-p-acl-rip6
match access-group name copp-system-p-acl-eigrp
match access-group name copp-system-p-acl-ospf6
match access-group name copp-system-p-acl-eigrp6
match access-group name copp-system-p-acl-auto-rp
match access-group name copp-system-p-acl-mac-l3-isis
set cos 7
police cir 36000 kbps , bc 1280000 bytes
module 1 :
transmitted 177446058 bytes;
5-minute offered rate 3 bytes/sec
conformed 27 peak-rate bytes/sec
at Sat Apr 23 04:25:27 2022
dropped 0 bytes;
5-min violate rate 0 byte/sec
violated 0 peak-rate byte/sec
在类映射的部分,在match语句之后,我们将看到与类内所有流量相关的操作。在copp-system-p-class-critical中分类的所有流量都使用服务类别(CoS)7(即最高优先级流量)进行设置,此类的CIR为36000 kbps,承诺突发速率为1280000字节。符合此策略的流量会转发到SUP进行处理,并丢弃任何违规。
set cos 7
police cir 36000 kbps , bc 1280000 bytes
下一节包含与模块有关的统计信息,适用于机架顶部(TOR)交换机,其中单个模块模块模块1指交换机。
module 1 :
transmitted 177446058 bytes;
5-minute offered rate 3 bytes/sec
conformed 27 peak-rate bytes/sec
at Sat Apr 23 04:25:27 2022
dropped 0 bytes;
5-min violate rate 0 byte/sec
violated 0 peak-rate byte/sec
输出中看到的统计信息是历史统计信息,因此这提供了运行命令时当前统计信息的快照。
此处需要解释两部分:传输和丢弃的部分:
传输的数据点跟踪传输的所有符合策略的数据包。此部分非常重要,因为它可以深入了解主管正在处理的流量类型。
5分钟的提供速率值提供对当前速率的洞察。
符合的峰值速率和日期提供了每秒最高峰值速率的快照,该快照仍符合策略和发生时间。
如果看到新的峰值,则会替换此值和日期。
统计信息中最重要的部分是丢弃的数据点。与传输的统计信息一样,丢弃部分跟踪由于违反警察速率而丢弃的累积字节。
它还提供过去5分钟的违规率、违规峰值,如果存在峰值,则提供该峰值违规的时间戳。同样,如果看到新的峰值,它会取代此值和日期。在其他平台上,输出会有所不同,但逻辑非常相似。
Nexus 7000采用相同的结构,验证也相同,但引用的ACL中某些类略有不同:
class-map copp-system-p-class-critical (match-any)
match access-group name copp-system-p-acl-bgp
match access-group name copp-system-p-acl-rip
match access-group name copp-system-p-acl-vpc
match access-group name copp-system-p-acl-bgp6
match access-group name copp-system-p-acl-lisp
match access-group name copp-system-p-acl-ospf
match access-group name copp-system-p-acl-rip6
match access-group name copp-system-p-acl-rise
match access-group name copp-system-p-acl-eigrp
match access-group name copp-system-p-acl-lisp6
match access-group name copp-system-p-acl-ospf6
match access-group name copp-system-p-acl-rise6
match access-group name copp-system-p-acl-eigrp6
match access-group name copp-system-p-acl-otv-as
match access-group name copp-system-p-acl-mac-l2pt
match access-group name copp-system-p-acl-mpls-ldp
match access-group name copp-system-p-acl-mpls-rsvp
match access-group name copp-system-p-acl-mac-l3-isis
match access-group name copp-system-p-acl-mac-otv-isis
match access-group name copp-system-p-acl-mac-fabricpath-isis
match protocol mpls router-alert
set cos 7
police cir 36000 kbps bc 250 ms
conform action: transmit
violate action: drop
module 1:
conformed 300763871 bytes,
5-min offered rate 132 bytes/sec
peak rate 125 bytes/sec at Sun May 01 09:50:51 2022
violated 0 bytes,
5-min violate rate 0 bytes/sec
peak rate 0 bytes/sec
module 2:
conformed 4516900216 bytes,
5-min offered rate 1981 bytes/sec
peak rate 1421 bytes/sec at Fri Apr 29 15:40:40 2022
violated 0 bytes,
5-min violate rate 0 bytes/sec
peak rate 0 bytes/sec
module 6:
conformed 0 bytes,
5-min offered rate 0 bytes/sec
peak rate 0 bytes/sec
violated 0 bytes,
5-min violate rate 0 bytes/sec
peak rate 0 bytes/sec
在Nexus 5600上:
class-map copp-system-class-bgp (match-any)
match protocol bgp
police cir 9600 kbps , bc 4800000 bytes
conformed 1510660 bytes; action: transmit
violated 0 bytes;
虽然它不提供速率或峰值信息,但它仍提供符合和违反的聚合字节。
在Nexus 3100上,控制平面输出显示:OutPackets和DropPackets
class-map copp-s-routingProto1 (match-any)
match access-group name copp-system-acl-routingproto1
match access-group name copp-system-acl-v6routingproto1
police pps 1000
OutPackets 8732060
DropPackets 0
OutPackets指符合的数据包,而DropPackets指违反CIR的情况。在此场景中,我们在关联的类上看不到丢包。
在Nexus 3500上,输出显示HW和SW Matched Packets:
class-map copp-s-routingProto1 (match-any)
match access-group name copp-system-acl-routingproto1
police pps 900
HW Matched Packets 471425
SW Matched Packets 471425
HW Matched Packets指ACL在HW中匹配的数据包。SW匹配的数据包是符合警察的数据包。HW和SW匹配的数据包之间的任何差异都意味着存在违规。
在这种情况下,在路由协议1类数据包(包括BGP)上没有发现丢包,因为值匹配。
由于控制平面策略统计信息是历史数据,因此确定是否存在活动违规增加非常重要。执行此任务的标准方法是比较两个完整输出并检验是否存在差异。
此任务可以手动执行,或者Nexus交换机提供“diff”工具,可帮助比较输出。
虽然可以比较整个输出,但不需要这样做,因为重点只放在丢弃的统计信息上。因此,可以过滤CoPP输出以仅关注违规。
命令如下:show policy-map interface control-plane |egrep class|module|ivfient|dropped |diff -y
注意:该命令必须运行两次,差异才能将当前输出与上一输出进行比较。
上一个命令允许您查看两个类之间的增量并发现违规增加。
注意:由于CoPP统计信息是历史数据,建议在运行命令后清除统计信息,以验证是否有活动增加。要清除CoPP统计信息,请运行以下命令:'清除copp统计'
CoPP是一种简单的管制结构,因为任何违反CIR的CPU绑定流量都会被丢弃。尽管如此,其影响仍与丢包类型有显着差异。虽然逻辑相同,但丢弃发往copp-system-p-class-critical的流量则不同
class-map copp-system-p-class-critical (match-any)
match access-group name copp-system-p-acl-bgp
match access-group name copp-system-p-acl-rip
match access-group name copp-system-p-acl-vpc
match access-group name copp-system-p-acl-bgp6
match access-group name copp-system-p-acl-ospf
match access-group name copp-system-p-acl-rip6
match access-group name copp-system-p-acl-eigrp
match access-group name copp-system-p-acl-ospf6
match access-group name copp-system-p-acl-eigrp6
match access-group name copp-system-p-acl-auto-rp
match access-group name copp-system-p-acl-mac-l3-isis
set cos 7
police cir 36000 kbps , bc 1280000 bytes
与丢弃发往类映射copp-system-p-class-monitoring的流量相比。
class-map copp-system-p-class-monitoring (match-any)
match access-group name copp-system-p-acl-icmp
match access-group name copp-system-p-acl-icmp6
match access-group name copp-system-p-acl-traceroute
set cos 1
police cir 360 kbps , bc 128000 bytes
第一种主要处理路由协议,第二种主要处理互联网控制消息协议(ICMP),该协议具有最低优先级和CIR。CIR的区别是100倍。因此,了解类、影响、常见检查/验证和建议非常重要。
此类包括IPv4和IPv6的ICMP,以及定向到相关交换机的流量的跟踪路由。
class-map copp-system-p-class-monitoring (match-any)
match access-group name copp-system-p-acl-icmp
match access-group name copp-system-p-acl-icmp6
match access-group name copp-system-p-acl-traceroute
set cos 1
police cir 360 kbps , bc 128000 bytes
— 排除数据包丢失或延迟故障时的一个常见误解是通过CoPP限制速率的带内端口ping交换机。由于CoPP严格管制ICMP,即使流量较低或拥塞较多,如果带内接口违反CIR,直接ping带内接口时也会出现丢包现象。
例如,通过对路由端口上的直连接口执行ping操作(数据包负载为500),可以定期看到丢包。
N9K-3# ping 192.168.1.1 count 1000 packet-size 500
...
--- 192.168.1.1 ping statistics ---
1000 packets transmitted, 995 packets received, 0.50% packet loss
round-trip min/avg/max = 0.597/0.693/2.056 ms
在发往ICMP数据包的Nexus上,我们看到CoPP在检测到违规且CPU受到保护时丢弃了它们:
N9K-4# show policy-map interface control-plane class copp-system-p-class-monitoring
Control Plane
Service-policy input: copp-system-p-policy-strict
class-map copp-system-p-class-monitoring (match-any)
match access-group name copp-system-p-acl-icmp
match access-group name copp-system-p-acl-icmp6
match access-group name copp-system-p-acl-traceroute
set cos 1
police cir 360 kbps , bc 128000 bytes
module 1 :
transmitted 750902 bytes;
5-minute offered rate 13606 bytes/sec
conformed 13606 peak-rate bytes/sec
at Sun May 01 22:49:24 2022
dropped 2950 bytes;
5-min violate rate 53 byte/sec
violated 53 peak-rate byte/sec at Sun May 01 22:49:24 2022
如果排除延迟或丢包故障,建议使用通过数据平面可到达交换机的主机,而不是发往控制平面流量的交换机本身。数据平面流量在硬件级别转发/路由,无需SUP干预,因此不受CoPP管制,通常不会出现丢包。
— 通过数据平面而非交换机通过交换机发送ping,检验丢包的误报结果
— 限制网络监控系统(NMS)或积极使用ICMP交换机以避免突发通过类的承诺输入速率的工具。请记住,CoPP适用于属于该类的所有聚合流量。
如图所示,此类包括可用于IPv4和IPv6通信的通信(SSH、Telnet)、传输(SCP、FTP、HTTP、SFTP、TFTP)、时钟(NTP)、AAA(Radius/TACACS)和监控(SNMP)的不同管理协议。
class-map copp-system-p-class-management (match-any)
match access-group name copp-system-p-acl-ftp
match access-group name copp-system-p-acl-ntp
match access-group name copp-system-p-acl-ssh
match access-group name copp-system-p-acl-http
match access-group name copp-system-p-acl-ntp6
match access-group name copp-system-p-acl-sftp
match access-group name copp-system-p-acl-snmp
match access-group name copp-system-p-acl-ssh6
match access-group name copp-system-p-acl-tftp
match access-group name copp-system-p-acl-https
match access-group name copp-system-p-acl-snmp6
match access-group name copp-system-p-acl-tftp6
match access-group name copp-system-p-acl-radius
match access-group name copp-system-p-acl-tacacs
match access-group name copp-system-p-acl-telnet
match access-group name copp-system-p-acl-radius6
match access-group name copp-system-p-acl-tacacs6
match access-group name copp-system-p-acl-telnet6
set cos 2
police cir 36000 kbps , bc 512000 bytes
与此类关联的最常见行为或丢弃包括:
— 通过SSH/Telnet连接时感觉到CLI速度缓慢。如果类中存在活动丢包,则通信会话可能会变慢并遭受丢包。
— 在交换机上使用FTP、SCP、SFTP和TFTP协议传输文件。最常见的行为是尝试通过带内管理端口传输系统/启动启动映像。这可能导致传输时间更长,并且会因类的聚合带宽而关闭/终止传输会话。
-NTP同步问题,此类也很重要,因为它可缓解欺诈NTP代理或攻击。
-AAA Radius和TACACS服务也属于此类。如果认为对此类有影响,则可能影响用户帐户在交换机上的授权和身份验证服务,这也可能导致CLI命令延迟。
-SNMP也受此类的管制。由于SNMP类而导致丢弃的最常见的行为是在NMS服务器上,NMS服务器执行行走、批量收集或网络扫描。当出现周期性不稳定时,通常与NMS收集计划相关。
— 如果发现CLI速度慢,以及此类中的丢弃,则使用控制台访问或管理带外访问(mgmt0)。
— 如果系统映像必须上传到交换机,请使用带外管理端口(mgmt0)或使用USB端口进行最快传输。
— 如果NTP数据包丢失,请选中“show ntp peer-status”并验证可达性列,否则不丢弃会转换为377。
— 如果发现AAA服务存在问题,请使用仅本地用户进行故障排除,直到缓解行为
— 缓解SNMP问题包括较少攻击性行为、定向收集或网络扫描程序最小化。检查从扫描仪到CPU级别上发现的事件的定期时间。
此类专门处理glean数据包。此类数据包也由硬件速率限制器(WHRL)处理。
如果在线卡中转发传入的IP数据包时未解析下一跳的地址解析协议(ARP)请求,则线卡会将数据包转发到管理引擎模块。
管理引擎解析下一跳的MAC地址并编程硬件。
class-map copp-system-p-class-l3uc-data (match-any)
match exception glean
set cos 1
当使用静态路由且下一跳无法到达或无法解析时,通常会发生这种情况。
当发送ARP请求时,软件会在硬件中添加/32丢弃邻接关系,以防止到同一下一跳IP地址的数据包转发到管理引擎。解析ARP后,硬件条目会使用正确的MAC地址更新。如果ARP条目在超时期之前未解析,则从硬件中删除该条目。
注意:CoPP和HWRL协同工作,以确保CPU受到保护。尽管它们似乎执行类似的功能,但HWRL首先发生。实施取决于在ASIC的转发引擎上实施特定功能的位置。此串行方法允许对所有CPU绑定数据包进行分级的粒度和多层保护。
HWRL在模块上按实例/转发引擎执行,可使用命令“show hardware rate-limiter”查看。HWRL不在本技术文档的范围内。
show hardware rate-limiter
Units for Config: kilo bits per second
Allowed, Dropped & Total: aggregated bytes since last clear counters
Module: 1
R-L Class Config Allowed Dropped Total
+----------------+----------+--------------------+--------------------+--------------------+
L3 glean 100 0 0 0
L3 mcast loc-grp 3000 0 0 0
access-list-log 100 0 0 0
bfd 10000 0 0 0
fex 12000 0 0 0
span 50 0 0 0
sflow 40000 0 0 0
vxlan-oam 1000 0 0 0
100M-ethports 10000 0 0 0
span-egress disabled 0 0 0
dot1x 3000 0 0 0
mpls-oam 300 0 0 0
netflow 120000 0 0 0
ucs-mgmt 12000 0 0 0
— 数据平面流量作为违规传送给管理引擎,因为它无法在硬件中处理,从而给CPU带来压力。
— 此问题的常见解决方法是确保下一跳可达,并通过配置命令启用glean-throttling:'硬件ip glean throttle'
— 在Nexus 7000 8.4(2)上,还引入了对M3和F4模块的稀疏邻接的布隆过滤器支持。请参阅 :https://www.cisco.com/c/en/us/td/docs/switches/datacenter/sw/nx-os/unicast/configuration/guide/b-7k-Cisco-Nexus-7000-Series-NX-OS-Unicast-Routing-Configuration-Guide-Release/n7k_unicast_config_ipv4.html#concept_4B4BF5FE17DE443EAAD710690FE670EB
— 查看使用不可达下一跳地址的所有静态路由配置,或使用动态路由协议从RIB中动态删除此类路由
此类从L3的角度引用最关键的控制平面协议,包括IPv4和IPv6的路由协议(RIP、OSPF、EIGRP、BGP)、自动RP、虚拟端口通道(vPC)、l2pt和IS-IS。
class-map copp-system-p-class-critical (match-any)
match access-group name copp-system-p-acl-bgp
match access-group name copp-system-p-acl-rip
match access-group name copp-system-p-acl-vpc
match access-group name copp-system-p-acl-bgp6
match access-group name copp-system-p-acl-ospf
match access-group name copp-system-p-acl-rip6
match access-group name copp-system-p-acl-eigrp
match access-group name copp-system-p-acl-ospf6
match access-group name copp-system-p-acl-eigrp6
match access-group name copp-system-p-acl-auto-rp
match access-group name copp-system-p-acl-mac-l2pt
match access-group name copp-system-p-acl-mac-l3-isis
set cos 7
police cir 36000 kbps , bc 1280000 bytes
copp-system-p-class-critical-class-critical的丢包会将不稳定性传输到路由协议,这可能包括邻接关系丢包或收敛失败,或更新/NLRI传播。
此类上最常见的策略丢弃可能与网络上异常(由于配置错误或故障)或可扩展性的欺诈设备有关。
— 如果未检测到异常,如欺诈设备或导致上层协议持续重新收敛的L2不稳定,则可能需要自定义CoPP配置或更宽松的类才能适应规模。
— 有关如何从当前存在的默认配置文件配置自定义CoPP配置文件,请参阅CoPP配置指南。
https://www.cisco.com/c/en/us/td/docs/dcn/nx-os/nexus9000/102x/configuration/Security/cisco-nexus-9000-nx-os-security-configuration-guide-102x/m-configuring-copp.html#task_E3D04369F59F471885BC5E8CD24337CA
此类与第一跳冗余协议(FHRP)相关,包括HSRP、VRRP和LLDP
class-map copp-system-p-class-important (match-any)
match access-group name copp-system-p-acl-hsrp
match access-group name copp-system-p-acl-vrrp
match access-group name copp-system-p-acl-hsrp6
match access-group name copp-system-p-acl-vrrp6
match access-group name copp-system-p-acl-mac-lldp
set cos 6
police cir 2500 kbps , bc 1280000 bytes
此处最常见的导致丢弃的行为是第2层不稳定的问题,这导致设备转换到活动状态(分裂脑)场景、攻击性计时器、错误配置或可扩展性。
— 确保对于FHRP,组配置正确,主用/备用或主用/辅助角色协商正确,且状态没有摆动。
— 检查L2的收敛问题或L2域的组播传播问题。
L2未受管制的类是指所有关键的第2层协议,这些协议是所有上层协议的基础,因此几乎被认为是不受管制且具有最高CIR和优先级。
此类有效地处理生成树协议(STP)、链路聚合控制协议(LACP)、以太网思科交换矩阵服务(CFSoE)
class-map copp-system-p-class-l2-unpoliced (match-any)
match access-group name copp-system-p-acl-mac-stp
match access-group name copp-system-p-acl-mac-lacp
match access-group name copp-system-p-acl-mac-cfsoe
match access-group name copp-system-p-acl-mac-sdp-srp
match access-group name copp-system-p-acl-mac-l2-tunnel
match access-group name copp-system-p-acl-mac-cdp-udld-vtp
set cos 7
police cir 50 mbps , bc 8192000 bytes
此类具有50 Mbps的警用CIR,在所有类中最高,同时具有最高的突发速率吸收。
此类的丢弃可能导致全局不稳定,因为所有上层协议以及数据、控制和管理平面的通信都依赖于底层第2层稳定性。
STP违规问题可能导致TCN和STP融合问题,包括STP争议、MAC刷新、移动和学习禁用行为,这些问题会导致可达性问题,并可能导致破坏网络稳定的流量环路。
此类还引用LACP,因此处理与0x8809关联的所有EtherType数据包,包括用于维护端口通道绑定状态的所有LACPDU。如果LACPDU被丢弃,此类上的不稳定会导致端口通道超时。
思科以太网交换矩阵服务(CSFoE)属于此类,用于在Nexus交换机之间通信关键应用控制状态,因此对稳定性至关重要。
同样适用于此类内的其他协议,包括CDP、UDLD和VTP。
— 最常见的行为与L2以太网不稳定有关。确保STP以确定性方式正确设计,同时提供相关功能增强功能,以最大程度减少网络中重新融合或欺诈设备的影响。确保为不参与L2扩展的所有终端主机设备配置了正确的STP端口类型,将其配置为边缘/边缘中继端口,以最小化TCN。
— 在适当的情况下使用STP增强功能,如BPDUguard、Loopguard、BPDUfilter、RootGuard,以限制故障范围或网络上配置错误或欺诈设备问题。
— 检查MAC移动行为,这些行为可能导致MAC学习被禁用和刷新。请参阅:https://www.cisco.com/c/en/us/support/docs/ios-nx-os-software/nx-os-software/213906-nexus-9000-mac-move-troubleshooting-and.html
此类是指控制平面协议无关组播(PIM)数据包,用于通过数据平面路径中所有支持PIM的设备(包括第一跳路由器(FHR)、最后一跳路由器(LHR)、中间跳路由器(IHR)和会聚点(RPvouz))建立和控制路由组播共享树)。 此类中分类的数据包包括源的PIM注册、IPv4和IPv6接收器的PIM加入、通常指向PIM(224.0.0.13)的所有流量以及组播源发现协议(MSDP)。 请注意,还有几个其他类,它们处理由不同类处理的组播或RP功能的非常特定部分。
class-map copp-system-p-class-multicast-router (match-any)
match access-group name copp-system-p-acl-pim
match access-group name copp-system-p-acl-msdp
match access-group name copp-system-p-acl-pim6
match access-group name copp-system-p-acl-pim-reg
match access-group name copp-system-p-acl-pim6-reg
match access-group name copp-system-p-acl-pim-mdt-join
match exception mvpn
set cos 6
police cir 2600 kbps , bc 128000 bytes
与此类相关的丢包的主要影响与通过PIM注册到RP或PIM加入而无法正确处理的与组播源通信的问题相关,这会破坏指向组播流源或RP的共享或最短路径树的稳定。行为可能包括由于缺少连接而未正确填充的传出接口列表(OIL),或(S, G),或(*, G)在整个环境中未一致地看到。依赖MSDP进行互连的组播路由域之间也可能出现问题。
— 与PIM控制相关的问题最常见的行为是指扩展问题或欺诈行为。UPnP上的实施导致最常见的行为之一,这也可能导致内存耗尽问题。这可以通过过滤器和减少欺诈设备的范围来解决。有关如何根据设备的网络角色缓解和过滤组播控制数据包的详细信息,请参阅:
此类是指组播侦听程序发现(MLD),具体是指MLD查询、报告、缩减和MLDv2数据包类型。MLD是主机用于为特定组请求组播数据的IPv6协议。通过MLD获取的信息,软件会按接口维护组播组或通道成员列表。接收MLD数据包的设备从已知接收器的网段发送它们为请求的组或信道接收的组播数据。MLDv1从IGMPv2派生,MLDv2从IGMPv3派生。IGMP使用IP协议2消息类型,而MLD使用IP协议58消息类型,这是ICMPv6消息的子集。
class-map copp-system-p-class-multicast-host (match-any)
match access-group name copp-system-p-acl-mld
set cos 1
police cir 1000 kbps , bc 128000 bytes
此类上的丢弃会转换为本地链路IPv6组播通信上的问题,这会导致接收方的侦听程序报告或对一般查询的响应被丢弃,从而阻止发现主机要接收的组播组。这可能会影响监听机制,并且无法通过请求流量的预期接口正确转发流量。
— 由于MLD流量在IPv6的本地链路级别非常重要,如果此类中出现丢包,则最常见的行为与扩展、L2不稳定或欺诈设备有关。
这些类指与组播异常重定向到SUP匹配的流量。在这种情况下,这些类会处理两个条件。第一种是反向路径转发(RPF)故障,第二种是目标丢失。目的地丢失是指在硬件中查找第3层组播转发表失败,从而将数据包传送到CPU的组播数据包。这些数据包有时用于根据数据平面流量触发/安装组播控制平面并添加硬件转发表条目。违反RPF的数据平面组播数据包也会与此异常匹配,并被分类为违规。
class-map copp-system-p-class-l3mc-data (match-any)
match exception multicast rpf-failure
match exception multicast dest-miss
set cos 1
police cir 2400 kbps , bc 32000 bytes
class-map copp-system-p-class-l3mcv6-data (match-any)
match exception multicast ipv6-rpf-failure
match exception multicast ipv6-dest-miss
set cos 1
police cir 2400 kbps , bc 32000 bytes
RPF故障和目标丢失意味着与流量如何通过组播路由器有关的设计或配置问题。目标丢失在状态创建时很常见,丢弃可能导致编程和(*, G)、(S, G)失败。
— 对基本单播RIB设计进行更改,或在RPF发生故障时添加静态路由以引导流量通过特定接口。
— 请参阅https://www.cisco.com/c/en/us/support/docs/ip/ip-multicast/16450-mcastguide0.html#anc5
此类是指用于请求特定组的组播数据的所有版本的所有IGMP消息,IGMP监听功能使用这些消息来维护将流量转发到第2层的相关接收方的组和相关传出接口列表(OIL)。IGMP消息在本地有意义,因为它们不会通过第3层边界,因为生存时间(TTL)必须为1,在RFC2236(https://datatracker.ietf.org/doc/html/rfc2236)下记录。 此类处理的IGMP数据包包括所有成员身份查询(一般或源/组特定),以及来自接收方的成员身份和离开报告。
class-map copp-system-p-class-normal-igmp (match-any)
match access-group name copp-system-p-acl-igmp
set cos 3
police cir 3000 kbps , bc 64000 bytes
此类上的丢弃将转换为源和接收方之间组播通信的所有级别的问题,具体取决于因违规而丢弃的IGMP消息类型。如果来自接收方的成员身份报告丢失,则路由器不知道对流量感兴趣的设备,因此它不在其相关传出接口列表中包含接口/VLAN。如果此设备也是查询器或指定路由器,则如果源位于本地第2层域之外,它不会向RP触发相关PIM加入消息,因此它从不在整个组播树中建立数据平面,直到接收方或RP。如果离开报告丢失,接收方可以继续接收不需要的流量。这也会影响查询器触发的所有相关IGMP查询以及域中组播路由器之间的通信。
— 与IGMP丢弃相关的最常见行为与L2不稳定、计时器问题或扩展有关。
此类是指与标准ARP流量匹配的流量,还包括与802.1X关联的流量,用于基于端口的网络访问控制。这是遇到违规情况的最常见类之一,如ARP请求、无故ARP、反向ARP数据包被广播并传播到整个第2层域。必须记住,ARP数据包不是IP数据包,这些数据包不包含L3报头,因此仅根据L2报头的范围做出决策。如果路由器配置了与该子网关联的IP接口,例如交换机虚拟接口(SVI),则路由器会将ARP数据包发送到SUP进行处理,因为这些数据包的目的地是硬件广播地址。任何广播风暴、第2层环路(由于STP或抖动)或网络中的欺诈设备都可能导致ARP风暴,从而导致违规情况显着增加。
class-map copp-system-p-class-normal (match-any)
match access-group name copp-system-p-acl-mac-dot1x
match protocol arp
set cos 1
police cir 1400 kbps , bc 32000 bytes
此类中违规的影响在很大程度上取决于事件的持续时间以及交换机在环境中的角色。此类中的丢弃意味着ARP数据包被丢弃,因此SUP引擎不会处理,这可能导致由不完整ARP解析导致的两种主要行为。
从终端主机的角度来看,网络中的设备无法通过交换机解析或完成地址解析。如果此设备充当网段的默认网关,则可能导致设备无法解析其网关,因此无法在其L2以太网网段(VLAN)之外路由。 如果设备可以完成本地网段上其他终端主机的ARP解析,则仍然可以在本地网段上通信。
从交换机的角度来看,如果风暴和违规现象很普遍,也可能导致交换机无法完成其生成的ARP请求过程。这些请求通常为下一跳或直连子网解析而生成。虽然ARP应答本质上是单播的,因为它们是发往交换机拥有的MAC地址,但它们属于同一类,因为它们仍然是ARP数据包。这会转换为可达性问题,因为如果下一跳未解决,交换机无法正确处理流量;如果邻接管理器没有主机条目,则可能导致第2层报头重写问题。
影响还取决于触发ARP违规的基本问题的范围。例如,在广播风暴中,主机和交换机继续ARP以尝试解析邻接关系,这可能导致网络上的额外广播流量,而且由于ARP数据包是第2层,因此没有第3层生存时间(TTL)来中断第2层环路,因此它们继续环路,并在网络中呈指数级增长,直到环路被断开。
— 解决可能在环境中导致ARP风暴(例如STP、抖动或欺诈设备)的任何基本L2不稳定问题。根据需要,通过任何所需方法打开链路路径来中断这些环路。
— 风暴控制也可用于缓解ARP风暴。如果未启用风暴控制,请验证接口上的计数器统计信息,以验证接口上看到的广播流量相对于通过接口的总流量的百分比。
— 如果没有风暴,但环境中仍会出现持续丢包,请验证SUP流量以识别任何欺诈设备,不断在网络上发送ARP数据包,这会影响合法流量。
— 根据网络上的主机数量和环境中交换机的角色,ARP可以看到增加,ARP旨在重试、解析和刷新条目,因此它预计会随时看到ARP流量。如果只看到零星丢包,则它们可能是瞬时的,具体取决于网络负载,并且不会察觉到影响。但是,监控和了解网络以正确识别和区分预期和异常情况非常重要。
此类是指与IPv6邻居发现/通告以及路由器请求和通告数据包相关的流量,这些数据包使用ICMP消息来确定邻居的本地链路层地址,并用于邻居设备的可达性和跟踪。
class-map copp-system-p-class-ndp (match-any)
match access-group name copp-system-p-acl-ndp
set cos 6
police cir 1400 kbps , bc 32000 bytes
此类违规会阻碍邻居设备之间的IPv6通信,因为这些数据包用于促进本地链路上主机和路由器之间的动态发现或链路层/本地信息。此通信中断还可能导致超出或通过关联本地链路的连通性问题。如果IPv6邻居之间存在通信问题,请确保此类上没有丢包。
— 检查来自邻居设备的任何异常ICMP行为,特别是与邻居发现和/或路由器发现相关的行为
— 确保定期消息的所有预期计时器和间隔值在整个环境中保持一致,并且正被遵守,例如路由器通告消息(RA消息)。
此类是指与引导协议(BOOTP客户端/服务器)关联的流量,通常称为IPv4和IPv6的同一本地以太网网段上的动态主机控制协议(DHCP)数据包。这仅与源自任何bootp客户端或发往任何BOOTP服务器的流量通信(通过整个发现、提供、请求和确认)有关(DORA)数据包交换,还包括通过UDP端口546/547的DHCPv6客户端/服务器事务。
class-map copp-system-p-class-normal-dhcp (match-any)
match access-group name copp-system-p-acl-dhcp
match access-group name copp-system-p-acl-dhcp6
set cos 1
police cir 1300 kbps , bc 32000 bytes
此类违规可能导致终端主机无法从DHCP服务器正确获取IP,从而回退到其自动专用IP地址(APIPA)范围169.254.0.0/16。此类违规可能发生在设备尝试同时引导,从而超出与类关联的CIR的环境中。
— 在主机和DHCP服务器端,使用捕获验证整个DORA事务。如果交换机是此通信的一部分,则验证处理或传送到CPU的数据包以及验证交换机上的统计信息也很重要:'show ip dhcp global statistics'和redirections:'show system internal access-list sup-redirect-stats module 1 | grep -i dhcp'。
此类是指与IPv4和IPv6的DHCP中继功能相关的流量,这些流量会定向到中继下配置的已配置DHCP服务器。这仅与通过整个DORA数据包交换从任何BOOTP服务器或发往任何BOOTP客户端的流量通信有关,还包括通过UDP端口546/547的DHCPv6客户端/服务器事务。
class-map copp-system-p-class-normal-dhcp-relay-response (match-any)
match access-group name copp-system-p-acl-dhcp-relay-response
match access-group name copp-system-p-acl-dhcp6-relay-response
set cos 1
police cir 1500 kbps , bc 64000 bytes
此类的违规与copp-system-p-class-normal-dhcp类的违规具有相同的影响,因为它们是同一事务的两部分。本类主要关注来自中继代理服务器的响应通信。Nexus不充当DHCP服务器,它仅用作中继代理。
与类普通DHCP相同的建议适用于此处。由于Nexus的功能只是充当中继代理,因此在SUP上,您期望看到主机和交换机之间充当中继的整个事务,以及交换机和服务器的配置。
确保没有恶意设备,例如网络上运行的可响应范围的意外DHCP服务器,或者DHCP发现数据包泛洪网络的环路中滞留的设备。可通过以下命令执行其他检查:“show ip dhcp relay”和“show ip dhcp relay statistics”。
此类是指软件交换机NAT流量。创建新的动态转换时,流会被软件转发,直到转换在硬件中编程,然后由CoPP对其进行管制,以限制在条目安装在硬件中时传送到主控引擎的流量。
class-map copp-system-p-class-nat-flow (match-any)
match exception nat-flow
set cos 7
police cir 800 kbps , bc 64000 bytes
当硬件中安装了高速率的新动态转换和流时,通常会发生此类丢弃。影响与被丢弃且未传送到终端主机的软件交换数据包有关,这可能导致丢失和重新传输。在硬件中安装该条目后,将不再向管理引擎传送流量。
— 检验相关平台上动态NAT的准则和限制。平台(如3548)上记录了已知的限制,在这些限制下,转换可能需要几秒钟。请参阅 :https://www.cisco.com/c/en/us/td/docs/switches/datacenter/nexus3548/sw/93x/interfaces/configuration/guide/b-cisco-nexus-3500-nx-os-interfaces-configuration-guide-93x/b-cisco-nexus-3500-nx-os-interfaces-configuration-guide-93x_chapter_0110.html#id_35947
此类是指与IP选项和IP ICMP不可达数据包关联的异常数据包。如果转发信息库(FIB)上不存在目的地址,并导致丢失,SUP会向发送方发送ICMP不可达数据包。启用了IP选项的数据包也属于此类。有关IP选项的详细信息,请参阅IANA文档:https://www.iana.org/assignments/ip-parameters/ip-parameters.xhtml#ip-parameters-1
class-map copp-system-p-class-exception (match-any)
match exception ip option
match exception ip icmp unreachable
match exception ipv6 option
match exception ipv6 icmp unreachable
set cos 1
police cir 150 kbps , bc 32000 bytes
此类受到严格管制,此类上的丢弃不表示故障,而是表示保护机制,以限制ICMP不可达和IP选项数据包的范围。
— 验证是否有流量流被发现或流到CPU,目的地不在FIB上。
此类是指与用于时间同步的精确时间协议(PTP)关联的流量。这包括保留范围224.0.1.129/32的组播流量、UDP端口319/320和Ethetype 0X88F7上的单播流量。
class-map copp-system-p-class-redirect (match-any)
match access-group name copp-system-p-acl-ptp
match access-group name copp-system-p-acl-ptp-l2
match access-group name copp-system-p-acl-ptp-uc
set cos 1
police cir 280 kbps , bc 32000 bytes
此类上的丢弃可能导致设备出现未正确同步或未建立正确层次结构的问题。
— 确保时钟的稳定性,并确保时钟配置正确。确保PTP设备已配置为组播或单播PTP模式,但不同时配置两者。这也在准则和限制下进行记录,可将流量推送到承诺输入速率之外。
— 查看边界时钟和环境中所有PTP设备的设计和配置。确保所有准则和限制都遵循每个平台,因为它们各不相同。
此类是指与OpenFlow代理操作以及控制器和代理之间的相应TCP连接相关联的流量。
class-map copp-system-p-class-openflow (match-any)
match access-group name copp-system-p-acl-openflow
set cos 5
police cir 1000 kbps , bc 32000 bytes
此类上的丢弃可能导致代理出现问题,这些代理无法正确接收和处理来自控制器的指令,以管理网络的转发平面
— 确保网络或阻碍控制器和代理之间通信的任何设备上未发现重复流量。
— 检验L2网络是否不稳定(STP、环路)。
排除CoPP违规故障的第一步是确定:
— 问题的影响和范围
— 了解流经环境的流量以及交换机在受影响通信中的作用
— 确定是否怀疑关联类存在违规,并根据需要迭代。
例如,已检测到列出的行为:
— 设备无法与其网络外部的其他设备通信,但可以在本地通信。
— 影响已隔离到VLAN外的路由通信,交换机充当默认网关。
— 检查主机,表示它们无法ping通网关,检查其ARP表后,网关的条目仍为Incomplete。
— 所有其它具有网关解决的主机没有通信问题。检查充当网关的交换机上的CoPP表明cop-system-p-class-normal上存在违规。
class-map copp-system-p-class-normal (match-any)
match access-group name copp-system-p-acl-mac-dot1x
match protocol arp
set cos 1
police cir 1400 kbps , bc 32000 bytes
module 1 :
transmitted 3292445628 bytes;
dropped 522023852 bytes;
— 此外,多个命令检查显示丢弃数量正在积极增加。
— 这些违规可导致合法ARP流量被丢弃,从而导致拒绝服务行为。
注意:必须强调的是,CoPP会隔离对与特定类关联的流量的影响,在本例中为ARP和copp-system-p-class-normal。与其他类(如OSPF、BGP)相关的流量不会被CoPP丢弃,因为它们完全属于不同的类。如果不选中,ARP问题可能会级联到其他问题,从而影响依赖它的协议。例如,如果ARP缓存超时且由于违规过多而未刷新,BGP等TCP会话可以终止。
— 建议执行控制平面检查,如Ethanalyzer、CPU-mac带内状态和CPU进程,以进一步隔离问题。
由于CoPP管制的流量仅与CPU绑定的流量关联,因此最重要的工具之一是ethanalyzer。此工具是TShark的Nexus实施,允许监控器发送和接收的流量被捕获和解码。它还可以使用基于不同标准(如协议或报头信息)的过滤器,从而成为确定CPU发送和接收的流量的宝贵工具。
建议首先检查Supervisor在终端会话上直接运行ethanalyzer工具或将其发送到文件进行分析时看到的ARP流量。可以定义过滤器和限制,以将捕获集中到特定模式或行为中。为此,请添加灵活的显示过滤器。
一个常见的误解是ethanalyzer捕获通过交换机的所有流量。主机之间的数据平面流量由硬件ASIC在数据端口之间交换或路由,不需要CPU参与,因此Ethanalyzer捕获通常不会看到该流量。要捕获数据平面流量,建议使用其他工具,如ELAM或SPAN。例如,要过滤ARP,请使用命令:
ethanalyzer本地接口带内显示过滤器arp limit-captured-frames 0 autostop duration 60 > arpcpu
重要的可配置字段:
— “接口带内” — 指定向到SUP的流量
-'display-filter arp' — 指应用的tshark过滤器,大多数Wireshark过滤器都被接受
-'limit-captured-frames 0' — 表示限制,0等于无限制,直到被另一个参数停止或通过Ctrl+C手动停止
-'autostop duration 60' — 表示ethanalyzer在60秒后停止,因此它会创建CPU上看到的60秒ARP流量的快照
ethanalyzer输出将重定向到bootflash上带有“> arpcpu”的文件,以手动处理。60秒后,捕获完成,Ethanalyzer将动态终止,文件arpcpu位于交换机的bootflash上,然后可以处理该文件以提取最大流量生成者。例如:
show file bootflash:arpcpu | sort -k 3,5 | uniq -f 2 -c | sort -r -n | head lines 50
669 2022-05-10 10:29:50.901295 28:ac:9e:ad:5e:47 -> ff:ff:ff:ff:ff:ff ARP Who has 10.1.1.1? Tell 10.1.1.2
668 2022-05-10 10:29:50.901295 28:ac:9e:ad:5e:43 -> ff:ff:ff:ff:ff:ff ARP Who has 10.2.1.1? Tell 10.2.1.2
668 2022-05-10 10:29:50.901295 28:ac:9e:ad:5e:41 -> ff:ff:ff:ff:ff:ff ARP Who has 10.3.1.1? Tell 10.3.1.2
此过滤器根据以下内容排序:源列和目标列,然后找到唯一匹配项(但忽略日期列),计算实例并添加所看到的数量,最后根据计数从上到下排序,并显示前50个结果。
在本实验示例中,在60秒内,从三台设备接收了超过600个ARP数据包,这三台设备已被识别为可疑的违规设备。过滤器的第一列详细说明了在指定持续时间内捕获文件上看到此事件的实例数。
了解Ethanalyzer工具在带内驱动程序上的作用非常重要,而带内驱动程序实质上是与ASIC的通信。理论上,数据包需要通过内核,数据包管理器需要被切换到相关进程本身。CoPP和HWRL在Ethanalyzer上发现流量之前起作用。即使违规活动频繁增加,某些流量仍会通过,并符合警察速率,这有助于洞察传送到CPU的流量。这是一个重要区别,因为在ethanalyzer上看到的流量不是违反CIR并被丢弃的流量。
ethanalyzer也可以以开放方式使用,无需任何指定用于捕获所有相关SUP流量的显示过滤器或捕获过滤器。这可作为故障排除方法的一部分,用作隔离措施。
有关ethanalyzer的更多详细信息和使用,请参阅技术说明:
注意:Nexus 7000在8.X代码版本之前,只能通过管理VDC执行ethanalyzer捕获,该VDC包含来自所有VDC的SUP绑定流量。8.X代码中包含特定于VDC的ethanalyzer。
与CPU绑定流量关联的带内统计信息保留带内TX/RX CPU流量的相关统计信息。可以使用以下命令检查这些统计信息:“show hardware internal cpu-mac inband stats”,提供对当前速率和峰值速率统计信息的深入了解。
show hardware internal cpu-mac inband stats`
================ Packet Statistics ======================
Packets received: 363598837
Bytes received: 74156192058
Packets sent: 389466025
Bytes sent: 42501379591
Rx packet rate (current/peak): 35095 / 47577 pps
Peak rx rate time: 2022-05-10 12:56:18
Tx packet rate (current/peak): 949 / 2106 pps
Peak tx rate time: 2022-05-10 12:57:00
作为一种最佳实践,建议创建并跟踪基线,因为根据交换机的角色和“show hardware internal cpu-mac inband stats”的基础设施输出会有很大差异。在本实验环境中,通常值和历史峰值通常不超过几百pps,因此这是异常的。命令show hardware internal cpu-mac inband events也可用作历史参考,因为它包含与峰值使用和检测到峰值的时间相关的数据。
Nexus交换机是基于Linux的系统,Nexus操作系统(NXOS)利用其各个核心架构的CPU占用式调度程序、多任务处理和多线程功能,为所有进程提供公平访问,因此峰值并不总是表示问题。但是,如果发现持续的流量违规,则关联的进程可能也会被大量使用,并在CPU输出下显示为顶级资源。对CPU进程拍摄多个快照,通过使用以下命令来验证特定进程的高使用率:show processes cpu sort | exclude 0.0或show processes cpu sort | grep <process>。
进程CPU、带内统计信息和Ethanalyzer验证可提供有关主管当前处理的进程和流量的见解,并帮助隔离控制平面流量上持续的不稳定性,这些不稳定性可级联到数据平面问题。了解CoPP是一种保护机制非常重要。它是反动的,因为它只对传送到SUP的流量起作用。它旨在通过丢弃超出预期范围的流量速率来保护管理引擎的完整性。并非所有丢包都表示存在问题或需要干预,因为它们的重要性与特定CoPP类以及基于基础设施和网络设计的经验证的影响有关。由于协议具有内置机制(如保持连接和重试),因此由于间歇突发事件导致的丢包不会转化为影响。将重点放在持续事件或异常事件上,超出既定的基线。请记住,CoPP必须遵守特定于环境的协议和功能,并且必须监控和持续重复以根据扩展需求在发展过程中对其进行微调。如果发生丢弃,请确定CoPP是否无意中丢弃了流量或是为了响应故障或攻击。无论是哪种情况,都可以通过分析对环境的影响和纠正措施来分析情况并评估干预的必要性,这些影响和纠正措施可能超出交换机本身的范围。
最近的平台/代码可以通过端口的镜像和数据平面流量发送到CPU执行SPAN到CPU。这通常受硬件速率限制和CoPP的严重速率限制。建议谨慎使用SPAN到CPU,并且不在本文档的范围内。有关此功能的详细信息,请参阅列出的技术说明:
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
01-Jul-2022 |
初始版本 |