二つの名前は同じドロップダウンに並んでいて、対等な二者からの選択に見える。だが対等ではない。L2TP はそれ自体に機密性を持たないトンネリングプロトコルで、L2TP/IPsec サービスにおける保護はそれを包む IPsec 層から来る。IKEv2 は IPsec アソシエーションを直接ネゴシエートし、トンネルの中にトンネルという段階がない。サーバーがどちらのスタックを提供しているかを知ることが、プロファイル、プロンプト、そしてノートPC がネットワークを変えたときに何が起きるかを決める。

二つのスタック、クライアントでは一つのラベル

L2TP はポイントツーポイントのセッションを UDP で 1701 番ポートへ運び、暗号化はそれを包む側に任せる。IPsec と組み合わせれば、経路を守る IPsec アソシエーションと、その内側で利用者のリンク層フレームと PPP 認証を運ぶ L2TP セッションという二層になる。

IKEv2 は制御アソシエーションを作り、続いてトラフィックを守る子アソシエーションを一つ以上作るが、すべて UDP 500 と 4500 上の同じ交換ファミリーに収まる。内側のトンネリングプロトコルも PPP のネゴシエーションもない。

資格情報:三つの秘密が三つの層に分かれる

サポート時間の大半はここで消える。L2TP/IPsec プロファイルは IPsec 層の事前共有鍵と、内側の PPP セッション用のユーザー名とパスワードを同時に求めることがあり、その二つは別々のコンポーネントが検査する。共有鍵はゲートウェイ全体に属するので誰も識別せず、相手が秘密を知っていることだけを示す。

IKEv2 は通常、証明書か、ユーザー名とパスワードを使う EAP を用い、事前共有鍵も使える。これらの選択肢は L2TP の組とは互換ではない。拒否された EAP ログインを直すパスワードリセットは、期限切れのクライアント証明書には何の効果もなく、アカウントのパスワードを何度打ち直しても間違ったゲートウェイ鍵は満たせない。想定していないプロンプトが出たら、推測する前にどの層のものかを運用者に確認しよう。

QuestionL2TP/IPsecIKEv2
What encrypts the trafficA wrapping IPsec associationThe child association
Ports you must permitUDP 500/4500 and UDP 1701 insideUDP 500 and 4500
Typical secretsGateway PSK plus PPP credentialsCertificate, EAP, or PSK
Address changeTunnel breaks, reconnect neededCan migrate with MOBIKE

MOBIKE が変えるもの、変えないもの

両端が MOBIKE をサポートしていれば、IKEv2 はアソシエーションを新しいアドレスへ移せ、これはノートPC が Wi-Fi を離れて携帯のテザリングへ移る際にセキュリティアソシエーションを解体せずに済む場合をカバーする。

ただし、その移動の間すべてのアプリケーションが生き残るわけではない。トランスポートフローはやはりアドレスを変え、古いアドレスに結び付いたソケットはやはり切れ、トラフィックをインターフェースに固定するポリシーはやはりそれを落としうる。実際に行う切り替え、つまりネットワークを離れる、スリープから復帰する、長時間のアイドル後に戻る、のいずれかを試し、「接続済み」というラベルではなくアプリケーションを見よう。

両者を分ける障害の形

ゲートウェイに到達してから止まる L2TP/IPsec プロファイルは、共有鍵か PPP の資格情報という二つのプロンプトのどちらかで失敗しやすい。鍵が違えばクライアントログには有用なものがほとんど出ず、パスワードが違えば明示的な認証拒否が出るので、この違いがどこを見るべきかを教えてくれる。

IKEv2 プロファイルは、識別情報や証明書が違うと、制御アソシエーションが決して完了しないために、より早く、より大きく失敗する。アソシエーションが完了してもトラフィックが通らないなら、問題は子アソシエーション、トラフィックセレクタ、あるいは経路へ移っており、資格情報を変えても解決しない。

それぞれがまだ合う場所

L2TP/IPsec が残っているのは、ほとんどすべてのクライアントに入っていて追加ソフトを要さないからで、管理していない機器で作業する外部業者には効く。代償は余分な層、共有秘密のモデル、そしてアドレスが変わるたびの再接続だ。

IKEv2 は管理された端末に向く:証明書による識別、よりすっきりしたモビリティ、考えるべきアソシエーションは一系統だけ。クライアントが古いと失敗も強くなるので、それを前提に設計する前に、プラットフォームが対応する認証方式を確認しよう。

渡されたプロファイルを試す

まずサーバー側でモードを確認し、それに合うクライアントプロファイルを選ぶ。そのプロファイル用に発行された正確なホスト名と資格情報で試し、公開サイトではなく内部リソースを検証する。

接続できて何も読み込めないなら、トンネルは動いていて、経路、DNS、トラフィックセレクタが動いていない。そこでプロトコルを変えるのは、診断を進めるのではなく最初からやり直すことになる。

関連記事