CentOS(Rocky Linux)を使った、ネットワーク機器のSNMP設定の検証を行う方法の備忘録です。
中規模以上のネットワークシステムでは、SNMPを用いた監視システムが導入されているため、機器出荷前に動作検証を行う必要がありますので、その方法について記載します。
環境条件の確認
本記事は、以下の環境でL2スイッチの設定を確認する場合について記載しています。
下図では現地にリモート監視サーバーzabbixが設置されているのですが、zabbixを模擬するのはコストがかかるため、Rocky Linuxを代用サーバーとして活用します。
- SNMPマネージャ(リモート監視サーバーzabbix):10.10.10.200 →今回Rocky Linuxで代用
- SNMPエージェント(検証対象のL2スイッチ3台):10.10.10.118 , 10.10.10.119, 10.10.10.120
- コミュニティ名:zabbix(L2/L3スイッチに設定されるコミュニティ名)
SNMPマネージャのインストール
Rocky LinuxはCentOS系ですのでインターネットとの接続状態から、以下コマンドでsnmpをインストールします。
検証ツール類は、snmp-utilsに入っているので同時にインストールしておきます。
# yum -y install net-snmp # yum -y install net-snmp-utils
SNMPマネージャの設定
SNMPマネージャの設定ファイルは、/etc/snmp/snmpd.conf です。
snmpd.confはインストール時に生成されていますが、そのままでは何も動作しないため、検証環境に合わせてOIDとipアドレスの記述が必要です。
以下はコミュニティ名"zabbix"に接続した例です。OID(後述説明)はとりあえず「.1.3.6.1.2.1.1」を含むように設定しておきます。
# Make at least snmpwalk -v 1 localhost -c public system fast again. # name incl/excl subtree mask(optional) view systemview included .1.3.6.1.2.1.1 view systemview included .1.3.6.1.2.1.25.1.1 view systemview included .1 # sec.name source community com2sec local localhost private com2sec mynet 10.10.10.200/16 zabbix com2sec public default zabbix # incl/excl subtree mask view all included .1 80 #view system included system fe view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc
設定を反映するためには、snmpdを再起動します。
# systemctl restart snmpd
snmpdの動作状態は、以下でプロセスの有無を確認できます。
# ps aux | grep snmpd
MIBとOIDについて
MIB (Management Information Base) とは、SNMPエージェントが持っている機器情報の集合体です。
MIBはオブジェクトID(OID)という単位で区切られており、OID=「1.3.6.1.2.1.1.5.0」のような表記がなされてます。
SNMPは、このOIDの番号をもとに機器からレスポンスを得る仕組みですので、OIDを正しく記載しないとレスポンスが無しとなります。
検証用途のみであるときは、標準OIDである機器名「1.3.6.1.2.1.1.5.0」が取得できれば必要十分ですので、snmpd.confには「.1.3.6.1.2.1.1」を記載して、SNMPの監視対象に入れておきます。
またMIBには、標準MIBと拡張MIBがあり、拡張MIBはベンダ固有の番号体系となります。
OIDの詳細は以下ページを参照すると理解が深まると思います。
ファイアウォールの解除
Linuxシステムのファイアウォール(firewalld)は、デフォルトで自動起動となっているため、解除は必須です。
ネットワーク機器の検証でLinuxを使う場合は、Firewallはまず不要ですので、systemctlでdisableにしておくとよいでしょう。
ファイアウォールの一時停止
# systemctl stop firewalld
ファイアウォールの自動起動を停止
# systemctl disable firewalld
pingで疎通確認
SNMPマネージャ側からL2スイッチへpingを行い、疎通確認をします。
# ping 10.10.10.118 # ping 10.10.10.119 # ping 10.10.10.120
snmpwalkによる応答確認
SNMPは、snmpwalkコマンドでレスポンスが確認できます。
SNMPマネージャ(Rocky Linux)からL2スイッチ対して、コミュニティ名とHOST名のOIDを付して問い合わせると、ホスト名がレスポンスされ、適切に設定できていることが確認出来ます。
[root@localhost snmp]# snmpwalk -v1 -c zabbix 10.10.10.118 1.3.6.1.2.1.1.5.0 SNMPv2-MIB::sysName.0 = STRING: SW-1FB-03 [root@localhost snmp]# snmpwalk -v1 -c zabbix 10.10.10.119 1.3.6.1.2.1.1.5.0 SNMPv2-MIB::sysName.0 = STRING: SW-1FE-01 [root@localhost snmp]# snmpwalk -v1 -c zabbix 10.10.10.126 1.3.6.1.2.1.1.5.0 SNMPv2-MIB::sysName.0 = STRING: SW-2FA-03
snmpgetコマンドでもいいのですが、snmpwalkのほうがMIBのツリー配下全体を取ってくれるのでおすすめです。(「.1」で指定すると.1配下のMIDが全部レスポンスされます。)
応答がno responseとなる場合は以下の要因が考えられますので、一つずつ切り分けしてください。
- L2/L3スイッチにpingが通っていない
- Linux側でfirewalldが動作している
- snmpマネージャが起動していない、または、再起動していない
- コミュニティ名、または、OIDの指定が間違っている
- L2スイッチ側でsnmpの設定が出来ていない
OIDを変更すると様々な情報がとれる
OIDは機器の情報を番号に変えたもので、OIDを変更すると機器から様々な応答を取ることが出来ます。
OIDの番号体系は機器のメーカーごとに異なりますが、機器情報、インタフェース情報、IP通信情報などの基本的な部分は各メーカ共通です。
例えば、OIDを"1.3.6.1.2.1.1.1.0"(機器に関する情報)に変更すると以下のような情報がとれます。
- 機種:ApresiaNP2100-48T4X
- ファームバージョン:Ver.1.11.01
[root@localhost snmp]# snmpwalk -v1 -c rts-zabbix 10.10.10.118 1.3.6.1.2.1.1.1.0 SNMPv2-MIB::sysDescr.0 = STRING: ApresiaNP2100-48T4X Gigabit Ethernet Switch Ver.1.11.01