要約

  • SNMPv2 partyは、transportの住所だけでなく、固有identity、authentication、privacy、受信可能サイズ、許された操作範囲を持つ実行環境だった。
  • 新規要求はlocal databaseの宛先へ送る一方、応答は対応する要求の実際の到来domain/addressへ送り返した。台帳との不一致は例外を止めなかった。
  • 観測経路は一回の応答を導いただけで、party台帳、identity、context、ACL、操作結果を自動的に変更しなかった。

台帳は会話の開始点だった

RFC 1445 のpartyは、管理上制限されたvirtual execution environmentである。論理的位置はpartyTDomainとpartyTAddressに分かれ、別にidentity、認証・秘匿方式、最大message sizeを持った。

entityは既知party、管理対象resource、access policyのlocal databaseを保つ。要求を作るときは送信party、受信party、context、operationを指定し、台帳から両者の条件を読み、受信partyの登録位置へ送る。

これは設定の正しい役割だ。直近の観測がない時、最初のpacketをどこへ出すか決める。しかし登録値は、相手が今もそこにいることも、要求が許可されることも証明しない。

RFC 1445の記録 は現在Historicである。party方式そのものではなく、設定と実行の証拠を分けた点を歴史として読む必要がある。

到来元はprincipalではない

受信処理には複数の関門があった。wrapperが解釈でき、外側と内側の宛先partyが一致し、そのpartyをlocal entityが実現していなければならない。message内の送信partyも既知である必要がある。

その後にauthentication protocolを評価し、contextを引き、target、subject、resource、communication classを結ぶACLを適用する。通過して初めてlocal MIB viewまたはproxy関係へoperationが渡る。

source addressは配送観測であり、identityや権限の代用品ではない。歴史上のnoAuthがmessageをauthenticと扱う場合も、addressが暗号的identityになったわけではない。

応答だけは観測経路を選んだ

section 3.3では、要求のsource/destination partyを反転し、contextを保持し、処理結果をPDUに入れる。そして最後の送信先を変える。対応する要求が来たtransport addressとdomainを使い、local party databaseが別の値を持っていても、その到来元へ返す。

実行中の事実が台帳に勝つ範囲は、ここに限られた。このresponseは一般的な新規messageではなく、このrequestが生んだものだからである。再度destination discoveryを行えば、返答を別の道へ送る恐れがある。

不一致は自動修復されなかった

応答手順には、観測したtupleをparty台帳へ書き戻す処理がない。差は古い設定、別interface、proxy、その他の原因を示し得るが、仕様は特定deploymentの理由を断定しない。

一度返せたことは、この一通の宛先を示す。次回の要求先、恒久identity、ACL変更、Setの永続化までは示さない。返答生成、配送、受理、再起動後の状態、network effectは別の観測である。

二つの値を残すことは汚れではない。provenance付きの不一致は、理由のない上書きより正確である。

台帳を書き換える権限は重かった

RFC 1447 はparty、context、ACL、viewのtableを公開した。四つすべてへの完全accessは、任意の能力を持つpartyを構成できるためroot相当だと警告した。

party addressの変更は単なる経路最適化ではない。security parameterや権限と同じ管理関係に属する。限定managerは自分のpartyを維持できても、そのcapabilityを増減できるとは限らなかった。

自動化できるreturn pathと、承認を要するdurable recordの間に境界が置かれていた。

後のSNMPもrequest stateを残した

RFC 3411 はdispatcher、message processing、security、access control、application、transportを分離した。RFC 3412 ではincoming requestがstateReferenceを生み、response準備へ渡す。

そのstateからdestination transport domain/addressが得られ、originatorへ送られる。SNMPv3のcacheにもtransport座標が入った。一般台帳だけで応答を再構成せず、個別exchangeの状態を保持する原則が別の形で残った。

これは全実装の適合や因果的継承の証明ではない。会話stateとdestination catalogueが別物だというarchitecture上の連続性である。

出典