[要約] RFC 2257は、AgentXプロトコルのバージョン1に関する要約です。このプロトコルは、ネットワーク管理エージェントとネットワーク管理ステーション間の通信を拡張するために使用されます。目的は、エージェントの機能を拡張し、ネットワーク管理の効率を向上させることです。

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

エージェント拡張性(AgentX)プロトコルバージョン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.

このドキュメントは、インターネットコミュニティのインターネット標準トラックプロトコルを指定し、改善のための議論と提案を要求します。このプロトコルの標準化状態とステータスについては、「インターネット公式プロトコル標準」(STD 1)の最新版を参照してください。このメモの配布は無制限です。

Copyright Notice

著作権表示

Copyright (C) The Internet Society (1998). All Rights Reserved.

Copyright(C)The Internet Society(1998)。全著作権所有。

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
        
       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
        
         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
        
1. Introduction
1. はじめに

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.

このメモは、拡張可能なSNMPエージェントの標準化されたフレームワークを定義します。マスターエージェントおよびサブエージェントと呼ばれる処理エンティティ、それらの間の通信に使用されるプロトコル(AgentX)、および拡張可能なエージェントがSNMPプロトコルメッセージを処理する手順の要素を定義します。

2. The SNMP Framework
2. SNMPフレームワーク

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.

管理システムには次のものが含まれます。いくつかの(潜在的に多くの)ノードがあり、それぞれにエージェントと呼ばれる処理エンティティがあり、管理機器にアクセスできます。少なくとも1つの管理ステーション。また、管理プロトコルは、エージェントと管理ステーションの間で管理情報を伝達するために使用されます。プロトコルの操作は、認証、承認、アクセス制御、およびプライバシーポリシーを定義する管理フレームワークの下で実行されます。

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

管理情報は、管理情報ベース(MIB)と呼ばれる仮想インフォメーションストアにある管理オブジェクトのコレクションとして表示されます。関連オブジェクトのコレクションは、MIBモジュールで定義されています。これらのモジュールは、OSIの抽象構文記法1(ASN.1)[1]のサブセットを使用して作成され、Structure of Management Information(SMI)と呼ばれます(RFC 1902 [2]を参照)。

2.1. A Note on Terminology
2.1. 用語に関する注記

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.

「変数」という用語は、SMI(RFC 1902、[2])で規定された規則またはSMIに基づくテキストの規則(RFC 1903 [3])に従って定義された非集合オブジェクトタイプのインスタンスを指します。 「変数バインディング」という用語は通常、変数の名前とそれに関連付けられた値のペアを指します。ただし、検索要求の処理中に特定の種類の例外条件が発生した場合、変数バインディングは名前とその例外の表示をペアにします。

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

変数の名前はOBJECT IDENTIFIERです。これは、対応するオブジェクトタイプのOBJECT IDENTIFIERと、インスタンスを識別するOBJECT IDENTIFIERフラグメントを連結したものです。対応するオブジェクトタイプのOBJECT IDENTIFIERは、変数のOBJECT IDENTIFIERプレフィックスと呼ばれます。説明の目的で、元のインターネット標準

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

RFC 1155(STD 16)、1157(STD 15)、および1212(STD 16)で説明されているネットワーク管理フレームワークは、SNMPバージョン1フレームワーク(SNMPv1)と呼ばれています。 RFC 1902-1908で説明されている現在のフレームワークは、SNMPバージョン2フレームワーク(SNMPv2)と呼ばれています。

3. Extending the MIB
3. 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.

インターネット標準のMIBを拡張する新しいMIBモジュールは、さまざまなIETFワーキンググループによって継続的に定義されています。また、企業や個人が企業固有または実験的なMIBを作成または拡張することもよくあります。

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.

その結果、管理対象デバイスは、管理対象ノードに個別にインストールされた管理可能なコンポーネントの複雑なコレクションであることがよくあります。各コンポーネントは、実装するMIBモジュールで定義された管理対象オブジェクトの計測を提供します。

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.

SNMPバージョン1とバージョン2のどちらのフレームワークも、特定のエージェントがサポートする管理対象オブジェクトのセットを動的に変更する方法については説明していません。

3.1. Motivation for AgentX
3.1. 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

- 標準のトランスポートアドレスで使用可能で、SNMPプロトコルメッセージを受け入れる「マスター」エージェント

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

- マスターエージェントとサブエージェントの間で動作するプロトコル。サブエージェントがマスターエージェントに「接続」できるようにし、マスターエージェントがサブエージェント間で受信したSNMPプロトコルメッセージを多重化できるようにします。

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

- サブエージェントの開発を支援する一連のツールと、サブエージェントとマスターエージェント間のプロトコル操作の多くを隠すランタイム(API)環境。

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.

拡張可能なSNMPエージェントの幅広い展開と、この分野でのインターネット標準の欠如が相まって、SNMP管理可能なアプリケーションのフィールド化が困難になっています。ベンダーは、異なるターゲットプラットフォームをサポートするために、いくつかの異なるサブエージェント環境(API)をサポートする必要がある場合があります。

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 subagents will be able to interoperate at the protocol level. Vendors can continue to differentiate their products in all other respects.

エージェント拡張性(AgentX)の標準プロトコルを指定すると、これらの問題の両方を解決するために必要な技術的基盤が提供されます。独立して開発されたAgentX対応のマスターエージェントとサブエージェントは、プロトコルレベルで相互運用できます。ベンダーは、他のすべての点で自社製品を差別化し続けることができます。

4. AgentX Framework
4. AgentXフレームワーク

Within the SNMP framework, a managed node contains a processing entity, called an agent, which has access to management information.

SNMPフレームワーク内で、管理対象ノードには、管理情報にアクセスできるエージェントと呼ばれる処理エンティティが含まれます。

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

AgentXフレームワーク内では、エージェントは以下で構成されるようにさらに定義されます

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

- マスターエージェントと呼ばれる単一の処理エンティティ。これは、エージェントの役割(SNMPバージョン1およびバージョン2フレームワークドキュメントで指定)でSNMPプロトコルメッセージを送受信しますが、通常、管理情報への直接アクセスはほとんどまたはまったくありません。

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

- サブエージェントと呼ばれる0個以上の処理エンティティ。これは、マスターエージェントによって処理されるSNMPプロトコルメッセージから「シールド」されますが、管理情報にアクセスできます。

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プロトコルメッセージを介して通信します。これらのエンティティの他のインターフェース(存在する場合)およびそれらに関連付けられたプロトコルは、このドキュメントの範囲外です。一部のAgentXプロトコルメッセージの構文とセマンティクスはSNMPと似ていますが、AgentXは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.

AgentXの内部操作は、マネージャーロールで動作しているSNMPエンティティには見えません。マネージャーの観点から見ると、拡張可能なエージェントは、同じ管理インストルメンテーションにアクセスできる非拡張(モノリシック)エージェントとまったく同じように動作します。

This transparency to managers is a fundamental requirement of AgentX, and is what differentiates AgentX subagents from SNMP proxy agents.

マネージャに対するこの透過性は、AgentXの基本的な要件であり、AgentXサブエージェントとSNMPプロキシエージェントを区別するものです。

4.1. AgentX Roles
4.1. AgentXの役割

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

マスターエージェントの役割を果たしているエンティティは、次の機能を実行します。

- Accepts AgentX session establishment requests from subagents.

- サブエージェントからのAgentXセッション確立要求を受け入れます。

- Accepts registration of MIB regions by subagents.

- サブエージェントによるMIB領域の登録を受け入れます。

- Sends and accepts SNMP protocol messages on the agent's specified transport addresses.

- エージェントの指定されたトランスポートアドレスでSNMPプロトコルメッセージを送受信します。

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

- SNMPプロトコルメッセージに適用可能な管理フレームワークに指定された手順のエージェントロールの要素を実装します。ただし、管理操作の実行を指定する場合を除きます。 (MIBビューの適用、および管理対象ノードのアクセス制御ポリシーは、マスターエージェントによって実装されます。)

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

- RFC 1907 [5]で定義されたMIBオブジェクト、およびそれがサポートする管理フレームワークに関連するMIBオブジェクトの計測を提供します。

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

- MIB領域の現在のレジストリに基づいて、管理情報にアクセスするためのAgentXプロトコルメッセージを送受信します。

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

- マスターエージェントとのAgentXセッションを開始します。

- Registers MIB regions with the master agent.

- マスターエージェントにMIB領域を登録します。

- Instantiates managed objects.

- 管理対象オブジェクトをインスタンス化します。

- Binds OIDs within its registered MIB regions to actual variables.

- 登録されたMIB領域内のOIDを実際の変数にバインドします。

- Performs management operations on variables.

- 変数の管理操作を実行します。

- Initiates notifications.

- 通知を開始します。

4.2 Applicability
4.2 適用性

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

このメモは、最大の利益を達成するために必要な必要な動作の最小量を指定することを目的としています。つまり、最小限の複雑さと低い「エントリコスト」で、非常に多くの可能なMIB実装と構成をカバーします。

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

1)サブエージェントは個別のMIBモジュールを実装します。たとえば、サブエージェントAは「mib-2」を実装し、サブエージェントbは「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.

2)サブエージェントは「単純なテーブル」に行を実装します。単純なテーブルとは、行の作成が指定されておらず、MIBがテーブル内のエントリをカウントするオブジェクトを定義していないテーブルです。単純なテーブルの例は、rdbmsDbTable、udpTable、hrSWRunTableです。

This is the most commonly defined type of MIB table, and probably represents the next most typical configuration that AgentX would support.

これは最も一般的に定義されているタイプのMIBテーブルであり、おそらくAgentXがサポートする次の最も一般的な構成を表しています。

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.

3)サブエージェントは非行パーティションに沿ってMIBを共有します。サブエージェントは、MIBのインデックス構造の性質により、複数の行を表すMIBの「チャンク」を登録します。例には、ipNetToMediaEntry.n(nはサブエージェントによって実装されたインターフェースのifIndex値を表す)、およびtcpConnEntry.a.b.c.d(a.b.c.dはサブエージェントによって実装されたインターフェースのIPアドレスを表す)の登録が含まれます。

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.

AgentXは、これら3つの一般的な構成と、それらのすべての組み合わせを完全にサポートしています。コンセンサスは、マルチベンダーの拡張可能なエージェント構成の現在の、そしておそらく将来の使用の非常に大多数を構成するということです。

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.

4)サブエージェントは「複雑なテーブル」に行を実装します。ここでの複雑なテーブルは、行の作成を許可するテーブルとして定義されているか、またはそのMIBがテーブル内のエントリをカウントするオブジェクトも定義しています。例には、MIB-2 ifTable(ifNumberによる)、およびRMON historyControlTableが含まれます。

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

このようなカウンターオブジェクト(ifNumberなど)を実装するサブエージェントは、AgentXを超えて正しく実装する必要があります。これは実装上の問題です(そして、ほとんどの新しいMIB設計には、そのようなオブジェクトが含まれなくなりました)。

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.

そのようなテーブルで行の作成を実装するには、少なくとも1つのAgentXサブエージェントが、個々の行よりも(AgentXのディスパッチプロシージャごとに)OIDツリーの「上位」のポイントに登録する必要があります。繰り返しますが、これは実装の問題です。

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.

テーブルに非常に動的なインスタンスが含まれ、各サブエージェントが完全修飾インスタンスを登録する場合、AgentXサブエージェント間でテーブルを共有することは(AgentX登録オーバーヘッドのため)非効率的であることに注意してください。 ipRouteTableは、一部の環境でのこのようなテーブルの例です。

4.3. Design Features of AgentX
4.3. 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.

1)マスターエージェントとサブエージェントの間の一般的なアーキテクチャ上の分業:マスターエージェントはMIBを知らず、SNMPは全知性であるのに対し、サブエージェントはSNMPを知らず、MIBを知覚性があります(インスタンス化するMIB変数について)。つまり、マスターエージェントは排他的に、SNMPプロトコル操作と、それらを実行するために必要なAgentXプロトコル操作との間の変換に関係しています。サブエージェントは専ら管理手段に関係しています。どちらも相手の領土に侵入するべきではありません。

2) A standard protocol and "rules of engagement" to enable interoperability between management instrumentation and extensible agents.

2)管理計装と拡張可能エージェント間の相互運用性を可能にする標準プロトコルと「エンゲージメントのルール」。

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.

3)独立して開発されたサブエージェントが、他の既存のサブエージェントを意識する必要がないように、特定の管理対象ノード上の拡張可能エージェントに統合するためのメカニズム。

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

4)シンプルで確定的なレジストリとディスパッチアルゴリズム。特定の拡張可能なエージェント構成では、MIBの特定の領域に対して「権限がある」単一のサブエージェントがあります(「領域」は、MIB全体から単一のオブジェクトインスタンスにまで及ぶ場合があります)。

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.

5)パフォーマンスに関する考慮事項。マスターエージェントとすべてのサブエージェントが同じホスト上に存在する可能性が高く、そのような場合、AgentXは従来の通信プロトコルよりもプロセス間通信の一種です。

Some of the design decisions made with this in mind include:

これを念頭に置いて行われた設計上の決定には、次のものが含まれます。

- 32-bit alignment of data within PDUs

- PDU内のデータの32ビットアライメント

- Native byte-order encoding by subagents

- サブエージェントによるネイティブのバイト順エンコーディング

- Large AgentX PDU payload sizes.

- 大きなAgentX PDUペイロードサイズ。

4.4 Non-Goals
4.4 非目標

1) Subagent-to-subagent communication. This is out of scope, due to the security ramifications and complexity involved.

1)サブエージェント間通信。これは、セキュリティの影響と複雑さのため、範囲外です。

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.

2)サブエージェントによる(マスターエージェントを介した)MIB変数へのアクセス。他のさまざまなメカニズムが利用可能であり、基本的な要件ではなかったため、これは対処されていません。

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.

3)考えられるすべての拡張可能なエージェント構成オプションに対応する機能。これは、このプロトコルの開発において最も論争の的だった側面でした。本質的に、一部の市販の拡張可能なエージェント製品で現在利用可能な特定の機能は、AgentXに含まれていません。一部の実装戦略では有用または不可欠ですが、おおまかなコンセンサスは、これらの機能はインターネット標準に適していない、または独立して開発されたサブエージェントが共存するために通常は必要ないということでした。サポートされる拡張可能なエージェント構成のセットについては、セクション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.

AgentXプロトコルのいくつかの将来のバージョンでは、これらの「非目標」の1つ以上、または導入経験を重ねた後に特定される可能性のある新しい目標をカバーする可能性があります。

5. AgentX Encodings
5. AgentXエンコーディング

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

AgentX PDUは共通ヘッダーで構成され、その後に可変長のPDU固有のデータが続きます。 SNMP PDUとは異なり、AgentX PDUは(ISO 8824 [1]で指定されているように)BERを使用してエンコードされませんが、次のように送信されます

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.

連続したバイトストリーム。このストリーム内のデータは、PDUの開始に関して自然な配置を提供するように編成され、処理エンティティによる直接(整数)アクセスを許可します。

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.

ヘッダーの最初の4つのフィールドは1バイトの値です。 3番目のフィールド(h.flags)のビット(NETWORK_BYTE_ORDER)は、PDU内のすべてのマルチバイト整数値(ヘッダー自体に続くものを含む)のバイト順序を示すために使用されます。これについては、以下のセクション6.1「AgentX PDUヘッダー」で詳しく説明します。

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

このメモでは、PDUは次の規則を使用して描かれています(バイト1は最初に送信されるバイトです)。

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  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
5.1. オブジェクト識別子

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:

オブジェクト識別子は4バイトのヘッダーとしてエンコードされ、その後にサブ識別子を表す可変数の連続する4バイトのフィールドが続きます。この表現(オブジェクト識別子と呼ばれる)は次のとおりです。

Object Identifier

オブジェクト識別子

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

Object Identifier header fields:

オブジェクト識別子ヘッダーフィールド:

n_subid

n_subid

The number (0-128) of sub-identifiers in the object identifier. An ordered list of "n_subid" 4-byte sub-identifiers follows the 4-byte header.

オブジェクト識別子のサブ識別子の数(0〜128)。 「n_subid」の4バイトのサブ識別子の順序付きリストは、4バイトのヘッダーの後に続きます。

prefix

接頭辞

An unsigned value used to reduce the length of object identifier encodings. A non-zero value "x" is interpreted as the first sub-identifier after "internet" (1.3.6.1), and indicates an implicit prefix "internet.x" to the actual sub-identifiers encoded in the Object Identifier. For example, a prefix field value 2 indicates an implicit prefix "1.3.6.1.2". A value of 0 in the prefix field indicates there is no prefix to the sub-identifiers.

オブジェクト識別子のエンコーディングの長さを短縮するために使用される符号なしの値。ゼロ以外の値「x」は、「インターネット」(1.3.6.1)の後の最初のサブ識別子として解釈され、オブジェクト識別子でエンコードされた実際のサブ識別子の暗黙的なプレフィックス「internet.x」を示します。たとえば、接頭辞フィールド値2は、暗黙の接頭辞「1.3.6.1.2」を示します。プレフィックスフィールドの値0は、サブ識別子のプレフィックスがないことを示します。

include

含む

Used only when the Object Identifier is the start of a SearchRange, as described in section 5.2.

セクション5.2で説明されているように、オブジェクト識別子がSearchRangeの開始である場合にのみ使用されます。

A null Object Identifier consists of the 4-byte header with all bytes set to 0.

nullオブジェクト識別子は、すべてのバイトが0に設定された4バイトのヘッダーで構成されます。

Examples:

例:

sysDescr.0 (1.3.6.1.2.1.1.1.0)

sysDescr.0(1.3.6.1.2.1.1.1.0)

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | 4             | 2             | 0             | 0             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | 1                                                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | 1                                                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | 1                                                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | 0                                                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

1.2.3.4

1。2。3。4

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | 4             | 0             | 0             | 0             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | 1                                                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | 2                                                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | 3                                                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | 4                                                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
5.2. SearchRange
5.2. SearchRange

A SearchRange consists of two Object Identifiers. In its communication with a subagent, the master agent uses a SearchRange to identify a requested variable binding, and, in GetNext and GetBulk operations, to set an upper bound on the names of managed object instances the subagent may send in reply.

SearchRangeは2つのオブジェクト識別子で構成されています。マスターエージェントは、サブエージェントとの通信で、SearchRangeを使用して要求された変数バインディングを識別し、GetNextおよびGetBulk操作で、サブエージェントが応答として送信できる管理オブジェクトインスタンスの名前に上限を設定します。

The first Object Identifier in a SearchRange (called the starting OID) indicates the beginning of the range. It is frequently (but not necessarily) the name of a requested variable binding.

SearchRangeの最初のオブジェクト識別子(開始OIDと呼ばれる)は、範囲の始まりを示します。多くの場合(必須ではありませんが)要求された変数バインディングの名前です。

The "include" field in this OID's header is a boolean value (0 or 1) indicating whether or not the starting OID is included in the range.

このOIDのヘッダーの「include」フィールドは、開始OIDが範囲に含まれるかどうかを示すブール値(0または1)です。

The second object identifier indicates the non-inclusive end of the range, and its "include" field is always 0.

2番目のオブジェクト識別子は範囲の非包括的終了を示し、その「include」フィールドは常に0です。

Example: To indicate a search range from 1.3.6.1.2.1.25.2 (inclusive) to 1.3.6.1.2.1.25.2.1 (exclusive), the SearchRange would be

例:1.3.6.1.2.1.25.2(包括的)から1.3.6.1.2.1.25.2.1(排他的)までの検索範囲を示すには、SearchRangeは次のようになります。

   (start)
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | 3             | 2             | 1             |       0       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | 1                                                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | 25                                                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | 2                                                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
   (end)
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | 4             | 2             | 0             |       0       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | 1                                                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | 25                                                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | 2                                                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | 1                                                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

A SearchRangeList is a contiguous list of SearchRanges.

SearchRangeListは、SearchRangesの連続したリストです。

5.3. Octet String
5.3. オクテット弦

An octet string is represented by a contiguous series of bytes, beginning with a 4-byte integer whose value is the number of octets in the octet string, followed by the octets themselves. This representation is termed an Octet String. If the last octet does not end on a 4-byte offset from the start of the Octet String, padding bytes are appended to achieve alignment of following data. This padding must be added even if the Octet String is the last item in the PDU. Padding bytes must be zero filled.

オクテット文字列は、連続する一連のバイトで表されます。値はオクテット文字列内のオクテットの数である4バイトの整数で始まり、その後にオクテット自体が続きます。この表現はオクテットストリングと呼ばれます。最後のオクテットがオクテット文字列の先頭からの4バイトのオフセットで終了しない場合、後続のデータの整列を実現するためにパディングバイトが追加されます。このパディングは、オクテット文字列がPDUの最後のアイテムであっても追加する必要があります。パディングバイトはゼロで埋める必要があります。

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Octet String Length (L)                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Octet 1      |  Octet 2      |   Octet 3     |   Octet 4     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Octet L - 1  |  Octet L      |       Padding (as required)   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

A null Octet String consists of a 4-byte length field set to 0.

nullオクテット文字列は、0に設定された4バイトの長さフィールドで構成されます。

5.4. Value Representation
5.4. 値の表現

Variable bindings may be encoded within the variable-length portion of some PDUs. The representation of a variable binding (termed a VarBind) consists of a 2-byte type field, a name (Object Identifier), and the actual value data.

可変バインディングは、一部のPDUの可変長部分内でエンコードされます。変数バインディング(VarBindと呼ばれます)の表現は、2バイトの型フィールド、名前(オブジェクト識別子)、および実際の値のデータで構成されます。

VarBind

VarBind

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          v.type               |          <reserved>           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
   (v.name)
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  n_subid      |  prefix       |      0        |       0       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       sub-identifier #1                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       sub-identifier #n_subid                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   (v.data)
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       data                                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       data                                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

VarBind fields:

VarBindフィールド:

v.type

v.type

Indicates the variable binding's syntax, and must be one of the following values:

変数バインディングの構文を示し、次のいずれかの値である必要があります。

Integer (2), Octet String (4), Null (5), Object Identifier (6), IpAddress (64), Counter32 (65), Gauge32 (66), TimeTicks (67), Opaque (68), Counter64 (70), noSuchObject (128), noSuchInstance (129), endOfMibView (130)

整数(2)、オクテット文字列(4)、ヌル(5)、オブジェクト識別子(6)、IpAddress(64)、Counter32(65)、Gauge32(66)、TimeTicks(67)、不透明(68)、Counter64(70 )、noSuchObject(128)、noSuchInstance(129)、endOfMibView(130)

v.name

v。なめ

The Object Identifier which names the variable.

変数に名前を付けるオブジェクト識別子。

v.data

v。だた

The actual value, encoded as follows:

次のようにエンコードされた実際の値:

- Integer, Counter32, Gauge32, and TimeTicks are encoded as 4 contiguous bytes. If the NETWORK_BYTE_ORDER bit is set in h.flags, the bytes are ordered most significant to least significant, otherwise they are ordered least significant to most significant.

- Integer、Counter32、Gauge32、およびTimeTicksは、連続する4バイトとしてエンコードされます。 NETWORK_BYTE_ORDERビットがh.flagsで設定されている場合、バイトは最上位から最下位の順に並べられます。それ以外の場合は、最下位から最上位の順に並べられます。

- Counter64 is encoded as 8 contiguous bytes. If the NETWORK_BYTE_ORDER bit is set in h.flags, the bytes are ordered most significant to least significant, otherwise they are ordered least significant to most significant.

- Counter64は8つの連続したバイトとしてエンコードされます。 NETWORK_BYTE_ORDERビットがh.flagsで設定されている場合、バイトは最上位から最下位の順に並べられます。それ以外の場合は、最下位から最上位の順に並べられます。

