SNMPの設定例

SNMPの基本的な設定例を説明します。

設計の目的

SNMPを使ってSEILを管理する場合に注意すべきことを伝えることが、目的です。 SNMP を使ったネットワーク管理の経験者を本稿の対象にしています。

設計

管理対象の SEIL が一台があり、 SEIL に PC 1 台が接続されている環境を想定します。 PC が管理ホストになります。 PC が SNMP プロトコルを使って SEIL を管理します。
192.168.0.2/24
   PC ---------------- SEIL -------- ハブ
                   lan0    lan1        
SEIL の lan0 が 192.168.0.1/24 と設定され、 SEIL の lan1 が 10.0.0.1/24 と設定され、 PC に静的にアドレス 192.168.0.2/24 が設定されているとします。 ハブを使って SEIL の lan1 をリンクアップさせてあります。

SNMP の動作確認に、 ネットワーク管理ツールが必要になります。 本稿では、SNMP の動作確認のために net-snmp を使います。 PC 上で net-snmp がインストールされており、 net-snmp のコマンドが動作することが必要です。 net-snmp のインストールの仕方は本稿の範囲外とします。 net-snmp の詳細については、 http://www.net-snmp.org/ を参照してください。

コンフィグレーション

利用例を示すため、 PC からの v1, v2c, v3 の問い合せに応答可能になるように、 SEIL に設定します。 PC から v1, v2c の問い合せに SEIL を応答させる場合:
snmp enable
snmp community "NAISHO"	
と設定します。 この場合、コミュニティ名を NAISHO としています。 v3 にて応答させる場合、user 設定を追加します:
snmp user add "USER3" auth-protocol hmac-sha1 auth-password "MY-AUTH-PASS" privacy-protocol des-cbc privacy-password "MY-PRIVACY-PASS"	
この場合、ユーザ名が USER3, 認証方式が hmac-sha1, 認証パスワードが MY-AUTH-PASS, 暗号方式が des-cbc, 暗号パスワードが MY-PRIVACY-PASS, としています。
次に、SNMPトラップの利用例を示すために、 snmp 設定をします。トラップを PC に送信させる場合:
snmp trap enable
snmp trap add 192.168.0.2	
と SEIL に設定します。 そして「死活監視」機能を使って 10.0.0.1 を監視する場合、 上記のトラップの設定に以下を追加します:
snmp trap watch add 10.0.0.1	

snmp の設定の途中で、 snmp コマンドの引数の与え方に不明な点がある場合、 "help snmp" が助けになるかもしれません。 それ以上の情報はコマンドリファレンスを参照してください。 以上で利用例を示すための snmp 設定が終ります。

SEIL で SNMP を実運用する場合、 パケットフィルタ機能 filter コマンドと filter6 コマンドで、 SEIL の snmp を守ってください。 許された管理ホストから SEIL の UDP の 161 番ポートへの通信のみを許可してください。

動作確認

まず以下のコマンドを使って SNMP の設定の確認からはじめます。
show config snmp
show status function
show log function snmp	
"show config snmp" で snmp 設定を確認可能です。 "show status function" で snmp と snmp trap が有効か無効かを確認します。 最後に、 "show log function snmp" で snmp の記録を参照します。 特に異常な記録が出ていないことを確認します。
次に、 PC から SEIL に SNMP で問い合せを行い、 SNMP の動作を確認します。 v1 の場合、PC において以下のような実行例が得られます:
PC$ snmpwalk -v 1 -c NAISHO 192.168.0.1 sysDescr
SNMPv2-MIB::sysDescr.0 = STRING: SEIL/B1 ver 3.40 (Folia)	
v2c の場合、PC において以下のような実行例が得られます:
PC$ snmpwalk -v 2c -c NAISHO 192.168.0.1 sysDescr
SNMPv2-MIB::sysDescr.0 = STRING: SEIL/B1 ver 3.40 (Folia)	
v3 の場合、PC において以下のような実行例が得られます:
PC$ snmpwalk -v 3 -a SHA -A MY-AUTH-PASS -l authPriv -u USER3 -x DES -X MY-PRIVACY-PASS 192.168.0.1 sysDescr
SNMPv2-MIB::sysDescr.0 = STRING: SEIL/B1 ver 3.40 (Folia)	
ただし以上の例の "PC$" は PC のシェルプロンプトを示しています。
次に、SEIL の送信する trap を確認します。 そのために PC で snmptrapd を以下のように実行して準備します:
PC$ sudo snmptrapd -m +:./mibs/IIJ-SEIL-MIB.txt:./mibs/IIJ-SEIL-V1TRAP.txt -n -f -Lo -F"%h:%j:%k %H:%J:%K b=%b a=%a\n P=%P\n N=%N T=%T w=%w W=%W q=%q\n  %V\n  %v;\n\n"	
snmptrapd の出力結果の理解を助けるため、 snmptrapd の引数にて、 IIJ-SEIL-MIB.txt と IIJ-SEILV1TRAP.txt を追加で読み込む指定と、 出力形式の指定を行っています。 snmptrapd の引数指定の詳細は、 http://www.net-snmp.org/ を参照してください。 以上で trap の確認の準備が整いました。 SEIL/B1 lan1 のネットワークケーブルを抜いて、 lan1 をリンクダウンさせ、 SEIL から trap を送信させて確認します。 以下は lan1 がリンクダウンした場合の、 snmptrapd の出力結果です:
15:47:36 15:47:36 b=UDP: [192.168.0.1]:63552->[0.0.0.0] a=192.168.0.1
        P=TRAP, SNMP v1, community NAISHO
        N=IIJ-SEIL-MIB::seilB1 T=2553875 w=2 W=Link Down q=0
         IF-MIB::ifIndex.2 = INTEGER: 2
         IF-MIB::ifAdminStatus.2 = INTEGER: up(1)
  IF-MIB::ifOperStatus.2 = INTEGER: down(2);	
上記の例の ifIndex の 2 番が、 SEIL/B1 の lan1 をさします。