SNMP版本之间的共存和向后兼容性

时间:2015-06-08 08:45:15

标签: snmp net-snmp

我刚开始使用SNMP。我对不同版本的SNMP之间的向后兼容性和共存感到困惑。

版本之间的共存在RFC 2576中定义,其中解释了代理和多语言实现。

我的问题是:运行SNMPv3代理的设备如何响应SNMPv1请求消息?当应该使用身份验证和加密算法时,代理如何响应具有简单社区字符串的消息?

如何将座席配置为多语言? SNMPv3是否与v1和v2向后兼容? (它会始终响应v1和v2查询吗?)

1 个答案:

答案 0 :(得分:1)

无论谁说SNMPv3是"向后兼容"可能意味着(或两者):

  • 大多数支持SNMPv3的代理都是多语言代理,如果配置为SNMPv1和SNMPv2c,也会这样做。
  • SNMPv3使用与早期版本相同的MIB语言(SMIv1 / SMIv2),因此可以支持相同的MIB模块而无需修改。

协议本身在三个版本之间是不同的,并且彼此不兼容,但可以通过代理(有一些例外)进行翻译并分享一些相似之处:

  • SNMPv2c几乎与SNMPv1完全相同,但编码中的版本号不同,新数据类型和SNMPv1不支持的Get-Bulk请求除外。
  • SNMPv3使用与SNMPv2c编码相同但具有完全不同消息编码的所有相同数据类型和PDU。
  

运行SNMPv3代理的设备如何响应SNMPv1请求   消息?

支持SNMPv3和SNMPv1的多语言设备使用SNMPv1回复响应SNMPv1请求,并使用SNMPv3回复响应SNMPv3请求。

  

代理如何使用简单的社区String响应消息   什么时候应该使用身份验证和加密算法?

当应该使用身份验证和加密算法时,您不能拥有带有简单社区字符串的消息,因为身份验证和加密是SNMPv3的功能,而SNMPv3消息编码没有社区字符串的字段。它有一个用户名和字段,指示消息的身份验证和隐私级别以及执行这些功能所需的参数。

  

如何将座席配置为多语言?

标准方法是通过SNMP-COMMUNITY-MIB,SNMP-USER-BASED-SM-MIB和SNMP-VIEW-BASED-ACM-MIB表的适当配置。例如,snmpCommunityTable中没有配置社区?然后,它不会响应SNMPv1或SNMPv2c。代替那些MIB的标准表,"如何"将是特定于实现的。