- Object Identifiers are encoded as described in section 5.1, Object Identifier.

- オブジェクト識別子は、セクション5.1「オブジェクト識別子」で説明されているようにエンコードされます。

- IpAddress, Opaque, and Octet String are all octet strings and are encoded as described in section 5.3, Octet String.

- IpAddress、Opaque、およびOctet Stringはすべてオクテットストリングであり、セクション5.3、Octet Stringで説明されているようにエンコードされます。

Value data always follows v.name whenever v.type is one of the above types. These data bytes are present even if they will not be used (as, for example, in certain types of index allocation).

v.typeが上記のタイプのいずれかである場合、値データは常にv.nameの後に続きます。これらのデータバイトは、使用されない場合でも存在します(たとえば、特定の種類のインデックス割り当てなど)。

- Null, noSuchObject, noSuchInstance, and endOfMibView do not contain any encoded value. Value data never follows v.name in these cases.

- Null、noSuchObject、noSuchInstance、およびendOfMibViewには、エンコードされた値が含まれていません。これらの場合、値のデータがv.nameの後に続くことはありません。

Note that the VarBind itself does not contain the value size. That information is implied for the fixed-length types, and explicitly contained in the encodings of variable-length types (Object Identifier and Octet String).

VarBind自体には値のサイズが含まれていないことに注意してください。その情報は、固定長の型について暗黙に示され、可変長の型(オブジェクト識別子とオクテット文字列)のエンコーディングに明示的に含まれています。

A VarBindList is a contiguous list of VarBinds. Within a VarBindList, a particular VarBind is identified by an index value. The first VarBind in a VarBindList has index value 1, the second has index value 2, and so on.

VarBindListは、VarBindsの連続したリストです。 VarBindList内では、特定のVarBindがインデックス値によって識別されます。 VarBindListの最初のVarBindのインデックス値は1、2番目のインデックスの値は2、以下同様です。

6. Protocol Definitions
6. プロトコルの定義
6.1. AgentX PDU Header
6.1. AgentX PDUヘッダー

The AgentX PDU header is a fixed-format, 20-octet structure:

AgentX PDUヘッダーは、固定フォーマットの20オクテット構造です。

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   h.version   |    h.type     |    h.flags    |  <reserved>   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          h.sessionID                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        h.transactionID                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          h.packetID                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        h.payload_length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

An AgentX PDU header contains the following fields:

AgentX PDUヘッダーには、次のフィールドが含まれています。

h.version

h.version

The version of the AgentX protocol (1 for this memo).

AgentXプロトコルのバージョン(このメモでは1)。

h.type

h.type

The PDU type; one of the following values:

PDUタイプ。次のいずれかの値:

agentx-Open-PDU (1), agentx-Close-PDU (2), agentx-Register-PDU (3), agentx-Unregister-PDU (4), agentx-Get-PDU (5), agentx-GetNext-PDU (6), agentx-GetBulk-PDU (7), agentx-TestSet-PDU (8), agentx-CommitSet-PDU (9), agentx-UndoSet-PDU (10), agentx-CleanupSet-PDU (11), agentx-Notify-PDU (12), agentx-Ping-PDU (13), agentx-IndexAllocate-PDU (14), agentx-IndexDeallocate-PDU (15), agentx-AddAgentCaps-PDU (16), agentx-RemoveAgentCaps-PDU (17), agentx-Response-PDU (18)

agentx-Open-PDU(1)、agentx-Close-PDU(2)、agentx-Register-PDU(3)、agentx-Unregister-PDU(4)、agentx-Get-PDU(5)、agentx-GetNext-PDU (6)、agentx-GetBulk-PDU(7)、agentx-TestSet-PDU(8)、agentx-CommitSet-PDU(9)、agentx-UndoSet-PDU(10)、agentx-CleanupSet-PDU(11)、agentx -Notify-PDU(12)、agentx-Ping-PDU(13)、agentx-IndexAllocate-PDU(14)、agentx-IndexDeallocate-PDU(15)、agentx-AddAgentCaps-PDU(16)、agentx-RemoveAgentCaps-PDU( 17)、agentx-Response-PDU(18)

h.flags

h.flags

A bitmask, with bit 0 the least significant bit. The bit definitions are as follows:

ビット0が最下位ビットのビットマスク。ビットの定義は次のとおりです。

                 Bit             Definition
                 ---             ----------
                 0               INSTANCE_REGISTRATION
                 1               NEW_INDEX
                 2               ANY_INDEX
                 3               NON_DEFAULT_CONTEXT
                 4               NETWORK_BYTE_ORDER
                 5-7             (reserved)
        

The NETWORK_BYTE_ORDER bit applies to all multi-byte integer values in the entire AgentX packet, including the remaining header fields. If set, then network byte order (most significant byte first; "big endian") is used. If not set, then least significant byte first ("little endian") is used.

NETWORK_BYTE_ORDERビットは、残りのヘッダーフィールドを含む、AgentXパケット全体のすべてのマルチバイト整数値に適用されます。設定されている場合、ネットワークバイトオーダー(最上位バイトが最初、「ビッグエンディアン」)が使用されます。設定されていない場合、最下位バイトが最初(「リトルエンディアン」)が使用されます。

The NETWORK_BYTE_ORDER bit applies to all AgentX PDUs.

NETWORK_BYTE_ORDERビットは、すべてのAgentX PDUに適用されます。

The NON_DEFAULT_CONTEXT bit is used only in the AgentX PDUs described in section 6.1.1.

NON_DEFAULT_CONTEXTビットは、セクション6.1.1で説明されているAgentX PDUでのみ使用されます。

The NEW_INDEX and ANY_INDEX bits are used only within the agentx-IndexAllocate-, and -IndexDeallocate-PDUs.

NEW_INDEXおよびANY_INDEXビットは、agentx-IndexAllocate-および-IndexDeallocate-PDU内でのみ使用されます。

The INSTANCE_REGISTRATION bit is used only within the agentx-Register-PDU.

INSTANCE_REGISTRATIONビットは、agentx-Register-PDU内でのみ使用されます。

h.sessionID

h.sessionID

The session ID uniquely identifies a session over which AgentX PDUs are exchanged between a subagent and the master agent. The session ID has no significance and no defined value in the agentx-Open-PDU sent by a subagent to open a session with the master agent; in this case, the master agent will assign a unique sessionID that it will pass back in the corresponding agentx-Response-PDU. From that point on, that same sessionID will appear in every AgentX PDU exchanged over that session between the master and the subagent. A subagent may establish multiple AgentX sessions by sending multiple agentx-Open-PDUs to the master agent.

セッションIDは、AgentX PDUがサブエージェントとマスターエージェント間で交換されるセッションを一意に識別します。セッションIDは、マスターエージェントとのセッションを開くためにサブエージェントによって送信されるagentx-Open-PDUに意味がなく、定義された値もありません。この場合、マスターエージェントは、対応するagentx-Response-PDUで返す一意のセッションIDを割り当てます。その時点から、同じセッションIDが、マスターとサブエージェントの間のセッションで交換されるすべてのAgentX PDUに表示されます。サブエージェントは、複数のagentx-Open-PDUをマスターエージェントに送信することにより、複数のAgentXセッションを確立できます。

In master agents that support multiple transport protocols, the sessionID should be globally unique rather than unique just to a particular transport.

複数のトランスポートプロトコルをサポートするマスターエージェントでは、sessionIDは特定のトランスポートだけに固有ではなく、グローバルに固有である必要があります。

h.transactionID

h.transactionID

The transaction ID uniquely identifies, for a given session, the single SNMP management request (and single SNMP PDU) with which an AgentX PDU is associated. If a single SNMP management request results in multiple AgentX PDUs being sent by the master agent with the same sessionID, each of these AgentX PDUs must contain the same transaction ID; conversely, AgentX PDUs sent during a particular session, that result from distinct SNMP management requests, must have distinct transaction IDs within the limits of the 32-bit field).

トランザクションIDは、特定のセッションについて、AgentX PDUが関連付けられている単一のSNMP管理要求(および単一のSNMP PDU)を一意に識別します。単一のSNMP管理要求の結果、同じセッションIDを持つマスターエージェントによって複数のAgentX PDUが送信される場合、これらの各AgentX PDUには同じトランザクションIDが含まれている必要があります。逆に、特定のセッション中に送信されるAgentX PDUは、個別のSNMP管理要求から発生し、32ビットフィールドの制限内で個別のトランザクションIDを持つ必要があります。

Note that the transaction ID is not the same as the SNMP PDU's request-id (as described in section 4.1 of RFC 1905 [4]), nor can it be, since a master agent might receive SNMP requests with the same request-ids from different managers.

トランザクションIDはSNMP PDUのリクエストID(RFC 1905 [4]のセクション4.1で説明)と同じではないことに注意してください。マスターエージェントは同じリクエストIDを持つSNMPリクエストを別のマネージャー。

The transaction ID has no significance and no defined value in AgentX administrative PDUs, i.e., AgentX PDUs that are not associated with an SNMP management request.

トランザクションIDは、AgentX管理PDU(つまり、SNMP管理要求に関連付けられていないAgentX PDU)に意味がなく、定義された値もありません。

h.packetID

h.packetID

A packet ID generated by the sender for all AgentX PDUs except the agentx-Response-PDU. In an agentx-Response-PDU, the packet ID must be the same as that in the received AgentX PDU to which it is a response. A master agent might use this field to associate subagent response PDUs with their corresponding request PDUs. A subagent might use this field to correlate responses to multiple (batched) registrations.

agentx-Response-PDUを除くすべてのAgentX PDUの送信者によって生成されたパケットID。 agentx-Response-PDUでは、パケットIDは、それが応答である受信したAgentX PDUのものと同じである必要があります。マスターエージェントは、このフィールドを使用して、サブエージェント応答PDUを対応する要求PDUに関連付ける場合があります。サブエージェントは、このフィールドを使用して、複数の(バッチ処理された)登録への応答を関連付ける場合があります。

h.payload_length

h.payload_length

The size in octets of the PDU contents, excluding the 20-byte header. As a result of the encoding schemes and PDU layouts, this value will always be either 0, or a multiple of 4.

20バイトのヘッダーを除く、PDUコンテンツのオクテット単位のサイズ。エンコードスキームとPDUレイアウトの結果として、この値は常に0または4の倍数になります。

6.1.1. Context
6.1.1. 環境

In the SNMPv1 or v2c frameworks, the community string may be used as an index into a local repository of configuration information that may include community profiles or more complex context information. Future versions of the SNMP will likely formalize this notion of "context".

SNMPv1またはv2cフレームワークでは、コミュニティストリングは、コミュニティプロファイルまたはより複雑なコンテキスト情報を含む可能性がある構成情報のローカルリポジトリへのインデックスとして使用できます。 SNMPの将来のバージョンでは、この「コンテキスト」の概念が正式化される可能性があります。

AgentX provides a mechanism for transmitting a context specification within relevant PDUs, but does not place any constraints on the content of that specification.

AgentXは、関連するPDU内でコンテキスト仕様を送信するためのメカニズムを提供しますが、その仕様の内容に制約を課しません。

An optional context field may be present in the agentx-Register-, UnRegister-, AddAgentCaps-, RemoveAgentCaps-, Get-, GetNext-, GetBulk-, IndexAllocate-, IndexDeallocate-, Notify-, TestSet-, and Ping- PDUs.

オプションのコンテキストフィールドは、agentx-Register-、UnRegister-、AddAgentCaps-、RemoveAgentCaps-、Get-、GetNext-、GetBulk-、IndexAllocate-、IndexDeallocate-、Notify-、TestSet-、およびPing- PDUに存在する場合があります。

If the NON_DEFAULT_CONTEXT bit in the AgentX header field h.flags is clear, then there is no context field in the PDU, and the operation refers to the default context.

AgentXヘッダーフィールドh.flagsのNON_DEFAULT_CONTEXTビットがクリアされている場合、PDUにコンテキストフィールドはなく、操作はデフォルトのコンテキストを参照します。

If the NON_DEFAULT_CONTEXT bit is set, then a context field immediately follows the AgentX header, and the operation refers to that specific context. The context is represented as an Octet String. There are no constraints on its length or contents.

NON_DEFAULT_CONTEXTビットが設定されている場合、コンテキストフィールドはAgentXヘッダーの直後に続き、操作はその特定のコンテキストを参照します。コンテキストはオクテット文字列として表されます。その長さや内容に制約はありません。

Thus, all of these AgentX PDUs (that is, those listed immediately above) refer to, or "indicate" a context, which is either the default context, or a non-default context explicitly named in the PDU.

したがって、これらすべてのAgentX PDU(つまり、すぐ上にリストされているもの)は、デフォルトコンテキスト、またはPDUで明示的に指定されたデフォルト以外のコンテキストであるコンテキストを参照または「指示」します。

6.2. AgentX PDUs
6.2. AgentX PDU
6.2.1. The agentx-Open-PDU
6.2.1. agentx-Open-PDU

An agentx-Open-PDU is generated by a subagent to request establishment of an AgentX session with the master agent.

agentx-Open-PDUは、マスターエージェントとのAgentXセッションの確立を要求するためにサブエージェントによって生成されます。

(AgentX header)

(AgentXヘッダー)

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | h.version (1) |  h.type (1)   |    h.flags    |  <reserved>   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          h.sessionID                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        h.transactionID                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           h.packetID                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        h.payload_length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  o.timeout    |                     <reserved>                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
   (o.id)
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  n_subid      |  prefix       |       0       |  <reserved>   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |             subidentifier #1                                  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ...                                                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |             subidentifier #n_subid                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
   (o.descr)
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Octet String Length (L)                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Octet 1      |  Octet 2      |   Octet 3     |   Octet 4     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Octet L - 1  |  Octet L      |       Padding (as required)   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

An agentx-Open-PDU contains the following fields:

agentx-Open-PDUには以下のフィールドが含まれています。

o.timeout

o.timeout

The length of time, in seconds, that a master agent should allow to elapse after dispatching a message to a subagent before it regards the subagent as not responding. This is a subagent-wide default value that may be overridden by values associated with specific registered MIB regions. The default value of 0 indicates that no subagent-wide value is requested.

マスターエージェントがサブエージェントにメッセージをディスパッチした後、サブエージェントが応答していないと見なすまでの経過時間(秒単位)。これはサブエージェント全体のデフォルト値であり、特定の登録済みMIB領域に関連付けられた値によって上書きされる場合があります。デフォルト値の0は、サブエージェント全体の値が要求されないことを示します。

o.id

お。いd

An Object Identifier that identifies the subagent. Subagents that do not support such an notion may send a null Object Identifier.

サブエージェントを識別するオブジェクト識別子。このような概念をサポートしないサブエージェントは、nullオブジェクト識別子を送信する場合があります。

o.descr

o.descr

An Octet String containing a DisplayString describing the subagent.

サブエージェントを説明するDisplayStringを含むオクテット文字列。

6.2.2. The agentx-Close-PDU
6.2.2. agentx-Close-PDU

An agentx-Close-PDU issued by either a subagent or the master agent terminates an AgentX session.

サブエージェントまたはマスターエージェントによって発行されたagentx-Close-PDUは、AgentXセッションを終了します。

   (AgentX header)
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | h.version (1) |  h.type (2)   |    h.flags    |  <reserved>   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          h.sessionID                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        h.transactionID                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           h.packetID                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        h.payload_length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  c.reason     |                     <reserved>                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

An agentx-Close-PDU contains the following field:

agentx-Close-PDUには、次のフィールドが含まれています。

c.reason

c.reason

An enumerated value that gives the reason that the master agent or subagent closed the AgentX session. This field may take one of the following values:

マスターエージェントまたはサブエージェントがAgentXセッションを閉じた理由を示す列挙値。このフィールドは、次のいずれかの値をとります。

reasonOther(1) None of the following reasons

reasonOther(1)次のいずれの理由もない

reasonParseError(2) Too many AgentX parse errors from peer

reasonParseError(2)ピアからの多すぎるAgentX解析エラー

reasonProtocolError(3) Too many AgentX protocol errors from peer

reasonProtocolError(3)ピアからの多すぎるAgentXプロトコルエラー

reasonTimeouts(4) Too many timeouts waiting for peer

reasonTimeouts(4)ピアを待機しているタイムアウトが多すぎます

reasonShutdown(5) Sending entity is shutting down

reasonShutdown(5)送信エンティティがシャットダウンしています

reasonByManager(6) Due to Set operation; this reason code can be used only by the master agent, in response to an SNMP management request.

reasonByManager(6)Set操作のため。この理由コードは、SNMP管理要求に応答して、マスターエージェントのみが使用できます。

6.2.3. The agentx-Register-PDU
6.2.3. agentx-Register-PDU

An agentx-Register-PDU is generated by a subagent for each region of the MIB variable naming tree (within one or more contexts) that it wishes to support.

agentx-Register-PDUは、サポートするMIB変数ネーミングツリー(1つ以上のコンテキスト内)の各領域のサブエージェントによって生成されます。

    (AgentX header)
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | h.version (1) |  h.type (3)   |    h.flags    |  <reserved>   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          h.sessionID                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        h.transactionID                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           h.packetID                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        h.payload_length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
    (r.context) (OPTIONAL)
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                     Octet String Length (L)                   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Octet 1      |  Octet 2      |   Octet 3     |   Octet 4     |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ...
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Octet L - 1  |  Octet L      |       Padding (as required)   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  r.timeout    |  r.priority   | r.range_subid |  <reserved>   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
    (r.region)
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  n_subid      |  prefix       |      0        |  <reserved>   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |             sub-identifier #1                                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ...
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |             sub-identifier #n_subid                           |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
    (r.upper_bound)
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |             optional upper-bound sub-identifier               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

An agentx-Register-PDU contains the following fields:

agentx-Register-PDUには、以下のフィールドが含まれています。

r.context

r.context

An optional non-default context.

オプションのデフォルト以外のコンテキスト。

r.timeout

r.timeout

The length of time, in seconds, that a master agent should allow to elapse after dispatching a message to a subagent before it regards the subagent as not responding. r.timeout applies only to messages that concern MIB objects within r.region. It overrides both the subagent-wide value (if any) indicated when the AgentX session with the master agent was established, and the master agent's default timeout. The default value for r.timeout is 0 (no override).

マスターエージェントがサブエージェントにメッセージをディスパッチした後、サブエージェントが応答していないと見なすまでの経過時間(秒単位)。 r.timeoutは、r.region内のMIBオブジェクトに関係するメッセージにのみ適用されます。これは、マスターエージェントとのAgentXセッションが確立されたときに示されたサブエージェント全体の値(存在する場合)と、マスターエージェントのデフォルトのタイムアウトの両方をオーバーライドします。 r.timeoutのデフォルト値は0(オーバーライドなし)です。

r.priority

r.priority

A value between 1 and 255, used to achieve a desired configuration when different subagents register identical or overlapping regions. Subagents with no particular knowledge of priority should register with the default value of 255 (lowest priority).

1から255までの値。異なるサブエージェントが同一または重複する領域を登録するときに、目的の構成を実現するために使用されます。優先度を特に知らないサブエージェントは、デフォルト値の255(最低の優先度)で登録する必要があります。

In the master agent's dispatching algorithm, smaller values of r.priority take precedence over larger values, as described in section 7.1.5.1.

マスターエージェントのディスパッチアルゴリズムでは、セクション7.1.5.1で説明されているように、r.priorityの小さい値が大きい値よりも優先されます。

r.region

r.region

An Object Identifier that, in conjunction with r.range_subid, indicates a region of the MIB that a subagent wishes to support. It may be a fully-qualified instance name, a partial instance name, a MIB table, an entire MIB, or ranges of any of these.

r.range_subidと組み合わせて、サブエージェントがサポートしたいMIBの領域を示すオブジェクト識別子。これは、完全修飾インスタンス名、部分インスタンス名、MIBテーブル、MIB全体、またはこれらのいずれかの範囲にすることができます。

The choice of what to register is implementation-specific; this memo does not specify permissible values. Standard practice however is for a subagent to register at the highest level of the naming tree that makes sense. Registration of fully-qualified instances is typically done only when a subagent can perform management operations only on particular rows of a conceptual table.

何を登録するかの選択は実装固有です。このメモは許容値を指定していません。ただし、標準的な方法は、サブエージェントが、意味のあるネーミングツリーの最高レベルで登録することです。完全修飾インスタンスの登録は、通常、サブエージェントが概念表の特定の行に対してのみ管理操作を実行できる場合にのみ行われます。

If r.region is in fact a fully qualified instance name, the INSTANCE_REGISTRATION bit in h.flags must be set, otherwise it must be cleared. The master agent may save this information to optimize subsequent operational dispatching.

r.regionが実際に完全修飾インスタンス名である場合は、h.flagsのINSTANCE_REGISTRATIONビットを設定する必要があります。それ以外の場合はクリアする必要があります。マスターエージェントは、この情報を保存して、後続の運用ディスパッチを最適化できます。

r.range_subid

r.range_subid

Permits specifying a range in place of one of r.region's sub-identifiers. If this value is 0, no range is specified. Otherwise the "r.range_subid"-th sub-identifier in r.region is a range lower bound, and the range upper bound sub-identifier (r.upper_bound) immediately follows r.region.

r.regionのいずれかのサブ識別子の代わりに範囲を指定できます。この値が0の場合、範囲は指定されません。それ以外の場合、r.regionの「r.range_subid」番目のサブ識別子は範囲の下限であり、範囲の上限サブ識別子(r.upper_bound)はr.regionの直後に続きます。

This permits registering a conceptual row with a single PDU. For example, the following PDU would register row 7 of the RFC 1573 ifTable (1.3.6.1.2.1.2.2.1.1-22.7):

これにより、概念的な行を単一のPDUに登録できます。たとえば、次のPDUはRFC 1573 ifTable(1.3.6.1.2.1.2.2.1.1-22.7)の行7を登録します。

   (AgentX header)
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | h.version (1) |  h.type (3)   |    h.flags    |  <reserved>   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          h.sessionID                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        h.transactionID                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           h.packetID                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        h.payload_length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   r.timeout   |  r.priority   | 5             |  <reserved>   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
   (r.region)
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | 6             |  2            |  0            |  <reserved>   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | 1                                                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | 2                                                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | 2                                                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | 1                                                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | 1                                                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | 7                                                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
   (r.upper_bound)
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | 22                                                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
6.2.4. The agentx-Unregister-PDU
6.2.4. agentx-Unregister-PDU

The agentx-Unregister-PDU is sent by a subagent to remove a previously registered MIB region from the master agent's OID space.

agentx-Unregister-PDUは、以前に登録されたMIB領域をマスターエージェントのOIDスペースから削除するためにサブエージェントによって送信されます。

   (AgentX header)
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | h.version (1) |  h.type (4)   |    h.flags    |  <reserved>   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          h.sessionID                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        h.transactionID                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           h.packetID                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        h.payload_length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
   (u.context) OPTIONAL
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Octet String Length (L)                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Octet 1      |  Octet 2      |   Octet 3     |   Octet 4     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Octet L - 1  |  Octet L      |       Padding (as required)   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    <reserved> |  u.priority   | u.range_subid |  <reserved>   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
   (u.region)
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  n_subid      |  prefix       |      0        |  <reserved>   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |             sub-identifier #1                                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |             sub-identifier #n_subid                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
   (u.upper_bound)
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |             optional upper-bound sub-identifier               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

An agentx-Unregister-PDU contains the following fields:

agentx-Unregister-PDUには以下のフィールドが含まれています。

u.context

u.context

An optional non-default context.

オプションのデフォルト以外のコンテキスト。

u.priority

u.priority

