SNMP (Simple Network Management Protocol)
1 機能概要
SNMP (Simple Network Management Protocol) の設定を行うことにより、SNMP管理ソフトウェアに対してネットワーク管理情報のモニタと変更を行うことができるようになります。
このとき本L2スイッチはSNMPエージェントとして動作します。
本L2スイッチはSNMPv1、SNMPv2c、SNMPv3による通信に対応しています。またMIB (Management information Base) として RFC1213 (MIB-II) に対応しています。
SNMPv1およびSNMPv2では、コミュニティと呼ばれるグループの名前を相手に通知し、同じコミュニティに属するホスト間でのみ通信します。このとき、読み出し専用 (read-only) と読み書き可能 (read-write) の2つのアクセスモードに対して別々にコミュニティ名を設定することができます。
このようにコミュニティ名はある種のパスワードとして機能しますが、その反面、コミュニティ名は必ず平文でネットワーク上を流れるという特性があり、セキュリティ面では脆弱と言えます。よりセキュアな通信が必要な場合はSNMPv3の利用を推奨します。
SNMPv3では通信内容の認証、および暗号化に対応しています。SNMPv3はコミュニティの概念を廃し、新たにUSM (User-based Security Model) とVACM (View-based Access Control Model) と呼ばれるセキュリティモデルを利用することで、より高度なセキュリティを確保しています。
本L2スイッチの状態を通知するSNMPメッセージをトラップと呼びます。本L2スイッチではSNMP標準トラップを送信します。SNMPv1では通知メッセージの形式として、相手の受信確認応答を要求しないtrapリクエストを指定しますが、SNMPv2c, SNMPv3ではtrapリクエストか相手に受信確認応答を要求するinformリクエストかを選択できます。
SNMPv1およびSNMPv2cで利用する読み出し専用と送信トラップ用のコミュニティ名は、本L2スイッチでは特にデフォルト値を決めていませんので、適切なコミュニティ名を設定してください。ただし、上述の通りコミュニティ名はネットワーク上を平文で流れますので、コミュニティ名にログインパスワードや管理パスワードを決して使用しないよう注意してください。
初期設定では、各SNMPバージョンにおいてアクセスが一切できない状態となっています。また、トラップの送信先ホストは設定されておらず、どこにもトラップを送信しません。
2 用語の定義
特になし
3 機能詳細
各SNMPバージョンの主な特徴とルーターの設定方針について以下に説明します。
具体的な設定例については後述する "5 コマンド実行例" をご覧ください。
3.1 SNMPv1
コミュニティ名によりSNMPマネージャとエージェント間の認証を行います。
管理する本L2スイッチをコミュニティというゾーンで分割して管理を行います。
- MIBオブジェクトへのアクセス
snmp-server community コマンドで設定されたコミュニティ名でのアクセスを許可します。
IPアドレスが設定されているVLANインターフェースからアクセスすることができます。
- SNMPトラップ
snmp-server host コマンドで設定されたホストへ本L2スイッチの状態を送信することが可能です。
snmp-server enable trap コマンドでどのようなトラップを送信するか設定します。
3.2 SNMPv2c
SNMPv1と同様に、コミュニティ名によりSNMPマネージャとエージェント間の認証を行います。
snmp-server community コマンドでSNMPv2cによりアクセスするときに使用するコミュニティ名を設定します。
また、本バージョンから新たにGetBulkリクエストやInformリクエストに対応します。
MIBオブジェクトをまとめて効率よく取得したり、本L2スイッチからの通知パケットに対する応答確認を行うことができます。
- MIBオブジェクトへのアクセス
snmp-server community コマンドで設定されたコミュニティ名でのアクセスを許可します。
IPアドレスが設定されているVLANインターフェースからアクセスすることができます。
- SNMPトラップ
snmp-server host コマンドで設定されたホストへ本L2スイッチの状態を送信することが可能です。
またコマンドの設定により送信メッセージの形式をトラップかInformリクエストかを選択することができます。
Informリクエストでは相手に受信確認応答を要求します。
3.3 SNMPv3
SNMPv3はSNMPv2までの全機能に加えてセキュリティ機能が強化されています。
ネットワーク上を流れるSNMPパケットを認証・暗号化することによって、SNMPv1、v2cでのコミュニティ名とSNMPマネージャのIPアドレスによるセキュリティ機能では実現できなかった盗聴、なりすまし、改竄、リプレイ攻撃などからSNMPパケットを守ることができます。
- セキュリティ
SNMPv3では以下のセキュリティ機能を提供します。
- USM (User-based Security Model)
USMはメッセージレベルのセキュリティ確保を行うためのモデルで、共通鍵暗号に基づく認証と暗号化、メッセージストリーム改竄に対する防御を行います。
- セキュリティレベル
ユーザが所属するグループの設定のパラメータでセキュリティのレベルを指定することができます。
セキュリティレベルは認証・暗号化の組み合わせで以下のように分類できます。
- noAuthNoPriv : 認証・暗号化を行わない
- AuthNoPriv : 認証のみ行う
- AuthPriv : 認証・暗号化を行う
- ユーザ認証
認証はデータの完全性 (改竄されていないこと) とデータの送信元の認証を行うための手続きでHMACを使用します。
認証鍵でハッシュを取ることによりメッセージが改竄されていないことと送信者がユーザ本人であることを確認できます。
ハッシュアルゴリズムとしてHMAC-MD5-96とHMAC-SHA-96をサポートします。
- 暗号化
SNMPv3では、管理情報の漏洩を防ぐ目的で、SNMPメッセージの暗号化を行います。
暗号方式はDES-CBCとAES128-CFBをサポートします。
snmp-server user コマンドで、ユーザ名と所属するグループ名、ユーザ認証方式、暗号化方式、パスワードを設定することができます。
グループ設定で指定したセキュリティレベルに応じて、必要な認証と暗号化の設定を行います。
- VACM (View-based Access Control Model)
VACMはSNMPメッセージのアクセス制御を行うモデルです。
- グループ
VACMでは、後述のアクセスポリシーをユーザ毎ではなくグループ毎に定義します。
snmp-server user コマンドのgroupオプションでユーザが所属するグループを設定します。ここで指定したグループ毎にアクセス可能なMIBビューを設定します。
- MIBビュー
SNMPv3では、グループ毎にアクセスできるMIBオブジェクトの集合を定義できます。このときMIBオブジェクトの集合をMIBビューと呼び、MIBビューは、オブジェクトIDのツリーを表すビューサブツリーを集約することで表現されます。
snmp-server view コマンドでMIBビューの設定を行います。ビューサブツリー毎にMIBビューに含めるか除外するかを選択できます。
- アクセスポリシー
VACMでは、グループ毎に読み込み、書き込みが許可されるMIBビューを設定します。
snmp-server group コマンドでグループ名、セキュリティレベル、MIBビューを設定します。
MIBビューは snmp-server view コマンドで設定されているMIBビューとなります。
- SNMPトラップ
snmp-server host コマンドで設定されたホストへ本L2スイッチの状態を送信することが可能です。
トラップを送信するには、あらかじめ snmp-server user コマンドでユーザを設定する必要があります。
またコマンドの設定により送信メッセージの形式をトラップかInformリクエストかを選択することができます。
Informリクエストでは相手に受信確認応答を要求します。
4 関連コマンド
関連コマンドについて、以下に示します。
コマンドの詳細は、コマンドリファレンスを参照願います。
- 関連コマンド一覧
操作項目 |
操作コマンド |
SNMP通知メッセージの送信先ホストの設定 |
snmp-server host |
送信する通知メッセージタイプの設定 |
snmp-server enable trap |
システムコンタクトの設定 |
snmp-server contact |
システムロケーションの設定 |
snmp-server location |
SNMPコミュニティの設定 |
snmp-server community |
SNMPビューの設定 |
snmp-server view |
SNMPグループの設定 |
snmp-server group |
SNMPユーザーの設定 |
snmp-server user |
SNMPコミュニティの情報の表示 |
show snmp community |
SNMPビューの設定内容の表示 |
show snmp view |
SNMPグループの設定内容の表示 |
show snmp group |
SNMPユーザーの設定内容の表示 |
show snmp user |
5 コマンド実行例
5.1 SNMPv1 設定例
SNMPv1によるネットワーク監視を以下の条件で実現します。
- 読み出し専用のコミュニティ名"public"を設定します。
- トラップの送信先を"192.168.100.11"に設定し、トラップのコミュニティ名を"snmptrapname"とします。
L2SW(config)# snmp-server community public ro ... 1
L2SW(config)# snmp-server host 192.168.100.11 traps version 1 snmptrapname ... 2
5.2 SNMPv2c 設定例
SNMPv2cによるネットワーク監視を以下の条件で実現します。
- 読み書き可能なコミュニティ名を "private" とします。
- 通知メッセージの送信先を"192.168.100.12"とし、通知タイプをinformリクエスト形式、通知先のコミュニティ名を "snmpinformsname" とします。
L2SW(config)# snmp-server community private rw ...1
L2SW(config)# snmp-server host 192.168.100.12 informs version 2c snmpinformsname ...2
5.3 SNMPv3 設定例
SNMPv3によるネットワーク監視を以下の条件で実現します。
- internetノード(1.3.6.1)以下を表すビューを "most" とします。
- mib-2ノード(1.3.6.1.2.1)以下を表すビューを "standard" とします。
- ユーザーグループ "admins" を作成し、"admins" グループに所属するユーザーに mostビュー へのフルアクセス権を与えます。
- ユーザーグループ "users" を作成し、"users" グループの所属するユーザーに standardビュー への読み出しアクセス権を与えます。
- "admins" グループに所属するユーザー "admin1" を作成します。
認証アルゴリズムに "HMAC-SHA-96" を採用し、パスワードを "passwd1234" とします。
暗号化アルゴリズムに "AES128-CFB" を採用し、暗号パスワードを "passwd1234" とします。
- "users" グループに所属するユーザー "user1" を作成します。
認証アルゴリズムに "HMAC-SHA-96" を採用し、パスワードを "passwd5678" とします。
- トラップ形式(応答確認なし)の通知メッセージを 192.168.10.3 に通知させます。
- Informリクエスト形式の通知メッセージを 192.168.20.3 に通知させます。
L2SW(config)# snmp-server view most 1.3.6.1 include ... 1
L2SW(config)# snmp-server view standard 1.3.6.1.2.1 include ... 2
L2SW(config)# snmp-server group admins priv read most write most ... 3
L2SW(config)# snmp-server group users auth read standard ... 4
L2SW(config)# snmp-server user admin1 admins auth sha passwd1234 priv aes passwd1234 ... 5
L2SW(config)# snmp-server user user1 users auth sha passwd5678 ... 6
L2SW(config)# snmp-server host 192.168.10.13 traps version 3 priv admin1 ... 7
L2SW(config)# snmp-server host 192.168.20.13 informs version 3 priv admin1 ... 8
6 注意事項
- ご使用のSNMPマネージャが対応するSNMPバージョンを事前にご確認ください。使用するSNMPバージョンに合わせて本L2スイッチの設定を行う必要があります。
- SNMPv3に関連する以下の機能には対応していません。
- プロキシ機能
- snmpV2サブツリー (1.3.6.1.6) 以降のMIBオブジェクトへのアクセス。また、SNMP経由によるSNMPv3関連の設定変更はサポートしていません。
- 以下のコマンドは、古いバージョン(v2.00.08以前)に戻すとコマンド設定に失敗します。結果として、SNMPでMIB変数の取得設定ができなくなります。
- snmp-server community COMMUNITY RO_RW [interface IFNAME]
7 関連文書