SNMP多版本

    本文记录一次关于snmp多个版本的调研。

    到目前为止SNMP比较流行的版本有三个:version1, version2c, version3, 从access control方面来看,v1和v2比较接近,都是用community(团体名)作为登录时的校验。v3是用了比较复杂的用户名+密码的方式进行登录校验。

    这种行为就造成了开发一个基于snmp协议的程序在针对SNMP不同version时需要是用不同的登录方式,另外snmp的各个version之间还有其它差别,如用于通信的报文结构的差异,操作上的增减等等,好在这些对一般程序开发都是透明的,不用多做考虑。问题的关键就是不同版本之间access control的差异。到底三种版本在登录行为上具体的区别是什么,想不出来,遂实践之。

    打开net-snmp官网:http://www.net-snmp.org/download.html下载net-snmp,发现了一个奇怪的现象:所列的版本号为4.x,5.x,这跟我的预期有差距,我估摸着应该有v1.x, 2.x, 3.x 来区分不同的snmp版本,难道对snmp不同的版本是在设置中完成的?

   安装后进行snmp的设置(snmpconf -g basic_setup),果然看到:Do you want to allow SNMPv3 read-write user based access (default = y):和Do you want to allow SNMPv1/v2c read-write community access (default = y):的问话,看来之前的估计是正确的,支持某个版本确实是在设置中进行的,接着捣鼓...

    最终结论:在安装net-snmp的过程中可以定义支持哪种版本,如果支持1和2c版本,那么需要定义community;支持2版本,则需要定义用户和用户的权限;但是也可以两种都支持,即定义community也定义user。实践证明以上结论是正确的,好了完事。

你可能感兴趣的:(c,user,basic,Access,程序开发)