The priority at which this region was originally registered.

このリージョンが最初に登録された優先度。

u.region

u.region

Indicates a previously-registered region of the MIB that a subagent no longer wishes to support.

サブエージェントがサポートする必要がなくなった、以前に登録されたMIBの領域を示します。

6.2.5. The agentx-Get-PDU
6.2.5. agentx-Get-PDU
    (AgentX header)
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | h.version (1) |  h.type (5)   |    h.flags    |  <reserved>   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                          h.sessionID                          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                        h.transactionID                        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                           h.packetID                          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                        h.payload_length                       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
    (g.context) OPTIONAL
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                     Octet String Length (L)                   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Octet 1      |  Octet 2      |   Octet 3     |   Octet 4     |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ...
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Octet L - 1  |  Octet L      |       Padding (as required)   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

(g.sr)

(g。sr)

    (start 1)
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  n_subid      |  prefix       |  include      |  <reserved>   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |             sub-identifier #1                                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
    ...
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |             sub-identifier #n_subid                           |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
    (end 1)
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | 0             | 0             | 0             |       0       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ...
    (start n)
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  n_subid      |  prefix       |  include      |  <reserved>   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |             sub-identifier #1                                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ...
        
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |             sub-identifier #n_subid                           |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
    (end n)
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | 0             | 0             | 0             |       0       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

An agentx-Get-PDU contains the following fields:

agentx-Get-PDUには以下のフィールドが含まれています。

g.context

g.context

An optional non-default context.

オプションのデフォルト以外のコンテキスト。

g.sr

g。sr

A SearchRangeList containing the requested variables for this subagent.

このサブエージェントに要求された変数を含むSearchRangeList。

6.2.6. The agentx-GetNext-PDU
6.2.6. agentx-GetNext-PDU
    (AgentX header)
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | h.version (1) |  h.type (6)   |    h.flags    |  <reserved>   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                          h.sessionID                          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                        h.transactionID                        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                           h.packetID                          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                        h.payload_length                       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
    (g.context) OPTIONAL
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                     Octet String Length (L)                   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Octet 1      |  Octet 2      |   Octet 3     |   Octet 4     |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ...
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Octet L - 1  |  Octet L      |       Padding (as required)   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

(g.sr)

(g。sr)

    (start 1)
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  n_subid      |  prefix       |  include      |  <reserved>   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |             sub-identifier #1                                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ...
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |             sub-identifier #n_subid                           |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
    (end 1)
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  n_subid      |  prefix       |      0        |  <reserved>   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |             sub-identifier #1                                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
    ...
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |             sub-identifier #n_subid                           |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ...
        
    (start n)
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  n_subid      |  prefix       |  include      |  <reserved>   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |             sub-identifier #1                                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ...
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |             sub-identifier #n_subid                           |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
    (end n)
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  n_subid      |  prefix       |      0        |  <reserved>   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |             sub-identifier #1                                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ...
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |             sub-identifier #n_subid                           |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ...
        
6.2.7. The agentx-GetBulk-PDU
6.2.7. agentx-GetBulk-PDU
    (AgentX header)
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | h.version (1) |  h.type (7)   |    h.flags    |  <reserved>   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                          h.sessionID                          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                        h.transactionID                        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                           h.packetID                          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                        h.payload_length                       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    (g.context) OPTIONAL
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                     Octet String Length (L)                   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Octet 1      |  Octet 2      |   Octet 3     |   Octet 4     |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ...
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Octet L - 1  |  Octet L      |       Padding (as required)   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |             g.non_repeaters   |     g.max_repetitions         |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

(g.sr) as in agentx-GetNext-PDU above ...

(g.sr)上記のagentx-GetNext-PDUと同様...

6.2.8. The agentx-TestSet-PDU
6.2.8. agentx-TestSet-PDU
    (AgentX header)
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | h.version (1) |  h.type (8)   |    h.flags    |  <reserved>   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                          h.sessionID                          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                        h.transactionID                        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                           h.packetID                          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                        h.payload_length                       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
    (t.context) OPTIONAL
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                     Octet String Length (L)                   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Octet 1      |  Octet 2      |   Octet 3     |   Octet 4     |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ...
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Octet L - 1  |  Octet L      |       Padding (as required)   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
    (t.vb)
    (VarBind 1)
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |          v.type               |        <reserved>             |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  n_subid      |  prefix       |      0        |  <reserved>   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                       sub-identifier #1                       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ...
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                       sub-identifier #n_subid                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                       data                                    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ...
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                       data                                    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ...
        
    (VarBind n)
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |          v.type               |        <reserved>             |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  n_subid      |  prefix       |      0        |  <reserved>   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                       sub-identifier #1                       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ...
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                       sub-identifier #n_subid                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                       data                                    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ...
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                       data                                    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

An agentx-TestSet-PDU contains the following fields:

agentx-TestSet-PDUには以下のフィールドが含まれています。

t.context

t.context

An optional non-default context.

オプションのデフォルト以外のコンテキスト。

t.vb

t.vb

A VarBindList containing the requested VarBinds for this subagent.

このサブエージェントに対して要求されたVarBindsを含むVarBindList。

6.2.9. The agentx-CommitSet, -UndoSet, -CleanupSet PDUs
6.2.9. agentx-CommitSet、-UndoSet、-CleanupSet PDU

These PDUs consist of the AgentX header only.

これらのPDUは、AgentXヘッダーのみで構成されています。

The agentx-CommitSet-, -UndoSet-, and -Cleanup-PDUs are used in processing an SNMP SetRequest operation.

agentx-CommitSet-、-UndoSet-、および-Cleanup-PDUは、SNMP SetRequest操作の処理に使用されます。

6.2.10. The agentx-Notify-PDU
6.2.10. agentx-Notify-PDU

An agentx-Notify-PDU is sent by a subagent to cause the master agent to forward a notification.

agentx-Notify-PDUはサブエージェントによって送信され、マスターエージェントに通知を転送させます。

    (AgentX header)
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | h.version (1) |  h.type (12)  |    h.flags    |  <reserved>   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                          h.sessionID                          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                        h.transactionID                        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                           h.packetID                          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                        h.payload_length                       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
    (n.context) OPTIONAL
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                     Octet String Length (L)                   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Octet 1      |  Octet 2      |   Octet 3     |   Octet 4     |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ...
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Octet L - 1  |  Octet L      |       Padding (as required)   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

(n.vb) ...

(n.vb)...

An agentx-Notify-PDU contains the following fields:

agentx-Notify-PDUには、次のフィールドが含まれています。

n.context

n.context

An optional non-default context.

オプションのデフォルト以外のコンテキスト。

n.vb

n.vb

A VarBindList whose contents define the actual PDU to be sent. This memo places the following restrictions on its contents:

その内容が送信される実際のPDUを定義するVarBindList。このメモはその内容に以下の制限を課します:

- If the subagent supplies sysUpTime.0, it must be present as the first varbind.

- サブエージェントがsysUpTime.0を提供する場合、それは最初のvarbindとして存在している必要があります。

- snmpTrapOID.0 must be present, as the second varbind if sysUpTime.0 was supplied, as the first if it was not.

- snmpTrapOID.0は、sysUpTime.0が指定されている場合は2番目のvarbindとして、指定されていない場合は最初のvarbindとして存在する必要があります。

6.2.11 The agentx-Ping-PDU
6.2.11 agentx-Ping-PDU

The agentx-Ping-PDU is sent by a subagent to the master agent to monitor the master agent's ability to receive and send AgentX PDUs over their AgentX session.

agentx-Ping-PDUは、サブエージェントによってマスターエージェントに送信され、AgentXセッションでAgentX PDUを送受信するマスターエージェントの機能を監視します。

    (AgentX header)
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | h.version (1) |  h.type (13)  |    h.flags    |  <reserved>   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                          h.sessionID                          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                        h.transactionID                        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                           h.packetID                          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                        h.payload_length                       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
   (p.context) OPTIONAL
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                     Octet String Length (L)                   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Octet 1      |  Octet 2      |   Octet 3     |   Octet 4     |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ...
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Octet L - 1  |  Octet L      |       Padding (as required)   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

An agentx-Ping-PDU may contain the following field:

agentx-Ping-PDUには、次のフィールドが含まれる場合があります。

p.context

p.context

An optional non-default context.

オプションのデフォルト以外のコンテキスト。

Using p.context a subagent can retrieve the sysUpTime value for a specific context, if required.

必要に応じて、p.contextを使用して、サブエージェントは特定のコンテキストのsysUpTime値を取得できます。

6.2.12. The agentx-IndexAllocate-PDU
6.2.12. agentx-IndexAllocate-PDU

An agentx-IndexAllocate-PDU is sent by a subagent to request allocation of a value for specific index objects. Refer to section 7.1.3 (Using the agentx-IndexAllocate-PDU) for suggested usage.

agentx-IndexAllocate-PDUは、特定のインデックスオブジェクトの値の割り当てを要求するためにサブエージェントによって送信されます。推奨される使用法については、セクション7.1.3(agentx-IndexAllocate-PDUの使用)を参照してください。

    (AgentX header)
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | h.version (1) |  h.type (14)  |    h.flags    |  <reserved>   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                          h.sessionID                          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                        h.transactionID                        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                           h.packetID                          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                        h.payload_length                       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
    (i.context) OPTIONAL
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                     Octet String Length (L)                   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Octet 1      |  Octet 2      |   Octet 3     |   Octet 4     |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ...
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Octet L - 1  |  Octet L      |       Padding (as required)   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

(i.vb) ...

(i.vb)...

An agentx-IndexAllocate-PDU contains the following fields:

agentx-IndexAllocate-PDUには、次のフィールドが含まれています。

i.context

i.context

An optional non-default context.

オプションのデフォルト以外のコンテキスト。

i.vb

i.vb

A VarBindList containing the index names and values requested for allocation.

割り当てのために要求されたインデックス名と値を含むVarBindList。

6.2.13. The agentx-IndexDeallocate-PDU
6.2.13. agentx-IndexDeallocate-PDU

An agentx-IndexDeallocate-PDU is sent by a subagent to release previously allocated index values.

agentx-IndexDeallocate-PDUはサブエージェントによって送信され、以前に割り当てられたインデックス値を解放します。

    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | h.version (1) |  h.type (15)  |    h.flags    |  <reserved>   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                          h.sessionID                          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                        h.transactionID                        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                           h.packetID                          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                        h.payload_length                       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
    (i.context) OPTIONAL
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                     Octet String Length (L)                   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Octet 1      |  Octet 2      |   Octet 3     |   Octet 4     |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ...
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Octet L - 1  |  Octet L      |       Padding (as required)   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

(i.vb) ...

(i.vb)...

An agentx-IndexDeallocate-PDU contains the following fields:

agentx-IndexDeallocate-PDUには、次のフィールドが含まれています。

i.context

i.context

An optional non-default context.

オプションのデフォルト以外のコンテキスト。

i.vb

i.vb

A VarBindList containing the index names and values to be released.

リリースされるインデックスの名前と値を含むVarBindList。

6.2.14. The agentx-AddAgentCaps-PDU
6.2.14. agentx-AddAgentCaps-PDU

An agentx-AddAgentCaps-PDU is generated by a subagent to inform the master agent of its agent capabilities.

agentx-AddAgentCaps-PDUは、エージェントの機能をマスターエージェントに通知するためにサブエージェントによって生成されます。

    (AgentX header)
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | h.version (1) |  h.type (16)  |    h.flags    |  <reserved>   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                          h.sessionID                          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                        h.transactionID                        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                           h.packetID                          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                        h.payload_length                       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
    (a.context) (OPTIONAL)
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                     Octet String Length (L)                   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Octet 1      |  Octet 2      |   Octet 3     |   Octet 4     |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ...
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Octet L - 1  |  Octet L      |       Optional Padding        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
    (a.id)
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  n_subid      |  prefix       |      0        |  <reserved>   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |             sub-identifier #1                                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ...
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |             sub-identifier #n_subid                           |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
    (a.descr)
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                     Octet String Length (L)                   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Octet 1      |  Octet 2      |   Octet 3     |   Octet 4     |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
    ...
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Octet L - 1  |  Octet L      |       Optional Padding        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

An agentx-AddAgentCaps-PDU contains the following fields:

agentx-AddAgentCaps-PDUには以下のフィールドが含まれています。

a.context

a.context

An optional non-default context.

オプションのデフォルト以外のコンテキスト。

a.id

あ。いd

An Object Identifier containing the value of an invocation of the AGENT-CAPABILITIES macro, which the master agent exports as a value of sysORID for the indicated context. (Recall that the value of an invocation of an AGENT-CAPABILITIES macro is an object identifier that describes a precise level of support with respect to implemented MIB modules. A more complete discussion of the AGENT-CAPABILITIES macro and related sysORID values can be found in section 6 of RFC 1904 [10].)

マスターエージェントが指定されたコンテキストのsysORIDの値としてエクスポートするAGENT-CAPABILITIESマクロの呼び出しの値を含むオブジェクト識別子。 (AGENT-CAPABILITIESマクロの呼び出しの値は、実装されたMIBモジュールに関するサポートの正確なレベルを説明するオブジェクト識別子であることを思い出してください。AGENT-CAPABILITIESマクロと関連するsysORID値の詳細については、 RFC 1904 [10]のセクション6)。

a.descr

a.descr

An Octet String containing a DisplayString to be used as the value of sysORDescr corresponding to the sysORID value above.

上記のsysORID値に対応するsysORDescrの値として使用されるDisplayStringを含むオクテット文字列。

6.2.15. The agentx-RemoveAgentCaps-PDU
6.2.15. agentx-RemoveAgentCaps-PDU

An agentx-RemoveAgentCaps-PDU is generated by a subagent to request that the master agent stop exporting a particular value of sysORID. This value must have previously been advertised by the subagent in an agentx-AddAgentCaps-PDU.

agentx-RemoveAgentCaps-PDUは、マスターエージェントがsysORIDの特定の値のエクスポートを停止することを要求するためにサブエージェントによって生成されます。この値は、以前にサブエージェントによってagentx-AddAgentCaps-PDUで通知されている必要があります。

   (AgentX header)
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | h.version (1) |  h.type (17)  |    h.flags    |  <reserved>   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          h.sessionID                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        h.transactionID                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           h.packetID                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        h.payload_length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   (a.context) (OPTIONAL)
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Octet String Length (L)                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Octet 1      |  Octet 2      |   Octet 3     |   Octet 4     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Octet L - 1  |  Octet L      |       Optional Padding        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
   (a.id)
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  n_subid      |  prefix       |       0       |   <reserved>  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |             sub-identifier #1                                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |             sub-identifier #n_subid                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

An agentx-RemoveAgentCaps-PDU contains the following fields:

agentx-RemoveAgentCaps-PDUには、以下のフィールドが含まれています。

a.context

a.context

An optional non-default context.

オプションのデフォルト以外のコンテキスト。

a.id

あ。いd

An ObjectIdentifier containing the value of sysORID that should no longer be exported.

エクスポートされなくなったsysORIDの値を含むObjectIdentifier。

6.2.16. The agentx-Response-PDU
6.2.16. agentx-Response-PDU
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | h.version (1) |  h.type (18)  |    h.flags    |  <reserved>   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          h.sessionID                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        h.transactionID                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           h.packetID                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        h.payload_length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        res.sysUpTime                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |             res.error         |     res.index                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ...
        

An agentx-Response-PDU contains the following fields:

agentx-Response-PDUには、次のフィールドが含まれています。

h.sessionID

h.sessionID

If this is a response to a agentx-Open-PDU, then it contains the new and unique sessionID (as assigned by the master agent) for this session.

これがagentx-Open-PDUへの応答である場合、これには、このセッションの(マスターエージェントによって割り当てられた)新しい一意のセッションIDが含まれます。

Otherwise it must be identical to the h.sessionID value in the PDU to which this PDU is a response.

それ以外の場合は、このPDUが応答するPDUのh.sessionID値と同じである必要があります。

h.transactionID

h.transactionID

Must be identical to the h.transactionID value in the PDU to which this PDU is a response.

このPDUが応答するPDUのh.transactionID値と同じである必要があります。

In an agentx response PDU from the master agent to the subagent, the value of h.transactionID has no significance and can be ignored by the subagent.

マスターエージェントからサブエージェントへのagentx応答PDUでは、h.transactionIDの値に意味はなく、サブエージェントは無視できます。

h.packetID

h.packetID

Must be identical to the h.packetID value in the PDU to which this PDU is a response.

このPDUが応答するPDUのh.packetID値と同一である必要があります。

res.sysUpTime

res.sysUpTime

This field contains the current value of sysUpTime for the indicated context. It is relevant only in agentx response PDUs sent from the master agent to a subagent in response to the following agentx PDUs:

このフィールドには、示されたコンテキストのsysUpTimeの現在の値が含まれています。これは、以下のagentx PDUに応答してマスターエージェントからサブエージェントに送信されるagentx応答PDUにのみ関連します。

agentx-Open-PDU (1), agentx-Close-PDU (2), agentx-Register-PDU (3), agentx-Unregister-PDU (4), agentx-Ping-PDU (13), agentx-IndexAllocate-PDU (14), agentx-IndexDeallocate-PDU (15), agentx-AddAgentCaps-PDU (16), agentx-RemoveAgentCaps-PDU (17)

agentx-Open-PDU(1)、agentx-Close-PDU(2)、agentx-Register-PDU(3)、agentx-Unregister-PDU(4)、agentx-Ping-PDU(13)、agentx-IndexAllocate-PDU (14)、agentx-IndexDeallocate-PDU(15)、agentx-AddAgentCaps-PDU(16)、agentx-RemoveAgentCaps-PDU(17)

In an agentx response PDU from the subagent to the master agent, the value of res.sysUpTime has no significance and is ignored by the master agent.

サブエージェントからマスターエージェントへのagentx応答PDUでは、res.sysUpTimeの値は重要ではなく、マスターエージェントによって無視されます。

res.error

res.error

Indicates error status (including `noError'). Values are limited to those defined for errors in the SNMPv2 SMI (RFC 1905 [4]), and the following AgentX-specific values:

エラーステータスを示します(「noError」を含む)。値は、SNMPv2 SMI(RFC 1905 [4])のエラーに対して定義された値、および以下のAgentX固有の値に制限されます。

openFailed (256), notOpen (257), indexWrongType (258), indexAlreadyAllocated (259), indexNoneAvailable (260), indexNotAllocated (261), unsupportedContext (262), duplicateRegistration (263), unknownRegistration (264), unknownAgentCaps (265)

openFailed(256)、notOpen(257)、indexWrongType(258)、indexAlreadyAllocated(259)、indexNoneAvailable(260)、indexNotAllocated(261)、unsupportedContext(262)、duplicateRegistration(263)、unknownRegistration(264)、unknownAgentCaps(265)

res.index

res.index

In error cases, this is the index of the failed variable binding within a received request PDU. (Note: As explained in section 5.4, Value Representation, the index values of variable bindings within a variable binding list are 1-based.)

エラーの場合、これは、受信した要求PDU内で失敗した変数バインディングのインデックスです。 (注:セクション5.4「値の表現」で説明したように、変数バインディングリスト内の変数バインディングのインデックス値は1から始まります。)

A VarBindList may follow these latter two fields, depending on which AgentX PDU is being responded to. These data are specified in the subsequent elements of procedure.

VarBindListは、応答されるAgentX PDUに応じて、これらの後者の2つのフィールドの後に続きます。これらのデータは、プロシージャの後続の要素で指定されます。

7. Elements of Procedure
7. 手順の要素

This section describes the actions of protocol entities (master agents and subagents) implementing the AgentX protocol. Note, however, that it is not intended to constrain the internal architecture of any conformant implementation.

This section describes the actions of protocol entities (master agents and subagents) implementing the AgentX protocol. Note, however, that it is not intended to constrain the internal architecture of any conformant implementation.

Specific error conditions and associated actions are described in various places. Other error conditions not specifically mentioned fall into one of two categories, "parse" errors and "protocol" errors.

特定のエラー状態および関連するアクションは、さまざまな場所で説明されています。特に言及されていないその他のエラー条件は、「解析」エラーと「プロトコル」エラーの2つのカテゴリのいずれかに分類されます。

A parse error occurs when a receiving entity cannot decode the PDU. For instance, a VarBind contains an unknown type, or a PDU contains a malformed Object Identifier.

解析エラーは、受信エンティティがPDUをデコードできないときに発生します。たとえば、VarBindに不明なタイプが含まれているか、PDUに不正なオブジェクト識別子が含まれています。

A protocol error occurs when a receiving entity can parse a PDU, but the resulting data is unspecified. For instance, an agentx-Response-PDU is successfully parsed, but contains an unknown res.error value.

プロトコルエラーは、受信エンティティがPDUを解析できるが、結果のデータが指定されていない場合に発生します。たとえば、agentx-Response-PDUは正常に解析されますが、不明なres.error値が含まれています。

An implementation may choose either to ignore such messages, or to close the session on which they are received, using the appropriate reason code as defined in the agentx-Close-PDU.

実装では、agentx-Close-PDUで定義されている適切な理由コードを使用して、このようなメッセージを無視するか、メッセージが受信されたセッションを閉じるかを選択できます。

The actions of AgentX protocol entities can be broadly categorized under two headings, each of which is described separately:

The actions of AgentX protocol entities can be broadly categorized under two headings, each of which is described separately:

(1) processing AgentX administrative messages (e.g., connection requests from a subagent to a master agent); and

(1)AgentX管理メッセージの処理(サブエージェントからマスターエージェントへの接続要求など)。そして

(2) processing SNMP messages (the coordinated actions of a master agent and one or more subagents in processing, for example, a received SNMP GetRequest-PDU).

(2)SNMPメッセージの処理(マスターエージェントと処理中の1つ以上のサブエージェントの調整されたアクション、たとえば受信したSNMP GetRequest-PDUなど)。

7.1. Processing AgentX Administrative Messages
7.1. Processing AgentX Administrative Messages

This subsection describes the actions of AgentX protocol entities in processing AgentX administrative messages. Such messages include those involved in establishing and terminating an AgentX session between a subagent and a master agent, those by which a subagent requests allocation of instance index values, and those by which a subagent communicates to a master agent which MIB regions it supports.

このサブセクションでは、AgentX管理メッセージの処理におけるAgentXプロトコルエンティティのアクションについて説明します。このようなメッセージには、サブエージェントとマスターエージェント間のAgentXセッションの確立と終了に関係するメッセージ、サブエージェントがインスタンスインデックス値の割り当てを要求するメッセージ、サブエージェントがサポートするMIB領域をマスターエージェントと通信するメッセージが含まれます。

7.1.1. Processing the agentx-Open-PDU
7.1.1. agentx-Open-PDUの処理

When the master agent receives an agentx-Open-PDU, it processes it as follows:

マスターエージェントは、agentx-Open-PDUを受信すると、次のように処理します。

1) An agentx-Response-PDU is created and res.sysUpTime is set to the value of sysUpTime.0 for the indicated context.

1)agentx-Response-PDUが作成され、res.sysUpTimeが示されたコンテキストのsysUpTime.0の値に設定されます。

2) If the master agent is unable to open an AgentX session for any reason, it may refuse the session establishment request, sending in reply the agentx-Response-PDU, with res.error field set to `openFailed'.

2)マスターエージェントが何らかの理由でAgentXセッションを開くことができない場合、セッション確立要求を拒否し、res.errorフィールドを「openFailed」に設定して、agentx-Response-PDUを返信します。

3) Otherwise: The master agent assigns a sessionID to the new session and puts the value in the h.sessionID field of the agentx-Response-PDU. This value must be unique among all existing open sessions.

3) Otherwise: The master agent assigns a sessionID to the new session and puts the value in the h.sessionID field of the agentx-Response-PDU. This value must be unique among all existing open sessions.

