A necessary evil: snmpd(8) and snmpctl(8) 訳してみた

JUGEMテーマ:コンピュータ


OpenBSD Journalへ投稿された記事

A necessary evil: snmpd(8) and snmpctl(8)
http://undeadly.org/cgi?action=article&sid=20071205120138

snmpは好きな人いないし実装もぐちゃぐちゃだが
やっぱり必要悪でOpenBSD上であたらしくsnmpdを再実装しようという提案。

Reyk Floeter writes in to tell us about his work on a new SNMP implementation...以下を訳してみた。(間違いなどあればご指摘ください)


 私はちょうどsnmpd(8)とsnmpctl(8)をインポートしたばかりで、新しいSNMPデーモンを
OpenBSDへの実装をこころみようとしている。 SNMPは 「Simple Network Management Protocol」
のことで、今もネットワークベンダによって、そしてネットワーク管理システム(NMS)において
社内ネットワークでとても広く使われている。
 SNMPは私が仕事で使っており、わたしにとってとても大事なものだ。つまり、OpenBSDベースの
我々のセキュリティアプライアンスはさまざまなSNMPシナリオへの統合を必要とする。我々はこのことのために
net-snmpを使わなくてはならなかったが、BSD Licenseはとてもよい反面、コードはとても悪く、大昔の
役に立たないものと移植の糊にあふれている。そして多くの問題がOpenBSDのnet-snmp portにはあり、
ユーザは様々なCPU高負荷、クラッシュ、バグを報告した。それは単なる苦痛だった。

 だから私は新しく実装をするためにSNMPを調べることにした。既存の代替物あるいはportsを好まないなら、
OpenBSDではそれを正しく再実装しようとするよね? 特権分離を使う新しいsnmpd(8)、ospfd/bgpd由来の
imsg フレームワーク、knf(訳注;man styleのそれとおもう)、security in mind、そしてsnmpctl(8)
のような素敵な制御プログラムがあれば本当に素敵で私たちの問題のいくらかを解決するだろう。そして、わたしは
claudio@ が小さなASN.1 BER実装を他のプロジェクトのために取り組みをはじめていると知った。
これは、SNMPメッセージの腹立たしいBERエンコーディングを取り扱うための完全なベースだ。
 私はOpenCONの間に何人かの人に私のアイデアと、取り組んでいた初期のコードについて話をした。 期待される
リアクションは常に「これはいいね、でもSNMPは好きじゃない」だった。SNMPは必要悪だ。
人々は同時に困惑し幸せだ。正気なSNMPを実装することなど可能だろうか?しっかりとしたものにすることは可能だろうか?
 このコードはまだとても初期の段階にあり、snmpctl(8)なんてなんの機能もないスタブでしかなく、
実装されたMIBは、ほとんどのMIB-2、SNMPv3-MIB, IF-MIBに限られる。私は次にIP-MIB,TCP-MIB,
UDP-MIBそしてBRIDGE-MIBを実装し、デーモンのインフラに取り組むことを続けることを計画する。
ここではSNMP BERメッセージを使わずにOpenBSDの他のデーモンへ向かって話す方法が要る。
つまりIMSG。snmpd(8)はそれらのデーモンへ接続したり、なにかのIMSG情報をクエリしたり、
外側の世界のためのSNMP MIBsを供給するだろう。
 OpenBSD固有MIBのセンサーステータスのような、いくつかの便利な情報をエクスポートすることも
計画している。
プラグインやモジュールAPIを提供することはしたくない。もし人々が
hyper-extensible codebaseを必要とするならば、彼らはnet-snmpを使える。
デーモンは現在 SNMPv2/3 RFC、SNMPv1/2メッセージ、とてもシンプルなcommunity名ベースの
セキュリティモデル(SNMPv2c)に基づいている。ユーザベースのセキュリティモデル(USM)は
後から加えられるだろうが、新しいSNMPv3標準の複雑さはちょっと怖い。それらはシンプルな
プロトコルをレイヤ、モジュール、抽象概念の混乱に変えた。ここに「SNMPのためのSSHベースの
セキュリティモデル」についてのとても興味深いドラフトがある。
http://tools.ietf.org/wg/isms/draft-ietf-isms-secshell/
だが、それはCiscoとHuawei によって定義されたものだ。
で、私はsnmpd(8)へテストと寄稿をして、OpenBSDソースツリーの中の src/usr.sbin/snmpd/READMEファイルをみて
コードを調べるボランティアをさがしています。まだビルドにおいては使えず、ビルドにもっていけるようになるほど満足する
には時間が必要でしょう。
繰り返しますが、なんの役にも立たない機能XYZを提案しないでください。追加云々のためにnet-snmpを使うのはかまいません。

コメント

このブログの人気の投稿

4.3.0 Temporary Lookup Failureでドツボってた話

tomcat起動時の環境変数でJRE_HOMEを指定するときに

何が得られて何処へ向かうかだけを問うべき