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

某局点突然内存告警并且OSPF无法建立问题

2022-01-16 发表
  • 0关注
  • 0收藏 1244浏览
粉丝:29人 关注:3人

组网及说明

问题描述

这台S12508设备下挂业务突然出现异常,同时登录该设备发现日志打印ospf邻居关系down和lowmem内存占用超阈值的日志告警,配置静态路由后业务得以恢复。

 D-01 OSPF/5/OSPF_NBR_CHG: OSPF 200 Neighbor 10.87.21.41(Route-Aggregation1) from FULL to DOWN. 

Dec 28 07:04:40:018 2021 DC1-SOC-4A10-S12508-D-01 OSPF/5/OSPF_NBR_CHG: OSPF 200 Neighbor 10.87.22.41(Route-Aggregation2) from FULL to DOWN.

 Dec 28 07:04:40:024 2021 DC1-SOC-4A10-S12508-D-01 DIAG/4/MEM_ALERT: 

system memory info: total used free shared buffers cached

 Mem: 3491784 1233240 2258544 0 32 143944 

-/+ buffers/cache: 1089264 2402520 

Swap: 0 0 0 

Lowmem: 1005512 956400 49112 

Dec 28 07:04:41:467 2021 DC1-SOC-4A10-S12508-D-01 DIAG/1/MEM_EXCEED_THRESHOLD: Memory critical threshold has been exceeded.

 

过程分析

从日志分析,设备在12月28日07:04,lowmem内存抵达三级门限告警,触发内存保护从而ospf邻居被down掉。从内存快速降低的情况看,可以确认是lowmem内存泄漏导致。

%Dec 28 07:04:40:024 2021 DC1-SOC-4A10-S12508-D-01 DIAG/4/MEM_ALERT:

system memory info:

             total       used       free     shared    buffers     cached

Mem:       3491784    1233240    2258544          0         32     143944

-/+ buffers/cache:    1089264    2402520

Swap:            0          0          0

Lowmem:    1005512     956400      49112

%Dec 28 07:04:41:467 2021 DC1-SOC-4A10-S12508-D-01 DIAG/1/MEM_EXCEED_THRESHOLD: Memory critical threshold has been exceeded.

 

%Dec 28 07:04:40:016 2021 DC1-SOC-4A10-S12508-D-01 OSPF/5/OSPF_NBR_CHG: -Chassis=1-Slot=0; OSPF 200 Neighbor 10.87.21.41(Route-Aggregation1) from FULL to DOWN.

%Dec 28 07:04:40:018 2021 DC1-SOC-4A10-S12508-D-01 OSPF/5/OSPF_NBR_CHG: -Chassis=1-Slot=0; OSPF 200 Neighbor 10.87.22.41(Route-Aggregation2) from FULL to DOWN.

为进一步确认lowmem内存泄漏原因,登录设备多次查看具体模块内存占用情况如下,发现其中0x208模块(聚合模块)内存占用明显异常,并且不断在增长,可以确认该模块存在lowmem内存泄漏。

 

[DC1-SOC-4A10-S12508-D-01-probe]display system internal kernel memory pool tag chassis 1 slot 1

Tag         MemoryPool    Actives  Bytes

0x11a0000   6             8        1069424

0x1140000   10            803      1474920

0x10b0000   17            4789     1395204

0x2120000   1             1        8   

0x23c0000   1             1        8   

0x2230000   2             3        16464

0x2080000   6             8353     4221880

0x2300000   3             3        49200

 

[DC1-SOC-4A10-S12508-D-01-probe] display system internal kernel memory pool tag chassis 1 slot 1

Tag         MemoryPool    Actives  Bytes

0x11a0000   6             8        1069424

0x1140000   10            803      1474920

0x10b0000   16            4682     1349608

0x2120000   1             1        8   

0x23c0000   1             1        8   

0x2230000   2             3        16464

0x2080000   6             9097     4602328

0x2300000   3             3        49200

 

[DC1-SOC-4A10-S12508-D-01-probe] display system internal kernel memory pool tag chassis 1 slot 1

Tag         MemoryPool    Actives  Bytes

0x11a0000   6             8        1069424

0x1140000   10            803      1474920

0x10b0000   15            4680     1347564

0x2120000   1             1        8   

0x23c0000   1             1        8   

0x2230000   2             3        16464

0x2080000   6             9350     4732344

0x2300000   3             3        49200

通过走读代码和分析,确认网管通过snmp读取设备聚合口的两个table下的节点(hh3cIfHCFlowStatTablehh3cIfFlowStatTable)时,设备响应后,会出现lowmem内存泄露的问题。