4) The master agent retains session-specific information from the PDU for this subagent:

4) The master agent retains session-specific information from the PDU for this subagent:

- The NETWORK_BYTE_ORDER value in h.flags is retained. All subsequent AgentX protocol operations initiated by the master agent for this session must use this byte ordering and set this bit accordingly.

- h.flagsのNETWORK_BYTE_ORDER値は保持されます。このセッションのマスターエージェントによって開始された後続のすべてのAgentXプロトコル操作は、このバイト順序を使用し、それに応じてこのビットを設定する必要があります。

The subagent typically sets this bit to correspond to its native byte ordering, and typically does not vary byte ordering for an initiated session. The master agent must be able to decode each PDU according to the h.flag NETWORK_BYTE_ORDER bit in the PDU, but does not need to toggle its retained value for the session if the subagent varies its byte ordering.

The subagent typically sets this bit to correspond to its native byte ordering, and typically does not vary byte ordering for an initiated session. The master agent must be able to decode each PDU according to the h.flag NETWORK_BYTE_ORDER bit in the PDU, but does not need to toggle its retained value for the session if the subagent varies its byte ordering.

- The o.timeout value is used in calculating response timeout conditions for this subagent.

- o.timeout値は、このサブエージェントの応答タイムアウト条件の計算に使用されます。

- The o.id and o.descr fields are used for informational purposes. (Such purposes are implementation-specific for now, and may be used in a possible future standard AgentX MIB.)

- The o.id and o.descr fields are used for informational purposes. (Such purposes are implementation-specific for now, and may be used in a possible future standard AgentX MIB.)

5) The agentx-Response-PDU is sent with the res.error field set to `noError'.

5)agentx-Response-PDUは、res.errorフィールドを「noError」に設定して送信されます。

At this point, an AgentX session is considered established between the master agent and the subagent. An AgentX session is a distinct channel for the exchange of AgentX protocol messages between a master agent and one subagent, qualified by the session-specific attributes listed in 4) above. AgentX session establishment is initiated by the subagent. An AgentX session can be terminated by either the master agent or the subagent.

この時点で、AgentXセッションはマスターエージェントとサブエージェント間で確立されたと見なされます。 AgentXセッションは、マスターエージェントと1つのサブエージェント間でAgentXプロトコルメッセージを交換するための個別のチャネルであり、上記の4)にリストされているセッション固有の属性によって修飾されます。 AgentXセッションの確立は、サブエージェントによって開始されます。 AgentXセッションは、マスターエージェントまたはサブエージェントによって終了できます。

7.1.2. Processing the agentx-IndexAllocate-PDU
7.1.2. agentx-IndexAllocate-PDUの処理

When the master agent receives an agentx-IndexAllocate-PDU, it processes it as follows:

マスターエージェントは、agentx-IndexAllocate-PDUを受信すると、次のように処理します。

1) An agentx-Response-PDU is created and res.sysUpTime is set to the value of sysUpTime.0 for the default context.

1) An agentx-Response-PDU is created and res.sysUpTime is set to the value of sysUpTime.0 for the default context.

2) If h.sessionID does not correspond to a currently established session with this subagent, the agentx-Response-PDU is sent in reply with res.error set to `notOpen'.

2)h.sessionIDがこのサブエージェントと現在確立されているセッションに対応していない場合、agentx-Response-PDUはres.errorが「notOpen」に設定された応答として送信されます。

3) If the NON_DEFAULT_CONTEXT bit is set, and the master agent supports only a default context, the agentx-Response-PDU is returned with res.error set to `unsupportedContext', and the requested allocation fails. Otherwise: The value of res.sysUpTime is set to the value of sysUpTime.0 for the indicated context.

3)NON_DEFAULT_CONTEXTビットが設定されていて、マスターエージェントがデフォルトコンテキストのみをサポートしている場合、agentx-Response-PDUが返され、res.errorが「unsupportedContext」に設定され、要求された割り当てが失敗します。それ以外の場合:指定されたコンテキストのres.sysUpTimeの値がsysUpTime.0の値に設定されます。

4) Each VarBind in the VarBindList is processed until either all are successful, or one fails. If any VarBind fails, the agentx-Response-PDU is sent in reply containing the original VarBindList, with res.index set to indicate the failed VarBind, and with res.error set as described subsequently. All other VarBinds are ignored; no index values are allocated.

4)VarBindListの各VarBindは、すべてが成功するか1つが失敗するまで処理されます。 VarBindが失敗した場合は、元のVarBindListを含む応答でagentx-Response-PDUが送信され、res.indexは失敗したVarBindを示すように設定され、res.errorは後で説明するように設定されます。他のすべてのVarBindsは無視されます。インデックス値は割り当てられません。

VarBinds are processed as follows:

VarBindsは次のように処理されます。

- v.name is the name of the index for which a value is to be allocated.

- v.nameは、値が割り当てられるインデックスの名前です。

- v.type is the syntax of the index object.

- v.type is the syntax of the index object.

- v.data indicates the specific index value requested. If the NEW_INDEX or the ANY_INDEX bit is set, the actual value in v.data is ignored and an appropriate index value is generated.

- v.data indicates the specific index value requested. If the NEW_INDEX or the ANY_INDEX bit is set, the actual value in v.data is ignored and an appropriate index value is generated.

a) If there are no currently allocated index values for v.name in the indicated context, and v.type does not correspond to a valid index type value, the VarBind fails and res.error is set to `indexWrongType'.

a) 指定されたコンテキストでv.nameに現在割り当てられているインデックス値がなく、v.typeが有効なインデックスタイプ値に対応していない場合、VarBindは失敗し、res.errorは `indexWrongType 'に設定されます。

b) If there are currently allocated index values for v.name in the indicated context, but the syntax of those values does not match v.type, the VarBind fails and res.error is set to `indexWrongType'.

b) 指定されたコンテキストでv.nameに現在割り当てられているインデックス値があるが、それらの値の構文がv.typeと一致しない場合、VarBindは失敗し、res.errorは `indexWrongType 'に設定されます。

c) Otherwise, if both the NEW_INDEX and ANY_INDEX bits are clear, allocation of a specific index value is being requested. If the requested index is already allocated for v.name in the indicated context, the VarBind fails and res.error is set to `indexAlreadyAllocated'.

c) Otherwise, if both the NEW_INDEX and ANY_INDEX bits are clear, allocation of a specific index value is being requested. If the requested index is already allocated for v.name in the indicated context, the VarBind fails and res.error is set to `indexAlreadyAllocated'.

d) Otherwise, if the NEW_INDEX bit is set, the master agent should generate the next available index value for v.name in the indicated context, with the constraint that this value must not have been allocated (even if subsequently released) to any subagent since the last re-initialization of the master agent. If no such value can be generated, the VarBind fails and res.error is set to `indexNoneAvailable'.

d) それ以外の場合、NEW_INDEXビットが設定されていると、マスターエージェントは、指定されたコンテキストでv.nameの次に利用可能なインデックス値を生成する必要があります。マスターエージェントの最後の再初期化。そのような値を生成できない場合、VarBindは失敗し、res.errorは「indexNoneAvailable」に設定されます。

e) Otherwise, if the ANY_INDEX bit is set, the master agent should generate an index value for v.name in the indicated context, with the constraint that this value is not currently allocated to any subagent. If no such value can be generated, then the VarBind fails and res.error is set to `indexNoneAvailable'.

e) それ以外の場合、ANY_INDEXビットが設定されていると、マスターエージェントは指定されたコンテキストでv.nameのインデックス値を生成する必要があります。この値は現在、どのサブエージェントにも割り当てられていないという制約があります。そのような値を生成できない場合、VarBindは失敗し、res.errorは「indexNoneAvailable」に設定されます。

5) If all VarBinds are processed successfully, the agentx-Response-PDU is sent in reply with res.error set to `noError'. A VarBindList is included that is identical to the one sent in the agentx-IndexAllocate-PDU, except that VarBinds requesting a NEW_INDEX or ANY_INDEX value are generated with an appropriate value.

5)すべてのVarBindsが正常に処理されると、res.errorが `noError 'に設定された応答でagentx-Response-PDUが送信されます。 NEW_INDEXまたはANY_INDEX値を要求するVarBindsが適切な値で生成されることを除いて、agentx-IndexAllocate-PDUで送信されるものと同じVarBindListが含まれています。

7.1.3. Using the agentx-IndexAllocate-PDU
7.1.3. agentx-IndexAllocate-PDUの使用

Index allocation is a service provided by an AgentX master agent. It provides generic support for sharing MIB conceptual tables among subagents who are assumed to have no knowledge of each other.

インデックスの割り当ては、AgentXマスターエージェントによって提供されるサービスです。これは、相互に知識がないと想定されるサブエージェント間でMIB概念テーブルを共有するための一般的なサポートを提供します。

Each subagent sharing a table should first request allocation of index values, then use those index values to qualify MIB regions in its subsequent registrations.

テーブルを共有する各サブエージェントは、最初にインデックス値の割り当てを要求してから、それらのインデックス値を使用して、その後の登録でMIB領域を修飾する必要があります。

The master agent maintains a database of index objects (OIDs), and, for each index, the values that have been allocated for it. It is unaware of what MIB variables (if any) the index objects represent.

マスターエージェントは、インデックスオブジェクト(OID)のデータベースを維持し、インデックスごとに、それに割り当てられた値を維持します。インデックスオブジェクトが表すMIB変数(存在する場合)は認識されません。

By convention, subagents use the MIB variable listed in the INDEX clause as the index object for which values must be allocated. For tables indexed by multiple variables, values may be allocated for each index (although this is frequently unnecessary; see example 2 below). The subagent may request allocation of

慣例により、サブエージェントは、INDEX句にリストされているMIB変数を、値を割り当てる必要があるインデックスオブジェクトとして使用します。複数の変数によってインデックスが作成されたテーブルの場合、各インデックスに値を割り当てることができます(ただし、これは多くの場合不要です。以下の例2を参照してください)。サブエージェントは、

- a specific index value - an index value that is not currently allocated - an index value that has never been allocated

- a specific index value - an index value that is not currently allocated - an index value that has never been allocated

The last two alternatives reflect the uniqueness and constancy requirements present in many MIB specifications for arbitrary integer indexes (e.g., ifIndex in the IF MIB (RFC 1573 [11]), snmpFddiSMTIndex in the FDDI MIB (RFC 1285 [12]), or sysApplInstallPkgIndex in the System Application MIB [13]). The need for subagents to share tables using such indexes is the main motivation for index allocation in AgentX.

The last two alternatives reflect the uniqueness and constancy requirements present in many MIB specifications for arbitrary integer indexes (e.g., ifIndex in the IF MIB (RFC 1573 [11]), snmpFddiSMTIndex in the FDDI MIB (RFC 1285 [12]), or sysApplInstallPkgIndex in the System Application MIB [13]). The need for subagents to share tables using such indexes is the main motivation for index allocation in AgentX.

Example 1:

例1:

A subagent implements an interface, and wishes to register a single row of the RFC 1573 ifTable. It requests an allocation for the index object "ifIndex", for a value that has never been allocated (since ifIndex values must be unique). The master agent returns the value "7".

A subagent implements an interface, and wishes to register a single row of the RFC 1573 ifTable. It requests an allocation for the index object "ifIndex", for a value that has never been allocated (since ifIndex values must be unique). The master agent returns the value "7".

The subagent now attempts to register row 7 of ifTable, by specifying a MIB region in the agentx-Register-PDU of 1.3.6.1.2.1.2.2.1.[1-22].7. If the registration succeeds, no further processing is required. The master agent will dispatch to this subagent correctly.

サブエージェントは、agentx-Register-PDUで1.3.6.1.2.1.2.2.1。[1-22] .7のMIB領域を指定することにより、ifTableの行7を登録しようとします。登録が成功した場合、それ以上の処理は必要ありません。マスターエージェントはこのサブエージェントに正しくディスパッチします。

But the registration may fail. Index allocation and MIB region registration are not coupled in the master agent. Some other subagent may have already registered ifTable row 7 without first having requested allocation of the index. The current state of index allocations is not considered when processing registration requests, and the current registry is not considered when processing index allocation requests. If subagents follow the model of "first request allocation of an index, then register the corresponding region", then a successful index allocation request gives a subagent a good hint (but no guarantee) of what it should be able to register.

But the registration may fail. Index allocation and MIB region registration are not coupled in the master agent. Some other subagent may have already registered ifTable row 7 without first having requested allocation of the index. The current state of index allocations is not considered when processing registration requests, and the current registry is not considered when processing index allocation requests. If subagents follow the model of "first request allocation of an index, then register the corresponding region", then a successful index allocation request gives a subagent a good hint (but no guarantee) of what it should be able to register.

If the registration failed, the subagent should request allocation of a new index i, and attempt to register ifTable.[1-22].i, until successful.

If the registration failed, the subagent should request allocation of a new index i, and attempt to register ifTable.[1-22].i, until successful.

Example 2:

例2:

This same subagent wishes to register ipNetToMediaTable rows corresponding to its interface (ifIndex i). Due to structure of this table, no further index allocation need be done. The subagent can register the MIB region ipNetToMediaTable.[1-4].i, It is claiming responsibility for all rows of the table whose value of ipNetToMediaIfIndex is i.

This same subagent wishes to register ipNetToMediaTable rows corresponding to its interface (ifIndex i). Due to structure of this table, no further index allocation need be done. The subagent can register the MIB region ipNetToMediaTable.[1-4].i, It is claiming responsibility for all rows of the table whose value of ipNetToMediaIfIndex is i.

Example 3:

例3:

A network device consists of a set of processors, each of which accepts network connections for a unique set of IP addresses.

ネットワークデバイスは、一連のプロセッサで構成され、各プロセッサは、一意のIPアドレスのセットに対するネットワーク接続を受け入れます。

Further, each processor contains a subagent that implements tcpConnTable. In order to represent tcpConnTable for the entire managed device, the subagents need to share tcpConnTable.

さらに、各プロセッサには、tcpConnTableを実装するサブエージェントが含まれています。管理対象デバイス全体のtcpConnTableを表すために、サブエージェントはtcpConnTableを共有する必要があります。

In this case, no index allocation need be done at all. Each subagent can register a MIB region of tcpConnTable.[1-5].a.b.c.d, where a.b.c.d represents an unique IP address of the individual processor.

この場合、インデックスの割り当てはまったく必要ありません。各サブエージェントは、tcpConnTable。[1-5] .a.b.c.dのMIB領域を登録できます。ここで、a.b.c.dは、個々のプロセッサの一意のIPアドレスを表します。

Each subagent is claiming responsibility for the region of tcpConnTable where the value of tcpConnLocalAddress is a.b.c.d.

各サブエージェントは、tcpConnLocalAddressの値がa.b.c.dであるtcpConnTableの領域に対する責任を主張しています。

7.1.4 Processing the agentx-IndexDeallocate-PDU
7.1.4 Processing the agentx-IndexDeallocate-PDU

When the master agent receives an agentx-IndexDeallocate-PDU, it processes it as follows:

マスターエージェントは、agentx-IndexDeallocate-PDUを受信すると、次のように処理します。

1) An agentx-Response-PDU is created and res.sysUpTime is set to the value of sysUpTime.0 for the default context.

1)agentx-Response-PDUが作成され、res.sysUpTimeがデフォルトコンテキストのsysUpTime.0の値に設定されます。

2) If h.sessionID does not correspond to a currently established session with this subagent, the agentx-Response-PDU is sent in reply with res.error set to `notOpen'.

2)h.sessionIDがこのサブエージェントと現在確立されているセッションに対応していない場合、agentx-Response-PDUはres.errorが「notOpen」に設定された応答として送信されます。

3) If the NON_DEFAULT_CONTEXT bit is set, and the master agent supports only a default context, the agentx-Response-PDU is returned with res.error set to `unsupportedContext', and the requested deallocation fails. Otherwise: The value of res.sysUpTime is set to the value of sysUpTime.0 for the indicated context.

3)NON_DEFAULT_CONTEXTビットが設定されていて、マスターエージェントがデフォルトコンテキストのみをサポートしている場合、res.errorが「unsupportedContext」に設定されたagentx-Response-PDUが返され、リクエストされた割り当て解除は失敗します。それ以外の場合:指定されたコンテキストのres.sysUpTimeの値がsysUpTime.0の値に設定されます。

4) Each VarBind in the VarBindList is processed until either all are successful, or one fails. If any VarBind fails, the agentx-Response-PDU is sent in reply, containing the original VarBindList, with res.index set to indicate the failed VarBind, and with res.error set as described subsequently. All other VarBinds are ignored; no index values are released.

4)VarBindListの各VarBindは、すべてが成功するか1つが失敗するまで処理されます。 VarBindのいずれかが失敗すると、元のVarBindListを含むagentx-Response-PDUが返信で送信され、res.indexは失敗したVarBindを示すように設定され、res.errorは後で説明するように設定されます。他のすべてのVarBindsは無視されます。インデックス値は解放されません。

VarBinds are processed as follows:

VarBindsは次のように処理されます。

- v.name is the name of the index for which a value is to be released

- v.nameは、値が解放されるインデックスの名前です。

- v.type is the syntax of the index object

- v.typeはインデックスオブジェクトの構文です

- v.data indicates the specific index value to be released. The NEW_INDEX and ANY_INDEX bits are ignored.

- v.dataは、解放される特定のインデックス値を示します。 NEW_INDEXおよびANY_INDEXビットは無視されます。

a) If the index value for the named index is not currently allocated to this subagent, the VarBind fails and res.error is set to `indexNotAllocated'.

a) If the index value for the named index is not currently allocated to this subagent, the VarBind fails and res.error is set to `indexNotAllocated'.

5) If all VarBinds are processed successfully, res.error is set to `noError' and the agentx-Response-PDU is sent. A VarBindList is included which is identical to the one sent in the agentx-IndexDeallocate-PDU.

5)すべてのVarBindsが正常に処理されると、res.errorが「noError」に設定され、agentx-Response-PDUが送信されます。 agentx-IndexDeallocate-PDUで送信されたものと同じVarBindListが含まれています。

All released index values are now available, and may be used in response to subsequent allocation requests for ANY_INDEX values for the particular index.

リリースされたすべてのインデックス値が利用可能になり、特定のインデックスのANY_INDEX値に対する後続の割り当て要求への応答として使用できます。

7.1.5. Processing the agentx-Register-PDU
7.1.5. agentx-Register-PDUの処理

When the master agent receives an agentx-Register-PDU, it processes it as follows:

マスターエージェントは、agentx-Register-PDUを受信すると、次のように処理します。

1) An agentx-Response-PDU is created and res.sysUpTime is set to the value of sysUpTime.0 for the default context.

1)agentx-Response-PDUが作成され、res.sysUpTimeがデフォルトコンテキストのsysUpTime.0の値に設定されます。

2) If h.sessionID does not correspond to a currently established session with this subagent, the agentx-Response-PDU is sent in reply with res.error set to `notOpen'.

2) If h.sessionID does not correspond to a currently established session with this subagent, the agentx-Response-PDU is sent in reply with res.error set to `notOpen'.

3) If the NON_DEFAULT_CONTEXT bit is set, and the master agent supports only a default context, the agentx-Response-PDU is returned with res.error set to `unsupportedContext', and the requested registration fails. Otherwise: The value of res.sysUpTime is set to the value of sysUpTime.0 for the indicated context.

3)NON_DEFAULT_CONTEXTビットが設定されていて、マスターエージェントがデフォルトコンテキストのみをサポートしている場合、agentx-Response-PDUがres.errorを「unsupportedContext」に設定して返され、要求された登録は失敗します。それ以外の場合:指定されたコンテキストのres.sysUpTimeの値がsysUpTime.0の値に設定されます。

Note: Non-default contexts might be added on the fly by the master agent, or the master agent might require such non-default contexts to be pre-configured. The choice is implementation-specific.

Note: Non-default contexts might be added on the fly by the master agent, or the master agent might require such non-default contexts to be pre-configured. The choice is implementation-specific.

4) Characterize the request.

4)リクエストを特徴付けます。

If r.region (or any of its set of Object Identifiers, if r.range is non-zero) is exactly the same as any currently registered value of r.region (or any of its set of Object Identifiers), this registration is termed a duplicate region.

r.region(またはr.rangeがゼロ以外の場合はそのオブジェクトIDのセットのいずれか)が、現在登録されているr.region(またはそのオブジェクトIDのセットのいずれか)の値とまったく同じ場合、この登録は重複領域と呼ばれます。

If r.region (or any of its set of Object Identifiers, if r.range is non-zero) is a subtree of, or contains, any currently registered value of r.region (or any of its set of Object Identifiers), this registration is termed an overlapping region.

If r.region (or any of its set of Object Identifiers, if r.range is non-zero) is a subtree of, or contains, any currently registered value of r.region (or any of its set of Object Identifiers), this registration is termed an overlapping region.

If the NON_DEFAULT_CONTEXT bit is set, this region is to be logically registered within the context indicated by r.context.

NON_DEFAULT_CONTEXTビットが設定されている場合、この領域はr.contextで示されるコンテキスト内で論理的に登録されます。

Otherwise this region is to be logically registered within the default context.

Otherwise this region is to be logically registered within the default context.

A registration that would result in a duplicate region with the same priority and within the same context as that of a current registration is termed a duplicate registration.

現在の登録と同じ優先度と同じコンテキスト内の重複領域が生じる登録は、重複登録と呼ばれます。

5) Otherwise, if this is a duplicate registration, the agentx-Response-PDU is returned with res.error set to `duplicateRegistration', and the requested registration fails.

5) Otherwise, if this is a duplicate registration, the agentx-Response-PDU is returned with res.error set to `duplicateRegistration', and the requested registration fails.

6) Otherwise, the agentx-Response-PDU is returned with res.error set to `noError'.

