• Arista EOSの強力なSNMP MIB検索ツール

 
 
Print Friendly, PDF & Email

はじめに

近年ネットワーク管理手法はテレメトリーなど進化を続けていますが、SNMP は今なおネットワーク管理に不可欠な機能の1つです。Arista EOSは数多くの標準SNMP MIBをサポートしており、既存のネットワーク管理インフラストラクチャへの親和性を確保しています。
ここでは、Arista EOSにおけるSNMP管理ツールをご紹介します。

MIBオブジェクトを直接参照する

Arista EOSではビルトインでsnmpwalk相当のコマンドが用意されており、自身のMIBオブジェクト値を参照するためにわざわざSNMPマネージャを用意する必要がありません。

まずは SNMPエージェントを有効にしてみましょう。

Switch# configure
Switch(config)# snmp-server community public

これで SNMP MIBオブジェクトを参照する準備ができました。

続いて、EOS CLIから”show snmp mib walk”コマンドで値を直接参照してみましょう。
オブジェクト名, OID の両方が使用可能です。

Switch# show snmp mib walk sysName
SNMPv2-MIB::sysName.0 = STRING: Switch.arista.lab
Switch# show snmp mib walk 1.3.6.1.2.1.1.5
SNMPv2-MIB::sysName.0 = STRING: Switch.arista.lab

“show snmp mib walk”コマンドはオブジェクト名の大文字小文字を区別せず、また正規表現も使用できます。MIB オブジェクトの一部しか覚えていない場合、また正確に覚えていない場合などには便利です。例えば、”admin” を含むオブジェクトを調べたいと仮定します。

Switch# show snmp mib walk admin
IF-MIB::ifAdminStatus[1] = INTEGER: up(1)
IF-MIB::ifAdminStatus[2] = INTEGER: up(1)
...

文字列 “admin” にマッチする IF-MIB の ifAdminStatusが取得できました。

注意点として、”show snmp mib walk”コマンドは複数のオブジェクトが正規表現にマッチする場合でも表示するものは一種類のみです。また ifname.1 など ドット(.)を含む文字列の検索では大文字小文字の無視や正規表現は使えず、ifName.1 (Nは大文字) と正確な値を指定する必要があります。

Switch# show snmp mib walk ifname.1
% ifname.1: Unknown Object Identifier (Sub-id not found: (top) -> ifname)
Switch# show snmp mib walk ifName.1
IF-MIB::ifName[1] = STRING: Ethernet1

Bashの活用

Arista EOSはカスタマイズなしのLinux OS上で動作しています。BashシェルからローカルのMIBオブジェクトにアクセスしてみましょう。

Switch# bash snmpwalk -v2c -c public localhost sysName
SNMPv2-MIB::sysName.0 = STRING: Switch.arista.lab

またBashシェルではリモート機器のMIBオブジェクトを取得することも可能です。

Switch# bash snmpwalk -v2c -c public 192.168.0.10 sysName
SNMPv2-MIB::sysName.0 = STRING: spine1.arista.lab

勘の冴えている方ならば、Arista EOS 内部に MIB定義ファイルが保持されていることに気づくでしょう。EOS 4.23.0F現在、EOS で使用するMIB定義ファイルは file:/usr/share/snmp/eos-mibs (一部 file:/usr/share/snmp/mibs) に存在します。上記 “show snmp mib walk”コマンドの正規表現で目当ての MIB を見つけられない時は総当たりで調べてみましょう。

Switch# bash grep -r OBJECT-TYPE /usr/share/snmp/eos-mibs | grep -i ifadminstatus
/usr/share/snmp/eos-mibs/IF-MIB.txt:ifAdminStatus OBJECT-TYPE
/usr/share/snmp/eos-mibs/OSPFV3-MIB.txt:    ospfv3IfAdminStatus OBJECT-TYPE

ifadminstatus を文字列に含むオブジェクトがifAdminStatus,  ospfv3IfAdminStatus と2種類見つかりました。なお、定義ファイルが存在しても該当MIB が取得可能とは限りませんのでご注意ください。

MIBオブジェクト名とOIDの相互変換

SNMP関連で常に時間を費やすのが、MIBオブジェクト名とOIDの対応調査です。
Arista EOSでは、MIBオブジェクト名とOIDの相互変換も簡単です。

“show snmp mib walk”コマンドでは結果がオブジェクト名で出力されていました。

Switch# show snmp mib walk sysName
SNMPv2-MIB::sysName.0 = STRING: Switch.arista.lab

これを”show snmp mib numeric all walk”コマンドでOID出力に変更してみましょう。

Switch# show snmp mib numeric all walk sysName
.1.3.6.1.2.1.1.5.0 = STRING: Switch.arista.lab

sysNameオブジェクトのOIDが .1.3.6.1.2.1.1.5 だということが分かります。

またArista EOSではMIBオブジェクトとOIDの相互変換用コマンド “show snmp mib translate” が用意されており、敢えて2通りのコマンドを実行して比較する必要はありません。(なお、正規表現には未対応です)

Switch# show snmp mib translate aristaIfInOctetRate
.1.3.6.1.4.1.30065.3.15.1.1.1.5
Switch# show snmp mib translate 1.3.6.1.4.1.30065.3.15.1.1.1.5
ARISTA-IF-MIB::aristaIfInOctetRate

さらに、”show snmp mib translate”コマンドはMIBオブジェクトだけでなくNotification (SNMPトラップ)にも対応しています。

Switch# show snmp mib translate linkUp
.1.3.6.1.6.3.1.1.5.4
Switch# show snmp mib translate 1.3.6.1.6.3.1.1.5.4
IF-MIB::linkUp

MIBオブジェクトとOIDの調査は意外に手間がかかるものでしたが、EOS を利用すれば調査が捗ること間違いなしです。

まとめ

Arista EOSで SNMP MIB を扱う際に検索性を向上させる手法をご紹介しました。

SNMPは長い歴史を持ち、ネットワーク管理に不可欠なプロトコルですが、そのユーザインターフェイスはあまり初心者に優しいとは言えないものでした。今回ご紹介した手法はSNMP MIBの扱いを易しくし、業務効率の向上にお役に立てることと思います。

リファレンス

以下リンクにAristaがサポートする SNMP MIB がリストされています。

また、Arista固有のMIB には定義ファイルがそれぞれリンクされています。
https://www.arista.com/en/support/product-documentation/arista-snmp-mibs

Follow

Get every new post on this blog delivered to your Inbox.

Join other followers: