我只有 IPv6(不是双栈)系统,我想知道如何
从该系统发送 snmptrap? - 配置 snmpd 以便能够访问它?
我的意思是,snmp 是否可以在纯 IPv6 环境中使用?
答案1
根据你必须指定UDP6。
发送:trap2sink udp6:[::1]:162
在 snmpd.conf 中这将发送到本地主机 IPv6。
接收:snmptrapd udp6:162
答案2
首先启动 snmptrapd 来监听 IPv6:
/usr/sbin/snmptrapd -On -Lsd -f -p /run/snmptrapd.pid udp:162,udp6:162
然后发送一个陷阱:
/usr/bin/snmptrap -Lo -v2c -c public udp6:[2001:db:8::beef]:162 "" .1.3.6.1.2.1.31337.0
答案3
作为 root,我发出命令/usr/sbin/snmptrapd udp:162,udp6:162
并启动 snmptrapd。使用命令验证这一点ps -u root | fgrep snmptrapd
。然后,发送一个陷阱。就我而言,我的 IPv6 地址是 2601:602:8500:1b2:5a74:16a3:770f:40ce,所以我的命令是snmpinform -v 2c -m ALL -c public 2601:602:8500:1b2:5a74:16a3:770f:40ce 145 coldStart.0
。我必须使用 -m ALL 因为我的 MIB 文件的设置方式有问题 - 我需要解决这个问题。如果您收到错误消息“coldStart.0:未知对象标识符(未找到子 id:(顶部)-> ColdStart)”,那么您可能会遇到与我相同的问题 - 请告诉我。如果您没有收到错误消息,请忽略 -m ALL 选项。 ColdStart.0 是标准 OID 之一。我不知道这个测试的 OID 是什么。我什么做关心的是数字145。每次我发出命令时snmpinform
,选择不同的数字,最好更大。这将使您在跟踪日志文件时变得更加轻松。
这不是最好的解决方案。最好的解决方案是使用
snmpTrapdAddr upd6:162
/etc/snmp/snmptrapd.conf 文件中的参数,这就是我首先来到这里的原因。
如果我正确设置了 snmptrapd,那么 /var/log/syslog 中将会有一个条目,如下所示:
Jan 10 02:04:35 jeffs-desktop snmptrapd[405089]: 2021-1-10 2:4 0.0.0.0 Cold Start