6) Otherwise, the agentx-Response-PDU is returned with res.error set to `noError'.

The master agent adds this region to its registered OID space for the indicated context, to be considered during the dispatching phase for subsequently received SNMP protocol messages.

マスターエージェントは、指定されたコンテキストの登録済みOIDスペースにこのリージョンを追加します。これは、後で受信されるSNMPプロトコルメッセージのディスパッチフェーズ中に考慮されます。

Note: The following algorithm describes maintaining a set of OID ranges derived from "splitting" registered regions. The algorithm for operational dispatching is also stated in terms of these OID ranges.

注:次のアルゴリズムは、「分割された」登録された領域から派生した一連のOID範囲の維持について説明しています。運用ディスパッチのアルゴリズムも、これらのOID範囲の観点から説明されています。

These OID ranges are a useful explanatory device, but are not required for a correct implementation.

これらのOID範囲は有用な説明デバイスですが、正しい実装には必要ありません。

- If r.region (R1) is a subtree of a currently registered region (R2), split R2 into 3 new regions (R2a, R2b, and R2c) such that R2b is an exact duplicate of R1. Now remove R2 and add R1, R2a, R2b, and R2c to the master agent's lexicographically ordered set of ranges (the registered OID space). Note: Though newly-added ranges R1 and R2b are identical in terms of the MIB objects they contain, they are registered by different subagents, possibly at different priorities.

- r.region(R1)が現在登録されているリージョン(R2)のサブツリーである場合、R2bがR1の正確な複製になるように、R2を3つの新しいリージョン(R2a、R2b、およびR2c)に分割します。ここで、R2を削除し、R1、R2a、R2b、およびR2cをマスターエージェントの辞書順に配列された範囲のセット(登録されたOIDスペース)に追加します。注:新しく追加されたR1とR2bの範囲は、それらに含まれるMIBオブジェクトに関しては同じですが、異なるサブエージェントによって、おそらく異なる優先順位で登録されています。

For instance, if subagent S2 registered "ip" (R2 is 1.3.6.1.2.1.4) and subagent S1 subsequently registered "ipNetToMediaTable" (R1 is 1.3.6.1.2.1.4.22), the resulting set of registered regions would be:

たとえば、サブエージェントS2が「ip」(R2は1.3.6.1.2.1.4)を登録し、その後サブエージェントS1が「ipNetToMediaTable」(R1は1.3.6.1.2.1.4.22)を登録した場合、登録されたリージョンの結果セットは次のようになります。

1.3.6.1.2.1.4 up to but not including 1.3.6.1.2.1.4.22 (by S2) 1.3.6.1.2.1.4.22 up to but not including 1.3.6.1.2.1.4.23 (by S2) 1.3.6.1.2.1.4.22 up to but not including 1.3.6.1.2.1.4.23 (by S1) 1.3.6.1.2.1.4.23 up to but not including 1.3.6.1.2.1.5 (by S2)

1.3.6.1.2.1.4 1.3.6.1.2.1.4.22まで(S2によって)1.3.6.1.2.1.4.22まで(S2によって)1.3.6.1.2.1.4.23まで(S2まで)1.3.6.1.2.1.4.22まで(まで) 1.3.6.1.2.1.4.23を含む(S1による)1.3.6.1.2.1.4.23まで1.3.6.1.2.1.5を含む(S2による)

- If r.region (R1) overlaps one or more currently registered regions, then for each overlapped region (R2) split R1 into 3 new ranges (R1a, R1b, R1c) such that R1b is an exact duplicate of R2. Add R1b and R2 into the lexicographically ordered set of regions. Apply (5) above iteratively to R1a and R1c (since they may overlap, or be subtrees of, other regions).

- r.region(R1)が現在登録されている1つ以上のリージョンと重複する場合、重複するリージョン(R2)ごとにR1を3つの新しい範囲(R1a、R1b、R1c)に分割し、R1bがR2の正確な複製になるようにします。 R1bとR2を辞書順に並べられた一連の領域に追加します。上記の(5)をR1aとR1cに繰り返し適用します(他の領域と重複するか、またはそのサブツリーになる可能性があるため)。

For instance, given the currently registered regions in the example above, if subagent S3 now registers mib-2 (R1 is 1.3.6.1.2.1) the resulting set of regions would be:

For instance, given the currently registered regions in the example above, if subagent S3 now registers mib-2 (R1 is 1.3.6.1.2.1) the resulting set of regions would be:

1.3.6.1.2.1 up to but not including 1.3.6.1.2.1.4 (by S3) 1.3.6.1.2.1.4 up to but not including 1.3.6.1.2.1.4.22 (by S2) 1.3.6.1.2.1.4 up to but not including 1.3.6.1.2.1.4.22 (by S3) 1.3.6.1.2.1.4.22 up to but not including 1.3.6.1.2.1.4.23 (by S2) 1.3.6.1.2.1.4.22 up to but not including 1.3.6.1.2.1.4.23 (by S1) 1.3.6.1.2.1.4.22 up to but not including 1.3.6.1.2.1.4.23 (by S3) 1.3.6.1.2.1.4.23 up to but not including 1.3.6.1.2.1.5 (by S2) 1.3.6.1.2.1.4.23 up to but not including 1.3.6.1.2.1.5 (by S3) 1.3.6.1.2.1.5 up to but not including 1.3.6.1.2.2 (by S3)

1.3.6.1.2.1 1.3.6.1.2.1.4まで(S3による)1.3.6.1.2.1.4まで1.3.6.1.2.1.4.22(S2まで)1.3.6.1.2.1.4まで(S3まで) 1.3.6.1.2.1.4.22(S3による)1.3.6.1.2.1.4.22まで1.3.6.1.2.1.4.23(S2による)1.3.6.1.2.1.4.22まで1.3.6.1まで.2.1.4.23(S1による)1.3.6.1.2.1.4.22まで1.3.6.1.2.1.4.23まで(S3まで)1.3.6.1.2.1.4.23まで1.3.6.1.2.1.5まで(含まない) (S2による)1.3.6.1.2.1.4.23まで1.3.6.1.2.1.5まで(S3まで)1.3.6.1.2.1.5まで1.3Sまで(S3まで)

Note that at registration time a region may be split into multiple OID ranges due to pre-existing registrations, or as a result of any subsequent registration. This region splitting is transparent to subagents. Hence the master agent must always be able to associate any OID range with the information contained in its original agentx-Register-PDU.

登録時に、既存の登録が原因で、または後続の登録の結果として、領域が複数のOID範囲に分割される場合があることに注意してください。この領域分割は、サブエージェントに対して透過的です。したがって、マスターエージェントは常に、任意のOID範囲を元のagentx-Register-PDUに含まれる情報に関連付けることができる必要があります。

7.1.5.1. Handling Duplicate OID Ranges
7.1.5.1. 重複するOID範囲の処理

As a result of this registration algorithm there are likely to be duplicate OID ranges (regions of identical MIB objects registered to different subagents) in the master agent's registered OID space. Whenever the master agent's dispatching algorithm (see 7.2.1, Dispatching AgentX PDUs) results in a duplicate OID range, the master agent selects one to use, termed the 'authoritative region', as follows:

この登録アルゴリズムの結果として、マスターエージェントの登録済みOIDスペースに重複するOID範囲(異なるサブエージェントに登録された同一のMIBオブジェクトの領域)が存在する可能性があります。マスターエージェントのディスパッチアルゴリズム(7.2.1、AgentX PDUのディスパッチを参照)が重複するOID範囲になる場合は常に、マスターエージェントは、次のように、「権限のあるリージョン」と呼ばれる使用する1つを選択します。

1) Choose the one whose original agentx-Register-PDU r.region contained the most subids, i.e., the most specific r.region. Note: The presence or absence of a range subid has no bearing on how "specific" one object identifier is compared to another.

1) Choose the one whose original agentx-Register-PDU r.region contained the most subids, i.e., the most specific r.region. Note: The presence or absence of a range subid has no bearing on how "specific" one object identifier is compared to another.

2) If still ambiguous, there were duplicate regions. Choose the one whose original agentx-Register-PDU specified the smaller value of r.priority.

2)それでもあいまいな場合は、重複した領域がありました。元のagentx-Register-PDUがr.priorityのより小さい値を指定したものを選択します。

7.1.6. Processing the agentx-Unregister-PDU
7.1.6. agentx-Unregister-PDUの処理

1) An agentx-Response-PDU is created and res.sysUpTime is set to the value of sysUpTime.0 for the default context.

1)agentx-Response-PDUが作成され、res.sysUpTimeがデフォルトコンテキストのsysUpTime.0の値に設定されます。

2) If h.sessionID does not correspond to a currently established session with this subagent, the agentx-Response-PDU is sent in reply with res.error set to `notOpen'.

2) If h.sessionID does not correspond to a currently established session with this subagent, the agentx-Response-PDU is sent in reply with res.error set to `notOpen'.

3) If the NON_DEFAULT_CONTEXT bit is set, and the master agent supports only a default context, the agentx-Response-PDU is returned with res.error set to `unsupportedContext', and the requested unregistration fails. Otherwise: The value of res.sysUpTime is set to the value of sysUpTime.0 for the indicated context.

3)NON_DEFAULT_CONTEXTビットが設定されていて、マスターエージェントがデフォルトコンテキストのみをサポートしている場合、agentx-Response-PDUがres.errorを「unsupportedContext」に設定して返され、要求された登録解除は失敗します。それ以外の場合:指定されたコンテキストのres.sysUpTimeの値がsysUpTime.0の値に設定されます。

4) If u.region, u.priority, and the indicated context do not match an existing registration made during this session, the agentx-Response-PDU is returned with res.error set to `unknownRegistration'.

4)u.region、u.priority、および示されたコンテキストがこのセッション中に作成された既存の登録と一致しない場合、agentx-Response-PDUが返され、res.errorが「unknownRegistration」に設定されます。

5) Otherwise, the agentx-Response-PDU is sent in reply with res.error set to `noError', and the previous registration is removed:

5) Otherwise, the agentx-Response-PDU is sent in reply with res.error set to `noError', and the previous registration is removed:

- The master agent removes u.region from its registered OID space within the indicated context. If the original region had been split, all such related regions are removed.

- マスターエージェントは、指定されたコンテキスト内の登録済みOIDスペースからu.regionを削除します。元のリージョンが分割されていた場合、そのような関連するリージョンはすべて削除されます。

For instance, given the example registry above, if subagent S2 unregisters "ip", the resulting registry would be:

たとえば、上記のレジストリの例で、サブエージェントS2が「ip」の登録を解除すると、結果のレジストリは次のようになります。

1.3.6.1.2.1 up to but not including 1.3.6.1.2.1.4 (by S3) 1.3.6.1.2.1.4 up to but not including 1.3.6.1.2.1.4.22 (by S3) 1.3.6.1.2.1.4.22 up to but not including 1.3.6.1.2.1.4.23 (by S1) 1.3.6.1.2.1.4.22 up to but not including 1.3.6.1.2.1.4.23 (by S3) 1.3.6.1.2.1.4.23 up to but not including 1.3.6.1.2.1.5 (by S3) 1.3.6.1.2.1.5 up to but not including 1.3.6.1.2.2 (by S3)

1.3.6.1.2.1 1.3.6.1.2.1.4まで(S3による)1.3.6.1.2.1.4 1.3.6.1.2.1.4.22まで(S3まで)1.3.6.1.2.1.4.22まで(S3まで) 1.3.6.1.2.1.4.23(S1による)1.3.6.1.2.1.4.22まで1.3.6.1.2.1.4.23(S3による)1.3.6.1.2.1.4.23まで1.3.6.1まで.2.1.5(S3による)1.3.6.1.2.1.5から1.3.6.1.2.2まで(S3による)を含まない

7.1.7. Processing the agentx-AddAgentCaps-PDU
7.1.7. agentx-AddAgentCaps-PDUの処理

When the master agent receives an agentx-AddAgentCaps-PDU, it processes it as follows:

マスターエージェントは、agentx-AddAgentCaps-PDUを受信すると、次のように処理します。

1) An agentx-Response-PDU is created and res.sysUpTime is set to the value of sysUpTime.0 for the default context.

1)agentx-Response-PDUが作成され、res.sysUpTimeがデフォルトコンテキストのsysUpTime.0の値に設定されます。

2) If h.sessionID does not correspond to a currently established session with this subagent, the agentx-Response-PDU is sent in reply with res.error set to `notOpen'.

2)h.sessionIDがこのサブエージェントと現在確立されているセッションに対応していない場合、agentx-Response-PDUはres.errorが「notOpen」に設定された応答として送信されます。

3) If the NON_DEFAULT_CONTEXT bit is set, and the master agent supports only a default context, the agentx-Response-PDU is returned with res.error set to `unsupportedContext', and the requested operation fails. Otherwise: The value of res.sysUpTime is set to the value of sysUpTime.0 for the indicated context.

3)NON_DEFAULT_CONTEXTビットが設定されていて、マスターエージェントがデフォルトコンテキストのみをサポートしている場合、res.errorを「unsupportedContext」に設定してagentx-Response-PDUが返され、要求された操作は失敗します。それ以外の場合:指定されたコンテキストのres.sysUpTimeの値がsysUpTime.0の値に設定されます。

4) Otherwise, the master agent adds the subagent's capabilities information to the sysORTable for the indicated context. An agentx-Response-PDU is sent in reply with res.error set to `noError'.

4) Otherwise, the master agent adds the subagent's capabilities information to the sysORTable for the indicated context. An agentx-Response-PDU is sent in reply with res.error set to `noError'.

7.1.8. Processing the agentx-RemoveAgentCaps-PDU
7.1.8. agentx-RemoveAgentCaps-PDUの処理

1) An agentx-Response-PDU is created and res.sysUpTime is set to the value of sysUpTime.0 for the default context.

1)agentx-Response-PDUが作成され、res.sysUpTimeがデフォルトコンテキストのsysUpTime.0の値に設定されます。

2) If h.sessionID does not correspond to a currently established session with this subagent, the agentx-Response-PDU is sent in reply with res.error set to `notOpen'.

2)h.sessionIDがこのサブエージェントと現在確立されているセッションに対応していない場合、agentx-Response-PDUはres.errorが「notOpen」に設定された応答として送信されます。

3) If the NON_DEFAULT_CONTEXT bit is set, and the master agent supports only a default context, the agentx-Response-PDU is returned with res.error set to `unsupportedContext', and the requested operation fails. Otherwise: The value of res.sysUpTime is set to the value of sysUpTime.0 for the indicated context.

3)NON_DEFAULT_CONTEXTビットが設定されていて、マスターエージェントがデフォルトコンテキストのみをサポートしている場合、res.errorを「unsupportedContext」に設定してagentx-Response-PDUが返され、要求された操作は失敗します。それ以外の場合:指定されたコンテキストのres.sysUpTimeの値がsysUpTime.0の値に設定されます。

4) If the combination of a.id and the optional a.context does not represent a sysORTable entry that was added by this subagent, during this session, the agentx-Response-PDU is returned with res.error set to `unknownAgentCaps'.

4) If the combination of a.id and the optional a.context does not represent a sysORTable entry that was added by this subagent, during this session, the agentx-Response-PDU is returned with res.error set to `unknownAgentCaps'.

5) Otherwise the master agent deletes the corresponding sysORTable entry and sends in reply the agentx-Response-PDU, with res.error set to `noError'.

5)それ以外の場合、マスターエージェントは対応するsysORTableエントリを削除し、res.errorを「noError」に設定して、agentx-Response-PDUを返信します。

7.1.9. Processing the agentx-Close-PDU
7.1.9. agentx-Close-PDUの処理

When the master agent receives an agentx-Close-PDU, it processes it as follows:

マスターエージェントは、agentx-Close-PDUを受信すると、次のように処理します。

1) An agentx-Response-PDU is created and res.sysUpTime is set to the value of sysUpTime.0 for the default context.

1)agentx-Response-PDUが作成され、res.sysUpTimeがデフォルトコンテキストのsysUpTime.0の値に設定されます。

2) If h.sessionID does not correspond to a currently established session with this subagent, the agentx-Response-PDU is sent in reply with res.error set to `notOpen'.

2)h.sessionIDがこのサブエージェントと現在確立されているセッションに対応していない場合、agentx-Response-PDUはres.errorが「notOpen」に設定された応答として送信されます。

3) Otherwise, the master agent closes the AgentX session as described below. No agentx-Response-PDU is sent.

3)それ以外の場合、マスターエージェントは、以下で説明するようにAgentXセッションを閉じます。 agentx-Response-PDUは送信されません。

- All MIB regions that have been registered during this session are unregistered, as described in 7.1.6.

- 7.1.6で説明されているように、このセッション中に登録されたすべてのMIB領域は登録解除されます。

- All index values allocated during this session are freed, as described in section 7.1.4.

- セクション7.1.4で説明されているように、このセッション中に割り当てられたすべてのインデックス値は解放されます。

- All sysORID values that were registered during this session are removed, as described in section 7.1.8.

- セクション7.1.8で説明されているように、このセッション中に登録されたすべてのsysORID値は削除されます。

The master agent does not maintain state for closed sessions. If a subagent wishes to re-establish a session after receiving an agentx-Close-PDU, it needs to re-register MIB regions, agent capabilities, etc.

マスターエージェントは、閉じたセッションの状態を維持しません。サブエージェントがagentx-Close-PDUの受信後にセッションを再確立したい場合、サブエージェントはMIBリージョン、エージェント機能などを再登録する必要があります。

7.1.10. Detecting Connection Loss
7.1.10. 接続損失の検出

If a master agent is able to detect (from the underlying transport) that a subagent cannot receive AgentX PDUs, it should close all affected AgentX sessions as described in 7.1.9, step 3).

マスターエージェントが(基になるトランスポートから)サブエージェントがAgentX PDUを受信できないことを検出できる場合、7.1.9の手順3で説明されているように、影響を受けるすべてのAgentXセッションを閉じる必要があります。

7.1.11. Processing the agentx-Notify-PDU
7.1.11. agentx-Notify-PDUの処理

A subagent sending SNMPv1 trap information must map this into (minimally) a value of snmpTrapOID.0, as described in 3.1.2 of RFC 1908 [8].

RFC1908 [8]の3.1.2で説明されているように、SNMPv1トラップ情報を送信するサブエージェントは、これを(最低限)snmpTrapOID.0の値にマップする必要があります。

The master agent processes the agentx-Notify-PDU as follows:

マスターエージェントは、agentx-Notify-PDUを次のように処理します。

1) If h.sessionID does not correspond to a currently established session with this subagent, an agentx-Response-PDU is sent in reply with res.error set to `notOpen', and res.sysUpTime set to the value of sysUpTime.0 for the indicated context.

1)h.sessionIDがこのサブエージェントと現在確立されているセッションに対応していない場合、res.errorが「notOpen」に設定され、res.sysUpTimeがsysUpTime.0の値に設定された応答として、agentx-Response-PDUが送信されます。示されたコンテキスト。

2) The VarBindList is parsed. If it does not contain a value for sysUpTime.0, the master agent supplies the current value of sysUpTime.0 for the indicated context. If the next VarBind (either the first or second VarBind; see section 6.2.10.1) is not snmpTrapOID.0, the master agent ceases further processing of the notification.

2)VarBindListが解析されます。 sysUpTime.0の値が含まれていない場合、マスターエージェントは指定されたコンテキストにsysUpTime.0の現在の値を提供します。次のVarBind(最初または2番目のVarBind、セクション6.2.10.1を参照)がsnmpTrapOID.0でない場合、マスターエージェントは通知の処理を中止します。

3) Notifications are sent according to the implementation-specific configuration of the master agent.

3)マスターエージェントの実装固有の構成に従って通知が送信されます。

If SNMPv1 Trap PDUs are generated, the recommended mapping is as described in RFC 2089 [9].

If SNMPv1 Trap PDUs are generated, the recommended mapping is as described in RFC 2089 [9].

Except in the case of a `notOpen' error as described in (1) above, no agentx-Response-PDU is sent to the subagent when the master agent finishes processing the notification.

上記の(1)で説明した「notOpen」エラーの場合を除いて、マスターエージェントが通知の処理を完了しても、agentx-Response-PDUはサブエージェントに送信されません。

7.1.12. Processing the agentx-Ping-PDU
7.1.12. Processing the agentx-Ping-PDU

When the master agent receives an agentx-Ping-PDU, it processes it as follows:

マスターエージェントは、agentx-Ping-PDUを受信すると、次のように処理します。

1) An agentx-Response-PDU is created and res.sysUpTime is set to the value of sysUpTime.0 for the default context.

1)agentx-Response-PDUが作成され、res.sysUpTimeがデフォルトコンテキストのsysUpTime.0の値に設定されます。

2) If h.sessionID does not correspond to a currently established session with this subagent, the agentx-Response-PDU is sent in reply with res.error set to `notOpen'.

2)h.sessionIDがこのサブエージェントと現在確立されているセッションに対応していない場合、agentx-Response-PDUはres.errorが「notOpen」に設定された応答として送信されます。

3) If the NON_DEFAULT_CONTEXT bit is set, and the master agent supports only a default context, the agentx-Response-PDU is returned with res.error set to `unsupportedContext'. Otherwise: The value of res.sysUpTime is set to the value of sysUpTime.0 for the indicated context.

3)NON_DEFAULT_CONTEXTビットが設定されていて、マスターエージェントがデフォルトコンテキストのみをサポートしている場合、agentx-Response-PDUが返され、res.errorが「unsupportedContext」に設定されます。それ以外の場合:指定されたコンテキストのres.sysUpTimeの値がsysUpTime.0の値に設定されます。

