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

ERSPAN引起交换机CPU高问题和解决办法(二)

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

ERSPAN引起交换机CPU高问题和解决办法(一)

场景 2

ERSPAN的源设备上,CPU高,且中断高。

首先,检查相关配置,发现源和目的会话的配置都正确,如下:

ERSPAN源会话配置:

ERSPAN目的会话配置:

于是我们可以在ERSPAN源设备上通过使用Netdr抓取流向CPU的数据包:

通过 show netdr captured-packets 的输出,我们发现,绝大多数去CPU的数据包都是长度大于1500 byte的GRE数据包,并且DF位为1。

——- dump of incoming inband packet ——-

通过检查接口配置发现,其接口的MTU配置为1500 byte。

一般来说,Catalyst 6500交换机会把超过接口MTU值而造成MTU检测失败的数据包发到CPU进行分片或产生ICMP不可达信息。ERSPAN的源设备不会对MTU检测失败的ERSPAN数据包进行分片处理。实际上,源设备把ERSPAN的数据包的DF位置为1,防止该数据包在ERSPAN的全程路径上进行分片处理。而且 ERSPAN的目的会话也不会对分片了的数据包进行重组。因此,如果ERSPAN数据包的大小超过了接口的MTU数值,导致MTU检测失败,该数据包会被发往CPU,最终被丢弃。

ERSPAN可以支持的最大3层数据包的大小为9202 byte。因此,为了不造成MTU检测失败,导致CPU高和数据包的丢弃,就需要在ERSPAN的路径上的所有接口上配置足够大的MTU数值。对于3层以 太接口,可以配置的MTU范围为64 byte到9216 byte。因此,对于ERSPAN,推荐的MTU配置为9216 byte,且该MTU数值应该应用于从ERSPAN的源设备到目的设备中间经过的所有接口上。

当然,对于MTU检测失败造成CPU高的问题,我们也可以通过使用命令mls rate-limit all mtu-failure rate(例如,可以将rate数值设为10 pps)来限制由于超过接口MTU值而流向CPU的数据包的数量,但是这样做只能缓解CPU的压力,并不能防止超出MTU的ERSPAN数据包丢失。


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

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

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

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