AirDrop は動いていたのに、VPN につないだ途端に相手の Mac や iPhone が共有シートから消える。VPN のログに検出の記述はない。原因は暗号技術ではなく、ローカル到達性であることが多いからだ。Apple のサポートページも、ローカルネットワークを制限する VPN 構成が Continuity と AirDrop に干渉しうると認めている。これは有用な手がかりであって診断ではない。まず安価な確認から始め、次に経路表を読み、ローカルアクセスのスイッチは既定値として切り替えるものではなく、プライバシーについての判断として扱う。

トンネルが関与する前に壊れるもの

両方の機器で Wi-Fi か Bluetooth が有効で、AirDrop は受信ウィンドウの中で連絡先または全員から受け取る設定になっており、二つのアカウントが互いに見つけられる必要がある。受信側を十分間だけ全員にするのは正当な実験だ。相手がそこに現れれば設定が原因で、トンネルは無実である。共有シートの表示で判断せず、既知の相手で試す。

ページを読み込むブラウザはインターネット経路が動くことを示すだけで、ローカル検出が動くことは示さない。両方の機器と立っている場所を変えずに VPN を入切し、トンネルが上がっている間だけ相手が消えるかを見る。トンネルとともに検出が死に、外すと戻るなら、変数はトンネルであり、この一覧の残りが当てはまる。どちらの状態でも失敗するなら、ネットワークポリシーを変える前に前提条件をもう一度通す必要がある。

既定経路が動くと共有シートが空になる

フルトンネルのクライアントは通常、トンネル経由の既定経路に加えて、ほとんどの宛先を捕まえる二本の半経路を入れる。ローカルのサブネットは、より具体的な経路があるときだけその配置を生き延びる。なければトンネルに消える。AirDrop 自体は AWDL のピアツーピアインターフェイスを通るので、ローカルのインターフェイスを絞り込んだり強引に経路化したりするクライアントは、インターネット経路が完璧なままでも干渉しうる。四つのコマンドでインターフェイス、経路、有効な接続、パケットフィルタを押さえられる。

ifconfig awdl0 | grep -E "status|inet"
netstat -rn | grep -E '^default|^0/1|^128.0/1|awdl'
scutil --nc list
sudo pfctl -s rules | head -40

まず既定の行を読む。utun インターフェイスを指し、より具体的な経路がサブネットを覆っていなければ、ローカルの通信はトンネルに入り、認知も一緒に消える。0/1 と 128.0/1 の組はよくあるフルトンネルの形で、これらの経路が本当の既定を置き換えずに打ち勝つからだ。有効な状態とアドレスを示す awdl0 の行があれば、ピアインターフェイスが落ちている可能性は消える。三つとも正常に見えるなら、制限は経路表ではなく、クライアントのポリシーかホストのフィルタから来ている。

一つだけ触れておきたい形がある。ゲストネットワークで人を捕まえるもので、半経路ではない。DHCP は今もらったアドレスをリンク上の経路として入れ、その項目はどちらの半経路よりも具体的なので、ゲストのサブネットも家庭のサブネットと同じようにトンネルを抜ける。これを消すのは経路ではなくポリシーだ。ローカルネットワークを遮断して拒否規則を入れる設定、サブネットを落とすホストのフィルタ、クライアントに対する macOS のローカルネットワーク許可である。正常に見える表と死んだ共有シートが揃うのは、経路の形ではなく次の節の兆候だ。

管理された Mac ではローカルアクセスのスイッチがないことがある

多くのクライアントはトンネルが上がっている間のローカルネットワークアクセスを許可する設定を出すが、その設定はクライアントと管理プロファイルの両方が強制するので、管理された Mac ではロック、非表示、上書きされうる。ホストのファイアウォール規則やセキュリティエージェントは、VPN クライアントの提供内容にかかわらずピアの通信を遮断できる。何もしないと結論づける前にスイッチを探す。そのスイッチは macOS のネットワーク設定ではなくクライアント自身の設定にあり、パネルに表示されないクライアントが管理プロファイルに支配されるのはそのためだ。

管理を外す、あるいは一人の相手に見えるようにすべてのフィルタを切るのは、制御された構成を未知のものと交換することになる。ローカルアクセスの項目は、自分が従うポリシーに合うときだけ入れ、ローカル検出を望まないゲストネットワークでは切ったままにする。

アイコンではなくファイルで確かめる

経路やポリシーを変えたら、実際のファイルを目的の相手に送り、転送が完了することを確かめる。シートに名前が出るのは検出であり、検出が戻ることは転送の完了と同じではない。

それでも機器が現れないなら、同じネットワークで二組目の機器を比べ、ホストの問題とネットワーク全体の問題を切り分ける。その比較は VPN の項目を一つずつ切り替えるより速く、チケットに事実を残す。不具合が再現するうちに、既定のインターフェイス、経路の形、ローカルアクセスのスイッチの状態を書き留める。そうしなければ次の人が四つの確認を最初からやり直す。

関連記事