4) The agentx-Response-PDU is sent, with res.error set to `noError'.

4)res.errorが「noError」に設定されたagentx-Response-PDUが送信されます。

If a subagent does not receive a response to its pings, or if it is able to detect (from the underlying transport) that the master agent is not able to receive AgentX messages, then it eventually must initiate a new AgentX session, re-register its regions, etc.

サブエージェントがpingへの応答を受信しない場合、またはマスターエージェントがAgentXメッセージを受信できないことを(基になるトランスポートから)検出できる場合、最終的に新しいAgentXセッションを開始し、再登録する必要があります。その地域など

7.2. Processing Received SNMP Protocol Messages
7.2. 受信したSNMPプロトコルメッセージの処理

When an SNMP GetRequest, GetNextRequest, GetBulkRequest, or SetRequest protocol message is received by the master agent, the master agent applies its access control policy.

SNMP GetRequest、GetNextRequest、GetBulkRequest、またはSetRequestプロトコルメッセージがマスターエージェントによって受信されると、マスターエージェントはそのアクセス制御ポリシーを適用します。

In particular, for SNMPv1 or SNMPv2c PDUs, the master agent applies the Elements of Procedure defined in section 4.1 of RFC 1157 [6] that apply to receiving entities. (For other versions of SNMP, the master agent applies the access control policy defined in the Elements of Procedure for those versions.) In the SNMPv1 or v2c frameworks, the master agent uses the community string as an index into a local repository of configuration information that may include community profiles or more complex context information.

特に、SNMPv1またはSNMPv2c PDUの場合、マスターエージェントは、受信エンティティに適用されるRFC 1157 [6]のセクション4.1で定義された手順の要素を適用します。 (他のバージョンのSNMPの場合、マスターエージェントは、それらのバージョンの手順の要素で定義されたアクセス制御ポリシーを適用します。)SNMPv1またはv2cフレームワークでは、マスターエージェントは、構成情報のローカルリポジトリへのインデックスとしてコミュニティストリングを使用します。コミュニティプロフィールやより複雑なコンテキスト情報が含まれる場合があります。

If application of the access control policy results in a valid SNMP request PDU, then an SNMP Response-PDU is constructed from information gathered in the exchange of AgentX PDUs between the master agent and one or more subagents. Upon receipt and initial validation of an SNMP request PDU, a master agent uses the procedures described below to dispatch AgentX PDUs to the proper subagents, marshal the subagent responses, and construct an SNMP response PDU.

If application of the access control policy results in a valid SNMP request PDU, then an SNMP Response-PDU is constructed from information gathered in the exchange of AgentX PDUs between the master agent and one or more subagents. Upon receipt and initial validation of an SNMP request PDU, a master agent uses the procedures described below to dispatch AgentX PDUs to the proper subagents, marshal the subagent responses, and construct an SNMP response PDU.

7.2.1. Dispatching AgentX PDUs
7.2.1. AgentX PDUのディスパッチ

Upon receipt and initial validation of an SNMP request PDU, a master agent uses the procedures described below to dispatch AgentX PDUs to the proper subagents.

SNMPリクエストPDUを受信して​​初期検証すると、マスターエージェントは以下に説明する手順を使用して、AgentX PDUを適切なサブエージェントにディスパッチします。

Note: In the following procedures, an object identifier is said to be "contained" within an OID range when both of the following are true:

注:以下の手順では、以下の両方が当てはまる場合、オブジェクトIDはOID範囲内に「含まれる」と言います。

- The object identifier does not lexicographically precede the range.

- オブジェクト識別子は、辞書式には範囲の前にはありません。

- The object identifier lexicographically precedes the end of the range.

- オブジェクト識別子は、辞書式に範囲の最後に先行します。

General Rules of Procedure

手続きの一般規則

While processing a particular SNMP request, the master agent may send one or more AgentX PDUs to one or more subagents. The following rules of procedure apply in general to the AgentX master agent. PDU-specific rules are listed in the applicable sections.

特定のSNMP要求を処理している間、マスターエージェントは1つ以上のAgentX PDUを1つ以上のサブエージェントに送信できます。次の手順規則は、AgentXマスターエージェントに一般的に適用されます。 PDU固有のルールは、該当するセクションにリストされています。

1) Honoring the registry

1)レジストリを尊重する

Because AgentX supports overlapping registrations, it is possible for the master agent to obtain a value for a requested varbind from within multiple registered MIB regions.

AgentXは重複する登録をサポートするため、マスターエージェントは、登録された複数のMIB領域内から要求されたvarbindの値を取得できます。

The master agent must ensure that the value (or exception) actually returned in the SNMP response PDU is taken from the authoritative region (as defined in section 7.1.5.1).

マスターエージェントは、SNMP応答PDUで実際に返される値(または例外)が(7.1.5.1で定義されているように)権限のある領域から取得されていることを確認する必要があります。

2) GetNext and GetBulk Processing

2)GetNextおよびGetBulk処理

The master agent may choose to send agentx-Get-PDUs while servicing an SNMP GetNextRequest-PDU. The master agent may choose to send agentx-Get-PDUs or agentx-GetNext-PDUs while servicing an SNMP GetBulkRequest-PDU. One possible reason for this would be if the current iteration has targeted instance-level registrations.

マスターエージェントは、SNMP GetNextRequest-PDUの処理中に、agentx-Get-PDUを送信することを選択できます。マスターエージェントは、SNMP GetBulkRequest-PDUの処理中に、agentx-Get-PDUまたはagentx-GetNext-PDUを送信することを選択できます。これの1つの考えられる理由は、現在のイテレーションがインスタンスレベルの登録を対象にしている場合です。

The master agent may choose to "scope" the possible instances returned by a subagent by specifying an ending OID in the SearchRange. If such scoping is used, typically the ending OID would be the first lexicographical successor to the target OID range that was registered by a subagent other than the target subagent. Regardless of this choice, rule (1) must be obeyed.

マスターエージェントは、SearchRangeで終了OIDを指定することにより、サブエージェントによって返される可能性のあるインスタンスを「スコープ」することを選択できます。そのようなスコーピングが使用される場合、通常、終了OIDは、ターゲットサブエージェント以外のサブエージェントによって登録されたターゲットOID範囲の最初の辞書式の後続となります。この選択に関係なく、ルール(1)に従う必要があります。

The master agent may require multiple request-response iterations on the same subagent session, to determine the final value of all requested variables.

マスターエージェントは、リクエストされたすべての変数の最終的な値を決定するために、同じサブエージェントセッションで複数のリクエスト/レスポンスの反復を必要とする場合があります。

All AgentX PDUs sent on the session while processing a given SNMP request must contain identical values of transactionID. Each different SNMP request processed by the master agent must present a unique value of transactionID (within the limits of the 32-bit field) to the session.

特定のSNMP要求の処理中にセッションで送信されるすべてのAgentX PDUには、同じ値のtransactionIDが含まれている必要があります。マスターエージェントによって処理される各SNMP要求は、トランザクションに対して一意の値(32ビットフィールドの制限内)をトランザクションに提示する必要があります。

3) Number and order of variables sent per AgentX PDU

3)AgentX PDUごとに送信される変数の数と順序

For Get/GetNext/GetBulk operations, at any stage of the possibly iterative process, the master agent may need to dispatch several SearchRanges to a particular subagent session. The master agent may send one, some, or all of the SearchRanges in a single AgentX PDU.

Get / GetNext / GetBulk操作の場合、反復処理の可能性がある任意の段階で、マスターエージェントは特定のサブエージェントセッションに複数のSearchRangesをディスパッチする必要がある場合があります。マスターエージェントは、1つのAgentX PDUで1つ、一部、またはすべてのSearchRangesを送信できます。

The master agent must ensure that the correct contents and ordering of the VarBindList in the SNMP Response-PDU are maintained.

マスターエージェントは、SNMP Response-PDUのVarBindListの正しい内容と順序が維持されていることを確認する必要があります。

The following rules govern the number of VarBinds in a given AgentX PDU:

次のルールは、特定のAgentX PDU内のVarBindsの数を管理します。

a) The subagent must support processing of AgentX PDUs with multiple VarBinds.

a) サブエージェントは、複数のVarBindを使用したAgentX PDUの処理をサポートする必要があります。

b) When processing an SNMP Set request, the master agent must send all of the VarBinds applicable to a particular subagent session in a single Test/Set transaction.

b) SNMP Set要求を処理するとき、マスターエージェントは、特定のサブエージェントセッションに適用可能なすべてのVarBindsを1つのTest / Setトランザクションで送信する必要があります。

c) When processing an SNMP Get, GetNext, or GetBulk request, the master agent may send a single AgentX PDU to the subagent with all applicable VarBinds, or multiple PDUs with single VarBinds, or something in between those extremes. The determination of which method to use in a particular case is implementation-specific.

c) When processing an SNMP Get, GetNext, or GetBulk request, the master agent may send a single AgentX PDU to the subagent with all applicable VarBinds, or multiple PDUs with single VarBinds, or something in between those extremes. The determination of which method to use in a particular case is implementation-specific.

4) Timeout Values

4)タイムアウト値

The master agent chooses a timeout value for each MIB region being queried, which is

マスターエージェントは、照会される各MIB領域のタイムアウト値を選択します。

a) the value specified during registration of the MIB region, if it was non-zero

a) ゼロ以外の場合、MIB領域の登録中に指定された値

b) otherwise, the value specified during establishment of the session in which this region was subsequently registered, if that value was non-zero.

b) それ以外の場合、この領域がその後登録されたセッションの確立中に指定された値(その値がゼロ以外の場合)。

c) otherwise, the master agent's default value

c) それ以外の場合、マスターエージェントのデフォルト値

When an AgentX PDU that references multiple MIB regions is dispatched, the timeout value used for the PDU is the maximum value of the timeouts so determined for each of the referenced MIB regions.

複数のMIB領域を参照するAgentX PDUがディスパッチされる場合、PDUに使用されるタイムアウト値は、参照されるMIB領域ごとに決定されるタイムアウトの最大値です。

5) Context

5)コンテキスト

If the master agent has determined that a specific non-default context is associated with the SNMP request PDU, that context is encoded into the AgentX PDU's context field and the NON_DEFAULT_CONTEXT bit is set in h.flags.

デフォルト以外の特定のコンテキストがSNMPリクエストPDUに関連付けられているとマスターエージェントが判断した場合、そのコンテキストはAgentX PDUのコンテキストフィールドにエンコードされ、NON_DEFAULT_CONTEXTビットがh.flagsに設定されます。

Otherwise, no context Octet String is added to the PDU, and the NON_DEFAULT_CONTEXT bit is cleared.

それ以外の場合、コンテキストオクテット文字列はPDUに追加されず、NON_DEFAULT_CONTEXTビットはクリアされます。

7.2.1.1. agentx-Get-PDU
7.2.1.1. agentx-Get-PDU

Each variable binding in the SNMP request PDU is processed as follows:

Each variable binding in the SNMP request PDU is processed as follows:

(1) Identify the target OID range.

(1)ターゲットのOID範囲を特定します。

Within a lexicographically ordered set of OID ranges, valid for the indicated context, locate the authoritative region that contains the binding's name.

辞書式に順序付けされた一連のOID範囲内で、示されたコンテキストに対して有効で、バインディングの名前を含む権限のある領域を見つけます。

(2) If no such OID range exists, the variable binding is not processed further, and its value is set to `noSuchObject'.

(2) If no such OID range exists, the variable binding is not processed further, and its value is set to `noSuchObject'.

(3) Identify the subagent session in which this region was registered, termed the target session.

(3) Identify the subagent session in which this region was registered, termed the target session.

(4) If this is the first variable binding to be dispatched over the target session in a request-response exchange entailed in the processing of this management request:

(4)これが、この管理要求の処理に伴う要求-応答交換でターゲットセッションを介してディスパッチされる最初の変数バインディングである場合:

- Create an agentx-Get-PDU for this session, with the header fields initialized as described above (see 6.1 AgentX PDU Header).

- 上記のように初期化されたヘッダーフィールドを使用して、このセッションのagentx-Get-PDUを作成します(6.1 AgentX PDUヘッダーを参照)。

(5) Add a SearchRange to the end of the target session's PDU for this variable binding.

(5)この変数バインディングのターゲットセッションのPDUの最後にSearchRangeを追加します。

- The variable binding's name is encoded into the starting OID.

- 変数バインディングの名前は、開始OIDにエンコードされます。

- The ending OID is encoded as null.

- The ending OID is encoded as null.

7.2.1.2. agentx-GetNext-PDU
7.2.1.2. agentx-GetNext-PDU

Each variable binding in the SNMP request PDU is processed as follows:

SNMPリクエストPDUの各変数バインディングは、次のように処理されます。

(1) Identify the target OID range.

(1)ターゲットのOID範囲を特定します。

Within a lexicographically ordered set of OID ranges, valid for the indicated context, locate

辞書式に順序付けられたOID範囲のセット内で、指定されたコンテキストに有効な場所を見つけます。

a) the authoritative OID range that contains the variable binding's name and is not a fully qualified instance, or

a) the authoritative OID range that contains the variable binding's name and is not a fully qualified instance, or

b) the authoritative OID range that is the first lexicographical successor to the variable binding's name.

b) 変数バインディングの名前に対する最初の辞書編集的継承者である信頼できるOID範囲。

(2) If no such OID range exists, the variable binding is not processed further, and its value is set to `endOfMibView'.

(2)そのようなOID範囲が存在しない場合、変数バインディングはそれ以上処理されず、その値は「endOfMibView」に設定されます。

(3) Identify the subagent session in which this region was registered, termed the target session.

(3)この領域が登録されたサブエージェントセッションを特定します。これはターゲットセッションと呼ばれます。

(4) If this is the first variable binding to be dispatched over the target session in a request-response exchange entailed in the processing of this management request:

(4)これが、この管理要求の処理に伴う要求-応答交換でターゲットセッションを介してディスパッチされる最初の変数バインディングである場合:

- Create an agentx-GetNext-PDU for the session, with the header fields initialized as described above (see 6.1 AgentX PDU Header).

- 上記のように初期化されたヘッダーフィールドを使用して、セッションのagentx-GetNext-PDUを作成します(6.1 AgentX PDUヘッダーを参照)。

(5) Add a SearchRange to the end of the target session's agentx-GetNext-PDU for this variable binding.

(5)この変数バインディングのターゲットセッションのagentx-GetNext-PDUの最後にSearchRangeを追加します。

- if (1a) applies, the variable binding's name is encoded into the starting OID, and the OID's "include" field is set to 0.

- (1a)が適用される場合、変数バインディングの名前は開始OIDにエンコードされ、OIDの「include」フィールドは0に設定されます。

- if (1b) applies, the target OID is encoded into the starting OID, and its "include" field is set to 1.

- (1b)が適用される場合、ターゲットOIDは開始OIDにエンコードされ、その「include」フィールドは1に設定されます。

7.2.1.3. agentx-GetBulk-PDU
7.2.1.3. agentx-GetBulk-PDU

(Note: The outline of the following procedure is based closely on section 4.2.3, "The GetBulkRequest-PDU" of RFC 1905 [4]. Please refer to it for details on the format of the SNMP GetBulkRequest-PDU itself.)

(Note: The outline of the following procedure is based closely on section 4.2.3, "The GetBulkRequest-PDU" of RFC 1905 [4]. Please refer to it for details on the format of the SNMP GetBulkRequest-PDU itself.)

Each variable binding in the request PDU is processed as follows:

リクエストPDUの各変数バインディングは、次のように処理されます。

(1) Identify the authoritative target OID range and target session, exactly as described for the agentx-GetNext-PDU (see 7.2.1.2).

(1)agentx-GetNext-PDU(7.2.1.2を参照)について説明されているとおりに、信頼できるターゲットOID範囲とターゲットセッションを特定します。

(2) If this is the first variable binding to be dispatched over the target session in a request-response exchange entailed in the processing of this management request:

(2)これが、この管理要求の処理に伴う要求と応答の交換で、ターゲットセッションを介してディスパッチされる最初の変数バインディングである場合:

- Create an agentx-GetBulk-PDU for the session, with the header fields initialized as described above (see 6.1 AgentX PDU Header).

- 上記のように初期化されたヘッダーフィールドを使用して、セッションのagentx-GetBulk-PDUを作成します(6.1 AgentX PDUヘッダーを参照)。

(3) Add a SearchRange to the end of the target session's agentx-GetBulk-PDU for this variable binding, as described for the agentx-GetNext-PDU. If the variable binding was a non-repeater in the original request PDU, it must be a non-repeater in the agentx-GetBulk-PDU.

(3)agentx-GetNext-PDUについて説明したように、この変数バインディングのターゲットセッションのagentx-GetBulk-PDUの最後にSearchRangeを追加します。変数バインディングが元の要求PDUで非リピーターであった場合、それはagentx-GetBulk-PDUで非リピーターである必要があります。

The value of g.max_repetitions in the agentx-GetBulk-PDU may be less than (but not greater than) the value in the original request PDU.

agentx-GetBulk-PDUのg.max_repetitionsの値は、元の要求PDUの値よりも小さい(ただし、大きくはない)場合があります。

The master agent may make such alterations due to simple sanity checking, optimizations for the current iteration based on the registry, the maximum possible size of a potential Response-PDU, known constraints of the AgentX transport, or any other implementation-specific constraint.

マスターエージェントは、単純な健全性チェック、レジストリに基づく現在の反復の最適化、潜在的なResponse-PDUの可能な最大サイズ、AgentXトランスポートの既知の制約、またはその他の実装固有の制約により、このような変更を行う場合があります。

7.2.1.4. agentx-TestSet-PDU
7.2.1.4. agentx-TestSet-PDU

AgentX employs test-commit-undo-cleanup phases to achieve "as if simultaneous" semantics of the SNMP SetRequest-PDU within the extensible agent. The initial phase involves the agentx-TestSet-PDU.

AgentXはtest-commit-undo-cleanupフェーズを使用して、拡張可能なエージェント内でSNMP SetRequest-PDUの「まるで同時」のセマンティクスを実現します。最初のフェーズには、agentx-TestSet-PDUが含まれます。

Each variable binding in the SNMP request PDU is processed in order, as follows:

SNMPリクエストPDUの各変数バインディングは、次のように順番に処理されます。

(1) Identify the target OID range.

(1)ターゲットのOID範囲を特定します。

Within a lexicographically ordered set of OID ranges, valid for the indicated context, locate the authoritative range that contains the variable binding's name.

示されているコンテキストに対して有効な、辞書式に順序付けされたOID範囲のセット内で、変数バインディングの名前を含む信頼できる範囲を見つけます。

(2) If no such OID range exists, this variable binding fails with an error of `notWritable'. Processing is complete for this request.

(2)そのようなOID範囲が存在しない場合、この変数バインディングは「notWritable」のエラーで失敗します。このリクエストの処理が完了しました。

(3) Identify the single subagent responsible for this OID range, termed the target subagent, and the applicable session, termed the target session.

(3)このOID範囲を担当する単一のサブエージェント(ターゲットサブエージェントと呼ばれる)と、該当するセッション(ターゲットセッションと呼ばれる)を特定します。

(4) If this is the first variable binding to be dispatched over the target session in a request-response exchange entailed in the processing of this management request:

(4)これが、この管理要求の処理に伴う要求-応答交換でターゲットセッションを介してディスパッチされる最初の変数バインディングである場合:

- create an agentx-TestSet-PDU for the session, with the header fields initialized as described above (see 6.1 AgentX PDU Header).

- 上記のように初期化されたヘッダーフィールドを使用して、セッションのagentx-TestSet-PDUを作成します(6.1 AgentX PDUヘッダーを参照)。

(5) Add a VarBind to the end of the target session's PDU for this variable binding, as described in section 5.4.

(5)セクション5.4で説明されているように、この変数バインディングのターゲットセッションのPDUの最後にVarBindを追加します。

Note that all VarBinds applicable to a given session must be sent in a single agentx-TestSet-PDU.

特定のセッションに適用可能なすべてのVarBindsは、単一のagentx-TestSet-PDUで送信する必要があることに注意してください。

7.2.1.5. Dispatch
7.2.1.5. ディスパッチ

A timeout value is calculated for each PDU to be sent, which is the maximum value of the timeouts determined for each of the PDU's SearchRanges (as described above in 7.2.1 Dispatching AgentX PDUs, item 4). Each pending PDU is mapped (via its h.sessionID value) to a particular transport domain/endpoint, as described in section 8 (Transport Mappings).

タイムアウト値は、送信されるPDUごとに計算されます。これは、PDUのSearchRangesごとに決定されたタイムアウトの最大値です(7.2.1 AgentX PDUのディスパッチ、項目4で説明)。保留中の各PDUは、セクション8(トランスポートマッピング)で説明されているように、(h.sessionID値を介して)特定のトランスポートドメイン/エンドポイントにマップされます。

7.2.2. Subagent Processing of agentx-Get, GetNext, GetBulk-PDUs
7.2.2. Subagent Processing of agentx-Get, GetNext, GetBulk-PDUs

A conformant AgentX subagent must support the agentx-Get, -GetNext, and -GetBulk PDUs, and must support multiple variables being supplied in each PDU.

適合するAgentXサブエージェントは、agentx-Get、-GetNext、および-GetBulk PDUをサポートする必要があり、各PDUで提供される複数の変数をサポートする必要があります。

When a subagent receives an agentx-Get-, GetNext-, or GetBulk-PDU, it performs the indicated management operations and returns an agentx-Response-PDU.

サブエージェントは、agentx-Get-、GetNext-、またはGetBulk-PDUを受信すると、指定された管理操作を実行し、agentx-Response-PDUを返します。

The agentx-Response-PDU header fields are identical to the received request PDU except that, at the start of processing, the subagent initializes h.type to Response, res.error to `noError', res.index to 0, and the VarBindList to null.

agentx-Response-PDUヘッダーフィールドは、処理の開始時にサブエージェントがh.typeをResponseに初期化し、res.errorを `noError 'に初期化し、res.indexを0に初期化し、VarBindListを初期化することを除いて、受信した要求PDUと同じです。 nullに。

Each SearchRange in the request PDU's SearchRangeList is processed as described below, and a VarBind is added in the corresponding location of the agentx-Response-PDU's VarbindList. If processing should fail for any reason not described below, res.error is set to `genErr', res.index to the index of the failed SearchRange, the VarBindList is reset to null, and this agentx-Response-PDU is returned to the master agent.

リクエストPDUのSearchRangeList内の各SearchRangeは以下のように処理され、VarBindがagentx-Response-PDUのVarbindListの対応する場所に追加されます。以下に記載されていない何らかの理由で処理が失敗した場合、res.errorは「genErr」に設定され、res.indexは失敗したSearchRangeのインデックスに設定され、VarBindListはnullにリセットされ、このagentx-Response-PDUがマスターエージェント。

7.2.2.1. Subagent Processing of the agentx-Get-PDU
7.2.2.1. agentx-Get-PDUのサブエージェント処理

Upon the subagent's receipt of an agentx-Get-PDU, each SearchRange in the request is processed as follows:

サブエージェントがagentx-Get-PDUを受信すると、リクエスト内の各SearchRangeは次のように処理されます。

(1) The starting OID is copied to v.name.

(1)開始O​​IDがv.nameにコピーされます。

(2) If the starting OID exactly matches the name of a variable instantiated by this subagent within the indicated context and session, v.type and v.data are encoded to represent the variable's syntax and value, as described in section 5.4, Value Representation.

(2)開始OIDが、指定されたコンテキストとセッション内でこのサブエージェントによってインスタンス化された変数の名前と完全に一致する場合、v.typeとv.dataは、セクション5.4「値の表現」で説明されているように、変数の構文と値を表すようにエンコードされます。 。

(3) Otherwise, if the starting OID does not match the object identifier prefix of any variable instantiated within the indicated context and session, the VarBind is set to `noSuchObject', in the manner described in section 5.4, Value Representation.

(3)それ以外の場合、開始OIDが、示されたコンテキストおよびセッション内でインスタンス化された変数のオブジェクト識別子プレフィックスと一致しない場合、セクション5.4「値の表現」で説明されている方法で、VarBindは「noSuchObject」に設定されます。

(4) Otherwise, the VarBind is set to `noSuchInstance' in the manner described in section 5.4, Value Representation.

(4)それ以外の場合、セクション5.4「値の表現」で説明されている方法でVarBindが「noSuchInstance」に設定されます。

7.2.2.2. Subagent Processing of the agentx-GetNext-PDU
7.2.2.2. Subagent Processing of the agentx-GetNext-PDU

Upon the subagent's receipt of an agentx-GetNext-PDU, each SearchRange in the request is processed as follows:

サブエージェントがagentx-GetNext-PDUを受信すると、リクエスト内の各SearchRangeは次のように処理されます。

(1) The subagent searches for a variable within the lexicographically ordered list of variable names for all variables it instantiates (without regard to registration of regions) within the indicated context and session, for which the following are all true:

(1)サブエージェントは、指定されたコンテキストとセッション内でインスタンス化された(領域の登録に関係なく)すべての変数について、辞書式に順序付けられた変数名のリスト内の変数を検索します。

- if the "include" field of the starting OID is 0, the variable's name is the closest lexicographical successor to the starting OID.

- if the "include" field of the starting OID is 0, the variable's name is the closest lexicographical successor to the starting OID.

- if the "include" field of the starting OID is 1, the variable's name is either equal to, or the closest lexicographical successor to, the starting OID.

- 開始OIDの「include」フィールドが1の場合、変数の名前は、開始OIDと等しいか、または最も近い辞書順の後続OIDです。

- If the ending OID is not null, the variable's name lexicographically precedes the ending OID.

- 終了OIDがnullでない場合、変数名は辞書順で終了OIDの前に付きます。

If all of these conditions are met, v.name is set to the located variable's name. v.type and v.data are encoded to represent the variable's syntax and value, as described in section 5.4, Value Representation.

これらの条件がすべて満たされた場合、v.nameは検出された変数の名前に設定されます。セクション5.4「値の表現」で説明されているように、v.typeとv.dataは、変数の構文と値を表すようにエンコードされます。

