要約
- RFC 3435では各エンドポイントに現在の
NotifiedEntityが一つだけ存在したが、それはゲートウェイ発のコマンドの宛先を決める値であり、応答は各コマンドの送信元へ返された。 - 予備Call Agentによる書き換えは、制御器間の競合解決、完全な状態移送、媒体の無中断を証明しない。監査、接続消去、到達性、権限、利用者結果は別の記録である。
宛先が変わった後に残る問い
あるアクセスゲートウェイが主Call Agentから応答を得られなくなったと仮定する。予備系が新しいNotifiedEntityを送り、次のNotifyは予備系へ向かう。ここまでは確認できる。しかし主系が保持していた接続判断が複製されたか、復帰した主系と競合しないか、音声が双方向に続いたかは、同じ値から読めない。
2003年1月のRFC 3435は、MGCP 1.0の中でこの境界を明記した。テキスト版、RFC Editorの記録、Datatracker、履歴、参照関係、正誤表は文書上の事実を示すが、特定製品の実装や実測された復旧を示さない。
MGCPは呼制御の知能をCall Agentに、媒体処理をゲートウェイに分けた。置き換えられたRFC 2705も複数Agentが同期すると仮定したが、その方法は定義しなかった。RFC 2805はメディアゲートウェイ制御の一般要件を示し、RFC 3015はIESG注記が標準ベースの経路として挙げたMegaco/H.248を記述した。RFC 3435はInformationalであり、詳細な規範語が普及や通話成功を保証するものではない。
NotifiedEntityの狭い役割
各エンドポイントはある時点で一つのCall Agentに関連付けられ、その現在値がゲートウェイ発コマンドの送り先となる。最後に受け取った明示値が残り、なければ設定済み既定値を使う。両方がなく空値なら、強く非推奨ながら、直近の非監査コマンドの送信元が通知先になる。監査だけで通知先は変わらない。
一方、コマンドへの応答は現在の通知先ではなく、そのコマンドの送信元へ返る。Notifyを応答へ同梱した場合も同じ宛先である。さらにゲートウェイは任意の送信元からコマンドを受け得る。従って、現在の通知先、個別コマンドの送信元、応答先、正当な制御権は同一の証拠ではない。
RFC 2119の規範語とRFC 2234の文法はワイヤ上の動作を正確にするが、Agent間の権限合意を補わない。
DNSは状態台帳ではない
Call Agentは単一IPではなく、ドメイン名と任意のポートで識別された。一つの名前が複数インターフェースや複数機を表し、ゲートウェイは失敗時に代替アドレスを試す。DNSの返却順序へフェイルオーバーを依存させてはならなかった。
これは到達性のための間接化である。二台が同じ名前の下で応答しても、接続表、イベント順序、認可判断が一致する証明にはならない。名前解決、パケット到達、論理同一性、状態複製を別に記録する必要がある。
Agent全体が利用不能ならエンドポイントは最終的にdisconnectedとなる。予備Agentは新しい通知先を指定して接触できる。RFCは、後で制御を戻す際に故障系と予備系が通信・同期すると仮定した。その直後、別々のCall Agent間に引き継ぎ競合解決は存在せず、互いに何をしているか理解して通信することへ依存すると明記した。
AuditEndpointは現在値を読めても、最後の書き込みが正当だったか、過去の判断が全て移ったかを証明しない。現在値が一つであることと、その履歴について分散合意があることは別である。
監査と消去は違う回復
切断判定は一回の損失ではない。再送、指数バックオフ、代替アドレス、DNS再照会、T-MAX、二倍のT-HISTという段階を通る。ランダム待機は多数の端点が同時に復旧通知する雪崩を抑える。切断後、最初の非監査交換は切断状態を伝えなければならない。
Call Agentはそれを知ると、端点を監査するか、全接続を消去できた。監査は見える状態から照合し、消去は破壊によって収束させる。RestartInProgressの成功応答はプロトコル取引の完了であり、通話継続の証明ではない。RFC 3661は返却コードの使い方を明確にしたが、その意味を人の体験まで拡張しない。
RFC 3991はRedirect/Resetパッケージを、RFC 3992は限定的なlockstep状態報告を定義した。後続機構は特定の穴を狭めるが、基礎の通知先を選挙プロトコルへ変えない。IANAのMGCPパッケージ登録簿とLocalConnectionOptions登録簿は語彙の調整を示し、実装や運用成績を示さない。
一つのポインターに背負わせない
RFC 3435が残す教訓は、フェイルオーバーが一イベントではないことだ。宛先変更、代替アドレス応答、切断通知、監査、接続消去、媒体回復は独立して確認されるべきである。
Heng Luの後年の現実層という見方は、現在値へ含まれない権威を与えないために使える。実行コードの優先は仕様と運用結果を分け、最小初期仕様は共通核が宛先だけを調整し、将来の仲裁を外へ残す理由を説明する。これは後世の編集分析であり、RFC著者の意図だとは主張しない。
通知先は次のコマンドを送るために必要だった。しかし継続性には権限、状態同期、競合規則、媒体観測が別に要る。ポインターは台帳ではない。
出典
会員向け解説
プロフィールの詳細
適切な会員レベルでログインすると、解説全文と出典メモをご覧いただけます。
Strategic Circle 限定
Strategic Circle
すべての読者に公開されています。参加してログインすると プロフィール解説 を閲覧できます。
Strategic Circle に参加Leadership Alliance 会員限定
Leadership Alliance
対象となる IP 資産の所有者・管理者向けです。ログインすると Leadership Alliance の解説を閲覧できます。
Leadership Alliance に参加
