【问题标题】:What is a SNMP ping?什么是 SNMP ping?
【发布时间】:2012-03-12 15:02:48
【问题描述】:

我知道 SNMP 是什么,我知道 ping 是什么。 “SNMP ping”是什么意思? SNMP 可用于查看网络上的设备是否仍处于活动状态。它用什么来做到这一点?我不会认为 SNMP ping 与 ICMP ping 相同?

【问题讨论】:

    标签: networking snmp ping


    【解决方案1】:

    正如您正确怀疑的那样,SNMP“ping”绝对不同于 ICMP ping。它的作用是尝试通过 SNMP 检索一些基本信息,例如 DNS 名称、系统名称、位置、系统类型、系统描述等,如果成功,则“ping”也被视为成功。

    但这不是 ICMP Ping (echo) 那样的标准。 SNMP 中没有特殊的“ping”命令 - 它只是用于扫描 SNMP 在某个目标设备上是否处于活动状态的工具的名称(通过检索一些常见的 MIB 值)。因此,正如您所期望的那样,由于它是有用的工具而不是标准,因此实现也会有所不同。

    但这在实践中影响不大,因为有一组“强制性”SNMP 记录,所以如果设备没有响应这些记录,您可以确定它没有运行 SNMP。要使 SNMP“ping”正常工作,必须在目标设备上启用 SNMP ……通常情况下,大多数情况下默认情况下并非如此,因此这与几乎可以普遍使用的 ICMP Ping 有很大不同。

    希望我回答了你的问题

    【讨论】:

      【解决方案2】:

      Ping 是“Packetized Internet Node Groper”,最初是一种实现 ICMP 回显响应的工具。 “Ping”现在通常用于传达检查设备是否在线、可用、响应的抽象概念。

      有 MIB 选项可以要求设备 ping 或跟踪路由某些东西——这似乎是要求设备向第三方进行 ICMP 并指示成功/失败——但“snmp ping”的通俗用法是通过询问静态数据点的简单 SNMP 问题来检查响应并获得响应。

      大多数设备对 1.3.6.1.2 子树中的请求提供一些响应,但这不是硬/快要求。例如,在 Unix(-like)命令行上,可以尝试“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。中间的交换机可以选择警告请求者“不可访问”,但也可以不。在这种情况下和其他人一样,如果没有响应,除了“没有响应”之外的消息或提示可能会有所帮助。

      【讨论】:

        【解决方案3】:

        典型的 SNMP ping 等同于 ICMP 回显。例如,IBM 声明它发出单个 ICMP 回显(到接收端的 SNMPD)并返回 minRTT。如果响应超时,则它会在 1 秒后发送另一个原始回显数据包,并在 2 秒后再次发送另一个。如果还没有响应,则返回-1。

        Cisco 也有一种类似的实现方式(SNMP GET/SET/PING-MIB)。但是,它绝对是特定于实现的。

        Source

        【讨论】:

          【解决方案4】:

          “ping”只是发送消息的通用术语,目的是查看您是否收到回复。

          ICMP 是在 IP 网络上“ping”主机的最常用方法。如果您从 IP 地址获得 ICMP 回显响应,那么您就知道那里的某些东西能够并且愿意接收和回复至少该地址的一些网络流量。收到对 ICMP ping 的回复不会告诉您任何其他网络服务的状态。没有收到回复根本不能告诉您任何事情:有很多原因可能导致您在任何特定时刻都没有收到对 ICMP ping 的响应。

          “ping”的概念适用于任何通信机制。一些网络协议具有执行“ping”的特定标准。对于大多数人来说,“ping”只是意味着尝试执行一些基本操作以查看它是否有效。例如,您可以通过连接到端口 80 并执行“HEAD / HTTP/1.0”来“ping”一个 HTTP 服务器。如果你得到一个 HTTP 响应,那么你就知道有一个 HTTP 服务器在运行。同样的想法也适用于 SNMP 或任何其他网络应用程序。

          【讨论】:

            【解决方案5】:

            在大多数情况下,我听说使用“SNMP Ping”,它指的是DISMAN PING。此方法允许您使用 SNMP 远程控制设备或主机,并告诉它“ping”另一台设备。通常,这将是传统的 ICMP ping。

            例如,假设您在笔记本电脑上,并且您有一个似乎需要很长时间才能加载页面的网络服务器。您无法快速判断是您与网络服务器之间的网络、网络服务器与数据库之间的网络还是其中一台服务器本身存在问题。您想首先消除网络,因此您首先从笔记本电脑 ping 网络服务器。没有损失,延迟看起来很合理。您从笔记本电脑 ping 数据库服务器,它看起来也不错。笔记本电脑数据库 ping 测试的问题在于它不能告诉您网络服务器和数据库之间发生了什么。理想情况下,您会登录到网络服务器并 ping 数据库,但您没有 shell 帐户。但是,您确实具有读/写 SNMP 访问权限。因此,您决定使用笔记本电脑中的“snmpset”到网络服务器来创建一个表(用于 ping 结果)并指定一个目标(数据库服务器)来 ping。网络服务器 snmpd 启动从网络服务器到数据库的 ICMP ping 并将结果存储在表中。然后,您从笔记本电脑上执行“snmpget”以提取网络服务器-数据库 ping 结果。

            您可能会看到“snmp ping”的其他上下文可能只是从 SNMP 客户端到 SNMP 守护进程的snmpget,以确认 SNMP 正在工作。

            【讨论】:

              【解决方案6】:

              据我了解,SNMP ping 是 RFC 2925 中定义的一种

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

              如果 SNMP 代理供应商表明设备支持此 RFC,则您可以使用 SNMP ping 对其进行监控。否则,它将不起作用。

              这与“正常 ping”(基于 ICMP)完全不同。

              【讨论】:

                【解决方案7】:

                与 ICMP ping 一样,SNMP ping 只是 SNMP getrequest 的一种形式,用于检查任何运行了标准 SNMP 代理以进行监控的设备的活动性。当管理这些设备的管理系统查询自动发现时很有用。作为请求的一部分,任何 sysOid 都可用于查询设备。

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2017-12-05
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2014-06-07
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多