~nabeken/diary/

Gentoo Linux(6年くらい)とFreeBSD(1年くらい)とOpenBSD(新参者)を使う日々。


IHANet BGP peering overview

muninのIPv6サポート

Posted on Fri Oct 09 22:32:50 +0900 2009 by nabeken

サーバの状態を監視するツールであるmuninのIPv6対応に挑戦しました。結果、無事にIPv6経由で値を取得することができるようになりました。その顛末です。

muninのIPv6対応は2年前からすでに要望が上がっていました。しかし、現状もIPv6対応はされていません。理由はmuninが使っているライブラリNet::ServerのupstreamがIPv6対応を行なっていないためです。 そこで、自力でNet::ServerをIPv6対応することでmunin-nodeのIPv6化を試みました。

Net::Serverの成果物はgithubで公開しています。

対応したebuildも公開しています。

次にmunin本体のIPv6対応です。こちらは簡単でmunin-updateで使用しているIO::Socket::INETを機械的にIO::Socket::INET6へ置き換えるだけです。今回はプラグインは数が多いので無視しています。 成果物はパッチで公開しています。

対応したebuildも公開しています。

副作用

今回はやや手抜きをしてすべてIPv6のソケットを使っています。そのため、IPv4からの通信はすべて::ffff:<IPv4ADDR>に見えてしまいます。そのため、allow, denyを修正する必要があります。例:

allow ^127\.0\.0\.1$

allow ^::ffff:127.0.0.1$

になります。IPv6はそのまま書けます。ちなみに、IO::Socket::INET6のバージョンが古いと、ホスト名に’*’を渡してもIPv4でしかbindしないというバグがあります。最新版を使いましょう。

一応、しばらく寝かせたらNet::Serverへ還元しようと思いますが、Net::Server自体もあまりメンテされていないため需要があるかもわかりません。