Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
snmp陷阱中的可变实例号_Snmp - Fatal编程技术网

snmp陷阱中的可变实例号

snmp陷阱中的可变实例号,snmp,Snmp,假设我正在编写一个SNMP v1/2代理 是否必须将实例号附加到陷阱PDU中的变量OID 例如,在SNMP V1中,在RFC 1157中定义了一个陷阱,其中包含以下字段: 企业 代理地址 通用陷阱类型 特定陷阱代码 时间戳 变量绑定 “变量绑定”部分由变量名和值的列表组成。 根据RFC 1157: 通常,SNMP的名称 变量是的对象标识符 形式x.y,其中x是 中定义的非聚合对象类型 MIB和y是对象标识符 以特定于 命名的对象类型标识 所需实例 困扰我的是“一般来说,.y是必须的吗?是的,

假设我正在编写一个SNMP v1/2代理

是否必须将实例号附加到陷阱PDU中的变量OID

例如,在SNMP V1中,在RFC 1157中定义了一个陷阱,其中包含以下字段:

  • 企业
  • 代理地址
  • 通用陷阱类型
  • 特定陷阱代码
  • 时间戳
  • 变量绑定
“变量绑定”部分由变量名和值的列表组成。 根据RFC 1157:

通常,SNMP的名称 变量是的对象标识符 形式x.y,其中x是 中定义的非聚合对象类型 MIB和y是对象标识符 以特定于 命名的对象类型标识 所需实例


困扰我的是“一般来说,.y是必须的吗?

是的,必须在变量绑定中包含任何变量OID的实例子标识符。该段描述了变量OID的一般(即,通用)形式,而不是使用“一般”来表示非承诺性“嗯,通常是这样,但并不总是这样”。后来的RFC使用了更具体的措辞:

变量绑定列表是变量绑定的简单列表

变量的名称是对象标识符,它是 连接相应对象的对象标识符- 与标识对象的对象标识符片段一起键入 例如。相应对象类型的对象标识符为 调用变量的对象标识符前缀


[RFC 3416,第2.1节]

很高兴知道。我们实际上面临着其他几个snmp代理,它们发送陷阱时没有提供实例号,这会造成一些麻烦。要识别相应的实例,我们必须遍历所有实例,并与陷阱中的值进行比较。我觉得这有点骇人听闻。10-15年前,当我进行SNMP符合性测试时,这不是一个罕见的代理错误。令人惊讶的是,实现者仍然会犯错误!不过,我应该注意,如果一个值没有标识任何对象的实例,那么它就没有必要具有实例标识符。例如,SNMPv2c/v3中的连接陷阱由snmpTrapOID.0=连接(1.3.6.1.6.3.1.1.4.1.0=1.3.6.1.6.3.1.1.5.4)而非连接识别。但是标识变量的OID必须包括实例标识符(对于标量始终为.0)。