(2) If no such variable exists, v.name is set to the starting OID, and the VarBind is set to `endOfMibView', in the manner described in section 5.4, Value Representation.

(2)そのような変数が存在しない場合、セクション5.4、値の表現で説明されている方法で、v.nameが開始OIDに設定され、VarBindが「endOfMibView」に設定されます。

7.2.2.3. Subagent Processing of the agentx-GetBulk-PDU
7.2.2.3. agentx-GetBulk-PDUのサブエージェント処理

A maximum of N + (M * R) VarBinds are returned, where

最大N +(M * R)VarBindsが返されます。

N equals g.non_repeaters, M equals g.max_repetitions, and R is (number of SearchRanges in the GetBulk request) - N.

Nはg.non_repeatersに等しく、Mはg.max_repetitionsに等しく、Rは(GetBulkリクエスト内のSearchRangesの数)-Nです。

The first N SearchRanges are processed exactly as for the agentx-GetNext-PDU.

The first N SearchRanges are processed exactly as for the agentx-GetNext-PDU.

If M and R are both non-zero, the remaining R SearchRanges are processed iteratively to produce potentially many VarBinds. For each iteration i, such that i is greater than zero and less than or equal to M, and for each repeated SearchRange s, such that s is greater than zero and less than or equal to R, the (N+((i-1)*R)+s)-th VarBind is added to the agentx-Response-PDU as follows:

MとRが両方ともゼロでない場合、残りのR SearchRangesは繰り返し処理されて、潜在的に多くのVarBindsが生成されます。各反復i(iがゼロより大きくM以下)、および繰り返されるSearchRange s(sがゼロより大きくR以下)ごとに、(N +((i-1 )* R)+ s)番目のVarBindは、次のようにagentx-Response-PDUに追加されます。

1) The subagent searches for a variable within the lexicographically ordered list of variable names for all variables it instantiates (without regard to registration of regions) within the indicated context and session, for which the following are all true:

1) The subagent searches for a variable within the lexicographically ordered list of variable names for all variables it instantiates (without regard to registration of regions) within the indicated context and session, for which the following are all true:

- The variable's name is the (i)-th lexicographical successor to the (N+s)-th requested OID.

- 変数の名前は、要求された(N + s)番目のOIDの(i)番目の辞書編集的な後継です。

(Note that if i is 0 and the "include" field is 1, the variable's name may be equivalent to, or the first lexicographical successor to, the (N+s)-th requested OID.)

(iが0で、「include」フィールドが1の場合、変数の名前は、(N + s)番目に要求されたOIDと同じか、最初の辞書順で後続することに注意してください。)

- If the ending OID is not null, the variable's name lexicographically precedes the ending OID.

- 終了OIDがnullでない場合、変数名は辞書順で終了OIDの前に付きます。

If all of these conditions are met, v.name is set to the located variable's name. v.type and v.data are encoded to represent the variable's syntax and value, as described in section 5.4, Value Representation.

これらの条件がすべて満たされた場合、v.nameは検出された変数の名前に設定されます。セクション5.4「値の表現」で説明されているように、v.typeとv.dataは、変数の構文と値を表すようにエンコードされます。

2) If no such variable exists, the VarBind is set to `endOfMibView' as described in section 5.4, Value Representation. v.name is set to v.name of the (N+((i-2)*R)+s)-th VarBind unless i is currently 1, in which case it is set to the value of the starting OID in the (N+s)-th SearchRange.

2)そのような変数が存在しない場合、セクション5.4「値の表現」で説明されているように、VarBindは「endOfMibView」に設定されます。 v.nameは、iが現在1でない限り、(N +((i-2)* R)+ s)番目のVarBindのv.nameに設定されます。ただし、iが現在1である場合は、(の開始OIDの値に設定されます。 N + s)番目のSearchRange。

Note that further iterative processing should stop if

次の場合、さらに反復処理を停止する必要があることに注意してください。

- For any iteration i, all s values of v.type are `endOfMibView'.

- For any iteration i, all s values of v.type are `endOfMibView'.

- An AgentX transport constraint or other implementation-specific constraint is reached.

- An AgentX transport constraint or other implementation-specific constraint is reached.

7.2.3. Subagent Processing of agentx-TestSet, -CommitSet, -UndoSet, -CleanupSet-PDUs

7.2.3. agentx-TestSet、-CommitSet、-UndoSet、-CleanupSet-PDUのサブエージェント処理

A conformant AgentX subagent must support the agentx-TestSet, -CommitSet, -UndoSet, and -CleanupSet PDUs, and must support multiple variables being supplied in each PDU.

A conformant AgentX subagent must support the agentx-TestSet, -CommitSet, -UndoSet, and -CleanupSet PDUs, and must support multiple variables being supplied in each PDU.

These four PDUs are used to collectively perform the indicated management operation. An agentx-Response-PDU is sent in reply to each of the PDUs, to inform the master agent of the state of the operation.

これらの4つのPDUは、指示された管理操作をまとめて実行するために使用されます。 agentx-Response-PDUは、各PDUに応答して送信され、マスターエージェントに操作の状態を通知します。

The agentx-Response-PDU header fields are identical to the received request PDU except that, at the start of processing, the subagent initializes h.type to Response, res.error to `noError', and res.index to 0.

agentx-Response-PDUヘッダーフィールドは、処理の開始時にサブエージェントがh.typeをResponseに、res.errorを `noError 'に、res.indexを0に初期化することを除いて、受信した要求PDUと同じです。

These Response-PDUs do not contain a VarBindList.

これらのResponse-PDUにはVarBindListが含まれていません。

7.2.3.1. Subagent Processing of the agentx-TestSet-PDU
7.2.3.1. Subagent Processing of the agentx-TestSet-PDU

Upon the subagent's receipt of an agentx-TestSet-PDU, each VarBind in the PDU is validated until they are all successful, or until one fails, as described in section 4.2.5 of RFC 1905 [4]. The subagent validates variables with respect to the context and session indicated in the testSet-PDU.

RFC1905 [4]のセクション4.2.5で説明されているように、サブエージェントがagentx-TestSet-PDUを受信すると、PDU内の各VarBindは、すべてが成功するか、1つが失敗するまで検証されます。サブエージェントは、testSet-PDUに示されているコンテキストとセッションに関して変数を検証します。

If each VarBind is successful, the subagent has a further responsibility to ensure the availability of all resources (memory, write access, etc.) required for successfully carrying out a subsequent agentx-CommitSet operation. If this cannot be guaranteed, the subagent should set res.error to `resourceUnavailable'.

If each VarBind is successful, the subagent has a further responsibility to ensure the availability of all resources (memory, write access, etc.) required for successfully carrying out a subsequent agentx-CommitSet operation. If this cannot be guaranteed, the subagent should set res.error to `resourceUnavailable'.

As a result of this validation step, an agentx-Response-PDU is sent in reply whose res.error field is set to one of the following (SNMPv2 SMI) values:

この検証手順の結果として、res.errorフィールドが次の(SNMPv2 SMI)値のいずれかに設定されているagentx-Response-PDUが返信で送信されます。

noError (0), genErr (5), noAccess (6), wrongType (7), wrongLength (8), wrongEncoding (9), wrongValue (10), noCreation (11), inconsistentValue (12), resourceUnavailable (13), notWritable (17), inconsistentName (18)

noError(0)、genErr(5)、noAccess(6)、wrongType(7)、wrongLength(8)、wrongEncoding(9)、wrongValue(10)、noCreation(11)、inconsistentValue(12)、resourceUnavailable(13)、 notWritable(17)、inconsistentName(18)

If this value is not `noError', the res.index field must be set to the index of the VarBind for which validation failed.

この値が「noError」でない場合、res.indexフィールドは、検証が失敗したVarBindのインデックスに設定する必要があります。

Implementation of rigorous validation code may be one of the most demanding aspects of subagent development. Implementors are strongly encouraged to do this right, so as to avoid if at all possible the extensible agent's having to return `commitFailed' or `undoFailed' during subsequent processing.

厳密な検証コードの実装は、サブエージェント開発の最も厳しい側面の1つかもしれません。実装者はこれを正しく行うことを強くお勧めします。これにより、拡張可能なエージェントが後続の処理中に「commitFailed」または「undoFailed」を返さなければならない可能性を回避します。

7.2.3.2. Subagent Processing of the agentx-CommitSet-PDU
7.2.3.2. agentx-CommitSet-PDUのサブエージェント処理

The agentx-CommitSet-PDU indicates that the subagent should actually perform (as described in the post-validation sections of 4.2.5 of RFC 1905 [4]) the management operation indicated by the previous TestSet-PDU. After carrying out the management operation, the subagent sends in reply an agentx-Response-PDU whose res.error field is set to one of the following (SNMPv2 SMI) values:

agentx-CommitSet-PDUは、前のTestSet-PDUで示された管理操作を(RFC 1905 [4]の4.2.5の検証後のセクションで説明されているように)サブエージェントが実際に実行する必要があることを示します。管理操作を実行した後、サブエージェントは、res.errorフィールドが次の(SNMPv2 SMI)値のいずれかに設定されているagentx-Response-PDUを返信で送信します。

noError (0), commitFailed (14)

noError(0)、commitFailed(14)

If this value is `commitFailed', the res.index field must be set to the index of the VarBind for which the operation failed. Otherwise res.index is set to 0.

If this value is `commitFailed', the res.index field must be set to the index of the VarBind for which the operation failed. Otherwise res.index is set to 0.

7.2.3.3. Subagent Processing of the agentx-UndoSet-PDU
7.2.3.3. agentx-UndoSet-PDUのサブエージェント処理

The agentx-UndoSet-PDU indicates that the subagent should undo the management operation requested in a preceding CommitSet-PDU. The undo process is as described in section 4.2.5 of RFC 1905 [4].

agentx-UndoSet-PDUは、前のCommitSet-PDUで要求された管理操作をサブエージェントが取り消す必要があることを示します。元に戻すプロセスは、RFC 1905 [4]のセクション4.2.5に記載されています。

After carrying out the undo process, the subagent sends in reply an agentx-Response-PDU whose res.index field is set to 0, and whose res.error field is set to one of the following (SNMPv2 SMI) values:

元に戻すプロセスを実行した後、サブエージェントは、res.indexフィールドが0に設定され、res.errorフィールドが次のいずれかの(SNMPv2 SMI)値に設定されたagentx-Response-PDUを返信します。

noError (0), undoFailed (15)

noError(0)、undoFailed(15)

If this value is `undoFailed', the res.index field must be set to the index of the VarBind for which the operation failed. Otherwise res.index is set to 0.

この値が「undoFailed」の場合、res.indexフィールドには、操作が失敗したVarBindのインデックスを設定する必要があります。それ以外の場合、res.indexは0に設定されます。

This PDU also signals the end of processing of the management operation initiated by the previous TestSet-PDU. The subagent should release resources, etc. as described in section 7.2.3.4.

このPDUは、前のTestSet-PDUによって開始された管理操作の処理の終了も通知します。サブエージェントは、セクション7.2.3.4で説明されているように、リソースなどを解放する必要があります。

7.2.3.4. Subagent Processing of the agentx-CleanupSet-PDU
7.2.3.4. agentx-CleanupSet-PDUのサブエージェント処理

The agentx-CleanupSet-PDU signals the end of processing of the management operation requested in the previous TestSet-PDU. This is an indication to the subagent that it may now release any resources it may have reserved in order to carry out the management request.

agentx-CleanupSet-PDUは、前のTestSet-PDUで要求された管理操作の処理の終了を通知します。これは、サブエージェントが管理要求を実行するために予約したリソースを解放できることを示しています。

No response is sent by the subagent.

No response is sent by the subagent.

7.2.4. Master Agent Processing of AgentX Responses
7.2.4. AgentX応答のマスターエージェント処理

The master agent now marshals all subagent AgentX response PDUs and builds an SNMP response PDU. In the next several subsections, the initial processing of all subagent AgentX response PDUs is described, followed by descriptions of subsequent processing for each specific subagent Response.

マスターエージェントは、すべてのサブエージェントAgentX応答PDUをマーシャリングし、SNMP応答PDUを構築します。次のいくつかのサブセクションでは、すべてのサブエージェントAgentX応答PDUの初期処理について説明し、その後、特定のサブエージェント応答ごとの後続の処理について説明します。

7.2.4.1. Common Processing of All AgentX Response PDUs
7.2.4.1. すべてのAgentX応答PDUの共通処理

1) If a subagent does not respond within the timeout interval for this dispatch, it is treated as if the subagent had returned `genErr' and processed as described below.

1)サブエージェントがこのディスパッチのタイムアウト間隔内に応答しない場合、サブエージェントが「genErr」を返したかのように扱われ、以下に説明するように処理されます。

A timeout may be due to a variety of reasons, and does not necessarily denote a failed or malfunctioning subagent. As such, the master agent's response to a subagent timeout is implementation-specific, but with the following constraint:

タイムアウトはさまざまな理由で発生する可能性があり、必ずしも失敗または誤動作しているサブエージェントを示しているわけではありません。そのため、サブエージェントのタイムアウトに対するマスターエージェントの応答は実装固有ですが、次の制約があります。

A subagent that times out on three consecutive requests is considered unable to respond, and the master agent must close the AgentX session as described in 7.1.9, step (2).

3つの連続する要求でタイムアウトするサブエージェントは応答できないと見なされ、マスターエージェントは7.1.9の手順(2)で説明されているようにAgentXセッションを閉じる必要があります。

2) Otherwise, the h.packetID, h.sessionID, and h.transactionID fields of the AgentX response PDU are used to correlate subagent responses. If the response does not pertain to this SNMP operation, it is ignored.

2)それ以外の場合、AgentX応答PDUのh.packetID、h.sessionID、およびh.transactionIDフィールドを使用して、サブエージェント応答を関連付けます。応答がこのSNMP操作に関係しない場合、無視されます。

3) Otherwise, the responses are processed jointly to form the SNMP response PDU.

3) Otherwise, the responses are processed jointly to form the SNMP response PDU.

7.2.4.2. Processing of Responses to agentx-Get-PDUs
7.2.4.2. agentx-Get-PDUへの応答の処理

After common processing of the subagent's response to an agentx-Get-PDU (see 7.2.4.1 above), processing continues with the following steps:

After common processing of the subagent's response to an agentx-Get-PDU (see 7.2.4.1 above), processing continues with the following steps:

1) For any received AgentX response PDU, if res.error is not `noError', the SNMP response PDU's error code is set to this value, and its error index to the index of the variable binding corresponding to the failed VarBind in the subagent's AgentX response PDU.

1)受信したAgentX応答PDUについて、res.errorが「noError」でない場合、SNMP応答PDUのエラーコードはこの値に設定され、そのエラーインデックスは、サブエージェントの失敗したVarBindに対応する変数バインディングのインデックスです。 AgentX応答PDU。

All other AgentX response PDUs received due to processing this SNMP request are ignored. Processing is complete; the SNMP Response PDU is ready to be sent (see section 7.2.5, Sending the SNMP Response-PDU).

このSNMP要求の処理により受信された他のすべてのAgentX応答PDUは無視されます。処理が完了しました。 SNMP応答PDUを送信する準備ができています(セクション7.2.5、SNMP応答PDUの送信を参照)。

2) Otherwise, the content of each VarBind in the AgentX response PDU is used to update the corresponding variable binding in the SNMP Response-PDU.

2) Otherwise, the content of each VarBind in the AgentX response PDU is used to update the corresponding variable binding in the SNMP Response-PDU.

7.2.4.3. Processing of Responses to agentx-GetNext-PDU and agentx-GetBulk-PDU

7.2.4.3. agentx-GetNext-PDUおよびagentx-GetBulk-PDUへの応答の処理

After common processing of the subagent's response to an agentx-GetNext-PDU or agentx-GetBulk-PDU (see 7.2.4.1 above), processing continues with the following steps:

agentx-GetNext-PDUまたはagentx-GetBulk-PDU(上記の7.2.4.1を参照)に対するサブエージェントの応答の一般的な処理の後、処理は次の手順に進みます。

1) For any received AgentX response PDU, if res.error is not `noError', the SNMP response PDU's error code is set to this value, and its error index to the index of the VarBind corresponding to the failed VarBind in the subagent's AgentX response PDU.

1)受信したAgentX応答PDUについて、res.errorが「noError」でない場合、SNMP応答PDUのエラーコードはこの値に設定され、そのエラーインデックスは、サブエージェントのAgentXで失敗したVarBindに対応するVarBindのインデックスに設定されます。応答PDU。

All other AgentX response PDUs received due to processing this SNMP request are ignored. Processing is complete; the SNMP response PDU is ready to be sent (see section 7.2.5, Sending the SNMP Response PDU).

このSNMP要求の処理により受信された他のすべてのAgentX応答PDUは無視されます。処理が完了しました。 SNMP応答PDUを送信する準備ができています(セクション7.2.5、SNMP応答PDUの送信を参照)。

2) Otherwise, the content of each VarBind in the AgentX response PDU is used to update the corresponding VarBind in the SNMP response PDU.

2)それ以外の場合、AgentX応答PDUの各VarBindのコンテンツは、SNMP応答PDUの対応するVarBindを更新するために使用されます。

After all expected AgentX response PDUs have been processed, if any VarBinds still contain the value `endOfMibView' in their v.type fields, processing must continue:

予想されるすべてのAgentX応答PDUが処理された後、VarBindsのv.typeフィールドに値「endOfMibView」がまだ含まれている場合は、処理を続行する必要があります。

3) A new iteration of AgentX request dispatching is initiated (as described in section 7.2.1.1), in which only those VarBinds whose v.type is `endOfMibView' are processed.

3)AgentXリクエストディスパッチの新しいイテレーションが開始され(セクション7.2.1.1で説明)、v.typeが「endOfMibView」であるVarBindsのみが処理されます。

4) For each such VarBind, a target OID range is identified which is the lexicographical successor to the target OID range for this VarBind on the last iteration. The target subagent is the one that registered the target OID range. The target session is the one in which the target OID range was registered.

4)そのようなVarBindごとに、最後の反復でのこのVarBindのターゲットOID範囲の辞書式後継であるターゲットOID範囲が識別されます。ターゲットサブエージェントは、ターゲットOID範囲を登録したものです。ターゲットセッションは、ターゲットOID範囲が登録されたセッションです。

If an agentx-GetNext- or GetBulk-PDU is being dispatched, the starting OID in the SearchRanges is set to the target OID range, and its "include" field is set to 1.

agentx-GetNext-またはGetBulk-PDUがディスパッチされている場合、SearchRangesの開始OIDはターゲットOID範囲に設定され、その「include」フィールドは1に設定されます。

5) The value of transactionID must be identical to the value used during the previous iteration.

5)transactionIDの値は、前の反復で使用された値と同じでなければなりません。

6) The AgentX PDUs are sent to the subagent(s), and the responses are received and processed according to the steps described in section 7.2.4.

6)AgentX PDUがサブエージェントに送信され、セクション7.2.4で説明されている手順に従って応答が受信および処理されます。

7) This process continues iteratively until a complete SNMP Response-PDU has been built, or until there remain no target OID range lexicographical successors.

7)このプロセスは、完全なSNMP Response-PDUが構築されるまで、またはターゲットのOID範囲辞書編集的後続がなくなるまで繰り返し続けられます。

7.2.4.4. Processing of Responses to agentx-TestSet-PDUs
7.2.4.4. agentx-TestSet-PDUへの応答の処理

After common processing of the subagent's response to an agentx-TestSet-PDU (see 7.2.4.1 above), processing continues with the further exchange of AgentX PDUs. The value of h.transactionID in the agentx-CommitSet, -UndoSet, and -CleanupSet-PDUs must be identical to the value sent in the testSet-PDU.

agentx-TestSet-PDU(上記の7.2.4.1を参照)に対するサブエージェントの応答の共通処理の後、処理はAgentX PDUのさらなる交換で続行されます。 agentx-CommitSet、-UndoSet、および-CleanupSet-PDUのh.transactionIDの値は、testSet-PDUで送信された値と同じである必要があります。

The state transitions and PDU sequences are depicted in section 7.3.

状態遷移とPDUシーケンスは、セクション7.3に示されています。

1) If any target subagent's response is not `noError', all other agentx-Response-PDUs received due to processing this SNMP request are ignored.

1)ターゲットサブエージェントの応答が「noError」でない場合、このSNMP要求の処理が原因で受信された他のすべてのagentx-Response-PDUは無視されます。

An agentx-CleanupSet-PDU is sent to each target subagent that has been sent a agentx-TestSet-PDU.

agentx-CleanupSet-PDUは、agentx-TestSet-PDUが送信された各ターゲットサブエージェントに送信されます。

Processing is complete; the SNMP response PDU is constructed as described below in 7.2.4.6.

処理が完了しました。 SNMP応答PDUは、7.2.4.6で説明するように構成されています。

2) Otherwise an agentx-CommitSet-PDU is sent to each target subagent.

2) Otherwise an agentx-CommitSet-PDU is sent to each target subagent.

7.2.4.5. Processing of Responses to agentx-CommitSet-PDUs
7.2.4.5. agentx-CommitSet-PDUへの応答の処理

After common processing of the subagent's response to an agentx-CommitSet-PDU (see 7.2.4.1 above), processing continues with the following steps:

agentx-CommitSet-PDU(上記の7.2.4.1を参照)に対するサブエージェントの応答の一般的な処理の後、処理は次の手順で続行されます。

1) If any response is not `noError', all other agentx-Response-PDUs received due to processing this SNMP request are ignored.

1)応答が「noError」でない場合、このSNMP要求の処理が原因で受信された他のすべてのagentx-Response-PDUは無視されます。

An agentx-UndoSet-PDU is sent to each target subagent that has been sent a agentx-CommitSet-PDU. All other subagents are sent a agentx-CleanupSet-PDU.

agentx-UndoSet-PDUは、agentx-CommitSet-PDUが送信された各ターゲットサブエージェントに送信されます。他のすべてのサブエージェントには、agentx-CleanupSet-PDUが送信されます。

2) Otherwise an agentx-CleanupSet-PDU is sent to each target subagent. Processing is complete; the SNMP response PDU is constructed as described below in 7.2.4.6.

2)それ以外の場合、agentx-CleanupSet-PDUが各ターゲットサブエージェントに送信されます。処理が完了しました。 SNMP応答PDUは、7.2.4.6で説明するように構成されています。

7.2.4.6. Processing of Responses to agentx-UndoSet-PDUs
7.2.4.6. agentx-UndoSet-PDUへの応答の処理

After common processing of the subagent's response to an agentx-UndoSet-PDU (see 7.2.4.1 above), processing continues with the following steps:

agentx-UndoSet-PDU(上記7.2.4.1を参照)に対するサブエージェントの応答の一般的な処理の後、処理は次の手順で続行されます。

1) If any response is not `noError' the SNMP response PDU's error code is set to this value, and its error index to the index of the VarBind corresponding to the failed VarBind in the agentx-TestSet-PDU.

1)応答が「noError」でない場合、SNMP応答PDUのエラーコードはこの値に設定され、そのエラーインデックスは、agentx-TestSet-PDUで失敗したVarBindに対応するVarBindのインデックスに設定されます。

Otherwise the SNMP response PDU's error code is set to `noError' and its error index to 0.

それ以外の場合、SNMP応答PDUのエラーコードは「noError」に設定され、そのエラーインデックスは0に設定されます。

7.2.5. Sending the SNMP Response-PDU
7.2.5. Sending the SNMP Response-PDU

Once the processing described in sections 7.2.1 - 7.2.4 is complete, there is an SNMP response PDU available. The master agent now implements the Elements of Procedure for the applicable version of the SNMP protocol in order to encapsulate the PDU into a message, and transmit it to the originator of the SNMP management request. Note that this may involve altering the PDU contents (for instance, to replace the original VarBinds if an error condition is to be returned).

セクション7.2.1から7.2.4で説明されている処理が完了すると、SNMP応答PDUが使用可能になります。マスターエージェントは、PDUをメッセージにカプセル化し、SNMP管理要求の発信者に送信するために、SNMPプロトコルの該当するバージョンの手順の要素を実装します。これにはPDUの内容の変更が含まれる場合があることに注意してください(たとえば、エラー条件が返される場合に元のVarBindsを置き換えるため)。

The response PDU may also be altered in order to support the SNMP version 1 framework. In such cases the required mapping is that defined in RFC 2089 [9]. (Note in particular that the rules for handling Counter64 syntax may require re-sending AgentX GetBulk or GetNext PDUs until a VarBind of suitable syntax is returned.)

応答PDUは、SNMPバージョン1フレームワークをサポートするために変更することもできます。このような場合、必要なマッピングはRFC 2089 [9]で定義されているものです。 (特に、Counter64構文を処理するためのルールでは、適切な構文のVarBindが返されるまで、AgentX GetBulkまたはGetNext PDUを再送信する必要がある場合があります。)

7.2.6. MIB Views
7.2.6. MIBビュー

AgentX subagents are not aware of MIB views, since view information is not contained in AgentX PDUs.

ビュー情報はAgentX PDUに含まれていないため、AgentXサブエージェントはMIBビューを認識しません。

