同じノートPC、同じプロファイル、同じパスワードが、ある建物では機能し、別の建物では失敗する。この比較こそチケットで最も有用な証拠であり、たいてい最初に捨てられるものだ。二つのアクセスネットワークの間では、やり取りが異なるアドレス変換、異なるフィルター、異なるルーターヘルパーを通る。クライアントを固定し、ネットワークだけを変えることが、そのどれが重要なのかを見極める方法だ。

ネットワークを比較する前にクライアントを固定する

動作するケースの記録が取れるまで、端末側は何も変えない。クライアントのバージョン、プロファイルの中身、サーバー名、成功した接続の時刻を残す。そのうえで同じセッション中に二番目のネットワークで障害を再現し、クライアントの状態をできるだけ同一に保つ。二回の試行の間にプロファイルを編集すると、比較全体が無効になる。目的は変数を一つに絞ることであり、その変数とはネットワークだ。

まず失敗するネットワークで通常のインターネット接続を確認する。ゲストポータルがあればそれも含める。満たされなかったポータルは、フィルターされたトンネルとまったく同じに見えるタイムアウトを生み、その確認は一分で終わる。

四つの段階、四つの異なるエラーメッセージ

L2TP/IPsec 接続は 四つの段階を経る。また、RFC 3193 は最初の二つを結びつける取り決めを説明している。IKE 交渉は、フィルターされた経路が静かなタイムアウトを生む場所だ。IPsec 認証は、証明書や事前共有鍵の不一致が代わりに明示的な拒否を生む場所だ。L2TP トンネルの確立は、確立済みのセキュリティアソシエーションでも行き先がないことがある場所であり、PPP ログインは、誤った認証情報がようやく目に見える失敗を生む場所だ。止まった段階のログを読むのであって、最後に出力された行を読むのではない。

journalctl -u strongswan --since '-5 min' | tail -20
journalctl -u xl2tpd --since '-5 min' | tail -20
ip -4 route get 198.51.100.10

strongSwan のログは、IKE 交換が提案に到達したか、相手がそもそも応答したかを示し、到達可能性とポリシーを切り分ける。xl2tpd のログは IPsec が終わる地点から引き継ぐので、そこに何もない確立済みのセキュリティアソシエーションは L2TP 段階を指す。ルート照会は、クライアントが想定どおりのサーバーアドレスへ送っているかを確認し、前のネットワークから引き継いだ古い DNS 応答を捕まえる。三つの出力を合わせると、症状ではなく段階が名指しできる。

NAT の深さとヘルパーの挙動を比較する

NAT トラバーサルは保護された通信を UDP カプセル化へ移す 変換が検出されると、動作中のセッションを運ぶポート番号は静的図のものと異なることがある。設定パケットを一つ通しただけでは、残りの交換について何も証明できない。外部からのポートスキャンでは、相手が正当に認証された通信をどう扱うかは分からない。二層目の変換は状況をさらに変える。対応付けが二回存在し、二つの異なるスケジュールで失効するからだ。モバイル回線でのキャリアグレード変換は、社内で動くプロファイルがテザリングで失敗する典型的な理由だ。

ルーターヘルパーはネットワークと同じくらい多様だ。ファームウェアによっては交換を傍受して書き換え、別のものは単に破棄をやめるだけであり、さらに別のものはレガシーモードでのみ設定を適用する。チェックボックスについてファームウェア自身の説明を読み、互換モードがある場合は、三つ同時ではなく一つの意図的な変更として試す。

外向きクライアント、内向きサーバー:二つの異なる問題

外向きのクライアントと内向きのサーバーでは、上流の到達可能性が異なる。前者に役立つパススルー機能は、後者には何の効果もない。ノートPCを遠隔ゲートウェイへ届かせる家庭用ルーターは、その背後にあるサーバーへの内向き接続を受け入れるわけではない。この二つを混同すると、問題でもなかったポート転送を探し回ることになる。何かを比較する前に、失敗している機器がどちらの役割かを明言する。

サポートされた変更の後、同じ接続を繰り返し、到達した段階を記録する。動作するプロファイルと失敗するネットワークのメモを一緒に保管し、認証情報をリセットしたりクライアントを再インストールしたりしない。それは比較の土台となる証拠を捨てることになる。

関連記事