⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc2257.txt

📁 RFC 的详细文档!
💻 TXT
📖 第 1 页 / 共 5 页
字号:
   entity, called an agent, which has access to management information.

   Within the AgentX framework, an agent is further defined to consist
   of

      - 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.

      - 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.

   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.

   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

   An entity acting in a master agent role performs the following
   functions:

      - Accepts AgentX session establishment requests from subagents.

      - Accepts registration of MIB regions by subagents.

      - 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.)

      - Provides instrumentation for the MIB objects defined in RFC
        1907 [5], and for any MIB objects relevant to any administrative
        framework it supports.

      - Sends and receives AgentX protocol messages to access
        management information, based on the current registry of MIB
        regions.

      - Forwards notifications on behalf of subagents.

   An entity acting in a subagent role performs the following functions:

      - Initiates an AgentX session with the master agent.

      - Registers MIB regions with the master agent.

      - Instantiates managed objects.

      - 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 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



Daniele, et. al.            Standards Track                    [Page 10]

RFC 2257                        AgentX                      January 1998


   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
   the byte ordering of all multi-byte integer values in the PDU,
   including those which follow in the header itself.  This is described
   in more detail in Section 6.1, "AgentX PDU Header", below.

   PDUs are depicted in this memo using the following convention (where
   byte 1 is the first transmitted byte):

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  byte 1       |  byte 2       |  byte 3       |  byte 4       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  byte 5       |  byte 6       |  byte 7       |  byte 8       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Fields marked "<reserved>" are reserved for future use and must be
   zero-filled.

5.1.  Object Identifier

   An object identifier is encoded as a 4-byte header, followed by a
   variable number of contiguous 4-byte fields representing sub-
   identifiers.  This representation (termed Object Identifier) is as
   follows:

   Object Identifier

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  n_subid      |  prefix       |  include      |  <reserved>   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       sub-identifier #1                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       sub-identifier #n_subid                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Object Identifier header fields:

      n_subid

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -