flat7th

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なし
RReqPDURRspPDU
RRspPDUなし
TrapPDUなし
GetPDUGetResponsePDU
GetNextPDUGetResponsePDU
SetPDUGetResponsePDU(正常: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が定められている

MSDNのサイトより引用


  • その他: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