メニューバーは接続済みと表示しているのに、拡張機能の一覧では依然としてそのコンポーネントが未アクティベートと表示される。どちらの読み取りも同じMacから得られたもので、どちらも嘘をついていない——両者は異なる事実を述べているからだ。macOSはVPNクライアントに対して少なくとも三つの別々の状態を保持しており、サポートのスレッドはそれらを一つの言葉にまとめてしまうため、助言は再インストールと再設定の間で揺れる。自分が実際に欠けている状態を知れば、当て推量の午後が二分間の確認に変わる。

これらの状態は場所だけでなく所有者も異なる。一つはオペレーティングシステムの拡張機能レジストリに属し、一つはデバイスが従うポリシーに属し、一つはクライアント自身のセッションに属する。所有者が異なるため、そのうち一つに加えた修正が残り二つを変えることはほとんどない。

一つの言葉で呼ばれる三つの状態

StateWhere it livesWhat it does not prove
installed and activatedthe system extension registrythat any tunnel exists
permitted by policya configuration profile or a one-time user approvalthat the vendor's profile is configured
connectedthe client's own session statethat traffic takes the intended route

どちらを先に読むかは一覧そのものより重要であり、まずレジストリから始める——一度もアクティベートされていないコンポーネントは接続できないからだ——次にポリシーを読んでアクティベーションがそもそも可能かどうかを判断し、最後にクライアントを読む(三つのうちセッションを説明するのはこれだけだ)。その順序の上のほうでの不一致は下にあるあらゆる症状を説明し、下のほうでの不一致は上にある二つを無傷のまま残す。

この区別の具体例:アクティベート済みと読めるレジストリの項目と、接続できないクライアントが並ぶ場合は、疑うべきはプロファイルかサーバーであり、拡張機能ではない。逆の組み合わせ、つまり何も表示しないレジストリの隣にアクティベート済みのクライアントがある場合は、通常、目にしているアプリが通信を運んでいるアプリではないことを意味する。何かに触れる前に、観察した組み合わせを書き留めておくこと。

アイコンを信じずに拡張機能を特定する

現在のリリースでは、ネットワーク拡張機能はシステム設定の一般、ログイン項目と拡張機能に一覧表示される。製品名またはその発行元の名前が付いた項目を見つけ、メニューバーの記号ではなくその横のスイッチを読む。ラベルと位置はmacOSのバージョン間で移動しているため、古い記事のスクリーンショットではなく、お使いのリリース向けのベンダーの手順に従うこと。項目がまったく存在しない場合はそのコンポーネントが一度もインストールされていないということであり、プロファイルを編集しても現れない。

systemextensionsctl list
log show --last 10m --predicate 'subsystem == "com.apple.networkextension"' --style compact

最初のコマンドは、何がインストールされていて各拡張機能がアクティベート済みと報告しているかを確認する最速の方法だ。二つ目はアクティベーションが拒否される理由を示す——拒否は通常、ユーザーインターフェースには決して届かないポリシーや署名に関する苦情として現れるからだ。何かを変更する前に拒否のテキストを読むこと——ログの行にはコンポーネント名と多くの場合その理由も記されており、それはサポート窓口が必要とするものそのものだ。重要だと思う語句ではなく行全体をコピーすること(バージョンと識別子は行の両端にあるからだ)。

クライアントが認め、一覧が認めないこと

拡張機能が確認できたら、クライアントにプロファイルとセッションがあるかを尋ねる——接続のない保存済みプロファイルは設定の問題であり、通信を運ばない接続はルーティングかポリシーの問題だからだ。三つを一つとして扱うと、ずっと動作していたコンポーネントの再インストールへと戻ってしまう。

scutil --nc list
scutil --nc status "Work VPN"

一覧は設定済みのサービスとその接続状態を示し、status呼び出しは名前を指定した一つのサービスの状態と最後のエラーを示す。再インストールの前にそのテキストとmacOSのバージョンを記録すること——再インストールは証拠を破壊し、しばしば同じ障害を再現するからだ。

ポリシーがスイッチを所有する場合

管理対象のMacでは構成プロファイルが拡張機能を固定した状態に保つことができ、その場合スイッチは設計どおり灰色になる。利用できないスイッチは、回避すべき不具合ではなくポリシーの表明である。そこへ到達するためにプロファイルや管理登録を削除すると、デバイスのセキュリティ態勢が変わり、次のチェックインで元に戻され、準拠していると自称しながら準拠させていた制御を欠いたマシンが残る。その結果は元の問題より悪い——症状だけでなく原因まで隠してしまうからだ。

拡張機能の識別子、拒否の正確なテキスト、バージョンを添えて管理者に依頼を出すこと。管理された配備では通常、ネットワーク拡張機能を数分で一元的に承認でき、回避策より速く、後から監査もできる。

実際のアプリケーションで修正を証明する

サポートされた修正を行った後は、メニューバーのバッジではなく、そのVPNが必要とされるアプリケーションに再接続してテストすること。次に、トンネルの外に残るべき通信が実際に外に残っていることを確認する——すべてを静かにルーティングする修正は、意図した変更とは別物だからだ。実際のアプリケーションでの二分間のテストは、再現できないバッジよりも価値がある。

その一覧にいるときの注意点が一つある——コンテンツフィルタもネットワーク拡張機能である。一つのサイトだけが失敗する場合、パネル内のすべての拡張機能を無効にするのは乱暴な措置であり、他のアプリケーションの無関係なフィルタリングを壊し、比較すべきコンポーネントを取り除いて次の診断を難しくする。触れる前に発行元と役割で拡張機能を特定し、三つの状態のうちどれが実際に間違っていたのかを書き留めておくこと。

関連記事