lowmem内存泄漏的原因 :MIB下发请求获取统计信息,聚合模块处理该请求时,会下发驱动获取聚合成员口相关统计信息,然后累加作为聚合口统计信息;在处理函数内部,会临时申请一块内存用来存储聚合口统计,处理完毕后,会将该数据拷贝回MIB请求的缓冲区中,由于申请和拷贝不在同一层函数调用中,遗漏释放申请的临时内存,导致内存泄露。

S12508设备在lowmem内存泄漏时不会单独发送trap告警,导致网管无法提前监控到lowmem内存泄漏的告警。

 

hh3cIfHCFlowStatTable

OID of this table is: 1.3.6.1.4.1.25506.2.40.2.1.2.3

This table is only supported by physical interfaces and serial interfaces created by controller.

Name

Access

PDS

Description

hh3cIfStatFlowHCInBits (1.3.6.1.4.1.25506.2.40.2.1.2.3.1.1)

read-only

No

As per MIB

hh3cIfStatFlowHCOutBits (1.3.6.1.4.1.25506.2.40.2.1.2.3.1.2)

read-only

No

As per MIB

hh3cIfStatFlowHCInPkts (1.3.6.1.4.1.25506.2.40.2.1.2.3.1.3)

read-only

No

As per MIB

hh3cIfStatFlowHCOutPkts (1.3.6.1.4.1.25506.2.40.2.1.2.3.1.4)

read-only

No

As per MIB

hh3cIfStatFlowHCInBytes (1.3.6.1.4.1.25506.2.40.2.1.2.3.1.5)

read-only

No

As per MIB

hh3cIfStatFlowHCOutBytes (1.3.6.1.4.1.25506.2.40.2.1.2.3.1.6)

read-only

No

As per MIB

hh3cIfFlowStatTable

OID of this table is: 1.3.6.1.4.1.25506.2.40.2.1.2.1

This table is only supported by physical interfaces and serial interfaces created by controller.

Name

Access

PDS

Description

hh3cIfStatFlowInterval (1.3.6.1.4.1.25506.2.40.2.1.2.1.1.1)

read-write

Current

Only support read operation.

hh3cIfStatFlowInBits (1.3.6.1.4.1.25506.2.40.2.1.2.1.1.2)

read-only

No

As per MIB

hh3cIfStatFlowOutBits (1.3.6.1.4.1.25506.2.40.2.1.2.1.1.3)

read-only

No

As per MIB

hh3cIfStatFlowInPkts (1.3.6.1.4.1.25506.2.40.2.1.2.1.1.4)

read-only

No

As per MIB

hh3cIfStatFlowOutPkts (1.3.6.1.4.1.25506.2.40.2.1.2.1.1.5)

read-only

No

As per MIB

hh3cIfStatFlowInBytes (1.3.6.1.4.1.25506.2.40.2.1.2.1.1.6)

read-only

No

As per MIB

hh3cIfStatFlowOutBytes (1.3.6.1.4.1.25506.2.40.2.1.2.1.1.7)

read-only

No

As per MIB

实验室搭建环境模拟,S12508设备使用现网版本R7376可以复现lowmem内存泄漏问题。但升级到R7377P01及以后版本不会复现该问题。进一步走读代码和分析,发现在R7377P01版本中对获取聚合口统计计数相关流程进行过优化调整,已不存在该问题。

R7377P01以前的版本统计获取数据的方式不符合部分场景实现,所以在R7377P01及以后的版本对获取聚合口统计计数相关流程做了优化,不会再申请临时内存,而使用临时变量,因此不会再涉及到lowmem内存泄漏的问题。

综上,设备现网版本代码存在首次发现的漏洞,当网管通过snmp读取hh3cIfHCFlowStatTablehh3cIfFlowStatTable两个table下的节点时,引起lowmem内存泄漏,可能会导致设备超过三级门限,触发内存保护,使得ospf邻居down,进而影响业务。



解决方法

1、网管取消通过snmp读取S12500系列交换机的hh3cIfHCFlowStatTablehh3cIfFlowStatTable两个table下的节点,规避lowmem内存泄漏问题。

2、在设备上配置oid访问控制,拒绝hh3cIfHCFlowStatTablehh3cIfFlowStatTable两个table下的节点被访问,规避lowmem内存泄漏问题。

3、S12500系列交换机升级到最新的R7377P04版本,解决lowmem内存泄漏问题。

该案例对您是否有帮助:

您的评价:1

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

作者在2022-02-19对此案例进行了修订
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

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