Linux配置SNMP代理解决多网段通信

在系统运维过程中我们经常会遇到多网段隔离造成网络无法直接通信的问题。因此在借助自动化监控软件进行监控时,很难将所有的网段信息纳入到监控中。是否有方法能够在不改变网络配置的同时解决这样的问题呢?在运维过程中,通常监控软件常采用的协议为SNMP,因此我们这里提供一个SNMP代理解决问题的方法。

解决方法

本文使用SNMP代理解决多网段无法通信的问题。首先需要了解SNMP代理如何工作,其次了解如何在SNMP代理上进行配置,代理多个设备。

1、配置SNMP实现代理监控

(1)SNMP配置

在使用SNMP时需要进行配置,作为被代理的设备,使用v1或者v2c 共同体名称,默认分配相同的名称'notConfigUser' 作为默认配置。使用 '-Cn <上下文>'分配上下文:

com2sec -Cn ctx_myswitch notConfigUser default cmty_myswitch

配置视图,允许获取远程设备集成的所有对象:

view allview included .1

允许用户'notConfigUser' ('notConfigGroup'的一个成员)访问上下文

access notConfigGroup ctx_myswitch any noauth prefix allview none none

最后配置代理,“QiShi”为被代理地址的共同题名:

proxy -Cn ctx_myswitch -v 2c -c QiShi IP地址 .1.3

配置完成后,重启SNMP服务使配置生效

(2)SNMP测试

访问代理服务器本机的信息,获取到的信息为NSM的访问信息。

[root@QS-NSM ~]# snmpgetnext -v 2c -c public 10.10.3.165 .1.3.6
SNMPv2-MIB::sysDescr.0 = STRING: Linux QS-NSM 2.6.32-642.el6.x86_64 #1 SMP Tue May 10 17:27:01 UTC 2016 x86_64

配置SNMP代理后,通过代理配置的共同体名,同时请求为代理服务器本机地址,获取信息为被代理机器WSM上的信息

[root@QS-NSM ~]# snmpgetnext -v 2c -c cmty_myswitch 10.10.3.165 .1.3.6
SNMPv2-MIB::sysDescr.0 = STRING: Linux QS-WSM 2.6.32-220.el6.x86_64 #1 SMP Tue Dec 6 19:48:22 GMT 2011 x86_64

以下内容为通过SNMP v3版本获取信息的执行方式:

$ snmpgetnext -v 3 -n cmty_myswitch -u MD5DESUser -a MD5 -A "PasswordA" -x DES -X "PasswordX" -l authPriv localhost .1.3.6
SNMPv2-MIB::sysDescr.0 = STRING: Linux QS-WSM 2.6.32-220.el6.x86_64 #1 SMP Tue Dec 6 19:48:22 GMT 2011 x86_64

实现多设备代理

如果想使用相同的OID树代理多个设备,就相当于代理响应是代理设备,这样需要用到上下文。每个被代理的设备都需要配置一个独一无二的共同体名字符串来标记设备。

正常SNMP的控制是这样的:

view  systemview  included  .1.3.6.1  #定义一个包含.1.3.6.1下的所有内容的视图
com2sec notConfigUser  default public #标记'public' 作为'notConfigUser'的共同体名
group notConfigGroup v1  notConfigUser #标记'notConfigUser'为'notConfigGroup'的成员
group notConfigGroup v2c notConfigUser
access  notConfigGroup ""  any  noauth   exact  systemview none none

为了使代理能够访问复杂的远程设备,每一个被代理的设备使用V1或者V2c版本的共同体名。“cmty_remotehost1”与“cmty_remotehost2”为给被代理设备指定的新共同体名,通过这个名称标记设备。

com2sec -Cn ctx_remotehost1 notConfigUser  default   cmty_remotehost1
com2sec -Cn ctx_remotehost2 notConfigUser  default   cmty_remotehost2

使用prefix代替配置文件中的exact

access  notConfigGroup "" any noauth exact systemview none none

替换后内容为:

access  notConfigGroup ctx_remotehost any noauth prefix  systemview none none

配置V2版本的代理

proxy -Cn ctx_remotehost1  -v 2c -c public  remotehost1  .1.3

配置v3版本的代理

proxy -Cn ctx_remotehost2  -v 3 -u MD5DESUser -a MD5 -A "PasswordA" -x DES -X "PasswordX" -l authPriv  remotehost2  .1.3

配置完成,重启SNMP服务,然后对新的配置进行测试。

最终通过访问新设置的共同体名来获取查询结果,proxyhost为代理服务器地址

$snmpget -v2c -c cmty_remotehost1 proxyhost sysContact.0
举报
评论 0