调优交换机网络

一、CPU占用率是啥意思?

        CPU占用率,就是一个时间段内,CPU执行代码的时间与时间段总长度的比率。CPU占用率常常是衡量设备性能的重要指标之一。

        CPU占用率高,是设备本身的一种现象,直观表现为display cpu-usage命令查询结果中整机CPU占用率“CPU usage”偏高,如超过70%。在网络运行中CPU高常常会导致其他业务异常,如BGP震荡、VRRP频繁切换、甚至设备无法登录。以下讨论的原因及步骤基于CPU占用率高这个现象。

        通常,整机CPU占用率过高,是由于某些任务的CPU占用率居高不下导致的。具体导致某任务CPU占用率高的可能原因:

  • 上送CPU报文过多,如环路或DoS报文攻击

  • STP网络频繁震荡,收到大量TC报文,造成设备频繁删除MAC表和ARP表项

  • 设备产生海量日志,占用大量CPU资源

二、故障诊断流程

        详细处理流程如下图所示。

图片

03、故障处理步骤

         01  检查占用CPU高的任务名称 

        执行命令display cpu-usage,查看各任务的CPU占用率。

        记录CPU占用率超过70%的任务名称。

        这个取值并非绝对数值,有可能某些任务执行时就需要占用70%的CPU而对业务不会造成影响,也有可能某些任务占用CPU 30%时就会对业务造成影响。应该根据实际情况判断。

         02  检查是否上送CPU的报文太多 

        执行命令display cpu-defend statistics,查看上送CPU报文的统计信息,关注丢弃计数。

<Huawei> display cpu-defend statistics all-----------------------------------------------------------------------        Packet Type               Pass Packets        Drop Packets                      -----------------------------------------------------------------------        8021X                                0                   0                      arp-miss                             1                   0                      arp-reply                            5                   0                      arp-request                    1450113               25597                      bfd                                  0                   0                      bgp                                  0                   0                      dhcp-client                     114693              136586                      dhcp-server                          0                   0                      dns                                  0                   0                      fib-hit                              0                   0                      ftp                                717                   0                      fw-dns                               0                   0                      fw-ftp                               0                   0                      fw-http                              0                   0                      fw-rtsp                              0                   0                      fw-sip                               0                   0                      gvrp                                 0                   0                      http                               798                   0                      hw-tacacs   0                   0                      icmp                                10                   0                      igmp                                 0                   0                      ipsec                                0                   0                      isis                                 0                   0                      lacp                                 0                   0                      lldp                             33959                   0                      ntp                                  0                   0                      ospf                              1569                   0                      pim                                  0                   0                      pppoe                                0                   0                      radius                               0                   0                      rip                                  0                   0                      snmp                                 0                   0                      ssh                                  0                   0                      stp                                  0                   0                      tcp                               7671                   0                      telnet                           71149                   0                      ttl-expired                        656                   0                      udp-helper                           0                   0                      unknown-multicast                    6                   0                      unknown-packet                   94189                   0                      vrrp                                 0                   0                      -----------------------------------------------------------------------  
  • 如果某种类型报文“Drop”计数较大,且对应上一步中占用的CPU使用率较高,可以判断为发生了报文攻击。

  • 如果没有发现有流量过大的报文,请执行步骤3。

         03  检查是否TC报文过多 

        支持STP的设备上,STP使能情况下,设备在接收到TC-BPDU报文时,会删除MAC地址表项和ARP表项。如果有人伪造TC-BPDU报文恶意攻击,设备短时间内会收到很多TC-BPDU报文,频繁的删除操作会导致CPU占用率比较高。

        执行命令display stp,查看接口下收到的TC报文和TCN报文计数。

