Aug 05, 2006

Zebra snmp bug

SNMP SMUX 経由で Zebra ospfd の OSPF-MIB にアクセスしようとしたら, できなくなっていた. 前回やったときは動いており,何も変えていないはずだったのだが.

バージョンあげたら snmpd がパスワードを受け付けなくなったという報告を見つけた.

snmpd 5.3.0.1 stopped accepting smux peer's password

2005/08/05 現在,follow は無い.以下自分の環境でも確かめてみた.

snmpd.conf は以下のとおり.

# cat /etc/snmp/snmpd.conf
com2sec readonlyuser  default      public
group   readonlygroup v1           readonlyuser
group   readonlygroup v2c          readonlyuser
view    all           included     .1               80
access  readonlygroup ""           any    noauth    exact  all none none
smuxpeer .1.3.6.1.2.1.14 zebraospf
syslocation Here
syscontact yasu[at]sfc.wide.ad.jp

snmpd のバージョン.

# /usr/local/sbin/snmpd -v

NET-SNMP version: 5.3.0.1

smux モジュールをデバッグしながら snmpd を起動.

# /usr/local/sbin/snmpd -Dsmux -c /etc/snmp/snmpd.conf > & /dev/null

ospfd.conf に smux peer 行を入れて,ospfd を起動.

# grep smux /usr/local/etc/ospfd.conf
smux peer .1.3.6.1.2.1.14 zebraospf
# /usr/local/sbin/ospfd -d

/var/log/snmpd.log にログが出る.passwd はあっているのに failed authentication.

# cat /var/log/snmpd.log
smux_conf: parsing registration for: .1.3.6.1.2.1.14 zebraospf
smux_conf: password is: zebraospf
smux_init: [smux_init] done; smux listen sd is 6, smux port is 199
NET-SNMP version 5.3.0.1
smux: [smux_accept] Calling accept()
[smux_accept] accepted fd 8 from 127.0.0.1:49833
smux: [smux_open_process] version 0, len 32, type 2
smux: [smux_open_process] smux peer: SNMPv2-SMI::mib-2.14
smux: [smux_open_process] len 24, type 6
smux: [smux_open_process] smux peer descr: zebra-0.95b
smux: [smux_open_process] len 11, type 4
smux: [smux_open_process] smux peer passwd: zebraospf
smux: [smux_open_process] len 0, type 4
refused smux peer: oid SNMPv2-SMI::mib-2.14, descr zebra-0.95b
smux: [smux_close] sending close to fd 8, reason 5
smux: [smux_accept] peer on 8 failed authentication
smux: [smux_accept] Calling accept()
[smux_accept] accepted fd 8 from 127.0.0.1:49834

net-snmp-5.3.1.tar.gz でも同様になった.net-snmp-5.1.3.1.tar.gz に ダウングレードしたら直った!

# less /var/log/snmpd.log
smux_conf: parsing registration for: 1.3.6.1.2.1.14 zebraospf
smux_init: [smux_init] done; smux listen sd is 8, smux port is 199
NET-SNMP version 5.1.3.1
smux: [smux_accept] Calling accept()
[smux_accept] accepted fd 10 from 127.0.0.1:57228
smux: [smux_open_process] version 0, len 32, type 2
smux: [smux_open_process] smux peer: SNMPv2-SMI::mib-2.14
smux: [smux_open_process] len 24, type 6
smux: [smux_open_process] smux peer descr: zebra-0.95b
smux: [smux_open_process] len 11, type 4
smux: [smux_open_process] smux peer passwd: zebraospf
smux: [smux_open_process] len 0, type 4
accepted smux peer: oid SNMPv2-SMI::mib-2.14, descr zebra-0.95b
smux: [smux_accept] fd 10
smux: [smux_pdu_process] Processing 0 bytes
smux: [smux_pdu_process] Processing 16 bytes
smux: [smux_pdu_process] type is 98
smux: [smux_rreq_process] smux subtree: SNMPv2-SMI::mib-2.14
smux: [smux_rreq_process] priority -1
smux: [smux_rreq_process] operation 2

# snmpwalk -v 2c -c public localhost OSPF-MIB::ospf | head
OSPF-MIB::ospfRouterId.0 = IpAddress: 203.178.143.91
OSPF-MIB::ospfAdminStat.0 = INTEGER: enabled(1)
OSPF-MIB::ospfVersionNumber.0 = INTEGER: version2(2)
OSPF-MIB::ospfAreaBdrRtrStatus.0 = INTEGER: false(2)
OSPF-MIB::ospfASBdrRtrStatus.0 = INTEGER: false(2)
OSPF-MIB::ospfExternLsaCount.0 = Gauge32: 115
OSPF-MIB::ospfExternLsaCksumSum.0 = INTEGER: 0
OSPF-MIB::ospfTOSSupport.0 = INTEGER: false(2)
OSPF-MIB::ospfOriginateNewLsas.0 = Counter32: 1
OSPF-MIB::ospfRxNewLsas.0 = Counter32: 290

うーんこういうの嫌だ.

追記:libsnmp を使ってアプリケーションを書いていたのだが,この ダウングレードにより MIB モジュール OSPF-MIB が見つからないと 言うようになった.API側で明示的に OSPF-MIB を読み込まないと いけないのだろうが,ドキュメントが無い・少なくて,やり方がわからない. snmp_parse_args() の中とか見ればわかるのだろうが…. ダウングレードで飛び越えた中に, 指定された MIB モジュールがあるかどうか デフォルトディレクトリ(/usr/local/share/snmp/mibs/)だけは探す, という変更があったのだろう. このMIBモジュールの読み込みは,5.1.3.1, 5.2 ではダメで, 結局 5.3.0.1 に戻した.

つまり,zebra で使う library や snmpd は 5.3.0.1 未満でなくてはダメ(5.2 は調べてない)で,アプリケーションでリンクするのは 5.3.0.1 以上でなくては ダメ,というややこしいことに…….

Posted at 04:32 in howto | WriteBacks (0) | Edit
WriteBacks
TrackBack ping me at
http://www.sfc.wide.ad.jp/~yasu/nblog/howto/zebra-snmp-bug.trackback
Post a comment

writeback message: Ready to post a comment.