SNMP Trap抓包分析

  • 目录

    SNMP的组成

    SNMP Trap的两种类型

    类型整数值定义

    TRAP-TYPE

    NOTIFICATION-TYPE

    SNMP Trap通用陷阱

    Trap-pdu抓包分析

    Snmpv2-trap-pdu抓包分析

    SNMP工具介绍

    参考文献


  • SNMP的组成

    网络管理系统(NMS)

    代理进程(Agent)

    被管对象(Management object)

    管理信息库(MIB)

  • SNMP Trap的两种类型

    类型整数值定义

    — — — — — — — — — — — — — — — — — — — — — — — — —

    — — — — — — — — — — — — — — — — — — — — — — — — —

    TRAP-TYPE

    此类型用于SNMPv1,是一种特殊的trap-pdu消息格式(不同于get),是由Agent发送给NMS通知网络状况的告警信息。以下为抓包截图:

    — — — — — — — — — — — — — — — — — — — — — — — — —

    — — — — — — — — — — — — — — — — — — — — — — — — —

    NOTIFICATION-TYPE

    SNMPv2之后,不再使用trap-pdu,而是定义了一套通用消息格式(与get相同),称之为snmpv2-trap-pdu,与trap不同的是,此类消息在接收到Agent发送的告警信息之后,需要对Agent有一个告警消息接收成功的应答。以下为抓包截图:

  • SNMP Trap通用陷阱

    SNMP 标准定义了七种由 SNMPv1 代理生成的陷阱类型:六种通用陷阱和一种企业特定陷阱(详情可见:RFC-1157),SNMPv2虽然消息格式与SNMPv1截然不同,但在通用陷阱上其实是一样的(SNMPv2详情可见:RFC-3418)。六种通用陷阱在RFC中是有介绍的,下面是我从网上找的一种解释:

    — — — — — — — — — — — — — — — — — — — — — — — — —

    — — — — — — — — — — — — — — — — — — — — — — — — —

    按我的理解就是:

    1. coldStart(0):Agent重启,所有管理变量重置

    2. warmStart(1):Agent重新初始化,所有管理变量不变

    3. linkDown(2):设备接口故障时发送,接口链路状态down时也会通知

    4. linkUp(3):设备接口恢复时发送,接口链路状态up时也会通知

    5. authenticationFailure(4):有人试图使用不正确的community查询Agent时

    6. egpNeighborLoss(5):外部网关协议(EGP)邻居已关闭

    7. enterpriseSpecific(6):企业特定

  • Trap-pdu抓包分析

    消息格式(​整数4表示trap-pdu消息类型):

    enterprise:与企业相关的trap对象的类型

    agent-addr:生成trap的Agent的ip地址

    generic-trap:通用陷阱的值(0-5,6的时候认为是企业的)

    specific-trap:如果generic-trap为0-5,则此值为0,否则为企业特定陷阱

    time-stamp:snmp实体上次初始化/重新初始化以来的时间量

    variable-bindings:绑定变量(一个pdu中mib对象的键值对)

    — — — — — — — — — — — — — — — — — — — — — — — — —

    — — — — — — — — — — — — — — — — — — — — — — — — —

    抓包截图(generic-trap为通用陷阱):

    — — — — — — — — — — — — — — — — — — — — — — — — —

    — — — — — — — — — — — — — — — — — — — — — — — — —

    抓包截图(generic-trap为企业陷阱):

    — — — — — — — — — — — — — — — — — — — — — — — — —

    — — — — — — — — — — — — — — — — — — — — — — — — —

    综上,我的理解是,当generic-trap为0-5时,只需要根据generic-trap就可以判断出消息通知类型,根据此类型所对应的variable-bindings个数和对应值就可以得知此消息通知的具体信息。而generic-trap为6时,需要合并enterpries+specific-trap的值,组成代表企业具体消息通知类型的mib节点,然后解析对应variable-bindings的值。

  • Snmpv2-trap-pdu抓包分析

    MIB对象类型:

    iso(1)
    identified-organization(3)
    dod(6)
    internet(1)
    snmpV2(6)
    snmpModules(3)
    snmpMIB(1)
    snmpMIBObjects(1)
    --------snmpTrap(4)
    ----------------snmpTrapOID(1)
    --------snmpTraps(5)
    ----------------coldStart(1)
    ----------------warmStart(2)
    ----------------linkDown(3)
    ----------------linkUp(4)
    ----------------authenticationFailure(5)
    ----------------egpNeighborLoss(6)

    — — — — — — — — — — — — — — — — — — — — — — — — —

    — — — — — — — — — — — — — — — — — — — — — — — — —

    MIB解释:

    1.3.6.1.6.3.1.1.4.1:位于pdu绑定变量的第二个位置,代表陷阱通知具体类型

    1.3.6.1.6.3.1.1.5.*:最后一个为1-6时,是通用陷阱,否则为企业特定陷阱

    — — — — — — — — — — — — — — — — — — — — — — — — —

    — — — — — — — — — — — — — — — — — — — — — — — — —

    消息格式(​整数7表示snmpv2-trap-pdu消息类型):

    request-id:请求编号,用于请求和回复的数字,由发送请求的设备生成

    error-status:请求结果的错误状态

    error-index:错误索引

    variable-bindings:绑定变量(一个pdu中mib对象的键值对)

    — — — — — — — — — — — — — — — — — — — — — — — — —

    — — — — — — — — — — — — — — — — — — — — — — — — —

    绑定变量格式:(variable-bindings)

    绑定变量的前两个变量是固定的,第一个为snmp实体上次初始化/重新初始化以来的时间量,等同于trap-pdu的time-stamp,第二个变量的值为陷阱具体类型。

    — — — — — — — — — — — — — — — — — — — — — — — — —

    — — — — — — — — — — — — — — — — — — — — — — — — —

    抓包截图(generic-trap为通用陷阱):

    — — — — — — — — — — — — — — — — — — — — — — — — —

    — — — — — — — — — — — — — — — — — — — — — — — — —

    抓包截图(generic-trap为企业陷阱):

    — — — — — — — — — — — — — — — — — — — — — — — — —

    — — — — — — — — — — — — — — — — — — — — — — — — —

    综上,我的理解为,在snmpv2-trap-pdu中,通过判断绑定变量的第二个值的前为1.3.6.1.6.3还是1.3.6.1.4.1可以区分通用陷阱还是企业特定陷阱,之后根据具体的陷阱类型解析对应variable-bindings信息。

  • SNMP工具介绍

    基于netsnmp编译工具:

    1. snmptrap:模拟Agent发送一个Trap通知到NMS

    2. snmpinform:模拟Agent发送一个Inform-request到NMS

    3. snmptrapd:模拟NMS接收Trap/Inform-request通知

  • 参考文献

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值