• 全部
  • 经验案例
  • 典型配置
  • 技术公告
  • FAQ
  • 漏洞说明
  • 全部
  • 全部
  • 大数据引擎
  • 知了引擎
产品线
搜索
取消
案例类型
发布者
是否解决
是否官方
时间
搜索引擎
匹配模式
高级搜索

S7600迭代路由问题的分析和判断

  • 0关注
  • 0收藏 2988浏览
秦军 六段
粉丝:15人 关注:4人

S7600迭代路由问题的分析和判断

 

一、  组网:

二、  问题描述:

现场S7606交换机升级到R6708版本后,交换机二层转发的流量都正常,但部分三层流量转发不通。如果将设备重启,原本不通的流量转发有时可以恢复,但重启后本来能够正常转发的三层流量也可能会出现不通的情况。

三、  过程分析:

现场找到两个有问题的路由条目,通过S7600交换机访问10.43.38.1310.43.38.14这两个地址时,在设备上可以查找到相应的Fib表项:

display fib

Destination count: 19339    FIB entry count: 19339

Flag:

U:Useable G:Gateway H:Host  B:Blackhole  D:Dynamic  S:Static  R:Relay

Destination/Mask   Nexthop    Flag   OutInterface   InnerLabel Token

10.43.38.0/24  10.120.1.5  UDG   Vlan7     Null   Invalid

检查芯片硬件表项,可以看到在3槽和5槽有此地址的表项,表项指向的出口索引是100006

[S7606-diagnose]bcm 3 0 l3/l3table/show

Unit 0, free L3 table entries: 16052

Entry VRF IP address      Mac Address       INTF  MOD PORT    CLASS HIT

92167 0   10.43.38.0/24   00:00:00:00:00:00 100006 0 0 0 32 y

但是100006指向的是黑洞表项:

[S7606-diagnose]bcm 3 0 l3/egress/show

Entry Mac Vlan INTF PORT MOD MPLS_LABEL ToCpu Drop DisDA DisSA DisVLAN DisTTL

100006 00:00:00:00:00:00 4095 4095 63 14 0 no yes no no no no

这样报文匹配上此表项后无法转发到正确的出端口上,而是直接丢弃。

经检查设备的运行信息发现设备有大量的路由下发失败的记录,下发失败的原因是传入的参数出现了错误,路由下发失败就会出现上面转发指向了黑洞表项。这时,查看设备记录的local log信息,发现路由表项有大量的下发失败记录,而且类型均相同:

[S7606-diagnose]local logbuffer 3 display 360

Feb 03 2013 01:18:31:0865:

LINE:1379, File platform_bcm/drv/l3/utils/drv_ipv4_shim.c-TASK:FIB- FUNC::

Fail to add route entry!ulUnitID=0,vrf=0,ip=a2b0418,mask=fffffffc, lRv=-4

 

Feb 03 2013 01:18:31:0865:

LINE:961, File platform_bcm/drv/l3/utils/drv_ipv4_shim.c-TASK:FIB- FUNC::

Call drv_ipv4_shim_uc_ipv4_add_forward_route return 1,ip = 0xa2b0418, mask = 0xfffffffc

 

Feb 03 2013 01:18:31:0865:

LINE:410, File platform_bcm/drv/l3/utils/drv_ipv4_shim.c-TASK:FIB- FUNC::

Call drv_ipv4_shim_ipv4_addroute_hard error,Ret=1,ip = 0xa2b0418,mask = 0xfffffffc

除此以外,在设备上还有ECMP没有资源的告警记录:

Feb 03 2013 01:18:31:0877:

LINE:10702, File platform_bcm/drv/l3/ipv4/drv_ipv4_uc_intf.c-TASK:FIB- FUNC::

ERR_NO_ENOUGH_RESOURCE !ulType=0xcc010009

 

Feb 03 2013 01:18:31:0877:

LINE:858, File platform_bcm/drv/l3/ipv4/drv_ipv4_uc_intf.c-TASK:FIB- FUNC::

call DRV_L3UC_ECMP_Malloc error:No resource to add ECMP entry!

 

ECMP Group的规格是127条,目前设备上规格满了,所以会有此告警:

[S7606-diagnose]debug ipv4-drv show config slot 3

**********************************************************

- IPv4 Config   Slot 3

**********************************************************

- ARP SIZE:             16384

- ArpCanNotSetToHW:     NO

- IPV4 ROUTE SIZE:      131072

- ECMP SIZE:            16

- SDK ECMP SIZE:        16

- ECMP GROUP SIZE:      127  //ECMP Group规格

通过命令可以看出实际下发到硬件的条数显示,这时ECMP Group已经占满了:

