見出し画像

実践SNMP教科書の復刻中に見つけたことのメモ

浦和レッズ クラブワールドカップ勝利!
夜中に観戦していたので今朝は眠くて開発はお休みしました。
夜中に観戦するために昨日は8時ぐらいに寝ました。11時15分にアラームをセットしましたが、11時ぐらいから新人助手の猫さんが大騒ぎして起こしてくれました。ご飯をあげに1階まで降りていって目がさめました。
FIFA+というサイトで中継を観たのですが、前半は接続できませんでした。ハーフタイムにやっと接続できて後半からやっと観られました。次の試合は、マンチェスター・シティーとです。朝3:00からなので早起きすればよいだけなので楽です。

さて、実践SNMP教科書の復刻をしていますが、2つほど興味深いことを見つけたのでメモしておきます。

SNMPのTLS対応

SNMPの通信のセキュリティーを強化するためにTLSに対応していることを関連する仕様(RFC)の検索で見つけました。NET-SNMPのドキュメントを見ていたら実際に使う方法がありました。

ポイントは

  • NET-SNMP 5.6以上が必要

  • ビルド時のオプションで明示的にTLSの利用を指定する必要がある

  • マネージャとエージェントの証明書が必要

なようです。サンプルを試すのはできそうですが、実際に組み込んで使うのは大変そうです。GO言語のSNMPパッケージで対応していたら、そのうち試そうと思います。

Debian 12上でNET-SNMPをインストールしてもMIBファイルがない

SNMPの拡張MIBモジュールから拡張エージェントを作るためにDebianの環境にNET-SNMPをインストールしてみました。
snmptranslateやmib2cのコマンドを実行すると異常に多くのエラーが表示されます。

Did not find 'ucdExperimental' in module UCD-SNMP-MIB (/usr/share/snmp/mibs/LM-SENSORS-MIB.txt)
Unlinked OID in LM-SENSORS-MIB: lmSensors ::= { ucdExperimental 16 }
Undefined identifier: ucdExperimental near line 32 of /usr/share/snmp/mibs/LM-SENSORS-MIB.txt
Cannot adopt OID in UCD-SNMP-MIB: logMatchRegExCompilation ::= { logMatchEntry 101 }
Cannot adopt OID in UCD-SNMP-MIB: logMatchErrorFlag ::= { logMatchEntry 100 }
Cannot adopt OID in UCD-SNMP-MIB: logMatchCycle ::= { logMatchEntry 11 }
Cannot adopt OID in UCD-SNMP-MIB: logMatchCount ::= { logMatchEntry 10 }

OIDのリンクが解決できないというエラーです。よく見ると、以前はインストールされていた標準MIBの定義モジュールファイルがありません。どうやら、Debian 12では、snmp-mibs-downloaderというパッケージをインポートする必要があり、さらに、snmp-mibs-downloaderは、non-freeのパッケージなので、/etc/apt/source.listに

のようにnon-feeeを追加してから

apt update
apt install snmp-mibs-downloader

を実行すれば、標準MIBもダウンロードされます。
これで、OIDのリンクエラーは解消されました。

明日に続く

ここから先は

0字
SNMPの仕様について解説した本やサイトは、沢山あると思います。 独自の拡張MIBを自分で設計してMIBファイルやエージェントを作る方法を解説した教科書はないと思います。

20年近く前に書いた「実践SNMP教科書」を現在でも通用する部分だけ書き直して復刻するマガジンです。最近MIBの設計で困っている人に遭遇し…

開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。