見出し画像

TWSNMP FC/FKの改善:ネットワーク構成図自動作成のためのLLDP-MIBを発見

今朝は3時半に助手の猫さんが、いつもより早く起こしてくれました。昨日の夜、行き詰まった開発の課題を解決するために時間が必要だと察したのかもしれません。

昨日からTWSNMP FC/FKの改善のための開発をしています。描画アイテムをキー操作でサイズ調整する処理は、簡単に実装できました。毎回ダイアログを開いてサイズの数値を入力するストレスがなくなりました。

uキーで大きく、dキーで小さくなります。

ネットワーク構成図を作成するためのMIBとして、昨日は

が使えるのではと思っていました。Juniperが対応しているものです。
大間違いでした。CiscoやvyOSはLLDP-MIB

に対応していることを発見しました。(ネットワークエンジニアの方々には常識なのかもしれませんが)

昨日、試しにTWSNMP FCに読み込んでみましたが、ここで大問題が発生しました。
なんと、このMIBはインターネット標準ではなくIEEEの標準として定義されていたのです。このためTWSNMP FC/FKのMIBツリーに表示できません。
数値のOID(1.0)を指定して取得するとvyOSとCisco Nesus 9000から取得できました。
LLDP-MIBの定義ファイルもダウンロードしたものだとエラーになります。

昨日の夜は、ここで力尽きてしいました。

今朝は、まずMIBファイルを修正しました。
ダウンロードしたファイルの最初のほうを

std  OBJECT IDENTIFIER ::= { iso 0 }
iso8802  OBJECT IDENTIFIER ::= { std 8802 }
ieee802dot1  OBJECT IDENTIFIER ::= { iso8802 1 }
ieee802dot1mibs  OBJECT IDENTIFIER ::= { ieee802dot1 1 }


lldpMIB MODULE-IDENTITY
    LAST-UPDATED    "200505060000Z"
    ORGANIZATION    "IEEE 802.1 Working Group"
    CONTACT-INFO
            "WG-URL: http://grouper.ieee.org/groups/802/1/index.html
            WG-EMail: stds-802-1@ieee.org

             Contact: Paul Congdon
              Postal: Hewlett-Packard Company
                      8000 Foothills Blvd. 
                      Roseville, CA 95747
                      USA
                 Tel: +1-916-785-5753
              E-mail: paul_congdon@hp.com"
    DESCRIPTION
        "Management Information Base module for LLDP configuration,
        statistics, local system data and remote systems data
        components.

        Copyright (C) IEEE (2005).  This version of this MIB module
        is published as subclause 12.1 of IEEE Std 802.1AB-2005;
        see the standard itself for full legal notices."
    REVISION        "200505060000Z"
    DESCRIPTION
        "Published as part of IEEE Std 802.1AB-2005 initial version."
          ::= { ieee802dot1mibs 2 }

のように修正して解決しました。MIBのツリー構造を追加しました。

TWSNMP FCのMIBの扱いに関しては大改造が必要でした。

  • MIBツリーのルートをinternet(1.3.6.1)からiso(1)にする

  • MIBブラウザーのOIDの補正機能を改善する

  • LLDP-MIBの組み込みとシャーシIDなどを文字列にする処理を追加する

  • 取得したMIBの値を文字列にする処理を1つにまとめる

などなど、やっているうちにあっという間に、2時間たちました。
TWSNMP FCでLLDP-MIBを読み込んで取得できるようになりました。

vyOSからlldpLocalSystemDataを取得すると

のような感じです。
シャーシのIDや機能がルーターだけ有効になっていることがわかります。
Ciscoは

のような感じです。シャーシのIDは長いです。ブリッジとルーターだけ対応のようです。
接続している相手は、lddRemTable

で確認できます。

の赤い矢印のvyOSからみて、青と黄色の矢印のCisco Nexsus 9K とFortigateに接続しているという関係が取得できています。
vyOSのコマンドで確認すると

ということです。

すごい自動発見機能で、自動ネットワーク構成図が作れそうな気がしてきて、かなり、楽しくなってきました。

でも、今朝は、時間切れです。

明日に続く

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