Network Working Group J. Schoenwaelder Request for Comments: 2593 TU Braunschweig Category: Experimental J. Quittek NEC Europe Ltd. May 1999
Script MIB Extensibility Protocol Version 1.0
Status of this Memo
このメモの位置付け
This memo defines an Experimental Protocol for the Internet community. It does not specify an Internet standard of any kind. Discussion and suggestions for improvement are requested. Distribution of this memo is unlimited.
このメモはインターネットコミュニティのためにExperimentalプロトコルを定義します。それはどんな種類のインターネット標準を指定しません。改善のための議論や提案が要求されています。このメモの配布は無制限です。
Copyright Notice
著作権表示
Copyright (C) The Internet Society (1999). All Rights Reserved.
著作権(C)インターネット協会(1999)。全著作権所有。
Abstract
抽象
The IETF Script MIB defines an interface for the delegation of management functions based on the Internet management framework. A management script is a set of instructions that are executed by a language specific runtime system. The Script MIB extensibility protocol (SMX) defined in this memo separates language specific runtime systems from language independent Script MIB implementations.
IETFスクリプトMIBは、インターネット管理フレームワークに基づいた管理機能を委任するためのインタフェースを定義します。管理スクリプトは、特定の言語ランタイムシステムによって実行される命令のセットです。このメモで定義されたスクリプトMIBの拡張プロトコル(SMX)は、言語に依存しないスクリプトMIB実装から言語固有のランタイムシステムを分離します。
Table of Contents
目次
1. Introduction ................................................ 2 2. Process Model and Communication Model ....................... 3 3. Security Profiles ........................................... 3 4. Start of Runtime Systems and Connection Establishment ....... 4 5. SMX Messages ................................................ 5 5.1 Common Definitions ......................................... 5 5.2 Commands ................................................... 7 5.3 Replies .................................................... 8 6. Elements of Procedure ....................................... 9 6.1 SMX Message Processing on the Runtime Systems .............. 9 6.1.1 Processing the `hello' Command ........................... 10 6.1.2 Processing the `start' Command ........................... 10 6.1.3 Processing the `suspend' Command ......................... 11 6.1.4 Processing the `resume' Command .......................... 12 6.1.5 Processing the `abort' Command ........................... 12 6.1.6 Processing the `status' Command .......................... 12 6.1.7 Generation of Asynchronous Notifications ................. 13
6.2 SMX Message Processing on the SNMP Agent ................... 13 6.2.1 Creating a Runtime System ................................ 13 6.2.2 Generating the `hello' Command ........................... 13 6.2.3 Generating the `start' Command ........................... 14 6.2.4 Generating the `suspend' Command ......................... 15 6.2.5 Generating the `resume' Command .......................... 16 6.2.6 Generating the `abort' Command ........................... 16 6.2.7 Generating the `status' Command .......................... 17 6.2.8 Processing Asynchronous Notifications .................... 18 7. An Example SMX Message Flow ................................. 19 8. Security Considerations ..................................... 19 9. Acknowledgments ............................................. 20 10. References ................................................. 20 11. Authors' Addresses ......................................... 21 12. Full Copyright Statement ................................... 22
The Script MIB [1] defines a standard interface for the delegation of management functions based on the Internet management framework. In particular, it provides the following capabilities:
スクリプトMIB [1]インターネット管理フレームワークに基づいて、管理機能を委任するための標準インタフェースを規定します。特に、次の機能を提供します。
2. Initiating, suspending, resuming and terminating management scripts.
2.、中断、再開および管理スクリプトを終了、開始。
A management script is a set of instructions executed by a language specific runtime system. The Script MIB does not prescribe a specific language. Instead, it allows to control scripts written in different languages that are executing concurrently.
管理スクリプトは、特定の言語ランタイムシステムによって実行される命令のセットです。スクリプトMIBは、特定の言語を規定していません。代わりに、それは同時に実行されている異なる言語で記述されたスクリプトを制御することができます。
The Script MIB Extensibility protocol (SMX) defined in this memo can be used to separate language specific runtime systems from the runtime system independent Script MIB implementations. The lightweight SMX protocol can be used to support different runtime systems without any changes to the language neutral part of a Script MIB implementation.
このメモで定義されたスクリプトMIB拡張プロトコル(SMX)は、ランタイムシステムに依存しないスクリプトMIB実装から別の言語固有のランタイムシステムに使用することができます。軽量SMXプロトコルは、スクリプトMIBの実装の言語中立一部を変更することなく異なるランタイムシステムをサポートするために使用することができます。
Examples of languages and runtime systems considered during the design of the SMX protocol are the Java virtual machine [2] and the Tool Command Language (Tcl) [3]. Other languages with comparable
SMXプロトコルの設計時に考慮の言語とランタイムシステムの例では、Java仮想マシンです[2]およびツール・コマンド言語(TCL)[3]。匹敵すると他の言語
features should be easy to integrate as well.
機能は同様の統合が容易であるべきです。
Figure 1 shows the process and communication model underlying the SMX protocol. The language and runtime system independent SNMP agent implementing the Script MIB communicates with one ore more runtime systems via the SMX protocol. A runtime system may be able to execute one or multiple scripts simultaneously (multi-threading). The SMX protocol supports multi-threading, but it does not require multi-threaded runtime systems.
図1は、SMXプロトコルの基礎となるプロセスと通信モデルを示します。スクリプトのMIBを実装言語とランタイムシステムの独立したSNMPエージェントは、SMXプロトコルを介して1つ以上のランタイムシステムと通信します。ランタイムシステムは、(マルチスレッド)が同時に一つまたは複数のスクリプトを実行することができるかもしれません。 SMXプロトコルは、マルチスレッドをサポートしていますが、マルチスレッドのランタイムシステムを必要としません。
The SMX protocol uses a local storage device (usually implemented on top of the local file system) to transfer scripts from the SNMP agent to the runtime systems. The SNMP agent has read and write access to the script storage device while the runtime systems only need read access. The SMX protocol passes the location of a script in the local storage device to the runtime engines. It is then the responsibility of the runtime engines to load the script from the specified location.
SMXプロトコルは、ランタイムシステムにSNMPエージェントからスクリプトを転送するためにローカル記憶装置(通常ローカルのファイルシステムの上に実装)を使用します。 SNMPエージェントが読み込まれ、ランタイムシステムは、読み取り専用アクセスを必要としながら、スクリプト・ストレージ・デバイスへの書き込みアクセスをしています。 SMXプロトコルは、ランタイムエンジンにローカルストレージデバイスにスクリプトの位置を通過します。その後、指定された場所からスクリプトをロードするためのランタイム・エンジンの責任です。
runtime 1 +--------------+ SMX +---------+ | |<-------------->| O O O |<-+ SNMP | Script MIB | +---------+ | <---------->| | | | SNMP Agent | runtime 2 | | | SMX +---------+ | | |<-------------->| O | | +--------------+ +---------+ | ^ ^ | | +---------+ | | | | script |----------+ | +------>| storage |------------------+ +---------+
Figure 1: SMX process and communication model
図1:SMXプロセスと通信モデル
Security profiles control what a running script is allowed to do. It is useful to distinguish two different classes of security profiles:
セキュリティプロファイルは、実行中のスクリプトが実行できる操作が制御します。セキュリティプロファイルの2つの異なるクラスを区別するために役立ちます。
- The operating system security profile specifies the set of operating system services that can be used by the operating system level process which executes a script. Under UNIX, this maps to the effective user and group identity for the running process. In addition, many UNIX versions allow to set other resource limits, such as the number of open files or the maximum stack sizes. Another mechanism in UNIX is the chroot() system call which changes the file system root for a process. The chroot() mechanism can be used to prevent runtime systems from accessing any system files. It is suggested to make use of all applicable operating system security mechanism in order to protect the operating system from malicious scripts or runtime systems.
- オペレーティングシステムのセキュリティプロファイルは、スクリプトを実行するオペレーティング・システム・レベルのプロセスで使用することができるオペレーティング・システム・サービスのセットを指定します。 UNIXでは、これは実行中のプロセスのための有効なユーザーおよびグループIDにマッピングします。加えて、多くのUNIXバージョンは、開いているファイルの数または最大スタックサイズなどの他のリソース制限を設定することを可能にします。 UNIXでの別のメカニズムは、プロセスのファイルシステムのルートを変更するにchroot()システムコールです。 chrootの()メカニズムは、任意のシステムファイルにアクセスするランタイムシステムを防止するために用いることができます。悪意のあるスクリプトやランタイムシステムからオペレーティングシステムを保護するために適用されるすべてのオペレーティングシステムのセキュリティメカニズムを利用することを提案しています。
- Secure runtime systems provide fine grained control over the set of services that can be used by a running script at a particular point during script execution. A runtime security profile specifying fine grained access control is runtime system dependent. For a Java virtual machine, the runtime security profile is interpreted by the SecurityManager and ClassLoader classes[4]. For Tcl, the runtime security profile maps to the interpreter's security profile [5].
- セキュアなランタイムシステムは、スクリプトの実行中に特定のポイントで実行中のスクリプトで利用できるサービスのセットに対するきめの細かい制御を提供します。ファイングレイン・アクセス・コントロールを指定して実行時のセキュリティプロファイルは、ランタイムシステムに依存します。 Java仮想マシンは、ランタイムセキュリティプロファイルは、セキュリティマネージャとのClassLoaderクラスによって解釈される[4]。 Tclのために、ランタイムセキュリティプロファイルは、インタプリタのセキュリティプロファイル[5]にマップされます。
The SMX protocol allows to execute scripts under different operating system profiles and runtime system profiles. Multiple operating system security profiles are realized by using multiple runtime systems which execute in operating system processes with different security profiles. Multiple runtime security profiles are supported by passing a security profile name to a runtime system during script invocation.
SMXプロトコルは、異なるオペレーティング・システム・プロファイルおよびランタイムシステム・プロファイルの下でスクリプトを実行することができます。複数のオペレーティングシステムのセキュリティプロファイルは、異なるセキュリティプロファイルを持つオペレーティング・システム・プロセスで実行される複数のランタイムシステムを用いて実現されます。複数のランタイムセキュリティプロファイルは、スクリプトの呼び出し中にランタイムシステムにセキュリティプロファイル名を渡すことによってサポートされています。
The Script MIB does not define how operating system or runtime system security profiles are identified. This memo suggests that the smLaunchOwner is mapped to an operating system security profile and a runtime system security profile when a script is started.
スクリプトMIBは、オペレーティングシステムやランタイムシステムセキュリティプロファイルが識別される方法を定義していません。このメモはsmLaunchOwnerは、オペレーティングシステムのセキュリティプロファイルとスクリプトが開始され、ランタイムシステムのセキュリティプロファイルにマッピングされていることを示唆しています。
The SNMP agent starts runtime systems based on the static properties of the runtime system (multi-threaded or single-threaded) and the operating system security profiles. Starting a new runtime system requires to create a process environment which matches the operating system security profile.
SNMPエージェントは、ランタイムシステム(マルチスレッドまたはシングルスレッド)およびオペレーティング・システムのセキュリティプロファイルの静的プロパティに基づいて、ランタイムシステムを開始します。新しいランタイムシステムを起動すると、オペレーティングシステムのセキュリティプロファイルに一致するプロセスの環境を作成する必要があります。
The SNMP agent initially passes information to the runtime system by means of environment variables. The information is needed to establish a trusted communication channel between the SNMP agent and a runtime system.
SNMPエージェントは、最初に環境変数によって、ランタイムシステムに情報を渡します。情報は、SNMPエージェントとランタイム・システムとの間の信頼できる通信チャネルを確立するために必要とされます。
The SNMP agent first creates a listening TCP socket which accepts connections from runtime systems. It is the responsibility of the runtime system to establish a connection to this TCP socket once it has been started. The port number of the listening TCP socket is passed from the SNMP agent to the runtime system in the environment variable SMX_PORT.
SNMPエージェントは、最初のランタイムシステムからの接続を受け入れリスニングTCPソケットを作成します。開始された後、このTCPソケットへの接続を確立するために、ランタイムシステムの責任です。リスニングTCPソケットのポート番号は、環境変数SMX_PORTでのランタイムシステムへのSNMPエージェントから渡されます。
The SNMP agent must ensure that only authorized runtime systems establish a connection to the listening TCP socket. The following rules are used for this purpose:
SNMPエージェントは、許可ランタイムシステムは、リスニングTCPソケットへの接続を確立することを確認する必要があります。以下のルールは、この目的のために使用されています。
- The TCP connection must originate from the local host.
- TCP接続がローカルホストから発信する必要があります。
- The SNMP agent queries the runtime system for a security cookie and closes the TCP connection if no valid response is received within a given time interval. The security cookie is a random number generated by the SNMP agent and passed to the runtime system as part of its environment. The cookie is found in the environment variable SMX_COOKIE.
- SNMPエージェントは、セキュリティCookieのランタイムシステムを照会し、有効な応答が所定の時間間隔内に受信されない場合は、TCP接続を閉じます。セキュリティクッキーは、SNMPエージェントによって生成され、その環境の一部として、ランタイムシステムに渡された乱数です。クッキーは、環境変数SMX_COOKIEで発見されました。
The security assumption here is that access to the process environment is protected by the operating system.
ここでは、セキュリティの仮定は、プロセス環境へのアクセスは、オペレーティング・システムによって保護されていることです。
Alternate transports (e.g. UNIX domain sockets) are possible but not defined at this point in time. The reason to choose TCP as the transport protocol for SMX was that TCP is supported by all potential runtime systems, while other transports are not universally available.
代替トランスポート(例えばUNIXドメインソケット)が可能であるが、この時点で定義されていません。他のトランスポートは、普遍的に利用できない間、SMXのためのトランスポートプロトコルとしてTCPを選択する理由は、TCPは、すべての潜在的なランタイムシステムによってサポートされていることでした。
The message formats described below are defined using the Augmented BNF (ABNF) defined in RFC 2234 [6]. The definitions for `ALPHA', `DIGIT', `HEXDIG', `WSP', `CRLF', `CR', `LF', `HTAB', `VCHAR' and `DQUOTE' are imported from appendix A of RFC 2234 and not repeated here.
以下に説明するメッセージフォーマットは、RFC 2234で定義された拡張BNF(ABNF)を使用して定義されている[6]。 `ALPHA '` DIGIT'、 `HEXDIG '` WSP'、 'CRLF ' 'CR'、 'LF ' `HTAB'、` VCHAR 'と `DQUOTE' の定義は、RFC 2234の付録Aからインポートされここでは繰り返しません。
The following ABNF definitions are used in subsequent sections to define the SMX protocol messages.
以下のABNF定義はSMXプロトコルメッセージを定義するために後続のセクションで使用されています。
Zero = %x30 ; the ASCII character '0'
ゼロ=%のX30。 ASCII文字「0」
AlNum = DIGIT / ALPHA / %x2D-2F ; digits, alphas plus '-', '.', '/'
AlNum = DIGIT / ALPHA /%x2D-2F。数字、アルファプラス ' - '、 ''、 '/'
QuotedString = DQUOTE *(VCHAR / WSP) DQUOTE
QuotedString = dquotで*(VCHAR / WSP)dquotで
HexString = 1*(HEXDIG HEXDIG)
HexString = 1 *(HEXDIG HEXDIG)
Id = 1*DIGIT ; identifier for an SMX transaction
ID = 1 * DIGIT。 SMXトランザクションの識別子
Script = QuotedString ; script file name
スクリプト= QuotedString。スクリプトファイル名
RunId = 1*DIGIT ; globally unique identifier for a ; running script (note, smRunIndex ; is only unique for a smLaunchOwner, ; smLaunchName pair)
RUNID = 1 * DIGIT。グローバル一意識別子。実行中のスクリプト(ノート、smRunIndex; smLaunchOwnerに対してのみ一意である、; smLaunchNameペア)
Profile = 1*AlNum ; security profile name
プロフィール= 1 * AlNum。セキュリティプロファイル名
RunState = "1" ; smRunState `initializing' RunState =/ "2" ; smRunState `executing' RunState =/ "3" ; smRunState `suspending' RunState =/ "4" ; smRunState `suspended' RunState =/ "5" ; smRunState `resuming' RunState =/ "6" ; smRunState `aborting' RunState =/ "7" ; smRunState `terminated'
RunState = "1"; = / "2"「RunStateを初期化するsmRunState `; = / "3"「RunStateを実行smRunState `。 = / "4"「RunState懸濁smRunState `。 smRunState `懸濁」RunState = / "5"。 = / "6"「RunStateを再開smRunState `; = / "7"「RunStateを中止smRunState `; smRunState `「終了
ExitCode = "1" ; smRunExitCode `noError' ExitCode =/ "2" ; smRunExitCode `halted' ExitCode =/ "3" ; smRunExitCode `lifeTimeExceeded' ExitCode =/ "4" ; smRunExitCode `noResourcesLeft' ExitCode =/ "5" ; smRunExitCode `languageError' ExitCode =/ "6" ; smRunExitCode `runtimeError' ExitCode =/ "7" ; smRunExitCode `invalidArgument' ExitCode =/ "8" ; smRunExitCode `securityViolation' ExitCode =/ "9" ; smRunExitCode `genericError'
終了コード= "1"; smRunExitCode `NOERROR」終了コード= / "2"; smRunExitCode `停止」終了コード= / "3"; smRunExitCode `lifeTimeExceeded」終了コード= / "4"。 smRunExitCode `noResourcesLeft」終了コード= / "5"。 smRunExitCode `languageError」終了コード= / "6"; smRunExitCode `RuntimeErrorが」終了コード= / "7"。 smRunExitCode `invalidArgument」終了コード= / "8"; smRunExitCode `セキュリティ違反」終了コード= / "9"; smRunExitCode `genericError」
Cookie = HexString ; authentication cookie
クッキー= HexString。認証Cookie
Version = "SMX/1.0" ; current version of the SMX protocol
バージョン= "SMX / 1.0"; SMXプロトコルの現在のバージョン
Argument = HexString / QuotedString ; see smRunArgument
引数= HexString / QuotedString。 smRunArgumentを参照してください
Result = HexString / QuotedString ; see smRunResult
結果= HexString / QuotedString。 smRunResultを参照してください
ErrorMsg = HexString / QuotedString ; see smRunError
ERRORMSG = HexString / QuotedString。 smRunErrorを参照してください
The definition of QuotedString requires further explanation. A quoted string may contain special character sequences, all starting with the backslash character (%x5C). The interpretation of these sequences is as follows:
QuotedStringの定義は、さらなる説明を必要とします。引用符で囲まれた文字列は、すべてのバックスラッシュ文字(%のx5C)から始まる、特殊文字の配列を含むことができます。次のようにこれらの配列の解釈は次のとおりです。
`\\' backslash character (`%x5C') `\t' tab character (`HTAB') `\n' newline character (`LF') `\r' carriage-return character (`CR') `\"' quote character (`DQUOTE')
In all other cases not listed above, the backslash is dropped and the following character is treated as an ordinary character. `Argument' and `Result' is either a QuotedString or a HexString. The Script MIB defines script arguments and results as arbitrary octet strings. The SMX protocol supports a binary and a human readable representation since it is likely that printable argument and result strings will be used frequently. However, an implementation must be able to handle both formats in order to be compliant with the Script MIB.
上記に記載されていない他のすべての場合において、バックスラッシュは破棄され、次の文字は通常の文字として扱われます。 `引数「と`結果は」QuotedStringかHexStringのいずれかです。スクリプトのMIBは任意のオクテット文字列としてスクリプトの引数と結果を定義します。印刷可能な引数と結果の文字列が頻繁に使用される可能性があるため、SMXプロトコルは、バイナリと人間が読める表現をサポートしています。しかし、実装は、スクリプトMIBに準拠するために、両方のフォーマットを扱うことができなければなりません。
The `Cookie' is a HexString which does not carry any semantics other than being a random sequence of bytes. It is therefore not necessary to have a human readable representation.
`クッキーは、」バイトのランダムな配列である以外の意味を運ばないHexStringです。人間が読める表現を有することが必要ではありません。
The following ABNF definitions define the set of SMX commands which can be sent from the SNMP agent to a runtime system.
以下のABNF定義は、ランタイムシステムにSNMPエージェントから送信することができますSMXコマンドのセットを定義します。
Command = "hello" WSP Id CRLF
コマンド= "hello" をWSP IdをCRLF
Command =/ "start" WSP Id WSP RunId WSP Script WSP Profile WSP Argument CRLF
コマンド= / "スタート" WSP WSP同上RUNIDスクリプトWSP WSP WSPは、引数CRLFプロファイル
Command =/ "suspend" WSP Id WSP RunId CRLF
コマンド= / "サスペンド" WSP同上WSP RUNID CRLF
Command =/ "resume" WSP Id WSP RunId CRLF
コマンド= / "再開" WSP同上WSP RUNID CRLF
Command =/ "abort" WSP Id WSP RunId CRLF
コマンド= / "中止" WSP WSP同上RUNID CRLF
Command =/ "status" WSP Id WSP RunId CRLF
コマンド= / "状態" WSP WSP同上RUNID CRLF
The `hello' command is always the first command sent over a SMX connection. It is used to identify and authenticate the runtime system. The `start' command starts the execution of a script. The `suspend', `resume' and `abort' commands can be used to change the status of a running script. The `status' command is used to retrieve status information for a running script.
`「ハローコマンドは常にSMX接続を介して送信される最初のコマンドです。ランタイムシステムを識別し、認証するために使用されます。 `スタート」コマンドは、スクリプトの実行を開始します。 `「`レジューム」サスペンドおよび `「コマンドは、実行中のスクリプトのステータスを変更するために使用することができ中止。 `状態コマンドは、実行中のスクリプトのステータス情報を取得するために使用されます。
There is no compile command. It is the responsibility of the SNMP agent to perform any compilation steps as needed before using the SMX `start' command. There is no SMX command to shutdown a runtime system. Closing the connection must be interpreted as a request to terminate all running scripts in that runtime system and to shutdown the runtime system.
何のコンパイルコマンドはありません。 SMX `開始」コマンドを使用する前に、必要に応じて任意のコンパイル手順を実行するには、SNMPエージェントの責任です。何SMXコマンドは、ランタイムシステムがシャットダウンにありません。接続を開閉ランタイムシステムそのランタイムシステムで、シャットダウンに実行中のすべてのスクリプトを終了する要求として解釈されなければなりません。
Every reply message starts with a three digit reply code and ends with `CRLF'. The three digits in a reply code have a special meaning. The first digit identifies the class of a reply message. The following classes exist:
すべての応答メッセージは、3桁の応答コードで始まり、 `CRLF」で終わります。応答コードで3桁の数字は特別な意味を持っています。最初の桁は、応答メッセージのクラスを識別する。次のクラスが存在します。
1yz transient positive response 2yz permanent positive response 3yz transient negative response 4yz permanent negative response 5yz asynchronous notification
非同期通知5yz恒久的否定応答4yz過渡否定応答3yz永久肯定応答2yz過渡肯定応答1yz
The classes 1yz and 3yz are currently not used by SMX version 1.0. They are defined only for future SMX extensions.
1yzと3yzクラスは現在、SMXバージョン1.0で使用されていません。彼らは唯一の将来のSMXの拡張のために定義されています。
The second digit encodes the specific category. The following categories exist:
2桁目が特定のカテゴリをコードしています。次のカテゴリが存在します。
x0z syntax errors that don't fit any other category x1z replies for commands targeted at the whole runtime system x2z replies for commands targeted at scripts x3z replies for commands targeted at running instances of scripts
スクリプトのインスタンスを実行してを対象のコマンドに対して返信x3zスクリプトを対象としたコマンドに対して返信x2z全体のランタイムシステムを対象としたコマンドに対して返信x1z他のカテゴリに適合しないx0z構文エラー
The third digit gives a finer gradation of meaning in each category specified by the second digit. Below is the ABNF definition of all reply messages and codes:
3桁目は、2桁目で指定された各カテゴリにおける意味の細かいグラデーションを与えます。以下は、すべての応答メッセージとコードのABNF定義は次のとおりです。
Reply = "211" WSP Id WSP Version WSP Cookie CRLF ; identification of the ; runtime system
返信= "211" WSP同上WSPバージョンWSPクッキーCRLF。の同定;ランタイムシステム
Reply =/ "231" WSP Id WSP RunState CRLF ; status of a running script
= / "231" WSPイドWSP RunState CRLFを返信。実行中のスクリプトの状況
Reply =/ "232" WSP Id CRLF ; abort of a running script
= / "232" WSPイドCRLFを返信。実行中のスクリプトの中止
Reply =/ "401" WSP Id CRLF ; syntax error in command
= / "401" WSPイドCRLFを返信。コマンドの構文エラー
Reply =/ "402" WSP Id CRLF ; unknown command
= / "402" WSPイドCRLFを返信。不明なコマンド
Reply =/ "421" WSP Id CRLF ; unknown or illegal Script
= / "421" WSPイドCRLFを返信。不明または不正なスクリプト
Reply =/ "431" WSP Id CRLF ; unknown or illegal RunId
= / "431" WSP同上CRLFを返信。不明または違法RUNID
Reply =/ "432" WSP Id CRLF ; unknown or illegal Profile
= / "432" WSP同上CRLFを返信。不明または不正なプロフィール
Reply =/ "433" WSP Id CRLF ; illegal Argument
= / "433" WSP同上CRLFを返信。不正な引数
Reply =/ "434" WSP Id CRLF ; unable to change the status of ; a running script
= / "434" WSP同上CRLFを返信。のステータスを変更することができません。実行中のスクリプト
Reply =/ "511" WSP Zero WSP QuotedString CRLF ; an arbitrary message send from ; the runtime system
= / "511" WSPゼロWSP QuotedString CRLFを返信。任意のメッセージから送信します。ランタイムシステム
Reply =/ "531" WSP Zero WSP RunId WSP RunState CRLF ; asynchronous running script ; status change
= / "531" WSPゼロWSP RUNID WSP RunState CRLFを返信。非同期実行中のスクリプト。ステータスの変更
Reply =/ "532" WSP Zero WSP RunId WSP RunState WSP Result CRLF ; intermediate script result
= / "532" WSPゼロWSP RUNID WSP RunState WSP結果CRLFを返信。中間スクリプト結果
Reply =/ "533" WSP Zero WSP RunId WSP RunState WSP Result CRLF ; intermediate script result that ; trigger an event report
= / "533" WSPゼロWSP RUNID WSP RunState WSP結果CRLFを返信。中間スクリプトはそれを引き起こします。イベントレポートをトリガー
Reply =/ "534" WSP Zero WSP RunId WSP Result CRLF ; normal script termination
= / "534" WSPゼロWSP RUNID WSP結果CRLFを返信。通常のスクリプト終了
Reply =/ "535" WSP Zero WSP RunId WSP ExitCode WSP ErrorMsg CRLF ; abnormal script termination.
返信= / "535" WSPゼロWSP RUNID WSP EXITCODE WSP ERRORMSG CRLF。異常スクリプト終了。
This section describes in detail the processing steps performed by the SNMP agent and the runtime system with regard to the SMX protocol.
このセクションでは、詳細にSMXプロトコルに関してSNMPエージェントとランタイムシステムによって実行される処理手順について説明します。
This section describes the processing of SMX command messages by a runtime engine and the conditions under which asynchronous notifications are generated.
このセクションでは、ランタイム・エンジンおよび非同期通知が生成される条件によってSMXコマンドメッセージの処理を説明します。
When the runtime system receives a message, it first tries to recognize a command consisting of the command string and the transaction identifier. If the runtime system is not able to extract both the command string and the transaction identifier, then the message is discarded. An asynchronous `511' reply may be generated in this case. Otherwise, the command string is checked to be valid, i.e. to be one of the strings `hello', `start', `suspend', `resume', `abort', or `status'. If the string is invalid, a `402' reply is sent and processing of the message stops. If a valid command has been detected, further processing of the message depends on the command as described below.
ランタイムシステムは、メッセージを受信すると、最初のコマンド文字列とトランザクション識別子からなるコマンドを認識しよう。ランタイムシステムは、コマンド文字列とトランザクション識別子の両方を抽出することができない場合、メッセージは破棄されます。非同期 `511' の応答は、この場合に生成されてもよいです。それ以外の場合は、コマンド文字列が有効であることが確認され、すなわち、文字列 `の一つであることがハロー「`開始」「 `レジューム」サスペンド`、 `アボート」、または`状態を。文字列が無効である場合は、 `402' 応答が送信されたメッセージの処理が停止しています。有効なコマンドが検出された場合、以下に記載されるように、メッセージのさらなる処理は、コマンドに依存します。
The command specific processing describes several possible syntax errors for which specific reply messages are generated. If the runtime engine detects any syntax error which is not explicitely mentioned or which cannot be identified uniquely, a generic `401' reply is sent indicating that the command cannot be executed.
コマンド固有の処理は、特定の応答メッセージが生成されるため、いくつかの可能な構文エラーを示します。ランタイムエンジンは、明示的に言及されていないか、または一意に識別することができない任意の構文エラーを検出した場合、一般的な `401' 応答は、コマンドが実行できないことを示す送信されます。
When the runtime system receives a `hello' command, it processes it as follows:
ランタイムシステムは、 `ハロー」コマンドを受信すると、以下のように、それを処理します。
1. The runtime system obtains the security cookie from its process environment.
1.ランタイムシステムは、そのプロセス環境からセキュリティクッキーを取得します。
2. The runtime system sends a `211' reply containing the security cookie.
2.ランタイムシステムは、セキュリティクッキーを含む `211' 応答を送信します。
When the runtime system receives a `start' command, it processes it as follows:
ランタイムシステムは `開始」コマンドを受信すると、以下のように、それを処理します。
1. The syntax of the arguments of the `start' command is checked. The following four checks must be made:
1. `開始」コマンドの引数の構文がチェックされます。次の4つのチェックがなされなければなりません。
(a) The syntax of the `RunId' parameter is checked and a `431' reply is sent if any syntax error is detected.
(b) The syntax of the `Script' parameter is checked and a `421' reply is sent if any syntax error is detected.
(B) `スクリプトの構文」パラメータがチェックされて '421' 構文エラーが検出された場合、応答が送信されます。
(c) The syntax of the `Profile' parameter is checked and a `432' reply is sent if any syntax error is detected.
(C) `プロフィールの構文」パラメータがチェックされて '432' 構文エラーが検出された場合、応答が送信されます。
(d) If syntax of the `Argument' parameter is checked and a `433' reply is sent if any syntax error is detected.
(D) `引数の構文」パラメータがチェックされていると` 433' は、任意の構文エラーが検出された場合は返信が送信された場合。
2. The runtime system checks whether the new `RunId' is already in use. If yes, a `431' reply is sent and processing stops.
2.ランタイムシステムをチェックし、新しい `RUNIDは」既に使用されているかどうか。はい、 `431' 応答が送信された場合、処理が停止します。
3. The runtime system checks whether the `Script' parameter is the name of a file on the local storage device, that can be read. A `421' reply is sent and processing stops if the file does not exist or is not readable.
3. `スクリプト」パラメータは、ローカルストレージデバイス上のファイルの名前であるかどうかランタイムシステムチェックは、それを読み取ることができます。 `421' 応答が送信され、処理は、ファイルが存在しない場合に停止するか読めないです。
4. The runtime system checks whether the security profile is known and sends a `432' reply and stops processing if not.
4.セキュリティプロファイルが知られており、 `432' 応答を送信しない場合は処理を停止しているかどうかランタイムシステムをチェックします。
5. The runtime engine starts the script given by the script name. When the script has been started, a `231' reply is sent including the current run state.
5.ランタイムエンジンは、スクリプト名で指定したスクリプトを開始します。スクリプトが開始された場合には、 `231' 応答は現在の実行状態を含む送信されます。
Processing of the `start' command stops, when the script reaches the state `running'. For each asynchronous state change of the running script, a `531' reply is sent. Processing of the `start' command is also stopped if an error occurs before the state `running' is reached. In this case, the run is aborted and a `535' reply is generated.
`スタートの処理「コマンドを停止し、スクリプトが状態に達したときに実行されています`」。実行中のスクリプトの各非同期状態変化のために、 `531' 応答が送信されます。到達した `スタートの処理「状態が`実行する前にエラーが発生した場合、コマンドは、停止しています」。この場合、実行は中止され、 '535' の応答が生成されます。
If an `abort' command or a `suspend' command for the running script is received before processing of the `start' command is complete, then the processing of the `start' command may be stopped before the state `running' is reached. In this case, the resulting status of the running script is given by the respective reply to the `abort' or `suspend' command, and no reply with the transaction identifier of the `start' command is generated.
`中止「コマンドまたは`中断」を実行するスクリプトのコマンドは `開始「コマンドは、その後、`起動の処理完了している」コマンドは状態の前に停止させることができる `「に到達する稼働の処理の前に受信された場合。この場合には、実行中のスクリプトの結果として生じる状態は `アボート「または`サスペンド」コマンド、および生成される `開始」コマンドのトランザクション識別子と応答なしにそれぞれの応答によって与えられます。
When the runtime system receives a `suspend' command, it processes it as follows:
ランタイムシステムは、 `中断」コマンドを受信すると、以下のように、それを処理します。
1. If there is a syntax error in the running script identifier or if there is no running script matching the identifier, a `431' reply is sent and processing of the command is stopped.
1.が構文エラーが実行中のスクリプト識別子であるかの識別子に一致する実行中のスクリプトが存在しない場合、 '431' 応答が送信され、コマンドの処理が停止している場合。
2. If the running script is already in the state `suspended', a '231' reply is sent and processing of the command is stopped.
2.実行中のスクリプトが `サスペンド状態に既にある場合は」、『231』応答が送信され、コマンドの処理が停止されます。
3. If the running script is in the state `running', it is suspended and a `231' reply is sent after suspending. If suspending fails, a `434' reply is sent and processing of the command is stopped.
実行中のスクリプトが `走行状態にある場合に3」は、それが中断され、 '231' 応答が懸濁後に送信されます。サスペンドに失敗した場合は、 `434' 応答が送信され、コマンドの処理が停止しています。
4. If the running script has not yet reached the state `running' (the `start' command still being processed), it may reach the state `suspended' without having been in the state `running'. After reaching the state `suspended', a `231' reply is sent.
4.実行中のスクリプトがまだ `「(`開始」コマンドは、まだ処理されている)を実行している状態に達していない場合、それは ``実行状態にされずに「一時停止状態に達する可能性があります。 `サスペンド状態に達した後に」、 '231' の応答が送信されます。
5. If the running script is in any other state, a `434' reply is sent.
5.実行中のスクリプトが他の状態にある場合は、 `434' 応答が送信されます。
When the runtime system receives a `resume' command, it processes it as follows:
ランタイムシステムは、 `レジューム」コマンドを受信すると、以下のように、それを処理します。
1. If there is a syntax error in the running script identifier or if there is no running script matching the identifier, a `431' reply is sent and processing of the command is stopped.
1.が構文エラーが実行中のスクリプト識別子であるかの識別子に一致する実行中のスクリプトが存在しない場合、 '431' 応答が送信され、コマンドの処理が停止している場合。
2. If the running script is already in the state `running', a `231' reply is sent and processing of the command is stopped.
2.実行中のスクリプトが `走行状態に既にある場合は」、 '231' 応答が送信され、コマンドの処理が停止されます。
3. If the running script is in the state `suspended', it is resumed and a `231' reply is sent after resuming. If resuming fails, a `434' reply is sent and processing of the command is stopped.
実行中のスクリプトが状態である場合3. '「、それが再開されると' 231' 懸濁応答が再開後に送信されます。再開に失敗した場合は、 `434' 応答が送信され、コマンドの処理が停止しています。
4. If the `start' command is still being processed for the script, a `231' reply is sent when the state `running' has been reached.
4. `開始「コマンドは、まだスクリプトのために処理されている、` 231' の場合状態 `」実行中に到達したときの応答が送信されます。
5. If the running script is in any other state, a `434' reply is sent.
5.実行中のスクリプトが他の状態にある場合は、 `434' 応答が送信されます。
When the runtime system receives an `abort' command, it processes it as follows:
ランタイムシステムは、 `アボート」コマンドを受信すると、以下のように、それを処理します。
1. If there is a syntax error in the running script identifier or if there is no running script matching the identifier, a `431' reply is sent and processing of the command is stopped.
1.が構文エラーが実行中のスクリプト識別子であるかの識別子に一致する実行中のスクリプトが存在しない場合、 '431' 応答が送信され、コマンドの処理が停止している場合。
2. If the running script is already aborted, a `232' reply is sent and processing of the command is stopped.
実行中のスクリプトがすでに中止された場合2.、 `232' 応答が送信され、コマンドの処理が停止しています。
3. The running script is aborted and a `232' reply is sent after aborting. If aborting fails, a `434' reply is sent and processing is stopped.
3.実行中のスクリプトが中止され、 `232' 応答が中止した後に送信されます。強制終了に失敗した場合は、 `434' 応答が送信され、処理が停止しています。
When the runtime system receives a `status' command, it processes it as follows:
ランタイムシステムは、 `状態コマンドを受信すると、以下のように、それを処理します。
1. If there is a syntax error in the running script identifier or if there is no running script matching the identifier, a `431' reply is sent and processing of the command is stopped.
1.が構文エラーが実行中のスクリプト識別子であるかの識別子に一致する実行中のスクリプトが存在しない場合、 '431' 応答が送信され、コマンドの処理が停止している場合。
The runtime system generates or may generate the following notifications:
ランタイムシステムは、生成したり、次の通知を生成することがあります。
1. If a change of the status of a running script is observed by the runtime system, a `531' reply is sent.
実行中のスクリプトの状態の変化はランタイムシステムによって観察されている場合は1を、 `531' 応答が送信されます。
4. If a script generates an intermediate result, a `532' reply is sent.
前記スクリプトは、中間結果を生成する場合、 '532' の応答が送信されます。
5. If a script requests the generation of a `smScriptResult' notification, a `533' reply is sent.
5.スクリプトが `smScriptResultの生成要求した場合」通知を、` 533' 応答が送信されます。
6. Besides the notifications mentioned above, the runtime system may generate arbitrary `511' replies, which are logged or displayed by the SNMP agent.
6.上記の通知に加えて、ランタイムシステムがログまたはSNMPエージェントによって表示され、任意の `511' の応答を生成することができます。
This section describes the conditions under which an SNMP agent implementing the Script MIB generates SMX commands. It also describes how the SNMP agent processes replies to SMX commands.
このセクションでは、スクリプトのMIBを実装するSNMPエージェントは、SMXコマンドを生成する条件を説明します。また、SNMPエージェントは、SMXコマンドに応答を処理する方法について説明します。
New runtime systems are started by the SNMP agent while processing set requests for a `smLaunchStart' variable. The SNMP agent first searches for an already running runtime systems which matches the security profiles associated with the `smLaunchStart' variable. If no suitable runtime system is available, a new runtime system is started by preparing the environment for the new runtime system and starting the executable for the runtime system in a new process which conforms to the operating system security profile. The SNMP agent prepares to accept a connection from the new runtime system. The `smRunState' of all scripts that should be executed in this new runtime system is set to `initializing'.
`smLaunchStart」変数の設定要求を処理しながら、新しいランタイムシステムは、SNMPエージェントによって開始されています。 SNMPエージェントは、最初に `smLaunchStart」変数に関連付けられているセキュリティプロファイルと一致して、すでに実行しているランタイムシステムを検索します。もし適切なランタイムシステムが利用できない場合は、新しいランタイムシステムは、オペレーティングシステムのセキュリティプロファイルに準拠した新しいプロセスでランタイムシステムのための実行可能ファイルを新しいランタイムシステムのための環境を準備して開始することにより開始されます。 SNMPエージェントは、新しいランタイムシステムからの接続を受け入れるように準備をします。 `smRunState「は、この新しいランタイムシステムで実行する必要があるすべてのスクリプトのは、`初期化」に設定されます。
The `hello' command is generated once a connection request from a runtime system has been accepted. The SNMP agent sends the `hello' command as defined in section 5.2. The SNMP agent then expects a reply from the runtime system within a reasonable timeout interval.
ランタイムシステムからの接続要求が受け入れられた後、 `「ハローコマンドが生成されます。セクション5.2で定義されているSNMPエージェントは、 `「ハローコマンドを送信します。 SNMPエージェントは、合理的なタイムアウト時間内にランタイムシステムからの応答を期待しています。
1. If the timeout expires before the SNMP agent received a reply, then the connection is closed and all data associated with it is deleted. Any scripts that should be running in this runtime system are aborted, the `smRunExitCode' is set to `genericError' and `smRunError' is modified to describe the error situation.
1. SNMPエージェントが応答を受信する前にタイムアウトが満了した場合、接続が閉じられ、それに関連するすべてのデータが削除されます。このランタイムシステムで実行されている必要があり、任意のスクリプトは、 `smRunExitCodeは、エラー状況を説明するように変更され、` smRunError」「`genericErrorに設定されている」中止にされています。
2. If the received message can not be analyzed because it does not have the required format, then the connection is closed and all data associated with it is deleted. Any scripts that should be running in this runtime system are aborted, the `smRunExitCode' is set to `genericError' and `smRunError' is modified to describe the error situation.
それが必要なフォーマットを持っていないため2.受信したメッセージを解析することができない場合、接続が閉じられ、それに関連付けられたすべてのデータが削除されます。このランタイムシステムで実行されている必要があり、任意のスクリプトは、 `smRunExitCodeは、エラー状況を説明するように変更され、` smRunError」「`genericErrorに設定されている」中止にされています。
3. If the received message is a `211' reply, then the `Id' is checked whether it matches the `Id' used in the `hello' command. If the `Id' matches, then the `Version' is checked. If the `Version' matches a supported SMX protocol version, then the `Cookie' is checked whether it matches the cookie passed to the runtime system. If any of these tests fails, then the connection is closed and all data associated with this runtime system is deleted. Any scripts that should be running in this runtime system are aborted, the `smRunExitCode' is set to `genericError' and `smRunError' is modified to describe the error situation.
3.受信したメッセージが '211' である場合返信、その後 `Idが'、コマンド`ハローに使用 `IDと一致するか否かがチェックされます。 `Idは「にマッチし、その後、`バージョンは」の場合にチェックされます。 `バージョンは「サポートSMXプロトコルのバージョンと一致して、その後、`クッキー」の場合は、ランタイムシステムに渡されたクッキーと一致するかどうかをチェックされています。これらのテストのいずれかが失敗した場合、接続が閉じられ、このランタイムシステムに関連付けられているすべてのデータが削除されます。このランタイムシステムで実行されている必要があり、任意のスクリプトは、 `smRunExitCodeは、エラー状況を説明するように変更され、` smRunError」「`genericErrorに設定されている」中止にされています。
4. Received messages are discarded if none of the previous rules applies.
以前のルールのいずれにも該当しない場合4.受信したメッセージは破棄されます。
The `start' command is generated while processing set-requests for a `smLaunchStart' variable. The `start' command assumes that the SNMP agent already determined a runtime system suitable to execute the script associated with the `smLaunchStart' variable. The SNMP agent sends the `start' command as defined in section 5.2 to the selected runtime system. The SNMP agent then expects a reply from the runtime system within a reasonable timeout interval.
`変数「` smLaunchStart用セット・リクエストの処理中にコマンドが生成されます」を起動します。 `スタート変数「コマンドは、SNMPエージェントがすでに` smLaunchStartに関連付けられたスクリプトを実行するための適切なランタイムシステムを決定することを前提とし」を。選択したランタイムシステムにセクション5.2で定義されているSNMPエージェントは `開始」コマンドを送信します。 SNMPエージェントは、合理的なタイムアウト時間内にランタイムシステムからの応答を期待しています。
1. If the timeout expires before the SNMP agent received a reply, then the SNMP agent sends an `abort' command to abort the running script and sets the `smRunState' of the running script to `terminated', the `smRunExitCode' to `genericError' and `smRunError' is modified to describe the timeout situation.
1.タイムアウトは、SNMPエージェントが応答を受信する前に、その後、SNMPエージェントは `へ「` smRunExitCode、」 `中止「を実行するスクリプトを中止するためのコマンドと` smRunState設定します」 `終端に、実行中のスクリプトのを送り期限切れになった場合genericError「と `smRunErrorは」タイムアウト状況を説明するように修正されます。
2. If the received message can not be analyzed because it does not have the required format, then the message is ignored. The SNMP agent continues to wait for a valid reply message until the timeout expires.
2.それは必要な形式を持っていないため、受信したメッセージは、そのメッセージは無視され、分析することができない場合。 SNMPエージェントは、タイムアウトの期限が切れるまで有効な応答メッセージを待ち続けています。
3. If the received message is a `4yz' reply and the `Id' matches the `Id' of the `start' command, then the SNMP agent assumes that the script can not be started. The `smRunState' of the running script is set to `terminated', the `smRunExitCode' to `genericError' and the `smRunError' is modified to contain a message describing the error situation.
3.受信したメッセージが `4yz「返信と` Idが」あるコマンド「`開始の」` IDと一致する場合、SNMPエージェントは、スクリプトが起動できないことを前提としています。 `smRunState「を実行スクリプトが`終了に設定されている」、と `smRunError」「'genericErrorに」` smRunExitCodeは、エラー状況を説明するメッセージを含むように修飾されています。
4. If the received message is a `231' reply and the `Id' matches the `Id' of the `start' command, then the `smRunState' variable of the running script is updated.
受信したメッセージが、 `231' 応答と` ID「である場合4.コマンド」 `開始の「` Idを、そして `実行中のスクリプトのsmRunState」変数が更新されると一致しました。
5. Received messages are discarded if none of the previous rules applies.
以前のルールのいずれにも該当しない場合5.受信したメッセージは破棄されます。
The `suspend' command is generated while processing set-requests for the `smLaunchControl' and `smRunControl' variables which change the value to `suspend'. The SNMP agent sets the `smRunState' variable to `suspending' and sends the `suspend' command as defined in section 5.2. The SNMP agent then expects a reply from the runtime system within a reasonable timeout interval.
`と` smRunControl「`中断する値を変更し、変数」「` smLaunchControl用セット・リクエストの処理中にコマンドが生成されます」を一時停止します。 SNMPエージェントは `smRunState「`停止に変数」を設定し、セクション5.2で定義された `中断」コマンドを送信します。 SNMPエージェントは、合理的なタイムアウト時間内にランタイムシステムからの応答を期待しています。
1. If the timeout expires before the SNMP agent received a reply, then the SNMP agent sends an `abort' command to abort the running script and sets the `smRunState' of the running script to `terminated', the `smRunExitCode' to `genericError' and `smRunError' is modified to describe the timeout situation.
1.タイムアウトは、SNMPエージェントが応答を受信する前に、その後、SNMPエージェントは `へ「` smRunExitCode、」 `中止「を実行するスクリプトを中止するためのコマンドと` smRunState設定します」 `終端に、実行中のスクリプトのを送り期限切れになった場合genericError「と `smRunErrorは」タイムアウト状況を説明するように修正されます。
2. If the received message can not be analyzed because it does not have the required format, then the message is ignored. The SNMP agent continues to wait for a valid reply message until the timeout expires.
2.それは必要な形式を持っていないため、受信したメッセージは、そのメッセージは無視され、分析することができない場合。 SNMPエージェントは、タイムアウトの期限が切れるまで有効な応答メッセージを待ち続けています。
3. If the received message is a `401', `402' or a `431' reply and the `Id' matches the `Id' of the `suspend' command, then the runtime systems is assumed to not provide the suspend/resume capability and processing of the `suspend' command stops.
3.受信したメッセージが、 '401' 、' 402' または '431' 応答と `Idが'コマンド`サスペンドの `IDと一致である、ランタイムシステムは、/サスペンドを提供しないと仮定すると`中断」コマンドストップの能力と処理を再開。
4. If the received message is a `231' reply and the `Id' matches the `Id' of the `suspend' command, then the `smRunState' variable of the running script is updated.
受信したメッセージが、 `231' 応答と` ID「である場合4.コマンド」 `中断の「` Idを、そして `実行中のスクリプトのsmRunState」変数が更新されると一致しました。
5. Received messages are discarded if none of the previous rules applies.
以前のルールのいずれにも該当しない場合5.受信したメッセージは破棄されます。
The `resume' command is generated while processing set-requests for the `smLaunchControl' and `smRunControl' variables which change the value to `resume'. The SNMP agent sets the `smRunState' variable to `resuming' and sends the `resume' command as defined in section 5.2. The SNMP agent then expects a reply from the runtime system within a reasonable timeout interval.
`smRunControl「`履歴書に値を変更し、変数」 `レジューム「` smLaunchControl用セット・リクエストの処理中にコマンドが生成されます」。 SNMPエージェントは `smRunState「変数に`レジューム」を設定し、セクション5.2で定義された `履歴書」コマンドを送信します。 SNMPエージェントは、合理的なタイムアウト時間内にランタイムシステムからの応答を期待しています。
1. If the timeout expires before the SNMP agent received a reply, then the SNMP agent sends an `abort' command to abort the running script and sets the `smRunState' of the running script to `terminated', the `smRunExitCode' to `genericError' and `smRunError' is modified to describe the timeout situation.
1.タイムアウトは、SNMPエージェントが応答を受信する前に、その後、SNMPエージェントは `へ「` smRunExitCode、」 `中止「を実行するスクリプトを中止するためのコマンドと` smRunState設定します」 `終端に、実行中のスクリプトのを送り期限切れになった場合genericError「と `smRunErrorは」タイムアウト状況を説明するように修正されます。
2. If the received message can not be analyzed because it does not have the required format, then the message is ignored. The SNMP agent continues to wait for a valid reply message until the timeout expires.
2.それは必要な形式を持っていないため、受信したメッセージは、そのメッセージは無視され、分析することができない場合。 SNMPエージェントは、タイムアウトの期限が切れるまで有効な応答メッセージを待ち続けています。
3. If the received message is a `401', `402' or a `431' reply and the `Id' matches the `Id' of the `resume' command, then the runtime systems is assumed to not provide the suspend/resume capability and processing of the `resume' command stops.
3.受信したメッセージは '401' 、' 402' または '431' で応答と `ID」は、コマンド`レジュームの」 `IDは、次いで、ランタイムシステムは/サスペンドを提供しないと仮定される一致した場合`レジューム」コマンドストップの能力と処理を再開。
4. If the received message is a `231' reply and the `Id' matches the `Id' of the `resume' command, then the `smRunState' variable of the running script is updated.
4.受信したメッセージが、 `231' 応答と` ID「であるコマンド」 `履歴書の「`同上、その後、実行中のスクリプトの `smRunState」変数が更新されると一致した場合。
5. Received messages are discarded if none of the previous rules applies.
以前のルールのいずれにも該当しない場合5.受信したメッセージは破棄されます。
The `abort' command is generated while processing set-requests for the `smLaunchControl' and `smRunControl' variables which change the value to `abort'. In addition, the `abort' command is also generated if the `smRunLifeTime' variable reaches the value 0. The SNMP agent sends the `abort' command as defined in section 5.2. The SNMP agent then expects a reply from the runtime system within a reasonable timeout interval.
`と` smRunControl「'中止する値を変更する変数」「' smLaunchControl用セット要求の処理中にコマンドが生成される」を中止。また、 `変数セクション5.2で定義されるように0 SNMPエージェントは`中止」コマンドを送信する値に達し `smRunLifeTime場合、コマンドはまた、生成された「アボート。 SNMPエージェントは、合理的なタイムアウト時間内にランタイムシステムからの応答を期待しています。
1. If the timeout expires before the SNMP agent received a reply, then the SNMP agent sets the `smRunState' of the running script to `terminated', the `smRunExitCode' to `genericError' and `smRunError' is modified to describe the timeout situation.
SNMPエージェントが応答を受信する前にタイムアウトになる場合1.、その後、SNMPエージェントは、タイムアウトを記述するように変更された「genericError `へ」、` smRunExitCodeと `smRunError」「終了 'に実行するスクリプトの」` smRunStateを設定し、状況。
2. If the received message can not be analyzed because it does not have the required format, then the message is ignored. The SNMP agent continues to wait for a valid reply message until the timeout expires.
2.それは必要な形式を持っていないため、受信したメッセージは、そのメッセージは無視され、分析することができない場合。 SNMPエージェントは、タイムアウトの期限が切れるまで有効な応答メッセージを待ち続けています。
3. If the received message is a `4yz' reply and the `Id' matches the `Id' of the `abort' command, then the SNMP agent assumes that the script can not be aborted. The `smRunState' of the running script is set to `terminated', the `smRunExitCode' to `genericError' and the `smRunResult' is modified to describe the error situation.
3.受信したメッセージが `4yz「返信と` Idが」あるコマンド「`中止の」` IDと一致する場合、SNMPエージェントは、スクリプトを中止することはできませんことを前提としています。 `smRunState「を実行するスクリプトのは、`終了に設定されている」と `smRunResult」「` genericErrorに」 `smRunExitCodeは、エラー状況を説明するように修正されます。
4. If the received message is a `232' reply and the `Id' matches the `Id' of the `abort' command, then the `smRunExitCode' variable of the terminated script is changed to either `halted' (when processing a set-request for the `smLaunchControl' and `smRunControl' variables) or `lifeTimeExceeded' (if the `abort' command was generated because the `smRunLifeTime' variable reached the value 0). The `smRunState' variable is changed to the value `terminated'.
前記受信されたメッセージは '232' 応答と `Idは'で処理する場合、コマンドを`中止の「`IDは、次に` smRunExitCode(」末端スクリプトの変数は `停止のいずれかに変更された」と一致する場合`smLaunchControl「と` smRunControl」変数)または `lifeTimeExceededための要求を設定「(`中止場合」) `smRunLifeTime」変数が値0に達したため、コマンドが生成されました。 `smRunState「変数が終了値`」に変更され。
5. Received messages are discarded if none of the previous rules applies.
以前のルールのいずれにも該当しない場合5.受信したメッセージは破棄されます。
The `status' command is generated either periodically or on demand by the SNMP agent in order to retrieve status information from running scripts. The SNMP agent sends the `status' command as defined in 5.2. The SNMP agent then expects a reply from the runtime system within a reasonable timeout interval.
`状態コマンドを実行しているスクリプトからステータス情報を取得するために、定期的に、またはSNMPエージェントによってオンデマンドで生成されます。 SNMPエージェントは、5.2で定義された `状態コマンドを送信します。 SNMPエージェントは、合理的なタイムアウト時間内にランタイムシステムからの応答を期待しています。
1. If the timeout expires before the SNMP agent received a reply, then the SNMP agent sends an `abort' command to abort the running script and sets the `smRunState' of the running script to `terminated', the `smRunExitCode' to `genericError' and `smRunError' is modified to describe the timeout situation.
1.タイムアウトは、SNMPエージェントが応答を受信する前に、その後、SNMPエージェントは `へ「` smRunExitCode、」 `中止「を実行するスクリプトを中止するためのコマンドと` smRunState設定します」 `終端に、実行中のスクリプトのを送り期限切れになった場合genericError「と `smRunErrorは」タイムアウト状況を説明するように修正されます。
2. If the received message can not be analyzed because it does not have the required format, then the message is ignored. The SNMP agent continues to wait for a valid reply message until the timeout expires.
2.それは必要な形式を持っていないため、受信したメッセージは、そのメッセージは無視され、分析することができない場合。 SNMPエージェントは、タイムアウトの期限が切れるまで有効な応答メッセージを待ち続けています。
3. If the received message is a `4yz' reply and the `Id' matches the `Id' of the `status' command, then the SNMP agent assumes that the script status can not be read, which is a fatal error condition. The SNMP agent sends an `abort' command to abort the running script. The `smRunState' of the running script is set to
3.受信したメッセージが `4yz「返信と` Idが」あるコマンド「`状態の` IDと一致する場合、SNMPエージェントは致命的なエラー状態である、スクリプトの状態を読み取ることができないことを前提としています。 SNMPエージェントは、実行中のスクリプトを中止する `中止」コマンドを送信します。実行中のスクリプトの `smRunStateは」に設定されています
`terminated', the `smRunExitCode' to `genericError' and the `smRunError' is modified to describe the error situation.
4. If the received message is a `231' reply and the `Id' matches the `Id' of the `status' command, then the `smRunState' variable of the running script is updated.
受信したメッセージが、 `231' 応答と` ID「である場合4.コマンド」 `状態の` Idを、そして `実行中のスクリプトのsmRunState」変数が更新されると一致しました。
5. Received messages are discarded if none of the previous rules applies.
以前のルールのいずれにも該当しない場合5.受信したメッセージは破棄されます。
The runtime system can send asynchronous status change notifications. These `5yz' replies are processed as described below.
ランタイムシステムは、非同期ステータス変更通知を送信することができます。これら `5yz」の回答は、以下のように処理されています。
1. If the received message is a `511' reply, then the message is displayed or logged appropriately and processing stops.
1.受信したメッセージが '511' 応答である場合、メッセージが表示されるか、または適切に記録され、処理が停止します。
2. If the received message is a `531' reply, then the SNMP agent checks whether a running script with the given `RunId' exists in the runtime system. Processing of the notification stops if there is no running script with the `RunId'. Otherwise, the `smRunState' is updated.
2.受信したメッセージが '531' である場合応答は、SNMPエージェントは `所与で実行スクリプトかどうかをチェックがRUNID」ランタイムシステムに存在します。 `RUNID」とは、実行中のスクリプトが存在しない場合は、通知の処理が停止します。それ以外の場合は、 `smRunState」を更新しています。
3. If the received message is a `532' reply, then the SNMP agent checks whether a running script with the given `RunId' exists in the runtime system. Processing of the notification stops if there is no running script with the `RunId'. Otherwise, `smRunState' and `smRunResult' are updated.
3.受信したメッセージが '532' である場合応答は、SNMPエージェントは `所与で実行スクリプトかどうかをチェックがRUNID」ランタイムシステムに存在します。 `RUNID」とは、実行中のスクリプトが存在しない場合は、通知の処理が停止します。それ以外の場合は、 `smRunState 'と` smRunResult' を更新しています。
4. If the received message is a `533' reply, then the SNMP agent checks whether a running script with the given `RunId' exists in the runtime system. Processing of the notification stops if there is no running script with the `RunId'. Otherwise, `smRunState' and `smRunResult' are updated and the `smScriptResult' notification is generated.
前記受信したメッセージが '533' である場合応答は、SNMPエージェントは `所与で実行スクリプトかどうかをチェックがRUNID」ランタイムシステムに存在します。 `RUNID」とは、実行中のスクリプトが存在しない場合は、通知の処理が停止します。それ以外の場合は、 `smRunState「と` smRunResult」を更新していると `smScriptResult」通知が生成されます。
5. If the received message is a `534' reply, then the SNMP agent checks whether a running script with the given `RunId' exists in the runtime system. Processing stops if there is no running script with the `RunId'. Otherwise, `smExitCode' is set to `noError', `smRunState' is set to `terminated' and `smRunResult' is updated.
前記受信したメッセージが '534' である場合応答は、SNMPエージェントは `所与で実行スクリプトかどうかをチェックがRUNID」ランタイムシステムに存在します。 `RUNID」とは、実行中のスクリプトが存在しない場合、処理は停止します。それ以外の場合は、 `smExitCodeが '` NOERRORに設定されている'、 `smRunStateはと` smRunResultが」更新された '`終了に設定されています'。
6. If the received message is a `535' reply, then the SNMP agent checks whether a running script with the given `RunId' exists in the runtime system. Processing stops if there is no running script with the `RunId'. Otherwise, `smRunState' is set to
前記受信したメッセージが '535' である場合応答は、SNMPエージェントは `所与で実行スクリプトかどうかをチェックがRUNID」ランタイムシステムに存在します。 `RUNID」とは、実行中のスクリプトが存在しない場合、処理は停止します。それ以外の場合は、 `smRunStateは」に設定されています
`terminated' and `smExitCode' and `smRunError' are updated.
`終了 'と` smExitCode' と `smRunError」を更新しています。
Below is an example SMX message exchange. Messages send from the SNMP agent are marked with `>' while replies send from the runtime system are marked with `<'. Line terminators (`CRLF') are not shown in order to make the example more readable.
以下の例SMXメッセージ交換があります。メッセージは、「< 'でマークされている返信がランタイムシステムから送信しながら、」 `>でマークされているSNMPエージェントから送信します。行末( `CRLF ')は一例を読みやすくするために示されていません。
> hello 1 < 211 1 SMX/1.0 0AF0BAED6F877FBC > start 2 42 "/var/snmp/scripts/foo.jar" untrusted "" > start 5 44 "/var/snmp/scripts/bar.jar" trusted "www.ietf.org" < 231 2 2 > start 12 48 "/var/snmp/scripts/foo.jar" funny "" < 231 5 2 < 532 0 44 2 "waiting for response" > status 18 42 > status 19 44 < 432 12 < 231 19 2 < 231 18 2 > hello 578 < 211 578 SMX/1.0 0AF0BAED6F877FBC > suspend 581 42 < 231 581 4 < 534 0 44 "test completed" > abort 611 42 < 232 611
>ハロー1 <211 1 SMX / 1.0 0AF0BAED6F877FBC> 2 42 "信頼できない "/var/snmp/scripts/foo.jar" /var/snmp/scripts/bar.jar" 信頼できる「www.ietf "> 5 44開始" 開始.ORG」<231 2 2> 12 48開始 "" 面白い "/var/snmp/scripts/foo.jar" <231 5 2 <532 0 44 2 "応答待ち">ステータス18 42>ステータス19 44 <432 12 <231 19 2 <231 18 2>ハロー578 <211 578 SMXサスペンド/ 1.0 0AF0BAED6F877FBC> 581 42 <231 581 4 <534 0 44 "完了テスト">アボート611 42 <232 611
The SMX protocol runs on top of a local TCP connection. Protocol messages never leave the local system. It is therefore not possible to attack the message exchanges if the underlying operating system protects local TCP connections from other users on the same machine.
SMXプロトコルは、ローカルのTCP接続の上で実行されます。プロトコルメッセージは、ローカルシステムを離れることはありません。基礎となるオペレーティング・システムが同じマシン上の他のユーザーからローカルのTCP接続を保護した場合のメッセージ交換を攻撃することは不可能です。
The only critical situation is the connection establishment phase. The rules defined in section 4 ensure that only local connections are accepted and that a runtime system has to identify itself with a security cookie generated by the SNMP agent and passed to the runtime system process as part of its environment. This rule ensures that scripts will only be executed on authorized runtime systems. This scheme relies on the protection of process environments by the operating system. Well maintained UNIX operating systems have this property.
唯一の重要な状況では、接続確立フェーズです。セクション4で定義されたルールは、ローカル接続が受け入れられることを確認し、ランタイムシステムは、SNMPエージェントによって生成され、その環境の一部として、ランタイム・システム・プロセスに渡されたセキュリティCookieを使用して自身を識別しなければならないこと。このルールは、スクリプトのみを許可されたランタイム・システム上で実行されるようになります。この方式では、オペレーティング・システムによって、プロセス環境の保護に依存しています。よく維持UNIXオペレーティングシステムでは、この性質を持っています。
The SMX protocol allows to execute script under different operating system and runtime system security profiles. The memo suggests to map the smLaunchOwner value to an operating system and a runtime system security profile. The operating system security profile is enforced by the operating system by setting up a proper process environment. The runtime security profile is enforced by a secure runtime system (e.g. the Java virtual machine or a safe Tcl interpreter) [7].
SMXプロトコルは、異なるオペレーティングシステムとランタイムシステムセキュリティプロファイルの下でスクリプトを実行することができます。メモは、オペレーティングシステムとランタイムシステムのセキュリティプロファイルにsmLaunchOwner値をマッピングすることを示唆しています。オペレーティングシステムのセキュリティプロファイルは、適切なプロセス環境を設定することにより、オペレーティングシステムによって強制されます。ランタイムセキュリティプロファイルは、セキュアな実行システム(例えば、Java仮想マシン、または安全なTclインタプリタ)によって実施される[7]。
The protocol described in this memo is the result of a joint project between the Technical University of Braunschweig and C&C Research Laboratories of NEC Europe Ltd. in Berlin. We would like to thank the following project members for their contributions to the initial design and the implementation of the protocol described in this memo:
このメモに記載されているプロトコルは、ブラウンシュヴァイク工科大学とベルリンでNECヨーロッパ社のC&C研究所との共同プロジェクトの結果です。私たちは、初期設計とこのメモに記載されているプロトコルの実装に貢献するために、次のプロジェクトメンバーに感謝したいと思います:
M. Bolz (TU Braunschweig) C. Kappler (NEC Europe Ltd.) A. Kind (NEC Europe Ltd.) S. Mertens (TU Braunschweig) J. Nicklisch (NEC Europe Ltd.)
[1] Levi, D. and J. Schoenwaelder, "Definitions of Managed Objects for the Delegation of Management Scripts", RFC 2592, May 1999.
[1]レビとD.とJ. Schoenwaelder、 "管理スクリプトの委任のための管理オブジェクトの定義"、RFC 2592、1999年5月を。
[2] Lindholm, T., and F. Yellin, "The Java Virtual Machine Specification", Addison Wesley, 1997.
[2]リンドホルム、T.、およびF.イェリン、 "Java仮想マシン仕様"、アディソンウェズリー、1997。
[3] J.K. Ousterhout, "Tcl and the Tk Toolkit", Addison Wesley, 1994.
[3] J.K. Ousterhout、 "TclとTkのツールキット"、アディソンウェズリー、1994。
[4] Fritzinger, J.S., and M. Mueller, "Java Security", White Paper, Sun Microsystems, Inc., 1996.
[4] Fritzinger、J.S.、およびM.ミューラー、 "Javaセキュリティ"、ホワイトペーパー、サン・マイクロシステムズ社、1996。
[5] Levy, J.Y., Demailly, L., Ousterhout, J.K., and B. Welch, "The Safe-Tcl Security Model", Proc. USENIX Annual Technical Conference, June 1998.
[5]レヴィ、J.Y.、Demailly、L.、Ousterhout、J.K.、およびB.ウェルチ、 "セーフTclのセキュリティモデル"、PROC。 USENIXの年次技術会議、1998年6月。
[6] Crocker, D., and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", RFC 2234, Internet Mail Consortium, Demon Internet Ltd., November 1997.
[6]クロッカー、D.、およびP. Overell、 "構文仕様のための増大しているBNF:ABNF"、RFC 2234、インターネットメールコンソーシアム、悪魔インターネット株式会社、1997年11月に。
[7] Schoenwaelder, J., and J. Quittek, "Secure Management by Delegation within the Internet Management", Proc. IFIP/IEEE International Symposium on Integrated Network Management '99, May 1999.
[7] Schoenwaelder、J.、およびJ. Quittek、 "インターネット管理以内委任によってセキュア管理"、PROC。統合ネットワーク管理'99、1999年5月にIFIP / IEEE国際シンポジウム。
Juergen Schoenwaelder TU Braunschweig Bueltenweg 74/75 38106 Braunschweig Germany
ユルゲンSchoenwaelder TUブラウンシュバイクBültenweg75分の74 38106ブラウンシュヴァイク、ドイツ
Phone: +49 531 391-3283 EMail: schoenw@ibr.cs.tu-bs.de
電話:+49 531 391-3283 Eメール:schoenw@ibr.cs.tu-bs.de
Juergen Quittek NEC Europe Ltd. C&C Research Laboratories Hardenbergplatz 2 10623 Berlin Germany
ユルゲンQuittek NECヨーロッパ社C&C研究所Hardenbergplatz 2 10623ベルリンドイツ
Phone: +49 30 254230-19 EMail: quittek@ccrle.nec.de
電話:+49 30 254230-19 Eメール:quittek@ccrle.nec.de
Copyright (C) The Internet Society (1999). All Rights Reserved.
著作権(C)インターネット協会(1999)。全著作権所有。
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.
この文書とここに含まれている情報は、基礎とインターネットソサエティおよびインターネットエンジニアリングタスクフォースはすべての保証を否認し、明示または黙示、その情報の利用がない任意の保証を含むがこれらに限定されない「として、」上に設けられています特定の目的への権利または商品性または適合性の黙示の保証を侵害します。
Acknowledgement
謝辞
Funding for the RFC Editor function is currently provided by the Internet Society.
RFC Editor機能のための基金は現在、インターネット協会によって提供されます。