ipv6でsnmpを使う


snmpとsnmptrapをインターネット越しで利用するためのメモ。

  • 自宅がipv6plusになっているため、ipv4で開放できるポートが限られている。当然well-knownポートは開放不可。
    • 標準のudp161,udp162以外を使う
  • ipv6だったらポートは全て開放できる。
    • ipv6(udp6)を使う

いつのまにか、VPSでipv6が使えなくなっていたので、諦める。

snmp,snmptrapをipv6で使う

snmpd(agent側)

snmpdの設定例。

/etc/snmp/snmpd.conf
#  ipv4 -- all / ipv6 -- all, if restrict on localhost [::1]
agentAddress udp:161,udp6:[::]:161

rocommunity  public 127.0.0.1
# ipv6 community
rocommunity6  public aaa:bbbb:cccc:dddd::/64
rocommunity6  public aaaa:bbbb:cccc:ddddd:eeee:ffff:1111:2222/128

snmpでの問合せ(manager側)

snmpwalkの例

# snmpwalk -v2c -cpublic udp6:vm-dmz.hrsk6  .1
# snmpwalk -v2c -cpublic udp6:aaaa:bbbb:cccc:ddddd:eeee:ffff:1111:2222  .1
# snmpwalk -v2c -cpublic udp6:[aaaa:bbbb:cccc:ddddd:eeee:ffff:1111:2222]  .1

snmptrapd

/etc/snmp/snmptrapd.conf
# snmpTrapdAddr udp:162
snmpTrapdAddr udp:162,udp6:162

snmptrapの発行

# snmptrap -v2c -cpublic udp6:host.domain '' systemStats 1 s "TEST TRAP" 
# snmptrap -v2c -cpublic udp6:.... '' systemStats 1 s "TEST TRAP" ; 
# snmptrap -v2c -cpublic udp6:[....]:162 '' systemStats 1 s "TEST TRAP" ; 

:162は省略可能。

FWでもipv6でポートを空ける

snmptrapを標準以外のポートで受ける

  • 標準のudp162以外のポートでsnmptrapを受信しようと設定したが、snmptrapdの起動でエラーになった。selinuxでPermissionDenyされていた。
  • selinuxをPermissiveにしてselinuxを再起動

trapは受信しているようだが、traphandleがうまく動いていないよう