📄 rfc2257.txt
字号:
Network Working Group M. Daniele
Request for Comments: 2257 Digital Equipment Corporation
Category: Standards Track B. Wijnen
T.J. Watson Research Center, IBM Corp.
D. Francisco, Ed.
Cisco Systems, Inc.
January 1998
Agent Extensibility (AgentX) Protocol
Version 1
Status of this Memo
This document specifies an Internet standards track protocol for the
Internet community, and requests discussion and suggestions for
improvements. Please refer to the current edition of the "Internet
Official Protocol Standards" (STD 1) for the standardization state
and status of this protocol. Distribution of this memo is unlimited.
Copyright Notice
Copyright (C) The Internet Society (1998). All Rights Reserved.
Table of Contents
1 Introduction......................................................4
2 The SNMP Framework................................................4
2.1 A Note on Terminology.........................................4
3 Extending the MIB.................................................5
3.1 Motivation for AgentX.........................................5
4 AgentX Framework..................................................6
4.1 AgentX Roles..................................................7
4.2 Applicability.................................................8
4.3 Design Features of AgentX.....................................9
4.4 Non-Goals....................................................10
5 AgentX Encodings.................................................10
5.1 Object Identifier............................................11
5.2 SearchRange..................................................13
5.3 Octet String.................................................14
5.4 Value Representation.........................................14
6 Protocol Definitions.............................................16
6.1 AgentX PDU Header............................................16
Daniele, et. al. Standards Track [Page 1]
RFC 2257 AgentX January 1998
6.1.1 Context..................................................19
6.2 AgentX PDUs..................................................20
6.2.1 The agentx-Open-PDU......................................20
6.2.2 The agentx-Close-PDU.....................................21
6.2.3 The agentx-Register-PDU..................................22
6.2.4 The agentx-Unregister-PDU................................25
6.2.5 The agentx-Get-PDU.......................................27
6.2.6 The agentx-GetNext-PDU...................................29
6.2.7 The agentx-GetBulk-PDU...................................30
6.2.8 The agentx-TestSet-PDU...................................31
6.2.9 The agentx-CommitSet, -UndoSet, -CleanupSet
PDUs.....................................................33
6.2.10 The agentx-Notify-PDU...................................33
6.2.11 The agentx-Ping-PDU.....................................34
6.2.12 The agentx-IndexAllocate-PDU............................35
6.2.13 The agentx-IndexDeallocate-PDU..........................36
6.2.14 The agentx-AddAgentCaps-PDU.............................37
6.2.15 The agentx-RemoveAgentCaps-PDU..........................38
6.2.16 The agentx-Response-PDU.................................39
7 Elements of Procedure............................................41
7.1 Processing AgentX Administrative Messages....................42
7.1.1 Processing the agentx-Open-PDU...........................42
7.1.2 Processing the agentx-IndexAllocate-PDU..................43
7.1.3 Using the agentx-IndexAllocate-PDU.......................45
7.1.4 Processing the agentx-IndexDeallocate-PDU................47
7.1.5 Processing the agentx-Register-PDU.......................48
7.1.5.1 Handling Duplicate OID Ranges........................50
7.1.6 Processing the agentx-Unregister-PDU.....................51
7.1.7 Processing the agentx-AddAgentCaps-PDU...................51
7.1.8 Processing the agentx-RemoveAgentCaps-PDU................52
7.1.9 Processing the agentx-Close-PDU..........................52
7.1.10 Detecting Connection Loss...............................53
7.1.11 Processing the agentx-Notify-PDU........................53
7.1.12 Processing the agentx-Ping-PDU..........................54
7.2 Processing Received SNMP Protocol Messages...................54
7.2.1 Dispatching AgentX PDUs..................................55
7.2.1.1 agentx-Get-PDU.......................................57
7.2.1.2 agentx-GetNext-PDU...................................58
7.2.1.3 agentx-GetBulk-PDU...................................59
7.2.1.4 agentx-TestSet-PDU...................................60
7.2.1.5 Dispatch.............................................60
7.2.2 Subagent Processing of agentx-Get, GetNext,
GetBulk-PDUs.............................................61
7.2.2.1 Subagent Processing of the agentx-Get-PDU............61
7.2.2.2 Subagent Processing of the
agentx-GetNext-PDU...................................62
Daniele, et. al. Standards Track [Page 2]
RFC 2257 AgentX January 1998
7.2.2.3 Subagent Processing of the
agentx-GetBulk-PDU...................................62
7.2.3 Subagent Processing of agentx-TestSet,
-CommitSet, -UndoSet, -CleanupSet-PDUs...................63
7.2.3.1 Subagent Processing of the
agentx-TestSet-PDU...................................64
7.2.3.2 Subagent Processing of the
agentx-CommitSet-PDU.................................65
7.2.3.3 Subagent Processing of the
agentx-UndoSet-PDU...................................65
7.2.3.4 Subagent Processing of the
agentx-CleanupSet-PDU................................65
7.2.4 Master Agent Processing of AgentX Responses..............66
7.2.4.1 Common Processing of All AgentX Response
PDUs.................................................66
7.2.4.2 Processing of Responses to agentx-Get-PDUs...........66
7.2.4.3 Processing of Responses to
agentx-GetNext-PDU and agentx-GetBulk-PDU............67
7.2.4.4 Processing of Responses to
agentx-TestSet-PDUs..................................68
7.2.4.5 Processing of Responses to
agentx-CommitSet-PDUs................................68
7.2.4.6 Processing of Responses to
agentx-UndoSet-PDUs..................................69
7.2.5 Sending the SNMP Response-PDU............................69
7.2.6 MIB Views................................................69
7.3 State Transitions............................................70
7.3.1 Set Transaction States...................................70
7.3.2 Transport Connection States..............................71
7.3.3 Session States...........................................73
8 Transport Mappings...............................................74
8.1 AgentX over TCP..............................................74
8.1.1 Well-known Values........................................74
8.1.2 Operation................................................74
8.2 AgentX over UNIX-domain Sockets..............................75
8.2.1 Well-known Values........................................75
8.2.2 Operation................................................75
9 Security Considerations..........................................76
10 Acknowledgements................................................77
11 Authors' and Editor's Addresses.................................77
12 References......................................................78
13 Full Copyright Statement........................................80
Daniele, et. al. Standards Track [Page 3]
RFC 2257 AgentX January 1998
1. Introduction
This memo defines a standardized framework for extensible SNMP
agents. It defines processing entities called master agents and
subagents, a protocol (AgentX) used to communicate between them, and
the elements of procedure by which the extensible agent processes
SNMP protocol messages.
2. The SNMP Framework
A management system contains: several (potentially many) nodes, each
with a processing entity, termed an agent, which has access to
management instrumentation; at least one management station; and, a
management protocol, used to convey management information between
the agents and management stations. Operations of the protocol are
carried out under an administrative framework which defines
authentication, authorization, access control, and privacy policies.
Management stations execute management applications which monitor and
control managed elements. Managed elements are devices such as
hosts, routers, terminal servers, etc., which are monitored and
controlled via access to their management information.
Management information is viewed as a collection of managed objects,
residing in a virtual information store, termed the Management
Information Base (MIB). Collections of related objects are defined
in MIB modules. These modules are written using a subset of OSI's
Abstract Syntax Notation One (ASN.1) [1], termed the Structure of
Management Information (SMI) (see RFC 1902 [2]).
2.1. A Note on Terminology
The term "variable" refers to an instance of a non-aggregate object
type defined according to the conventions set forth in the SMI (RFC
1902, [2]) or the textual conventions based on the SMI (RFC 1903
[3]). The term "variable binding" normally refers to the pairing of
the name of a variable and its associated value. However, if certain
kinds of exceptional conditions occur during processing of a
retrieval request, a variable binding will pair a name and an
indication of that exception.
A variable-binding list is a simple list of variable bindings.
The name of a variable is an OBJECT IDENTIFIER, which is the
concatenation of the OBJECT IDENTIFIER of the corresponding object
type together with an OBJECT IDENTIFIER fragment identifying the
Daniele, et. al. Standards Track [Page 4]
RFC 2257 AgentX January 1998
instance. The OBJECT IDENTIFIER of the corresponding object-type is
called the OBJECT IDENTIFIER prefix of the variable. For the purpose
of exposition, the original Internet-standard
Network Management Framework, as described in RFCs 1155 (STD 16),
1157 (STD 15), and 1212 (STD 16), is termed the SNMP version 1
framework (SNMPv1). The current framework, as described in RFCs
1902-1908, is termed the SNMP version 2 framework (SNMPv2).
3. Extending the MIB
New MIB modules that extend the Internet-standard MIB are
continuously being defined by various IETF working groups. It is
also common for enterprises or individuals to create or extend
enterprise-specific or experimental MIBs.
As a result, managed devices are frequently complex collections of
manageable components that have been independently installed on a
managed node. Each component provides instrumentation for the
managed objects defined in the MIB module(s) it implements.
Neither the SNMP version 1 nor version 2 framework describes how the
set of managed objects supported by a particular agent may be changed
dynamically.
3.1. Motivation for AgentX
This very real need to dynamically extend the management objects
within a node has given rise to a variety of "extensible agents",
which typically comprise
- a "master" agent that is available on the standard transport
address and that accepts SNMP protocol messages
- a set of "subagents" that each contain management
instrumentation
- a protocol that operates between the master agent and subagents,
permitting subagents to "connect" to the master agent, and the
master agent to multiplex received SNMP protocol messages
amongst the subagents.
- a set of tools to aid subagent development, and a runtime (API)
environment that hides much of the protocol operation between a
subagent and the master agent.
Daniele, et. al. Standards Track [Page 5]
RFC 2257 AgentX January 1998
The wide deployment of extensible SNMP agents, coupled with the lack
of Internet standards in this area, makes it difficult to field
SNMP-manageable applications. A vendor may have to support several
different subagent environments (APIs) in order to support different
target platforms.
It can also become quite cumbersome to configure subagents and
(possibly multiple) master agents on a particular managed node.
Specifying a standard protocol for agent extensibility (AgentX)
provides the technical foundation required to solve both of these
problems. Independently developed AgentX-capable master agents and
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -