ネイティブの IKEv2 プロファイルで注目すべきキーはチェックボックスではなく、IncludeAllNetworksであり、それが変えるのは、システムがトンネルの外に送信できる範囲です。これを 1 に設定すると、macOS はトンネルを実質的にすべての IP 通信の経路として扱いますが、自身が定義し、あなたが拡張できる例外の集合を除きます。このキーはメニューではなくプロファイルの辞書にあるため、すべての通信を送信するという表現を読んだ大多数の人が想定する意味でもありません。

このキーがネットワークスタック内で変えるもの

これがない場合、トンネルは経路が接続されたネットワークインターフェースのように振る舞います。そのインターフェースを通るデフォルトルートがほとんどの通信を捉えますが、別のインターフェース上のより具体的なルートは、そのプレフィックスについては依然として優先されます。これは通常のルーティングであり、分割トンネリングがほとんど偶然に起こる理由でもあります。

キーを有効にすると、範囲はルーティングの優先順位ではなくなり、トンネル以外の何かを通って出てよい通信はどれかというポリシーになります。接続を維持するためにシステムは依然としてネットワークに到達する必要があるため、ポリシーには例外が付属しており、例外が存在しないふりはしません。有効にしても、マシンが動作する経路をまったく失うことはありません。得られるのは、想定より短い経路の一覧であり、その一覧は文書化されています。

実務上の帰結は、ルートを追加しても結果を説明できなくなることです。宛先にまだ直接到達しているなら、問うべきはどのルートが勝ったかではなく、例外がそれを覆っているかどうかです。

例外は設定の一部である

Apple は主要なキーのほかにいくつかの除外を文書化しており、ローカルネットワーク、Apple Push Notification の通信、セルラーサービス、デバイス間通信を対象としています。それぞれにプラットフォームとバージョンの条件があるため、同じプロファイルでも macOS のリリースによって動作が異なることがあります。

これらの除外の一部は本質的なものです。ネットワークアクセスを確立して維持するために必要な通信は、キャプティブポータルの処理を含め、許可しなければならず、そうしないと、マシンは何にも接続されず、修正もできない状態になり得ます。

次に意図的な選択があります。家庭用プリンターを許可することは、業務リソースのプレフィックスを許可することと同じ判断ではなく、どちらも APNs を到達可能なままにして通知を受け取り続けることとは異なります。どれを有効にしたかは、後でバグ報告から見つけるのではなく、プロファイル自体に記録してください。

デフォルトルートと同じではない理由

デフォルトルートはルーティングテーブルのエントリであり、ルーティングテーブルは負けます。より具体的なプレフィックスがそれを破り、アプリケーションに限定された接続はそれを迂回でき、より良いメトリックを持つ二つ目のインターフェースが、誰も VPN 設定に触れずに引き継ぐことができます。

Apple のルーティングに関するガイダンスはその区別を明確にしており、通常のデフォルトはより具体的なルートで上書きできますが、より広いスコープ設定は、トンネルが運ぶべき通信とそこから除外されるものを定義します。一方は優先順位であり、他方は規則に近いものです。

この違いは、漏えいをどう診断するかも変えます。デフォルトルートでは、ルートとメトリックを調べますが、スコープキーでは、プロファイルのリビジョン、インストールされた例外、バージョン固有の動作を調べます。ルーティングテーブルは、より早い段階で下された判断の下流にあるからです。

EnforceRoutes は別のつまみである

EnforceRoutes は同じ発想の厳格な版のように聞こえ、より多くのキーがより広い適用範囲を意味すると信じて両方を重ねる人がいます。Apple は、IncludeAllNetworks が有効なときには無視されると文書化しているため、その組み合わせで二つ目のキーは何ももたらしません。

より広いスコープを使わない構成のための代替として扱い、強化として扱わないでください。各キーが単独で何をするのか説明できないなら、両方を追加してもプロファイルのレビューが難しくなるだけです。

ゲートウェイとプロファイルの所有者が合意すべきこと

クライアントの設定は、転送するように設定されたことのない通信をサーバーに転送させることはできません。ゲートウェイはセッションを受け入れ、アドレスを配布し、到達したいプレフィックスへの戻り経路を提供し、選んだ構成で DNS を提供する必要があります。一つのプレフィックスしかルーティングしない場合、クライアントの広いスコープは届いて消える通信を生み出します。ゲートウェイのルート外の宛先への一度の要求で、それが一分で証明できます。

アプリが所有するトンネルはまた別のケースであり、プロバイダーはサポートされる動作を実装または公開する必要があります。二つ目のネイティブ IKEv2 プロファイルをインストールしても、別のアプリがすでに管理しているトンネルは変更されず、IKEv2 のキーは他のクライアントが読む OpenVPN のディレクティブではありません。

現在のキー一覧とバージョン条件については、何年も前に誰かがコピーしたプロファイルではなく、Apple の IKEv2 ペイロードのリファレンス を読んでください。

プロファイルのリビジョンを全体として受け入れる

リモートで管理される Mac を変更する前に、対象の macOS バージョン、意図するインターネット出口、到達可能なままにすべきプライベートプレフィックス、有効にするすべての除外を書き留めてください。そのうえで、これから変更するトンネルに依存しない復旧経路を確保してください。

新規の公開要求、プライベート要求、両方のアドレスファミリー、名前解決をテストし、設計ファイルではなくインストール済みのリビジョンを確認する。それでも直接通ってしまうものがあれば、それが文書化された例外なのか、別の接続コンテキストなのか、実際の設定エラーなのかを判断し、無関係なキーを広げるのではなく、その三つのうち一つを変更してください。

関連記事