<Huawei> display stp interface Eth2/0/1                                      ----[CIST][Port2(Ethernet2/0/1)][FORWARDING]----                                Port Protocol       :Enabled                                                  Port Role           :Designated Port                                          Port Priority       :128                                                      Port Cost(Dot1T )   :Config=auto / Active=199999                              Designated Bridge/Port   :4096.00e0-fc01-0005 / 128.2                          Port Edged          :Config=default / Active=disabled                          Point-to-point      :Config=auto / Active=true                                Transit Limit       :147 packets/hello-time                                    Protection Type     :None                                                      Port STP Mode       :MSTP                                                      Port Protocol Type  :Config=auto / Active=dot1s                                PortTimes           :Hello 2s MaxAge 20s FwDly 15s RemHop 20                  TC or TCN send      :1                                                        TC or TCN received  :0                                                        BPDU Sent           :124008                                                             TCN: 0, Config: 0, RST: 0, MST: 124008                                BPDU Received       :0                                                                 TCN: 0, Config: 0, RST: 0, MST: 0
  • 如果该值很大,系统视图下执行命令stp tc-protection配置对TC类型BPDU报文的抑制。配置此命令后,默认每个Hello周期处理3个TC报文。可以根据实际情况通过stp tc-protection threshold命令指定处理的报文数量门限值,可以通过stp timer hello命令修改Hello周期的时长。

  • 如果TC报文数量不多,请执行步骤4。

         04  检查网络是否有环路 

        当设备的某个VLAN中包含较多接口时,如果有两个接口形成环路,则报文会在多个接口之间一直转发,会导致CPU占用率上升。

        执行命令display loopback-detection,查看是否使能了MAC地址漂移告警功能。

#loop-detect eth-loop alarm-only#
  • 如果没有,执行命令loop-detect eth-loop alarm-only配置当发生MAC地址漂移时产生告警。此时如果网络中有环路,当设备两个接口学习到同一个MAC表项时,会产生告警。如:

Feb 22 2022 18:42:50 Huawei L2IFPPI/4/MAC_FLAPPING_ALARM:OID 1.3.6.1.4.1.2011.5.25.42.2.1.7.12The mac-address has flap value .  (L2IfPort=0,entPhysicalIndex=0,  BaseTrapSeverity=4, BaseTrapProbableCause=549, BaseTrapEventType=1,  MacAdd=0000-c0a8-0101,vlanid=100,  FormerIfDescName=Ethernet1/0/0,CurrentIfDescName=Ethernet1/0/1,DeviceName=HUAWEI)
  • 根据告警提示信息,查看相应的接口连接以及组网需求。

  • 如果不需要环网,根据组网图,将其中一个端口shutdown处理。

  • 如果确实需要环网,关闭Loop Detection功能,并启动STP等破环协议。

  • 如果设备已经配置了loop-detect eth-loop alarm-only,但是没有看到告警,请执行步骤7。

        05  检查是否有mac飘移  

        mac飘移也有可能影响网络的运行,尤其是网关或者流量大的网络服务,可以用 dis mac-address mac-move 来检测一下。

        06  检查根桥是否飘移

        如果是用默认优先级(32768)配置根桥优先级,那么一旦根桥飘移到接入或汇聚层交换机上,对网络产生的几乎是灾难性的影响,这时要检查根桥位置了,用 dis stp brief 查找到根桥位置并重新配置更正。

        07  检查设备是否产生海量日志 

        某些异常情况下如受到攻击、运行中发生了错误、端口频繁Up/Down等,设备会不停打印诊断信息或日志信息。此时对存储器要进行频繁的读写操作,会造成CPU占用率升高。

        执行命令display logbuffer,查看是否有大量的异常日志。

三、个人总结的一个小技巧

        核心交换机一般在机房,如果性能差、管理人员又确定不会误插产生环路的话,可以关闭STP功能,天然地隔绝各处汇聚层的 BPDU 报文,同时将各处汇聚层交换机配置为4096,接入层交换机配置为边缘端口,这样从一棵 “树” ,人为地变成一些 “灌木” ,也可以提高网络性能哟!

  • 18
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值