什么是SNMP ping?

7

我知道什么是SNMP,也知道什么是ping。那么什么是“SNMP ping”?SNMP可以用来检查网络上的设备是否还活着...它用什么来实现这一点呢?我认为SNMP ping不同于ICMP ping。

7个回答

9
正如你正确猜测的那样,SNMP“ping”绝对不同于ICMP ping。它的作用是尝试通过SNMP检索一些基本信息,例如DNS名称、系统名称、位置、系统类型、系统描述等等。如果成功,则认为“ping”也成功了。
但是,这不是任何一种标准方式,就像ICMP Ping(echo)一样。在SNMP中没有特殊的“ping”命令——它只是一个用于扫描目标设备上的SNMP是否存活(通过检索一些常见的MIB值)的工具名称。因此,由于它是一个有用的工具而不是一个标准,实现也有所不同,这是可以预料的。
但是,在实践中,这几乎没有什么影响,因为有一组“强制性”的SNMP记录,因此,如果设备不响应这些记录,则可以非常确定它不运行SNMP。当然,要使SNMP“ping”工作,目标设备必须启用SNMP……这通常情况下并不是默认情况,因此与ICMP Ping相比,这是一个很大的区别,ICMP Ping几乎可以普遍使用。
我希望我回答了你的问题。

3
Ping最初是“Packetized Internet Node Groper”的缩写,原本是一种实现ICMP回显响应的工具。如今,“Ping”通常用于传达检查设备是否在线、可用和响应的抽象概念。
有MIB选项可要求设备对某物进行ping或跟踪路由 - 这似乎是要求设备向第三方进行ICMP并指示成功/失败 - 但“snmp ping”的口语用法是通过询问静态数据点的简单SNMP问题来检查响应性能,并获得响应。
大多数设备都会对1.3.6.1.2子树中的请求作出一些响应,但这不是硬性要求。例如,在类Unix的命令行上,可以尝试“snmpget -v 1-c public 192.168.0.1 1.3.6.1.2.1.1.1.0”来询问“192.168.0.1”的名称。设备可能会响应;如果访问(在此情况下为版本1、社区字符串“public”)不正确,则通常不会NAK。中间的交换机可能会选择警告请求者“不可达”,但也可能不会。在这种情况和其他情况下,如果没有响应,则除“无响应”之外的消息或提示可能很有帮助。

2

SNMP ping通常等同于ICMP echo。例如,IBM表示它向接收端的SNMPD发出单个ICMP echo并返回minRTT。如果响应超时,则在1秒后发送另一个原始echo数据包,然后再在2秒后发送另一个。如果仍未响应,则返回-1。

Cisco也有类似的实现(SNMP GET / SET / PING-MIB)。但这显然是特定于实现的。

来源


1
“ping”只是一个通用术语,用于发送消息以查看是否能够收到响应。
ICMP是在IP网络上“ping”主机的最常见方法。如果您从IP地址收到ICMP回显响应,则知道某些东西能够并愿意接收和回复该地址的至少一些网络流量。收到对ICMP ping的回复并不告诉您有关任何其他网络服务状态的信息。不收到回复不会告诉您任何信息:为什么您可能在任何特定时刻都无法收到ICMP ping的响应有数十个原因。
“ping”的概念适用于任何通信机制。一些网络协议具有执行“ping”的特定标准。对于大多数人来说,“ping”只是尝试执行一些基本操作以查看其是否有效。例如,您可以通过连接到端口80并执行“HEAD / HTTP/1.0”来“ping” HTTP服务器。如果您收到HTTP响应,则知道存在一个HTTP服务器。相同的想法适用于SNMP或任何其他网络应用程序。

1
在我听到“SNMP Ping”这个术语的大多数情况下,它是指DISMAN PING。该方法允许您使用SNMP远程控制设备或主机,并告诉其“ping”另一个设备。通常,这将是传统的ICMP ping。
例如,假设您正在使用笔记本电脑,您有一个Web服务器似乎需要很长时间才能加载页面。您无法快速确定是您和Web服务器之间的网络问题,还是Web服务器和数据库之间的网络问题,或者是其中一台服务器出现了问题。您想先排除网络问题,因此首先从笔记本电脑ping Web服务器。没有丢失,延迟看起来合理。您从笔记本电脑ping数据库服务器,结果也很好。笔记本电脑-数据库ping测试的问题在于它不能告诉您Web服务器和数据库之间发生了什么。理想情况下,您将登录到Web服务器并ping数据库,但您没有shell帐户。但是,您确实具有读/写SNMP访问权限。因此,您决定从笔记本电脑使用'snmpset'到Web服务器创建一个表格(用于ping结果)并指定要ping的目标(数据库服务器)。Web服务器snmpd从Web服务器向数据库发起ICMP ping并将结果存储在表中。然后,您从笔记本电脑执行'snmpget'以获取Web服务器-数据库ping结果。
在其他情况下,你可能会看到 "SNMP ping",这可能只是从 SNMP 客户端到 SNMP 守护程序的一个 snmpget,以确认 SNMP 是否正常工作。

0

类似于ICMP ping和SNMP ping,SNMP getrequest的一种形式,用于检查运行标准SNMP代理以进行监视的任何设备的存活状态。当管理这些设备的管理系统查询自动发现时,它非常有用。任何sysOid都可以用作请求的一部分来查询设备。


0
在我看来,SNMP ping 是 RFC 2925 中定义的那个。

https://www.rfc-editor.org/rfc/rfc2925

如果SNMP代理供应商表示设备支持此RFC,则可以使用SNMP ping来监视它。否则,它将无法工作。
这与“正常ping”(基于ICMP)完全不同。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接