スマートフォンを自宅のトンネルに接続し、LANのファイル共有を開くことは、トンネルが機能している証拠になる。しかし、スマートフォンのインターネット要求が自宅を通って出ていく証拠にはならない。この二つの結果の違いは、転送ポリシーと経路であり、スマートフォンのチェックボックスをもう一つ増やすことではない。多くの人がすでに設定したと思い込んでいる違いでもある。

出口の経路は三つの決定から生まれる。スマートフォンがトンネルに何を送るか、自宅のゲートウェイがそれをどこへ転送するか、トンネルがないとき何が起きるかという三つであり、どれもスマートフォンの画面からは他の失敗と同じに見える。

二つの跳躍、二つのポリシー

外側の接続は自宅のVPNリスナーで終わる。内側のパケットは別の対象であり、どこかへ転送しなければならない。転送は、そもそもトンネルを受け入れることとは別のファイアウォール判断である。

phone app -> encrypted tunnel -> home listener
          -> decrypted packet -> forward policy -> home uplink -> destination

一般的な家庭用ルーターでは、これらは別々のルールセットに存在する。トンネルの受け入れはVPNインターフェースの入力ポリシーであり、スマートフォンの通信をインターネットへ送り出すのは転送ポリシーと、上流回線が必要とする送信元変換である。トンネルを受け入れても何も転送しないルーターでは、スマートフォンは接続済みと表示され、どのページも読み込まない。

VPNサービスが自宅内の別のマシンで動いているなら、跳躍が一つ増える。ルーターはそのマシンから来る通信を見るため、ルールはスマートフォンのトンネルアドレスではなくサーバーのアドレスに適用され、送信元変換によってすべてのスマートフォンが一つのホストに見える。

リスナーはフィルターではない

必要な情報がまだ存在するうちに、適用をどこで行うかを決める。ルーター上ではスマートフォンのトンネルアドレスが見え、直接照合できる。二度目の変換の後ろではそれは消えており、スマートフォンのアドレス宛てに書かれたルールは何にも一致しない。

ノートPCでは機能し、スマートフォンでは機能しないポリシーのよくある理由がこれである。ノートPCはルーターへ直接接続し、スマートフォンはルーター経由で転送するサーバーへ接続するため、ルールが期待するアドレスを保つのは最初の経路だけである。ルールが間違っているのではない。その地点にもう存在しない値と照合しているのだ。

各適用地点で見える送信元アドレスとともに経路を書き留める。その一枚の図が、どのルールを編集するよりも先に、こうした事例の大半を解決する。

スマートフォンが実際に送るべきもの

自宅サブネットへの経路だけを受け取るスマートフォンは、そのサブネットの通信だけをトンネルへ送る。それ以外はすべてモバイル網から出るため、ファイル共有は機能し、インターネット要求は自宅に届かない。

全トンネルのカバレッジはクライアント側の経路決定であり、インストールされるプロファイルから推測するのではなく、プラットフォームが対応する仕組みで設定しなければならない。設定後は、VPNサーバー自身への戻り経路をトンネルの外に保つ必要があり、そうでなければクライアントは自らの転送を維持できない。

DNSは独自の決定に値する。残りの通信から最も逸脱しやすい部分だからだ。プロファイルのリゾルバーアドレスはクライアントが異なる扱いをする提案であり、独自の暗号化リゾルバーを持つアプリはまったく別の経路を取ることがある。自宅のポリシーが特定のリゾルバーへの到達に依存するなら、通信が実際に通過する場所で適用するか、一部の問い合わせは届かないと受け入れることだ。あなたのリゾルバーを迂回する問い合わせは、そのために書かれたルールに決して届かない。

IPv6は付録ではなく、DNSと同じ段落に属する。IPv4の全トンネルはAAAAの通信について何も語らず、デュアルスタックのモバイル網のスマートフォンはそれを在来の経路で喜んで使う。転送か遮断かを明示的に選ぶこと。

ファイアウォールが見えるものと見えないもの

ゲートウェイは適用地点が明らかにするものに基づいて動作できる。アドレス、ポート、プロトコル、インターフェース、接続のメタデータである。転送されたHTTPS要求は、自宅のトンネルを通るからといってページ本文やパスワードを渡すわけではない。

この限界を述べる価値がある。「ファイアウォールを通せ」という表現は、家庭用ルーターが行う以上の検査を含意する。宛先ルール、DNSポリシー、アプリケーション層のプロキシは三つの異なる制御であり、展開費用も三つとも異なる。

自宅LANのクライアント向けに設定した機能がVPNインターフェースにも適用されると考えてはいけない。ゾーンの所属は設定上の選択であり、正しいゾーンにないVPNインターフェースは、ソファから試したどのルールも継承しない。

切断時の状態を決める

トンネルが利用できないとき、スマートフォンはモバイル網へ戻るか、通信の送信を拒否するかのどちらかである。どちらも妥当であり、多くの人が設定したと信じているのは片方だけである。

フォールバックは便利で、定義上漏れる:トンネルが落ちた瞬間が、要求が事業者の経路から出る瞬間だからだ。遮断はより強力だが、自宅に到達できることにスマートフォンを依存させ、旅行者にとって現実の可用性コストになる。どちらの挙動も不具合ではなく、どちらも製品であり、言うか言わないかに関わらず、あなたはその間を選んでいる。

想定するのではなく、選択を試す。自宅のサービスを止め、スマートフォンのブラウザーから一件、バックグラウンドで動くアプリから一件の要求を試す。後で再接続しても、すでに出ていった要求は取り消されない。

スマートフォン自体からの二つの統制された確認で締めくくる。自宅を通過すべき許可された操作と、自宅のポリシーが適用すべき拒否の一つである。再接続後に、ゲートウェイが期待したフローを、期待したアドレスファミリーで記録したことを確認する。「接続済み」と表示するスマートフォンはその検証の始まりであり、決して終わりではない。

関連記事