MRTGの設定覚書

FreeBSDのルーターの設定をやり直してから、MRTGでSNMPの情報が取得できなくなっていた。
net-snmpをインストールしてsnmpwalkをかけても返事が返ってこないことから、症状はSNMPのパケットがうまく出ていないらしい。
で、ipfwでSNMPのudpポートを開く設定に。ここで問題なのは、udpは本来一方的垂れ流しだが、SNMPのqueryはoutgoingで適当に選ばれたportから対象のport
161にqueryが飛ぶと、返事が対象のport 161からoutgoing…

FreeBSDのルーターの設定をやり直してから、MRTGでSNMPの情報が取得できなくなっていた。

net-snmpをインストールしてsnmpwalkをかけても返事が返ってこないことから、症状はSNMPのパケットがうまく出ていないらしい。

で、ipfwでSNMPのudpポートを開く設定に。ここで問題なのは、udpは本来一方的垂れ流しだが、SNMPのqueryはoutgoingで適当に選ばれたportから対象のport 161にqueryが飛ぶと、返事が対象のport 161からoutgoingで選ばれたportに帰ってくるということ。だから単純にport 161へのoutgoingを許可しただけだと、返事が入ってこないのでNo Responseになってしまう。

で、ふと思い出したのが、これってntpの場合と同じだな。

で、ipfwの設定で以下の設定を追加する。

ipfw add pass udp from ${iip} to any 161 keep-state

keep-stateって指定がいったい何の役に立つのかと思っていたが、ここで役に立つのね。keep-stateを指定しておくとoutgoingしたudpに対する返事が帰ってくることを想定してしばらくの間、firewallに穴を開けておいてくれるわけだ。

で、めでたくsnmpwalkでルーターの設定が取得できるようになった。

あとはMRTGの設定を書くだけか。