As stated above, the descriptions of procedures in section 7 of this memo are not intended to constrain the internal architecture of any conformant implementation. In particular, the master agent procedures described in sections 7.2.1 and 7.2.4 may be altered so as to optimize AgentX exchanges when implementing MIB views.

As stated above, the descriptions of procedures in section 7 of this memo are not intended to constrain the internal architecture of any conformant implementation. In particular, the master agent procedures described in sections 7.2.1 and 7.2.4 may be altered so as to optimize AgentX exchanges when implementing MIB views.

Such optimizations are beyond the scope of this memo. But note that section 7.2.3 defines subagent behavior in such a way that alteration of SearchRanges may be used in such optimizations.

Such optimizations are beyond the scope of this memo. But note that section 7.2.3 defines subagent behavior in such a way that alteration of SearchRanges may be used in such optimizations.

7.3. State Transitions
7.3. 状態遷移

State diagrams are presented from the master agent's perspective for transport connection and session establishment, and from the subagent's perspective for Set transaction processing.

状態図は、トランスポート接続とセッションの確立についてはマスターエージェントの観点から、Setトランザクション処理についてはサブエージェントの観点から提示されます。

7.3.1. Set Transaction States
7.3.1. トランザクション状態の設定

The following table presents, from the subagent's perspective, the state transitions involved in Set transaction processing:

次の表は、サブエージェントの観点から、Setトランザクション処理に関連する状態遷移を示しています。

                                       STATE
            +----------------+--------------+---------+--------+--------
            |       A        |      B       |   C     |   D    |   E
            |   (Initial     |    TestOK    | Commit  | Test   | Commit
            |     State)     |              |  OK     | Fail   |  Fail
            |                |              |         |        |
    EVENT   |                |              |         |        |
   ---------+----------------+--------------+---------+--------+--------
            | 7.2.3.1        |              |         |        |
   Receive  | All varbinds   |              |         |        |
   TestSet  | OK?            |      X       |    X    |   X    |    X
   PDU      |   Yes ->B      |              |         |        |
            |   No  ->D      |              |         |        |
   ---------+----------------+--------------+---------+--------+--------
            |                |  7.2.3.2     |         |        |
   Receive  |                |  NoError?    |         |        |
   Commit-  |       X        |   Yes ->C    |    X    |   X    |    X
   Set PDU  |                |   No  ->E    |         |        |
   ---------+----------------+--------------+---------+--------+--------
   Receive  |                |              | 7.2.3.3 |        |7.2.4.5
   UndoSet  |       X        |       X      | ->done  |   X    | ->done
   PDU      |                |              |         |        |
   ---------+----------------+--------------+---------+--------+--------
   Receive  |                |  7.2.4.4     | 7.2.3.4 |7.2.4.4 |
   Cleanup- |       X        |   ->done     | ->done  | ->done |   X
   Set PDU  |                |              |         |        |
   ---------+----------------+--------------+---------+--------+--------
   Session  |                | rollback     | undo    |        |
   Loss     |  ->done        |  ->done      |  ->done | ->done | ->done
   ---------+----------------+--------------+---------+--------+--------
        

There are three possible sequences that a subagent may follow for a particular set transaction:

特定のセットトランザクションに対してサブエージェントが従う可能性のあるシーケンスは3つあります。

1) TestSet CommitSet CleanupSet 2) TestSet CommitSet UndoSet 3) TestSet CleanupSet

1) TestSet CommitSet CleanupSet 2) TestSet CommitSet UndoSet 3) TestSet CleanupSet

Note that a single PDU sequence may result in multiple paths through the finite state machine (FSM). For example, the sequence

単一のPDUシーケンスでは、有限状態マシン(FSM)を介して複数のパスが生じる可能性があることに注意してください。たとえば、シーケンス

TestSet CommitSet UndoSet

TestSet CommitSet UndoSet

may walk through either of these two state sequences:

これらの2つの状態シーケンスのいずれかをウォークスルーできます。

(initial) TestOK CommitOK (done) (initial) TestOK CommitFail (done)

(初期)TestOK CommitOK(完了)(初期)TestOK CommitFail(完了)

7.3.2 Transport Connection States
7.3.2 Transport Connection States

The following table presents, from the master agent's perspective, the state transitions involved in transport connection setup and teardown:

次の表は、マスターエージェントの観点から、トランスポート接続のセットアップとティアダウンに関連する状態遷移を示しています。

                                STATE
                   +--------------+--------------
                   |      A       |      B
                   | No transport |  Transport
                   |              |  connected
                   |              |
   EVENT           |              |
   ----------------+--------------+--------------
   Transport       |              |
   connect         |     ->B      |      X
   indication      |              |
   ----------------+--------------+--------------
   Receive         |              | if duplicate
   Open-PDU        |              | session id,
                   |              | reject, else
                   |      X       | establish
                   |              | session
                   |              |
                   |              |     ->B
   ----------------+--------------+--------------
   Receive         |              | if matching
   Response-PDU    |              | session id,
                   |              | feed to that
                   |      X       | session's FSM
                   |              | else ignore
                   |              |
                   |              |     ->B
   ----------------+--------------+--------------
   Receive other   |              | if matching
   PDUs            |              | session id,
                   |              | feed to that
                   |      X       | session's FSM
                   |              | else reject
                   |              |
                   |              |     ->B
   ----------------+--------------+--------------
   Transport       |              |notify all
   disconnect      |              |sessions on
   indication      |      X       |this transport
                   |              |
                   |              |     ->A
   ----------------+--------------+--------------
        
7.3.3 Session States
7.3.3 セッションの状態

The following table presents, from the master agent's perspective, the state transitions involved in session setup and teardown:

次の表は、マスターエージェントの観点から、セッションのセットアップとティアダウンに関連する状態遷移を示しています。

                              STATE
                  +-------------+----------------
                  |     A       |      B
                  |  No session |  Session
                  |             |  established
   EVENT          |             |
   ---------------+-------------+----------------
                  |  7.1.1      |
   Receive        |             |      X
   Open PDU       |    ->B      |
   ---------------+-------------+----------------
                  |             |  7.1.9
   Receive        |      X      |
   Close PDU      |             |    ->A
   ---------------+-------------+----------------
   Receive        |             |  7.1.5
   Register PDU   |      X      |
                  |             |    ->B
   ---------------+-------------+----------------
   Receive        |             |  7.1.6
   Unregister     |      X      |
   PDU            |             |    ->B
   ---------------+-------------+----------------
   Receive        |             |
   Get PDU        |             |
   GetNext PDU    |             |
   GetBulk PDU    |      X      |       X
   TestSet PDU    |             |
   CommitSet PDU  |             |
   UndoSet PDU    |             |
   CleanupSet PDU |             |
   ---------------+-------------+----------------
   Receive        |             |  7.1.11
   Notify PDU     |      X      |
                  |             |    ->B
   ---------------+-------------+----------------
   Receive Ping   |             |  7.1.12
   PDU            |      X      |
                  |             |    ->B
   ---------------+-------------+----------------
   (continued next page)
        
   ---------------+-------------+----------------
   Receive        |             |  7.1.2
   IndexAllocate  |      X      |
   PDU            |             |    ->B
   ---------------+-------------+----------------
   Receive        |             |  7.1.4
   IndexDeallocate|      X      |
   PDU            |             |    ->B
   ---------------+-------------+----------------
   Receive        |             |  7.1.7
   AddAgentxCaps  |      X      |
   PDU            |             |    ->B
   ---------------+-------------+----------------
   Receive        |             |  7.1.8
   RemoveAgentxCap|      X      |
   PDU            |             |    ->B
   ---------------+-------------+----------------
   Receive        |             |  7.2.4
   Response PDU   |      X      |
                  |             |    ->B
   ---------------+-------------+----------------
   Receive        |             |
   Other PDU      |      X      |       X
   ---------------+-------------+----------------
        
8. Transport Mappings
8. トランスポートマッピング

The same AgentX PDU formats, encodings, and elements of procedure are used regardless of the underlying transport.

基になるトランスポートに関係なく、同じAgentX PDUフォーマット、エンコーディング、および手順の要素が使用されます。

8.1. AgentX over TCP
8.1. TCP上のAgentX
8.1.1. Well-known Values
8.1.1. よく知られた値

The master agent accepts TCP connection requests for the well-known port 705. Subagents connect to the master agent using this port number.

マスターエージェントは、既知のポート705のTCP接続要求を受け入れます。サブエージェントは、このポート番号を使用してマスターエージェントに接続します。

8.1.2. Operation
8.1.2. 操作

Once a TCP connection has been established, the AgentX peers use this connection to carry all AgentX PDUs. Multiple AgentX sessions may be established using the same TCP connection. AgentX PDUs are sent within an AgentX session. AgentX peers are responsible for mapping the h.sessionID to a particular TCP connection.

TCP接続が確立されると、AgentXピアはこの接続を使用してすべてのAgentX PDUを伝送します。同じTCP接続を使用して、複数のAgentXセッションを確立できます。 AgentX PDUはAgentXセッション内で送信されます。 AgentXピアは、h.sessionIDを特定のTCP接続にマッピングする責任があります。

All AgentX PDUs are presented individually to the TCP, to be sent as the data portion of a TCP PDU.

すべてのAgentX PDUは個別にTCPに提示され、TCP PDUのデータ部分として送信されます。

8.2. AgentX over UNIX-domain Sockets
8.2. UNIXドメインソケット上のAgentX

Many (BSD-derived) implementations of the UNIX operating system support the UNIX pathname address family (AF_UNIX) for socket communications. This provides a convenient method of sending and receiving data between processes on the same host.

UNIXオペレーティングシステムの多くの(BSD派生)実装は、ソケット通信用のUNIXパス名アドレスファミリ(AF_UNIX)をサポートしています。これは、同じホスト上のプロセス間でデータを送受信する便利な方法を提供します。

Mapping AgentX to this transport is useful for environments that

AgentXをこのトランスポートにマッピングすることは、

- wish to guarantee subagents are running on the same managed node as the master agent, and where

- サブエージェントがマスターエージェントと同じ管理対象ノードで実行されていることを保証したい

- sockets provide better performance than TCP or UDP, especially in the presence of heavy network I/O

- 特に重いネットワークI / Oが存在する場合、ソケットはTCPまたはUDPよりも優れたパフォーマンスを提供します

8.2.1. Well-known Values
8.2.1. よく知られた値

The master agent creates a well-known UNIX-domain socket endpoint called "/var/agentx/master". (It may create other, implementation-specific endpoints.)

マスターエージェントは、「/ var / agentx / master」と呼ばれるよく知られたUNIXドメインソケットエンドポイントを作成します。 (他の実装固有のエンドポイントが作成される場合があります。)

This endpoint name uses the character set encoding native to the managed node, and represents a UNIX-domain stream (SOCK_STREAM) socket.

This endpoint name uses the character set encoding native to the managed node, and represents a UNIX-domain stream (SOCK_STREAM) socket.

8.2.2. Operation
8.2.2. 操作

Once a connection has been established, the AgentX peers use this connection to carry all AgentX PDUs.

接続が確立されると、AgentXピアはこの接続を使用してすべてのAgentX PDUを伝送します。

Multiple AgentX sessions may be established using the same connection. AgentX PDUs are sent within an AgentX session. AgentX peers are responsible for mapping the h.sessionID to a particular connection.

同じ接続を使用して、複数のAgentXセッションを確立できます。 AgentX PDUはAgentXセッション内で送信されます。 AgentXピアは、h.sessionIDを特定の接続にマッピングする責任があります。

All AgentX PDUs are presented individually to the socket layer, to be sent in the data stream.

All AgentX PDUs are presented individually to the socket layer, to be sent in the data stream.

9. Security Considerations
9. セキュリティに関する考慮事項

This memo defines a protocol between two processing entities, one of which (the master agent) is assumed to perform authentication of received SNMP requests and to control access to management information. The master agent performs these security operations independently of the other processing entity (the subagent).

このメモは、2つの処理エンティティ間のプロトコルを定義します。そのうちの1つ(マスターエージェント)は、受信したSNMP要求の認証を実行し、管理情報へのアクセスを制御すると想定されています。マスターエージェントは、他の処理エンティティ(サブエージェント)とは無関係にこれらのセキュリティ操作を実行します。

Security considerations require three questions to be answered:

セキュリティの考慮事項では、3つの質問に答える必要があります。

1. Is a particular subagent allowed to initiate a session with a particular master agent?

1. 特定のサブエージェントは、特定のマスターエージェントとのセッションを開始できますか?

2. During an AgentX session, is any SNMP security-related information (for example, community names) passed from the master agent to the subagent?

2. AgentXセッション中に、SNMPエージェント関連の情報(コミュニティ名など)がマスターエージェントからサブエージェントに渡されますか?

3. During an AgentX session, what part of the MIB tree is this subagent allowed to register?

3. During an AgentX session, what part of the MIB tree is this subagent allowed to register?

The answer to the third question is: A subagent can register any subtree (subject to AgentX elements of procedure, section 7.1.5). Currently there is no access control mechanism defined in AgentX. A concern here is that a malicious subagent that registers an unauthorized "sensitive" subtree, could see modification requests to those objects, or by giving its own clever answer to NMS queries, could cause the NMS to do something that leads to information disclosure or other damage.

3番目の質問に対する答えは次のとおりです。サブエージェントは任意のサブツリーを登録できます(手順のAgentX要素、セクション7.1.5に従います)。現在、AgentXで定義されているアクセス制御メカニズムはありません。ここでの懸念は、不正な「機密」サブツリーを登録する悪意のあるサブエージェントがそれらのオブジェクトへの変更要求を見ることができる、またはNMSクエリに独自の巧妙な回答を与えることによって、情報開示またはその他につながる何かをNMSに引き起こす可能性があることです。ダメージ。

The answer to the second question is: No.

2番目の質問に対する答えは次のとおりです。

Now we can answer the first question. AgentX does not contain a mechanism for authorizing/refusing session initiations. Thus, controlling subagent access to the master agent may only be done at a lower layer (e.g., transport).

これで最初の質問に答えることができます。 AgentXには、セッションの開始を承認/拒否するメカニズムは含まれていません。したがって、マスターエージェントへのサブエージェントアクセスの制御は、下位層でのみ実行できます(トランスポートなど)。

An AgentX subagent can connect to a master agent using either a network transport mechanism (e.g., TCP), or a "local" mechanism (e.g., shared memory, named pipes).

AgentXサブエージェントは、ネットワーク転送メカニズム(TCPなど)または「ローカル」メカニズム(共有メモリ、名前付きパイプなど)を使用してマスターエージェントに接続できます。

In the case where a local transport mechanism is used and both subagent and master agent are running on the same host, connection authorization can be delegated to the operating system features. The answer to the first security question then becomes: "If and only if the subagent has sufficient privileges, then the operating system will allow the connection".

ローカル転送メカニズムが使用されており、サブエージェントとマスターエージェントの両方が同じホスト上で実行されている場合、接続の承認はオペレーティングシステムの機能に委任できます。最初のセキュリティの質問に対する答えは次のようになります。「サブエージェントに十分な権限がある場合に限り、オペレーティングシステムは接続を許可します」。

If a network transport is used, currently there is no inherent security. Transport Layer Security or SSL could be used to control subagent connections, but that is beyond the scope of this document.

ネットワークトランスポートが使用されている場合、現在、固有のセキュリティはありません。トランスポート層セキュリティまたはSSLを使用してサブエージェント接続を制御できますが、それはこのドキュメントの範囲を超えています。

Thus it is recommended that subagents always run on the same host as the master agent and that operating system features be used to ensure that only properly authorized subagents can establish connections to the master agent.

したがって、サブエージェントは常にマスターエージェントと同じホスト上で実行し、オペレーティングシステムの機能を使用して、適切に承認されたサブエージェントのみがマスターエージェントへの接続を確立できるようにすることをお勧めします。

10. Acknowledgements
10. 謝辞

The initial development of this memo was heavily influenced by the DPI 2.0 specification RFC 1592 [7].

このメモの最初の開発は、DPI 2.0仕様RFC 1592 [7]の影響を強く受けました。

This document was produced by the IETF Agent Extensibility (AgentX) Working Group, and benefited especially from the contributions of the following working group members:

このドキュメントは、IETFエージェント拡張機能(AgentX)ワーキンググループによって作成され、特に以下のワーキンググループメンバーの貢献から利益を得ました。

David Battle, Uri Blumenthal, Jeff Case, Maria Greene, Dave Keeney, Harmen van der Linde, Bob Natale, Randy Presuhn, Aleksey Romanov, Don Ryan, and Juergen Schoenwaelder.

デビッドバトル、ウリブルーメンタール、ジェフケース、マリアグリーン、デイブキーニー、ハーメンファンデルリンデ、ボブナターレ、ランディプレスーン、アレクセイロマノフ、ドンライアン、ユルゲンシェーンヴェルダー。

The AgentX Working Group is chaired by:

AgentXワーキンググループの議長は次のとおりです。

Bob Natale ACE*COMM Corporation 704 Quince Orchard Road Gaithersburg MD 20878

Bob Natale ACE*COMM Corporation 704 Quince Orchard Road Gaithersburg MD 20878

   Phone: +1-301-721-3000
   Fax:   +1-301-721-3001
   EMail: bnatale@acecomm.com
        
11. Authors' and Editor's Addresses
11. 著者と編集者のアドレス

Mike Daniele Digital Equipment Corporation 110 Spit Brook Rd Nashua, NH 03062

Mike Daniele Digital Equipment Corporation 110 Spit Brook Rd Nashua, NH 03062

   Phone: +1-603-881-1423
   EMail: daniele@zk3.dec.com
        

Bert Wijnen IBM Professional Services Watsonweg 2 1423 ND Uithoorn The Netherlands

Bert Wijnen IBMプロフェッショナルサービスWatsonweg 2 1423 NDオイトホルンオランダ

Phone: +31-79-322-8316 EMail: wijnen@vnet.ibm.com Dale Francisco (editor) Cisco Systems 150 Castilian Dr Goleta CA 93117

電話:+ 31-79-322-8316メール:wijnen@vnet.ibm.com Dale Francisco(editor)Cisco Systems 150 Castilian Dr Goleta CA 93117

   Phone: +1-805-961-3642
   Fax:   +1-805-961-3600
   EMail: dfrancis@cisco.com
        
12. References
12. 参考文献

[1] Information processing systems - Open Systems Interconnection - Specification of Abstract Syntax Notation One (ASN.1), International Organization for Standardization. International Standard 8824, (December, 1987).

[1] 情報処理システム-オープンシステムインターコネクション-抽象構文記法1(ASN.1)の仕様、国際標準化機構。国際規格8824(1987年12月)。

[2] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Structure of Management Information for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1902, January 1996.

[2] Case、J.、McCloghrie、K.、Rose、M. and S. Waldbusser、 "Structure of Management Information for Version 2 for the Simple Network Management Protocol(SNMPv2)"、RFC 1902、1996年1月。

[3] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Textual Conventions for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1903, January 1996.

[3] Case、J.、McCloghrie、K.、Rose、M. and S. Waldbusser、 "Textual Conventions for Version 2 for the Simple Network Management Protocol(SNMPv2)"、RFC 1903、January 1996。

[4] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Protocol Operations for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1905, January 1996.

[4] Case、J.、McCloghrie、K.、Rose、M。、およびS. Waldbusser、「バージョン2の簡易ネットワーク管理プロトコル(SNMPv2)のプロトコル操作」、RFC 1905、1996年1月。

[5] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Management Information Base for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1907, January 1996.

[5] Case、J.、McCloghrie、K.、Rose、M. and S. Waldbusser、 "Management Information Base for Version 2 for the Simple Network Management Protocol(SNMPv2)"、RFC 1907、January 1996。

[6] Case, J., Fedor, M., Schoffstall, M., and J. Davin, "Simple Network Management Protocol", STD 15, RFC 1157, SNMP Research, Performance Systems International, MIT Laboratory for Computer Science, May 1990.

[6] Case、J.、Fedor、M.、Schoffstall、M.、J. Davin、 "Simple Network Management Protocol"、STD 15、RFC 1157、SNMP Research、Performance Systems International、MIT Laboratory for Computer Science、May 1990。

[7] Wijnen, B., Carpenter, G., Curran, K., Sehgal, A. and G. Waters, "Simple Network Management Protocol: Distributed Protocol Interface, Version 2.0", RFC 1592, March 1994.

[7] Wijnen、B.、Carpenter、G.、Curran、K.、Sehgal、A。およびG. Waters、「Simple Network Management Protocol:Distributed Protocol Interface、Version 2.0」、RFC 1592、1994年3月。

[8] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Coexistence between Version 1 and Version 2 of the Internet-standard Network Management Framework", RFC 1908, January 1996.

[8] Case、J.、McCloghrie、K.、Rose、M.およびS. Waldbusser、「インターネット標準ネットワーク管理フレームワークのバージョン1とバージョン2の共存」、RFC 1908、1996年1月。

[9] Wijnen, B. and D. Levi, "V2ToV1: Mapping SNMPv2 onto SNMPv1 Within a Bilingual SNMP Agent", RFC 2089, January 1997.

[9] Wijnen、B。およびD. Levi、「V2ToV1:SNMPv2のバイリンガルSNMPエージェント内でのSNMPv1へのマッピング」、RFC 2089、1997年1月。

[10] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Conformance Statements for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1904, January 1996.

[10] Case、J.、McCloghrie、K.、Rose、M。、およびS. Waldbusser、「Version 2 for the Simple Network Management Protocol(SNMPv2)」の適合宣言、RFC 1904、1996年1月。

[11] McCloghrie, K. and F. Kastenholz, "Evolution of the Interfaces Group of MIB-II", RFC 1573, January 1994.

[11] McCloghrie、K。およびF. Kastenholz、「MIB-IIのインターフェイスグループの進化」、RFC 1573、1994年1月。

[12] Case, J., "FDDI Management Information Base", RFC 1285, January 1992.

[12] Case, J., "FDDI Management Information Base", RFC 1285, January 1992.

[13] Application MIB Working Group, Krupczak, C., and J. Saperia, "Definitions of System-Level Managed Objects for Applications", draft-ietf-applmib-sysapplmib-08.txt, 15 Apr 1997.

[13] Application MIB Working Group、Krupczak、C。、およびJ. Saperia、「Definions of System-Level Managed Objects for Applications」、draft-ietf-applmib-sysapplmib-08.txt、1997年4月15日。

13. Full Copyright Statement

Copyright (C) The Internet Society (1998). All Rights Reserved.

Copyright(C)The Internet Society(1998)。全著作権所有。

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.

このドキュメントとその翻訳はコピーして他のユーザーに提供することができ、コメントまたはその他の方法で説明したり、その実装を支援する二次的著作物は、いかなる種類の制限なしに、全体または一部を準備、コピー、公開、および配布することができますただし、上記の著作権表示とこの段落は、そのようなすべてのコピーと派生物に含まれています。ただし、このドキュメント自体は、著作権に関する通知を削除したり、インターネットソサエティや他のインターネット組織への参照を削除したりするなど、いかなる方法でも変更できません。ただし、インターネット標準を開発する目的で必要な場合は除きます。インターネット標準のプロセスに従うか、または必要に応じて、それを英語以外の言語に翻訳する必要があります。

The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.

上記で付与された制限付きのアクセス許可は永続的であり、インターネットソサエティまたはその後継者または譲受人によって取り消されることはありません。

This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

このドキュメントとここに含まれる情報は「現状有姿」で提供され、インターネット社会およびインターネット技術タスクフォースは、明示または黙示を問わず、ここに記載されている情報の使用が保証するものに限定されない一切の保証を含みません。商品性または特定の目的への適合性に関する権利または黙示の保証を侵害すること。