一台のノートPCがオフィスのルーターを通して動作中のトンネルを保っている。同じ部屋の二台目のノートPCが接続すると、一台目が落ちる。症状がこれだけなら、まだ三つの異なる原因が残っており、どの対処が当てはまるかは、まだ測っていない事柄にかかっている。共有ルーターは関係するが、自動的に犯人ではないし、プロトコルもそうではない。

ソファから見ると同じに見える三つの原因

最初の候補は、ルーターの IPsec の扱いだ。安価なコンシューマー向けルーターはパススルーをうたうことが多く、一度に一人のクライアント向けにしか実装しないのは、仕組みが一つのピアを追跡し、同じ公開アドレスの背後にある二台のノートPCを分離できないからだ。症状はまさに予想どおりで、新しいセッションが勝つ。

二つ目はアカウントだ。多くの VPN サーバーは ID ごとに一つのセッションだけを許し、同じ資格情報が再認証されると古い方を切断するが、これはゲートウェイ側のポリシー判断であり、あなたのルーターとは何の関係もない。ハードウェアを買う前に、サーバーログでその明示的なメッセージを探してほしい。

三つ目は単純な設定ミスで、二つのプロファイルが同じ ID を指し、片方が古い事前共有鍵や、ゲートウェイがもう受け付けない証明書を使っている。これは通常、一台目が落ちるのではなく二つ目の接続が失敗する形で現れ、つまり失敗の形がすでに何かを教えてくれている。

L2TP/IPsec が実際にルーターを通して送るもの

IKE は UDP 500 の上で動く。データ経路は ESP で、これは IP プロトコル 50 であり、TCP や UDP のポートを一切持たない。だからポートしか理解しないルーターには手がかりがなく、パススルーの仕組みが存在する理由はまさにそこにある。

NAT トラバーサルでは、ESP は UDP 4500 の中にカプセル化される。これでルーターにはマッピングする送信元ポートができ、各ノートPCが独自の変換を受け取るので、ゲートウェイは二つのフローを見分けられる。一つのアドレスの背後で複数のクライアントが動くのは、この仕組みのおかげだ。

この区別は、ルーターの機能一覧を読むときに重要になる。IPsec パススルーと書かれたラベルは、ベンダーに何らかの仕組みがあることしか伝えず、その仕組みが複数のクライアントに対応するか、二台目が来たときにどう振る舞うかは伝えない。

strongSwan の NAT トラバーサルの文書はカプセル化そのものを説明しており、これはマーケティングページではなくパケットキャプチャから検証できる部分だ。

実際にどの原因なのかを知る方法

四つの観察を行い、それぞれの結果を書き留める。各ノートPCを単独で使うと動くか、どれくらいもつか。二台同時ならどちらが生き残るか。二台目をスマートフォンのテザリングに置くと、一台目は立っているか。そしてゲートウェイ側で、サーバーログは新しいセッションが古いものを置き換えたと示すのか、それとも一台のクライアントが黙っただけと示すのか。

その答えが候補をきれいに分ける。サーバーログの置き換えメッセージは ID ポリシーを指す。ルーターが新しい変換を示す一方でクライアントが通信を受け取らなくなるのは、ルーターを指す。二台とも IKE を完了できないのは、設定か資格情報を指す。

最後まで同じプロファイルを使い続ける。テストの間でプロファイルを変えると、二つの変数を同時に測ることになり、結論は気づきにくい形で間違う。

ルーターが対応していればそこでキャプチャするか、もう一方が接続する間にもう一台でキャプチャする。一台目のパケットが止まる間に二台目のパケットが現れるのを見ることは、どんな接続アイコンよりも強い証拠だ。

ルーターが制約なら

ベンダーが文書化したマルチクライアント設定があればそれを使い、なければ必要なことを文書が示している機器に交換する。地味な答えだが、ファームウェア更新を生き延びる唯一の答えだ。

うまくいかないのは、二台の異なるノートPCに向けて同じ受信転送を二つ追加することだ。転送は到着した通信をどこへ送るかをルーターに伝えるが、二つの有効なフローのどちらにパケットが属するかは伝えず、その曖昧さが不具合だ。

ルーターを交換できないなら、一方のクライアントを別の経路の背後に置く。スマートフォンのテザリングは恒久策としては貧弱だが、診断策としては十分に良い。

ゲートウェイが制約なら

別の人には別の ID を用意する。二台のノートPCが使う一つの共有アカウントは、単一セッション向けに設定されたサーバーでこの症状を生む構成であり、遠い側で決まった判断をローカルの設定で直すことはできない。

ゲートウェイの所有者に、アカウントごとに一セッションか、証明書ごとに一つか、制限なしかという、適用されるポリシーを尋ねる。その答えが、新しい資格情報が必要か新しいルーターが必要かを決める。

検証は人が飛ばしがちな部分で、以前失敗していた間隔より長く、両方のクライアントから有用な通信を流すべきだ。ログインが二回成功しただけでは、認証がそれぞれ一度ずつ通ったことしか証明できない。

関連記事