`
hongliangpan
  • 浏览: 319625 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

利用snmp实现remote ping

阅读更多

利用snmp实现remote ping

作者:Yiming Gong
出处:http://www.nsfocus.com
主页:http://security.zz.ha.cn
日期:2005-02-04

声明:摘抄请保留上述作者和http地址


CNNOG1上我的ppt稿子中第18页的snmp部分引来了几封邮件,问该页的内容是什么意思,一次次的回答比较麻烦,干脆写个小东西说明一下。

先把ppt中该页内容引用如下(有细微改动):
? snmpset -v 1 -c private 192.168.1.1 .1.3.6.1.4.1.9.9.16.1.1.1.16.333 integer 6 /*ciscoPingEntryStatus
? snmpset -v 1 -c private 192.168.1.1 .1.3.6.1.4.1.9.9.16.1.1.1.16.333 integer 5
? snmpset -v 1 -c private 192.168.1.1 .1.3.6.1.4.1.9.9.16.1.1.1.15.333 s "yiming"
? snmpset -v 1 -c private 192.168.1.1 .1.3.6.1.4.1.9.9.16.1.1.1.2.333 integer 1 / *ciscoPingProtocol
? snmpset -v 1 -c private 192.168.1.1 .1.3.6.1.4.1.9.9.16.1.1.1.3.333 x "DB 96 20 C5"
? snmpset -v 1 -c private 192.168.1.1 .1.3.6.1.4.1.9.9.16.1.1.1.6.333 integer 1000 /*ciscoPingPacketTimeout
? snmpset -v 1 -c private 192.168.1.1 .1.3.6.1.4.1.9.9.16.1.1.1.4.333 integer 10 /*"ciscoPingPacketCount
? snmpset -v 1 -c private 192.168.1.1 .1.3.6.1.4.1.9.9.16.1.1.1.5.333 integer 111 /*ciscoPingPacketSize
? snmpset -v 1 -c 100wxs9dj 219.150.128.1 .1.3.6.1.4.1.9.9.16.1.1.1.16.333 i 1
? snmpwalk -v 1 -c private 192.168.1.1 1.3.6.1.4.1.9.9.16.1.1.1.12.333  /*ciscoPingAvgRtt

上述snmp命令实际上最终实现的是remote ping功能,ping我们都很熟悉,但什么是remote ping?
在 拥有自己网络的企业内,尤其是大型的ISP,网络维护的工作中一般都有一项固定任务:“测算几台路由器之间时延和丢包率”。通常是每天定时登录到路由器, 在路由器而非管理终端(此即remote)上面执行ping(或扩展ping)命令测量到其它router或指定地址的时延和丢包并将结果记录,进行后期 的各种分析比较工作。

为完成上述需求,如果不使用这个ppt里面谈到的方法,有3种选择:

*一种是笨办法,管理员每天定时从管理终端挨个telnet/ssh到路由器上,手工执行ping(或扩展ping)命令,并copy回结果,这个法子比较麻烦。
*方法2是通过expect之类的东西来写脚本,并设置cron等代替管理员定时登录路由器执行命令并取回数据,这个法子也不错,就是对管理员的编程有一些要求。
*方法3最简单,就是买商用的hpopenview之类支持remote ping的工具,不过感觉这个有点夸张。

实际上除了这三种方法以外,对于国内广泛使用的cisco的设备来说,还有不花钱又简单的方法,就是利用它自己的ping mib。
除了这个MIB外,我们还需要snmp的工具,当然可以选择商用的solarwind之类的东西,但是对于看此文的读者来说开源的NETSNMP应该是方便自己定制的不二选择。
然后就是snmp 通讯字串了,本例子里面以private表示。

最后是router的ip,本例子中以192.168.1.1表示。

打个茬,我之所以突然对这个remote ping感兴趣,就是因为前一段一个电信的朋友问有没有HP openview,他需要里面的rping模块来对他们省内的routers做remote ping,我手头自然是不会有这个了,但是感觉不至于非要商用的产品才能搞这个事情吧。好奇之下就在cisco的网站狂扒了一阵,先是找到了一篇cisco的Ping MIB Implementation文档,可惜如法炮制后发现不好使,后来发现是cisco的文档写错了,这是后话不提。不过这个文档中提到了cisco自己的私有mib, CISCO-PING-MIB-V1SMI  (参见2),知道了需要用到这个mib,这个任务就简单了(p.s. SNMP的相关概念请参阅其他文档)

首先要仔细查看CISCO-PING-MIB-V1SMI这个mib文件,搞清楚mib中每个分支的意思,其次为了方便使用命令时快速查找,我们还需要找到对应oid表 (参见3)

在CISCO-PING-MIB-V1SMI.my的开头部分我们看到如下内容:

-- snip --    
        
        A management station wishing to create an entry should
        first generate a pseudo-random serial number to be used
        as the index to this sparse table.  The station should
        then create the associated instance of the row status
        and row owner objects.  It must also, either in the same
        or in successive PDUs, create the associated instance of
        the protocol and address objects.  It should also modify
        the default values for the other configuration objects
        if the defaults are not appropriate.
        
-- end snip --  

读懂了这个mib文件,剩下的工作就简单得很了,我们按照对上面ppt的内容逐行解释一下大家立刻就能明白:

首先ciscoPingEntry的oid是1.3.6.1.4.1.9.9.16.1.1.1,如上面所引用内容,我们要先给它建立一个实例,这里随便选一个,333

1.    "ciscoPingEntryStatus"    "1.3.6.1.4.1.9.9.16.1.1.1.16"
第一步需要设置ping entry的状态,在mib文件中ciscoPingEntryStatus描述如下

--snip--
ciscoPingEntryStatus OBJECT-TYPE
    SYNTAX RowStatus
--    Rsyntax INTEGER {
--        active(1),
--        notInService(2),
--        notReady(3),
--        createAndGo(4),
--        createAndWait(5),
--        destroy(6)
--        }

-- end snip --  

    为了保险起见,我们先destroy(6)以前可能有的实例,这就是ppt中的第一行:
? snmpset -v 1 -c private 192.168.1.1 .1.3.6.1.4.1.9.9.16.1.1.1.16.333 integer 6

2.    然后我们要create这个实例,并等待后面的动作,设置 createAndWait(5), 这就是ppt中的第二行
? snmpset -v 1 -c private 192.168.1.1 .1.3.6.1.4.1.9.9.16.1.1.1.16.333 integer 5

3.    设置一个ciscoPingEntryOwner,这就是ppt中的第三行:
? snmpset -v 1 -c private 192.168.1.1 .1.3.6.1.4.1.9.9.16.1.1.1.15.333 s "yiming"

4.    设置使用IP协议来执行Ping动作,这就是ppt中的第四行:
? snmpset -v 1 -c private 192.168.1.1 .1.3.6.1.4.1.9.9.16.1.1.1.2.333 integer 1

5.    设置ping的destination IP地址,注意目的IP是16进制表示,这就是ppt中的第五行:
? snmpset -v 1 -c private 192.168.1.1 .1.3.6.1.4.1.9.9.16.1.1.1.3.333 x "DB 96 20 C5"

6.    设置超时时间,ppt中的第6行
? snmpset -v 1 -c private 192.168.1.1 .1.3.6.1.4.1.9.9.16.1.1.1.6.333 integer 1000

7.    设置要发出的ping packets数目,ppt中的第7行
? snmpset -v 1 -c private 192.168.1.1 .1.3.6.1.4.1.9.9.16.1.1.1.4.333 integer 10

8.    设置ping包的大小,ppt中的第8行
? snmpset -v 1 -c private 192.168.1.1 .1.3.6.1.4.1.9.9.16.1.1.1.5.333 integer 111

9.    将PingEntryStatus设置为1,激活开始执行命令动作,ppt中的第9行
? snmpset -v 1 -c 100wxs9dj 219.150.128.1 .1.3.6.1.4.1.9.9.16.1.1.1.16.333 i 1

10.    取结果的平均RTT值,ppt中的第10行
? snmpwalk -v 1 -c private 192.168.1.1 1.3.6.1.4.1.9.9.16.1.1.1.12.333

1到9的输出结果不必要copy出来了,这里单把第10个命令的输出结果copy如下:
Yiming# snmpwalk -v 1 -c private 192.168.1.1 1.3.6.1.4.1.9.9.16.1.1.1.12.333
SNMPv2-SMI::enterprises.9.9.16.1.1.1.12.333 = INTEGER: 28

也就是说从此次测算的router到dst IP的平均RTT是28毫秒。

同样,我们可以对照MIB表查询本次动作的其他各个指标,常见的如
.1.3.6.1.4.1.9.9.16.1.1.1.10.333
.1.3.6.1.4.1.9.9.16.1.1.1.12.333
.1.3.6.1.4.1.9.9.16.1.1.1.14.333 等等等等,
通过这些分支,我们可以得知执行每个实例的最小最大RTT, 接收,发送的报文数等等项目,具体内容大家可以查看这些mib文件的说明,此外我们可以改动实例值和目的IP,同时起n个remote ping的实例,对多个目的地址remote ping,然后将结果导入rrdtools之类的软件,这里就不废话了。



  本小文只是简单的举了个利用snmp实现remote ping的例子,其实在我们的日常工作中,还有非常多的技术问题等待挖掘,管理员利用开源的东西,自己动手搞一些东西出来,可能会比商用产品起到更好的效果。


--
链接:

NETSNMP        http://www.net-snmp.org/

CISCO-PING-MIB-V1SMI    ftp://ftp.cisco.com/pub/mibs/v1/CISCO-PING-MIB-V1SMI.my

CISCO-PING-MIB.oid         ftp://ftp-sj.cisco.com/pub/mibs/oid/CISCO-PING-MIB.oid

分享到:
评论

相关推荐

    Essential SNMP

    Remote Monitoring Revisited Section 2.9. Reverse Engineering SNMP Chapter 3. SNMPv3 Section 3.1. Changes in SNMPv3 Section 3.2. USM Section 3.3. VACM Section 3.4. SNMPv3 in the Real World...

    gosnmp:用GoLang编写的SNMP库

    高斯 GoSNMP是完全用Go编写的SNMP客户端库。 它提供Get,GetNext,GetBulk,Walk,BulkWalk,Set和Traps。 它使用SNMPv1 , SNMPv2c或SNMPv3支持IPv4和IPv6。 已针对linux / amd64和linux / 386对构建进行了测试。...

    使用SNMP网络管理软件管理网络设备和链路 (2).docx

    SNMP网络管理软件是基于此协议实现的工具,能有效地帮助管理员监控网络状态、性能和故障。 在本文中,我们将重点探讨如何使用SNMP网络管理软件——SolarWinds进行网络设备和链路的管理。首先,我们需要了解SNMP的...

    使用SNMP网络管理软件管理网络设备和链路.pdf

    5. **PING工具**:对于不支持SNMP的设备,可以通过PING工具进行基本的网络可达性和响应时间监控。 6. **SNMP操作**:SNMP协议定义了五种操作,包括GetRequest(获取参数值)、GetNextRequest(获取下一个参数值)、...

    使用SNMP网络管理软件管理网络设备和链路 (2).pdf

    1. **安装和配置软件**:了解SNMP网络管理协议,特别是RMON(Remote Monitoring)协议,以及SolarWinds软件的功能和使用方法。 2. **SNMP发现**:利用SNMP发现工具搜索网络中的SNMP代理,如交换机和路由器,通过指定...

    SNMP网络管理体系结构.doc

    RMON(Remote Network Monitoring)是SNMP的一个重要扩展,它允许网络管理员监控整个子网,而不仅仅是单个设备。RMON提供了如流量统计、过滤、捕获等功能,增强了网络监控的能力。 尽管SNMP在简化网络管理方面取得...

    H3C设备ttl

    5. 最后,点击MIB浏览器的“Set Value in Remote SNMP-Agent”选项,将新的TTL值255应用到远程设备上。这样就完成了修改H3C设备TTL值的过程。 请注意,进行这些操作时必须对网络管理和H3C设备的配置有深入理解,...

    某网管系统软件解决方案.pdf

    在诊断和监测方面,Node Manager提供网络诊断工具,如ping、remote ping、路由表检查等,用于测试网络连接。通过MIB浏览器,管理员可以深入了解设备状态,对于无法直接监控的设备,可以通过扩展SNMP子代理进行监视。...

    (4)cacti监控配置说明V1.0-20160126.doc

    本文主要针对Cacti的监控配置进行详细说明,帮助用户理解和掌握如何有效地配置Cacti,实现网络环境的实时监控。 一、Cacti监控界面介绍 Cacti的登录地址通常是IP/cacti,使用默认的账户admin,密码为cactipw。登录...

    计算机网络 管理 新

    这些消息主要用于诊断网络问题,例如测试网络连通性的ping命令就是基于ICMP协议实现的。 #### 二、SNMP版本与功能 - **SNMPv2**:相比SNMPv1,SNMPv2增加了管理站之间的通信机制,这主要体现在分布式网络管理中。...

    华为S3500系列操作手册-系统管理操作

    - **利用设备管理命令实现远程升级交换机配置举例**:详细介绍如何通过远程操作完成交换机的软件升级。 #### 系统维护与调试 - **系统基本配置** - **设置交换机的系统名**:为交换机命名,便于识别和管理。 - *...

    部分网络资料(内容较简略)用于新手参考学习

    此外,还有一些跨平台的远程控制软件,如TeamViewer和Chrome Remote Desktop,它们允许用户安全地访问和控制远端计算机。 "网管信息服务SNMP(简)",即简单网络管理协议,是一种广泛用于管理网络设备的标准。SNMP...

    Nagios部署.docx

    Nagios是一款开源的网络监控系统,主要用于监控网络服务(如SMTP、POP3、HTTP、NNTP、PING等)、主机资源(如处理器负荷、磁盘利用率等),以及自定义的应用程序。通过Nagios,管理员可以对整个IT基础设施进行实时...

    系统集成方案hpopenview简介.pdf

    - **网络诊断工具**:通过ping、remote ping、路由表检查等手段进行网络诊断。 - **MIB支持**:支持MIB阅读器,可以监视无法直接监控的设备,通过扩展SNMP子代理和MIB加载方式进行管理。 - **分组和权限管理**:通过...

    Nagios E Book - Linux Networking Monitoring

    - **Windows机器**:通过安装特定插件如NRPE(Nagios Remote Plugin Executor)来实现远程监控。 - **Linux/Unix机器**:可以直接在本地安装Nagios并配置相应的检查脚本。 - **Netware服务器**:同样需要安装额外的...

    网络安全概述(续).pptx

    例如,应启用口令加密,限制远程登录,并应用访问控制列表(Access Control List, ACL)来阻止不必要的通信,如Ping。此外,还应关闭CDP(Cisco Discovery Protocol)和其他不必要服务,以减少攻击面。对于Console和...

    nagios2.5

    7. **扩展性**:Nagios允许与其他IT管理工具集成,如SNMP、Zabbix、Icinga等,实现更全面的IT运维管理。 在Nagios 2.5这个版本中,可能包含以下组件: - **nagios**:主程序,负责执行监控任务和报警。 - **nrpe**...

Global site tag (gtag.js) - Google Analytics