要約

  • RFC 1227 は、ホスト上の利用者プロセスが MIB の部分木をローカル SNMP エージェントへ登録し、外部要求の一部を代行して処理する仕組みを定めた。
  • どのピアが呼ばれるかは優先順位と「部分木のマウント効果」で変わった。返された値は、その時点の局所的な選択を示すが、恒久的所有者、完全性、正しさを示さない。
  • 複数ピアへの Set は準備段階の賛否を集めた後、応答のない commit または rollback を送った。準備への同意は、最終状態の適用確認ではなかった。

遠隔の一本の枝は、局所では分岐していた

RFC 1227 が扱ったのは、管理情報の置き場所だった。SNMP エージェントはカーネル変数やファイルを読めても、経路制御プロセスなどが保持する生きた状態を当然には持たない。そこで情報を中央へ複製するのではなく、そのプロセスを SMUX ピアとしてエージェントへ接続し、担当する MIB 部分木を登録させた。

遠隔の管理局は RFC 1157 の SNMP を使い、従来どおり一つのエージェントへ Get、GetNext、Set を送る。エージェントは登録範囲に従って変数を分け、該当するピアへ内部 PDU を送り、応答を対応付けて外部の GetResponse を組み立てる。ネットワーク上の話者は一人のままだが、回答者は一人とは限らない。

RFC Editor の記録 は現在この文書を Historic とし、Datatracker はその文書履歴を残している。これは特定ホストの採用証明ではない。重要なのは、単一エージェントという外見が、複数の所有面を束ねた表示であり得ると仕様自体が示した点である。

オブジェクト名は RFC 1155 の SMI から、SMUX 自身の表の書式は RFC 1212 から来た。共有された名前空間は相互運用を助ける。しかし、共通の名前は共通の出所を意味しない。

数字の小さい登録が、見える現実を選んだ

登録には優先順位があり、値が小さいほど強かった。同じ部分木を複数ピアが異なる順位で登録できる。-1 は利用可能な最上位を要求する記号だったが、エージェントはローカル設定に基づいて、より低い順位を割り当てることもできた。ピアの希望とエージェントの採用結果は別の記録である。

問い合わせに使われるのは最高順位の登録だけだった。さらに「部分木のマウント効果」が働く。狭いオブジェクトが先に登録されていても、それを包む上位部分木が別のピアにマウントされれば、狭いオブジェクトへの要求も上位のピアへ向かう。下にある登録は消えなくても、選択から隠れる。

したがって、ある OID の応答を見て「このプロセスがその情報の所有者だ」とは言えない。言えるのは、観測時の登録、順位、包含関係、エージェント方針のもとで、そのピアが選ばれたということだけである。隠れたピアが別の値を持つ可能性、元のデータ生成者が別にいる可能性、値が実機を正しく表していない可能性は残る。

エージェントは SNMP と SMUX 自身の部分木の周辺登録を拒むべきとされ、他の範囲も実装方針で拒否できた。登録成功は命名空間への局所的な入場許可であり、運用変更の権限や現実世界の所有権ではない。

GetNext の候補を、そのまま公開してはいけなかった

SMUX ピアは GetNext を処理するとき、MIB 全体を持つかのように振る舞う。そのため担当範囲の外にある「次の」オブジェクトを返すことがある。エージェントは戻り値が依頼元の部分木内か検査し、外なら後続部分木のピアへ問い合わせ直さなければならなかった。

この規則は、境界の責任者を明確にする。ピアが候補を提示し、エージェントが公開可能な順序かを判定する。遠隔から見える整然とした MIB walk は、一つのデータベースを直読した記録ではない。局所的な照会、範囲検査、次のピアへの転送を繰り返した合成物である。

要求 ID にも同じ分離がある。一つの外部要求から同じピア向けの PDU が複数作られる場合、内部 PDU は同じ ID を持つが、その値は外部要求の ID と一致しなくてよい。外部入力、内部 fan-out、外部出力を結ぶ証拠は、数字が偶然同じことではなく、エージェントの相関記録にある。

全員が賛成した時点では、まだ変更していなかった

複数ピアにまたがる Set では、エージェントが最初に各参加者へ受諾か拒否を求めた。ピアはこの段階で操作を実行してはならない。一つでも拒否すれば全員へ rollback、全員が受諾すれば commit を送る。

ここで最終メッセージへの応答は定義されていない。準備段階の noError は、提案を受け入れられるという表明であって、状態変更済みの受領証ではない。エージェントが commit を送った事実も、各ピアが受信し、適用し、永続化したことを単独では示さない。

完了を主張するには、後続の読み直し、各プロセスの記録、装置側の状態、または独立した効果観測が必要になる。rollback も同じである。二段階の決定は不確実性を整理したが、最後の結果を観測する責任まで代行しなかった。

表に残った行は、稼働中とは限らなかった

SMUX MIB にはピア表と部分木表があった。しかし行を invalid にしても、実際に削除するかは実装依存だった。管理局は行の存在だけで利用中と判断せず、状態値を併せて解釈する必要があった。

SimpleOpen はピアの identity OID、説明、password を運ぶが、長さゼロの password は認証なしを意味した。しかも RFC は安全性を論じていない。プロトコル内の identity は識別子であり、人物、組織、権限範囲、値の信頼性を自動的に認証するものではない。

TCP 対応ではポート 199 を使い、BER が自己境界を持つため追加の packetization を不要とした。現在の IANA サービス名・ポート番号レジストリ は番号の文脈を示せるが、登録番号から待受け、実装、現在の利用を推定することはできない。

RFC 1227 が残したのは、統一された画面の内側を追跡する方法である。外部応答、選ばれた登録、ピアの値、トランザクション決定、観測された実状態を混ぜなければ、単一エージェントの便利さを保ちながら証拠の境界も保てる。

出典