どのNATホップがアイドルVPNマッピングを落とすのか、見分け方
アイドル状態のVPNフローは、状態を保持するどのホップでも死ぬ可能性がある。同じ試験を繰り返し、各境界が何を見たかを比べ、推測した犯人ではなく限定された結果を報告する。
静かな時間のあとトンネルが再接続し、どのログも犯人を名指しせず、目に見える手はタイムアウトの文書がいちばん立派な機器を選ぶことだ。それは診断の衣を着た推測にすぎない。状態は家庭用ルーター、キャリアのトランスレーター、クラウドのエッジでしばらく生き残り、どれも黙り込んだフローを落としうる。代わりにできるのは、経路を地図にし、実際に観測できる機器を印し、繰り返せるアイドル試験を一度だけ実行することだ。
再現できる試験は逸話を計測に変える。以下はすべて一台のクライアント、一台のサーバー、一つのプロトコルを前提とし、二つの変数を同時に変えないことを前提とする。狙いは、次の発生を今回より安く済ませることだ。
毎回同じアイドル試験を行う
フローが最後に正常だった時刻、そのあとどれだけ黙っていたか、新鮮なパケット一つで戻ったかを書き留める。この三つの事実が計測であり、それがなければ落ちたノートPCの物語にすぎない。繰り返しのたびに同じクライアント、同じサーバー、同じプロトコルを使い、沈黙のあとの最初のパケットを送った瞬間を記録する。
次に、自分が持つ各境界が実際に何を見たかを比べる。調査を決める区別は、サーバーが停止後に何も見なかったのか、要求を見てすでに応答を運ばない経路へ答えたのかだ。
| What you observe | What it suggests | What it does not prove |
|---|---|---|
| server records no packet after the pause | state was lost upstream of the server | which hop dropped it |
| server answers, client never receives | return-path state or filtering | that the timer belongs to the client |
| client sends nothing at all | client-side timer or application behaviour | that the network path is healthy |
五つを変えずに経路を比べる
承認済みの二つ目のアクセス網は、NAT連鎖が違うので正当な比較になる。プロバイダー、電波状況、場合によってはアドレスファミリーも違うので、結果は境界であって帰属ではない。報告するときに制約を黙って落とさず、結果と一緒に記録する。ついでに経路も書く。機器、役割、状態を読めるかどうかだ。
経路の比較で買えるのは限定された問いだ。似た沈黙のあと片方で生き残り片方で死ぬなら、変数は異なる部分のどこかにある。機器を名指しできなくてもこれは現実の結果であり、次の技術者に午後をどこで使うべきか、どこで使うべきでないかを示す。
キャリアについて推測する前に、ローカルの状態を読む価値がある。Linuxゲートウェイでは conntrack -L が追跡中のフローを残存寿命とともに一覧し、タイマーについての推測を、失効を見届けられる数値に変える。アイドル期間の前と後で読むこと。後だけではいけない。
キープアライブが保つもの、保たないもの
対応しているキープアライブはマッピングを開いたままにし、開いたままにしても背後のサービスについては何も証明しない。トンネルはマッピングされたままでも、それが運ぶアプリケーションが応答をやめていることがあり、ステータスランプから見ればこの二つの状況は同じに見える。キープアライブはアイドル失効への保険として扱い、健全性確認として扱わないこと。
間隔は、実際に測った最短のタイムアウトに合わせる。フォーラムから写した数値に合わせてはいけない。考えうるどのタイマーより短く調整したキープアライブは誰も必要としない通信であり、どの境界が先に失効するかを教えてくれた症状も消してしまう。間隔は測定値から選び、ほかのものはそのままにしておく。
一つ変えて、また測る
実地の試験中に、すべてのタイムアウトを上げ、すべてのゲートウェイを流し去りたい衝動を抑える。それは来た目的の証拠を消し、他人のフローを妨げる。試していない仮説に対しては悪い取引だ。一台の機器で対応している設定を一つ変え、それからアイドル期間とアプリケーションの復帰を繰り返す。
どの境界の観測が動いたかを記録し、何も改善しなかったときも記録する。何も直さなかった設定も情報であり、一度気づくほうが全拠点に広げるより安い。
弁明できる所見を書く
上流のトランスレーターを検査できないときは、証拠が支えることだけを言う。やり取りはこの経路のこの区間のどこかで、これだけの沈黙のあとに死に、責任のあるホップは特定されないままになる。限定された記述は査読に耐え、次の人を正しい区間へ導く。隠れたルーターを原因と名指しすることは、そのどちらもしない。限定された所見を、観測できない区間を持つ担当者に間隔を添えて渡す。
RFC 4787 は、UDPのマッピングタイマーを片方の端点から推測するのが難しい理由を説明しており、その難しさこそ限定された所見が誠実である理由だ。タイマーは現実であり、それを取り巻く不確かさも現実だ。