macOS の VPN ルート確認: route get で何も変えずに調べる
デフォルトルートのスクリーンショットでは、より具体的な経路を見落とすことがあります。失敗する宛先を route get で問い合わせ、インターフェースとゲートウェイを読み取り、何も変更しないでください。
あるユーザーは VPN につながっていると設定に表示されながら、トンネル経由ではなくオフィスのネットワークでイントラネットに到達しています。その時点でルートテーブルを編集すると、診断に使っているリモートセッションを切ってしまう危険があります。代わりに、失敗するホストに対してカーネルがどの経路を選ぶかを尋ねてください。macOS の route ユーティリティには、一つの宛先についてそれをそのまま答える get 操作があり、何も変更しません。
失敗するホストを問い合わせる、デフォルトではない
最近の Mac では、より具体的な宛先やスコープ付きのポリシーがデフォルトの示す内容を上書きすることがあるため、デフォルトルートのスクリーンショットだけではほとんど分かりません。トンネルは起動していてデフォルトは正しく見えても、必要な一台のホストだけが別の場所へルーティングされている可能性があります。失敗するアドレスを問い合わせ、選択された経路をカーネルに名指しさせてください。
形式は route -n get に続けてアドレスを置く形で、route -n get 203.0.113.10 のように書き、ここでのドキュメント用アドレスは対象の代わりです。IPv4 の答えは IPv6 専用のリソースについて何も語らないため、認可された宛先と一致するアドレスファミリーを使ってください。route ユーティリティのドキュメントには get 操作と出力されるフィールドが説明されています。
インターフェースとゲートウェイを証拠として読む
VPN に接続する前に問い合わせ、接続後にもう一度実行して、インターフェースとゲートウェイの行を比較します。二つの答えの差が、トンネルが実際に変えたものであり、テーブル全体をダンプするよりはるかに役立ちます。両方の実行でインターフェースが同じなら、経路は問題ではなかったので、ルーティングを見るのをやめられます。
結論を出す前に、宛先、インターフェース、ゲートウェイ、問い合わせ時刻を記録してください。出力は証拠であり診断ではなく、スプリットトンネルが関わる場合、同じインターフェースが一方のホストには正しく、別のホストには誤っていることがあります。
正しいルートは動作するリクエストではない
ルートはカーネルがどのインターフェースを使うかを示すだけで、それ以上ではありません。DNS、ホストのファイアウォール、アプリケーションの認可はすべてその判断の上にあり、ルーティングが成功してもリクエストは失敗し得ます。「接続できない」と「接続はするがエラーを返す」は別の調査で次の手順も異なるため、先に進む前に正確な症状を残してください。リゾルバの視点とインターフェースの視点は、宛先への問い合わせを置き換えるのではなく補完します。
ルーティングテーブルの一覧にも、予期しないデフォルトに気づくという居場所があります。残っている通常のデフォルトは、より具体的なエントリがそれを上回るため、VPN が使われていない証拠にはなりません。
エンドポイントとリソースを分けて考える
関わる検索は二つあり、それぞれ別の問いに答えます。エンドポイントへの到達は物理ネットワークを渡る外側の旅です。アプリケーションへの到達はトンネルの内側で、プライベート側にしか存在しないアドレスで起こります。両者を混同すると、エンドポイントが自分が終端するトンネルを通ってルーティングされるように見える、典型的な偽のループが生まれます。二つのアドレスを別々に問い合わせ、それぞれの結果にラベルを付ければ、混乱は消えます。
プレフィックスの重複も知っておく価値のあるもう一つのケースです。ローカルとリモートの範囲が重なると、最長プレフィックス一致が決めるため、重なったローカルサブネットが期待したリモートアドレスを覆い隠すことがあります。するとプライベートの宛先はローカルの宛先と同一に見え、修正はルートテーブルではなくアドレス計画に属します。get の問い合わせはどのインターフェースが勝ったかを示し、何かを変える前に必要な事実はそれです。
まず読み、後で変える
最初のパスでは route add と route delete を使わないでください。遠隔で管理している Mac では、不用意なテーブル編集一回でそのマシンへの戻り経路そのものを失い、診断を終えられる人がいなくなることがあります。正しいルートを決め、変更を取り消す方法を書き留めてから初めて実行してください。検査にはそのような尾はありません。
最初の一手としてキャッシュを消したりネットワークサービスを再起動したりするのは、どちらも、これから読もうとしていた証拠を壊すため同じ注意が必要です。読み取り専用の確認は安価で再現可能で、どの順序でも安全です。それを既定の手順にし、証拠が指し示したときにだけ変更に手を伸ばしてください。