📄 rfc2257.txt
字号:
subagents will be able to interoperate at the protocol level.
Vendors can continue to differentiate their products in all other
respects.
4. AgentX Framework
Within the SNMP framework, a managed node contains a processing
entity, called an agent, which has access to management information.
在AgentX框架内,一个代理有更广泛的说明:
Within the AgentX framework, an agent is further defined to consist
of
唯一的一个master agent 进程负责完成发送和接收 SNMP 协议,
(如指定SNMP的版本)
但是它通常不直接访问management information。
- a single processing entity called the master agent, which sends
and receives SNMP protocol messages in an agent role (as
specified by the SNMP version 1 and version 2 framework
documents) but typically has little or no direct access to
management information.
subagents进程的数量可以是0个或多个。master agent访问SNMP协议
对subagents是不可见的。
但是subagetns可以访问management information.
- 0 or more processing entities called subagents, which are
"shielded" from the SNMP protocol messages processed by the
master agent, but which have access to management information.
master和subagent之间通过AgentX协议来通讯。
The master and subagent entities communicate via AgentX protocol
messages, as specified in this memo. Other interfaces (if any) on
these entities, and their associated protocols, are outside the scope
of this document. While some of the AgentX protocol messages appear
similar in syntax and semantics to the SNMP, bear in mind that AgentX
is not SNMP.
AgentX想对与SNMP而已是透明的。从manager的角度看一个可扩展的
agent和一个不可扩展的agent在访问management的行为是一样的。
The internal operations of AgentX are invisible to an SNMP entity
operating in a manager role. From a manager's point of view, an
extensible agent behaves exactly as would a non-extensible
(monolithic) agent that has access to the same management
instrumentation.
Daniele, et. al. Standards Track [Page 6]
RFC 2257 AgentX January 1998
This transparency to managers is a fundamental requirement of AgentX,
and is what differentiates AgentX subagents from SNMP proxy agents.
4.1. AgentX Roles
一个master agent 要实现如下职能:
An entity acting in a master agent role performs the following
functions:
接收来自subagents的 Agentx 会话的请求
- Accepts AgentX session establishment requests from subagents.
接收来自subagetns端mib域并注册
- Accepts registration of MIB regions by subagents.
往agent指定的地址发送和接收SNMP协议
- Sends and accepts SNMP protocol messages on the agent's
specified transport addresses.
- Implements the agent role Elements of Procedure specified
for the administrative framework applicable to the SNMP protocol
message, except where they specify performing management
operations. (The application of MIB views, and the access
control policy for the managed node, are implemented by the
master agent.)
关于MIB对象的定义参阅RFC1907[5] 任何和MIB对象有关的管理框架都支持
- Provides instrumentation for the MIB objects defined in RFC
1907 [5], and for any MIB objects relevant to any administrative
framework it supports.
在当前注册的MIB上
发送和接受Agentx协议访问management information
- Sends and receives AgentX protocol messages to access
management information, based on the current registry of MIB
regions.
发通知给subagents
- Forwards notifications on behalf of subagents.
一个subagent 要履行一下职能:
An entity acting in a subagent role performs the following functions:
初始化产生一个与master agent的一个AgentX会话
- Initiates an AgentX session with the master agent.
注册MIB到master agent
- Registers MIB regions with the master agent.
初始话一个管理对象
- Instantiates managed objects.
在已经注册的MIB中绑定 OIDs相对应的变量
- Binds OIDs within its registered MIB regions to actual
variables.
操作管理操作上的变量
- Performs management operations on variables.
初始化通知
- Initiates notifications.
Daniele, et. al. Standards Track [Page 7]
RFC 2257 AgentX January 1998
4.2 Applicability
It is intended that this memo specify the smallest amount of required
behavior necessary to achieve the largest benefit, that is, to cover
a very large number of possible MIB implementations and
configurations with minimum complexity and low "cost of entry".
This section discusses several typical usage scenarios.
1) Subagents implement separate MIB modules--for example,
subagent A implements "mib-2", subagent b implements "host-
resources".
It is anticipated that this will be the most common subagent
configuration.
2) Subagents implement rows in a "simple table". A simple table
is one in which row creation is not specified, and for which the
MIB does not define an object that counts entries in the table.
Examples of simple tables are rdbmsDbTable, udpTable, and
hrSWRunTable.
This is the most commonly defined type of MIB table, and probably
represents the next most typical configuration that AgentX would
support.
3) Subagents share MIBs along non-row partitions. Subagents
register "chunks" of the MIB that represent multiple rows, due to
the nature of the MIB's index structure. Examples include
registering ipNetToMediaEntry.n, where n represents the ifIndex
value for an interface implemented by the subagent, and
tcpConnEntry.a.b.c.d, where a.b.c.d represents an IP address on an
interface implemented by the subagent.
AgentX supports these three common configurations, and all
permutations of them, completely. The consensus is that they
comprise a very large majority of current and likely future uses of
multi-vendor extensible agent configurations.
4) Subagents implement rows in "complex tables". Complex tables
here are defined as tables permitting row creation, or whose MIB
also defines an object that counts entries in the table. Examples
include the MIB-2 ifTable (due to ifNumber), and the RMON
historyControlTable.
Daniele, et. al. Standards Track [Page 8]
RFC 2257 AgentX January 1998
The subagent that implements such a counter object (like ifNumber)
must go beyond AgentX to correctly implement it. This is an
implementation issue (and most new MIB designs no longer include such
objects).
To implement row creation in such tables, at least one AgentX
subagent must register at a point "higher" in the OID tree than an
individual row (per AgentX's dispatching procedure). Again, this is
an implementation issue.
Scenarios in this category were thought to occur somewhat rarely in
configurations where subagents are independently implemented by
different vendors. The focus of a standard protocol, however, must
be in just those areas where multi- vendor interoperability must be
assured.
Note that it would be inefficient (due to AgentX registration
overhead) to share a table among AgentX subagents if the table
contains very dynamic instances, and each subagent registers fully
qualified instances. ipRouteTable could be an example of such a
table in some environments.
4.3. Design Features of AgentX
The primary features of the design described in this memo are:
1) A general architectural division of labor between master agent
and subagent: The master agent is MIB ignorant and SNMP
omniscient, while the subagent is SNMP ignorant and MIB omniscient
(for the MIB variables it instantiates). That is, master agents,
exclusively, are concerned with SNMP protocol operations and the
translations to and from AgentX protocol operations needed to
carry them out; subagents are exclusively concerned with
management instrumentation; and neither should intrude on the
other's territory.
2) A standard protocol and "rules of engagement" to enable
interoperability between management instrumentation and extensible
agents.
3) Mechanisms for independently developed subagents to
integrate into the extensible agent on a particular managed node
in such a way that they need not be aware of any other existing
subagents.
Daniele, et. al. Standards Track [Page 9]
RFC 2257 AgentX January 1998
4) A simple, deterministic registry and dispatching algorithm.
For a given extensible agent configuration, there is a single
subagent who is "authoritative" for any particular region of the
MIB (where "region" may extend from an entire MIB down to a single
object-instance).
5) Performance considerations. It is likely that the master
agent and all subagents will reside on the same host, and in such
cases AgentX is more a form of inter-process communication than a
traditional communications protocol.
Some of the design decisions made with this in mind include:
- 32-bit alignment of data within PDUs
- Native byte-order encoding by subagents
- Large AgentX PDU payload sizes.
4.4 Non-Goals
1) Subagent-to-subagent communication. This is out of scope,
due to the security ramifications and complexity involved.
2) Subagent access (via the master agent) to MIB variables.
This is not addressed, since various other mechanisms are
available and it was not a fundamental requirement.
3) The ability to accommodate every conceivable extensible
agent configuration option. This was the most contentious aspect
in the development of this protocol. In essence, certain features
currently available in some commercial extensible agent products
are not included in AgentX. Although useful or even vital in some
implementation strategies, the rough consensus was that these
features were not appropriate for an Internet Standard, or not
typically required for independently developed subagents to
coexist. The set of supported extensible agent configurations is
described above, in Section 4.2.
Some possible future version of the AgentX protocol may provide
coverage for one or more of these "non-goals" or for new goals that
might be identified after greater deployment experience.
5. AgentX Encodings
AgentX PDUs 都有一个共同的header,接着是可变长度的PDU-specific
数据。不像SNMP PDUs ,AgentX PDUs是没有编码的直接使用二进制BER(ISO8824[1])
但是传输的是连续的BYET流。数据必须按照PDU规范的顺序插入。支持直接处理实体。 AgentX PDUs consist of a common header, followed by PDU-specific data
of variable length. Unlike SNMP PDUs, AgentX PDUs are not encoded
using the BER (as specified in ISO 8824 [1]), but are transmitted as
a contiguous byte stream. The data within this stream is organized
to provide natural alignment with respect to the start of the PDU,
permitting direct (integer) access by the processing entities.
The first four fields in the header are single-byte values. A bit
(NETWORK_BYTE_ORDER) in the third field (h.flags) is used to indicate
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -