SNMP:3 エージェントの拡張
created 2005-11-16 modified 2009-01-13
- 構成
- マネージャ - マスタエージェント - サブエージェント
- 自分がやりたいことをサブエージェントとして拡張
- マスタとかサブとかの用語は実装技術によりまちまち
- プロセス配置
- 別プロセス
- 同一プロセス
- カーネルモジュール
- 実例
- SNMP Proxy
- SMUX
- DPI
- AgentX
- EMANATE
- WinSNMP
3.1 SNMP Proxy
- 概要
- BulkではないただのGetでも1PDU内に複数VarBindがあるため、VarBindによってサブを使い分ける機能がないと破綻する。で、必然的にSMUXなどと同じになる。
- 通信:UDP
3.2 SMUX
- 概要
- SNMP MUltipleXing protocol
- 通信:TCP
- 文書:RFC1227
- 役者の呼び方
役割 | 呼び方 |
---|---|
マスタ | SNMPエージェント |
サブ | SMUXピア |
- メッセージ
- 注意:通常のSNMPのPDUフォーマットを流用する
- メッセージの方向
メッセージ | マスタ | サブ | |
---|---|---|---|
OpenPDU | |||
ClosePDU | |||
RReqPDU | |||
RRspPDU | |||
TrapPDU | |||
GetPDU | |||
GetNextPDU | |||
SetPDU | |||
SOutPDU |
SOutPDUにはrollbackまたはcommitの情報が入る
- 応答
要求 | 応答 |
---|---|
OpenPDU | 正常:なし、エラー:ClosePDU |
ClosePDU | なし |
RReqPDU | RRspPDU |
RRspPDU | なし |
TrapPDU | なし |
GetPDU | GetResponsePDU |
GetNextPDU | GetResponsePDU |
SetPDU | GetResponsePDU(正常:error-status=ゼロ、エラー:同=非ゼロ) |
SOutPDU | なし |
3.3 DPI
- 概要
- SNMP Distributed Protocol Interface ver.2
- 目的:SNMPエージェントを再コンパイルせずにエンドユーザが動的にMIBを追加・削除できること
- 通信:TCP、UDP
- 文書:RFC1592
- ベンダ:IBM
- 役者の呼び方
役割 | 呼び方 |
---|---|
マスタ | SNMPエージェント |
サブ | クライアント(サブエージェント) |
- メッセージ
- メッセージの方向
メッセージ | マスタ | サブ | |
---|---|---|---|
OPEN | |||
CLOSE | |||
ARE_YOU_THERE | |||
REGISTER | |||
UNREGISTER | |||
GET | |||
GETNEXT | |||
GETBULK | |||
SET | |||
COMMIT | |||
UNDO | |||
RESPONSE | |||
TRAP |
3.4 AgentX
- 概要
- Agent eXtensibility protocol ver.1
- 目的:装置内、およびLAN内のMIBモジュールを束ねること
- 通信:TCP、Unixドメインソケット(装置内)
- 文書:RFC2741(Protocol)、RFC2742(MIB)
- 同種の概念の中で最初にIETFの標準化プロセスに乗った
- 役者の呼び方
役割 | 呼び方 |
---|---|
マスタ | AgentXマスタエージェント |
サブ | AgentXサブエージェント |
- メッセージ
- 注意:通常のSNMPのPDUフォーマットとは別。上記はすべてAgentX-FUGAHOGE-PDUの略記。
- メッセージの方向
メッセージ | マスタ | サブ | |
---|---|---|---|
Open | |||
Close | |||
Register | |||
Unregister | |||
Get | |||
GetNext | |||
GetBulk | |||
TestSet | |||
CommitSet | |||
UndoSet | |||
CleanupSet | |||
Notify | |||
Ping | |||
IndexAllocate | |||
IndexDeallocate | |||
AddAgentCaps | |||
RemoveAgentCaps | |||
Response |
3.5 EMANATE
- 概要
- Enhanced MANagement Agent Through Extensions
- ベンダ:SNMPリサーチ
- 通信:TCP、Unixドメインソケット、ライブラリコール
3.6 WinSNMP
- 概要
- 実はWinSNMP APIはマネージャ側のAPI群。エージェント側のAPIはSNMP Utility API
- ベンダ:Microsoftが仕様を定める。サードパーティも提供可能
- 通信:ライブラリコール
- サブエージェントはすべてDLL。いくつかのエントリポイントと、通信用のAPIが定められている
- 図
- その他:APIのドキュメントはわりとまとまっている。見出しのみコピペ。
- Opening and closing a WinSNMP application
- Opening and closing a WinSNMP session
- Managing traps and notifications
- Working with variable binding lists
- Working with protocol data units
- Sending SNMP messages
- Receiving SNMP messages
- Managing object identifiers
- Freeing WinSNMP descriptors
- Setting the entity and context translation mode
- Managing the retransmission policy
- Writing WinSNMP applications with multiple threads
- Registering an SNMP agent application