【问题标题】:snmpset/get returns Timeout:no response for ipv6snmpset/get 返回超时:对 ipv6 没有响应
【发布时间】:2011-11-14 11:55:24
【问题描述】:

我正在使用 snmp 在 IPv6 模式下查询和设置一些 OID。我使用下面的 snmp 命令。我已经检查并配置它来监听 udp6:161。

snmpget -cpublic -v2c udp6:[2001:db8:3c4d::41a9:8e4e:a094:3840] .1.3.6.1.4.1.1429.5.1.1.2.5.6.0

结果为

Timeout: No Response from udp6:[2001:db8:3c4d::41a9:8e4e:a094:3840]

使用 ping 检查时,给定的 IP 地址也是有效的。更改了 conf 文件以包含 rwcommunity6 和 rocommunity6。我做错了什么?

【问题讨论】:

  • 当你嗅探被查询机器上的接口时,wireshark会告诉你什么?您确定 SNMP 代理有一个绑定到上述 IPv6 地址的侦听器吗?
  • wireshark 有一行用于获取/设置请求。根本没有找到响应语句。。没有端口不可达等错误
  • 确保您没有防火墙阻止此流量。还要检查 lsof 或 netstat 你是否真的在监听你的 IPv6 套接字。您可以将“r?community6”添加到配置中,但如果您不将侦听地址添加到 snmpd 命令(例如 udp6:161),那么 snmpd 将不会侦听 IPv6 套接字。
  • 是的。问题是监听端口。在 conf 文件中添加 udp:161 和 rwcommunity6 和 rocommunity6 后,它工作正常。

标签: linux ipv6 snmp net-snmp snmpd


【解决方案1】:

正如Cougar在评论中所说,你必须告诉snmpd来监听ipv6地址。默认情况下,snmpd 只监听 udp4:。要让它监听多个传输,你应该指定每个:

snmpd udp: udp6:

例如。此外,如果传入的数据包被拒绝授权,代理将不会响应,因此您始终可以使用转储标志 (-d) 运行 snmpd 以显示它正在接收的流量。如果它没有收到它,你已经发现了一个问题。但是,如果它没有响应,那么您已经找到了另一个。确保在前台运行它 (-f) 并记录到 stderr (-Le):

snmpd -f -Le -d udp: udp6:

【讨论】:

  • 如何以编程方式更改此内容
  • 在 snmpd.conf 文件中你可以输入agentaddress udp: udp6:。或者,如果您想在 C 中执行此操作,可以使用 snmpd_set_agent_address() 函数。
【解决方案2】:

这个命令有效吗?

snmpget -v 2c -c public localhost .1.3.6.1.2.1.1.1.0

它应该给出系统描述。如果是,则它已正确设置。否则需要使用命令snmpconf -g basic_setup进行设置

【讨论】:

  • 是的。问题是监听端口。在 conf 文件中添加 udp:161 和 rwcommunity6 和 rocommunity6 后,它工作正常。谢谢大家!
猜你喜欢
  • 1970-01-01
  • 2021-10-27
  • 1970-01-01
  • 1970-01-01
  • 2021-08-13
  • 2018-05-19
  • 1970-01-01
  • 2019-04-09
  • 2011-05-16
相关资源
最近更新 更多