[S7606-diagnose]bcm 3 0 l3/multipath/show

Multipath Egress Object 200000  //1

Ecmp Cnt: 67

           Interfaces: 100006

Multipath Egress Object 200001  //2

Ecmp Cnt: 1

           Interfaces: 100191

Multipath Egress Object 200002  //3

Ecmp Cnt: 175

           Interfaces: 100006

Multipath Egress Object 200003  //4

Ecmp Cnt: 57

           Interfaces: 100191

Multipath Egress Object 200004  //5

Ecmp Cnt: 18

           Interfaces: 100006

Multipath Egress Object 200005  //6

Ecmp Cnt: 1

           Interfaces: 100006

... ...

Multipath Egress Object 200126  //127

Ecmp Cnt: 73

           Interfaces: 100006

然而,10.43.38.0/24这条路由并不是等价路由,为什么也会受影响呢?经过进一步确认,ECMP Group资源不仅等价路由会占用,需要迭代查找出接口的路由也会占用,这个是在R6708及其以后版本上增加的FRR 特性,即路由迭代功能,配置指导上说明如下:

路由迭代配置:

如果路由所携带的下一跳信息并不是直接可达的,需要找到到达下一跳的直连出接口,路由迭代的过程就是通过路由的下一跳信息来找到直连出接口的过程。

缺省情况下,路由运算允许进行迭代过程,这样可以保证路由快速收敛。

而在使用等价路由进行负载分担的场合,建议您不要使用迭代模式;在需要路由表项数目较多的场合,也可以配置为非迭代模式来保证路由规格。这时可以通过下面配置,配置为非迭代模式。

1 配置路由迭代模式

操作

命令

说明

进入系统视图

system-view

-

配置路由迭代模式

switch-mode route-iterative

缺省情况下,为非迭代模式

由于平台下发的路由为FRR路由,路由指向VN表项(VN表项是平台软件下发的中间软件表项),而VN表项需要占用ECMP Group资源,因此这种算法会导致消耗大量的ECMP资源。当ECMP Group资源耗尽时,如果出现了路由的切换就会导致部分普通路由表项的下发也出现错误,从而造成部分路由表项下发失败,现场10.43.38.0/24这条路由就是在这种情况下产生的。

四、  解决方法:

对于R6708版本,默认会进行迭代路由运算,从R67078P03版本开始,路由迭代模式命令缺省值发生变化,由缺省进行迭代模式路由运算改为非迭代模式路由运算。

此问题可以手工通过配置非迭代模式路由运算来解决,这样迭代路由不会再占用ECMP Group资源。注意:修改路由计算模式后,必须将设备整机重启才能生效。或者升级设备的软件版本,升级到R6708P03及其以后的版本,这样系统默认的路由运算模式为非迭代模式,不会出现类似问题。

 

该案例对您是否有帮助:

您的评价:1

若您有关于案例的建议,请反馈:

作者在2019-06-12对此案例进行了修订
0 个评论

该案例暂时没有网友评论

编辑评论

举报

×

侵犯我的权益 >
对根叔知了社区有害的内容 >
辱骂、歧视、挑衅等(不友善)

侵犯我的权益

×

泄露了我的隐私 >
侵犯了我企业的权益 >
抄袭了我的内容 >
诽谤我 >
辱骂、歧视、挑衅等(不友善)
骚扰我

泄露了我的隐私

×

您好,当您发现根叔知了上有泄漏您隐私的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您认为哪些内容泄露了您的隐私?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)

侵犯了我企业的权益

×

您好,当您发现根叔知了上有关于您企业的造谣与诽谤、商业侵权等内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到 pub.zhiliao@h3c.com 邮箱,我们会在审核后尽快给您答复。
  • 1. 您举报的内容是什么?(请在邮件中列出您举报的内容和链接地址)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
  • 3. 是哪家企业?(营业执照,单位登记证明等证件)
  • 4. 您与该企业的关系是?(您是企业法人或被授权人,需提供企业委托授权书)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

抄袭了我的内容

×

原文链接或出处

诽谤我

×

您好,当您发现根叔知了上有诽谤您的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您举报的内容以及侵犯了您什么权益?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔知了社区有害的内容

×

垃圾广告信息
色情、暴力、血腥等违反法律法规的内容
政治敏感
不规范转载 >
辱骂、歧视、挑衅等(不友善)
骚扰我
诱导投票

不规范转载

×

举报说明

提出建议

    +

亲~登录后才可以操作哦!

确定

亲~检测到您登陆的账号未在http://hclhub.h3c.com进行注册

注册后可访问此模块

跳转hclhub

你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作