ノートPCはVPNにつながっていて、スマホも同じWi-Fiにいるのに、スマホは今もISPのアドレスで閲覧している。これはクライアントの不具合ではない。トンネルはそれを終端する機器の上にあり、近くにあるからといって他の機器が引き継ぐわけではない。カバレッジが広がるのは、ルーター自身がクライアントを動かすとき、あるいは端末を意図的にLANのゲートウェイにしたときだけだ。どのモデルを選ぶかは三つで決まる。プロバイダーが実際に話すプロトコル、端末ごとにどれだけ扱いを変える必要があるか、夜九時にどの障害なら許容できるか。

ルーターのトンネルが実際にカバーする範囲

トンネルがルーターで終わると、そこを通るすべての端末が同じ出口を共有する。テレビ、ゲーム機、クライアントを一度も動かさない家電にとってはこれが魅力だ。インストールするものも、更新し続けるものもなく、プロバイダーの変更は一か所で済む。

カバレッジには人を驚かせる条件がある。ゲストネットワークや独自ポリシーを持つ二つ目のSSIDは、そのポリシーが定める経路を通り、トンネルは通らない。IPv6の経路はIPv4しか運ばないトンネルを迂回しうる。独自のVPNアプリや独自の暗号化リゾルバーを持つ端末はルーターを完全に無視する。そしてルーター自身の通信も、更新やDNSを含めて、その出力ポリシーに従う。これはLANの転送トラフィックとは別の経路だ。

確認はどちらのモデルでも同じで一分で済む。二台の端末に世界から見えるアドレスを尋ね、次にルーターの接続一覧でトンネルを見て、スマホがISPのアドレスを報告しているのにルーターが確立済みのトンネルを示しているなら、スマホはそこを通っていないし、再接続を繰り返しても変わらない。

端末ごとのクライアントが勝つ場面

要件が分かれた瞬間、端末ごとのクライアントが勝つ。仕事用ノートPCにはスマホが入ってはいけない社内トンネルが必要かもしれないし、プロバイダーのクライアントはアプリ単位の分割トンネルを提供できるがルーターには表現できず、ゲーム機はNATタイプを保つために外に出しておく必要があるかもしれない。各端末は単独でも壊れるので、一件の期限切れが家中を沈黙させることはない。

資格情報のほうが鋭い論点だ。全員の代わりにつなぐルーターは一つのアカウントを持ち、そのネットワークの全員がそのアクセスを引き継ぐ。インターネット接続の前に一人ずつ認証したいなら、ルーターのトンネルだけではできない。よくある設計は、アカウントを検証してからクライアントをすでに確立したトンネルへ通すキャプティブポータルで、これはほとんどの家庭が望むより可動部分が多い。

プロトコル対応は好みより多くのケースを決める

家庭用ルーターが出せるのは、メーカーが載せたプロトコルだけだ。PPTP、L2TP、素のIPsecしか持たないルーターは、OpenVPNやWireGuardのプロファイルだけを公開するプロバイダーにはつながらない。設定ではどうにもならない。正直な選択肢は、対応プロトコルを話すプロバイダー、必要なクライアントを載せたOpenWrtなどのファームウェアのルーター、または各端末のクライアントだ。

逆のケースも同じくらい多い。OpenVPN対応のルーターでも独自クライアントと独自のルーティング手法に依存するプロバイダーには使えないので、ハードウェアを買う前にプロバイダーの対応プロトコルのページを読み、ファームウェアの版を確認すること(製品ページの「WireGuard対応」は特定のファームウェア世代を指すことが多い)。

WireGuardクライアントを載せた旅行用ルーターは、ルーターモデルの安価な版であり、クライアントを動かせない少数の端末には妥当な答えだ。それでもルーターのトンネルなので、ゲストネットワーク、IPv6、共通の障害についての以上はそのまま当てはまる。

第三の選択肢は、機器をゲートウェイにすることだ

ノートPCからクライアントを共有することは可能で、ノートPCをルーターにしたと言うとき、たいていはこれを指している。

sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

これは機器がスリープする、クライアントが別プロファイルで再接続する、あるいは機器自身のファイアウォールが転送パケットを落とすまで動く。その瞬間、後ろのすべてが一斉に接続を失い、障害はVPNの問題ではなく死んだネットワークのように見える。

実験室や一時的な構成なら問題ない。恒久的な仕組みにすると、ノートPC一台が家庭の単一障害点になり、フタを閉じただけでテレビが止まった理由を誰かが不思議がる結末になる。

受信ポート、DNS、そして共有する障害

受信サービスはトンネルとともに動く。ルーターのVPNは通常LANサーバーのポート転送を壊し、サービスをトンネル経由で届けたいなら、動的DNS名はISPのアドレスではなくVPNの出口を指さなければならない。プロバイダーによってはルーティング可能な受信アドレスをまったく提供せず、それに依存した計画は静かに終わる。

ルーターがトンネルを持つときDNSはルーターに従うが、これは一台の端末が別のリゾルバーを必要とするまで便利だ。端末ごとのクライアントならそれを表現できるが、ルーターのポリシーはネットワークを二つに割らずにはできない。障害も共有され、一度のクラッシュ、一件の期限切れ、一本のまずいpushルートが同じ瞬間にすべての端末を切る。

端末がクライアントを動かせず、出口が一つで許容できるならルーターモデルを選ぶ。ポリシーが違う、プロバイダーがルーターにないプロトコルを求める、アカウントを共有してはいけない、のいずれかなら端末ごとのクライアントを選ぶ。機器をゲートウェイにするなら、どのインターフェースがどのネットワークを共有するかを書き留め、「トンネル断」の状態を試すこと。多くの設計が誤りだと分かるのは、まさにその状態だ。

関連記事