Windows はトンネルが接続済みと表示しているのに、イントラネットのページは依然としてタイムアウトし、プロファイルはすでに退職した人から来たものです。その状態の背後には二つの別々の誤り、すなわちファイルに合わないクライアントと、トンネルが何をカバーするかについての誤った期待があります。この二つを切り分けるにはいくつかのコマンドが必要で、再インストールを避けられます。どちらも再起動では直りません。

標準のクライアントは自分の種類しか読み込まない

Windows には特定の接続の種類を理解する VPN クライアントが入っており、ファイル名がどうであれ OpenVPN のファイルや WireGuard の設定は読み込みません。それらには専用のソフトウェアが必要で、ベンダーの検証済みダウンロードページからインストールします。ネットワークメニューに見慣れた項目があるからといって、サーバーが対応している証拠にはならず、見慣れた拡張子に改名したプロファイルも依然として間違ったファイルです。接続の種類は、メニューがたまたま用意しているものではなく、運用担当者が渡したものに合わせる必要があります。

ネイティブ接続の場合は、ネットワーク設定から追加し、渡された値を正確に入力します。証明書ベースの IKEv2 とユーザー名とパスワードの入力口は、同じ見出しの下に並んでも別の構成です。管理されたデバイスがすでに接続を提供しているなら、その隣に二つ目を作らず、それを使ってください。

サインインの手順は互いに置き換えられない

接続は、ユーザー名とパスワード、クライアント証明書、対話的な入力、あるいはそれらのいくつかを順に求めることがあります。秘密鍵のパスフレーズは鍵を解錠するものであり、同じダイアログに入力してもサービスのパスワードではありません。証明書の警告は身元や信頼に関するもので、アカウント名の綴りが正しいかどうかの話ではありません。三つのうちどれが失敗したかを読むことが次の一手を決めます。

再試行するのではなく拒否の内容を読んでください。認証の失敗と信頼の失敗は状態ウィンドウでは似て見えますが、中身はまったく別で、前者は資格情報を、後者はクライアントが受け入れる連鎖を必要とします。

資格情報と証明書の素材をスクリーンショットに残さないでください。設定ページの写真はサーバーのアドレスと保存済みのユーザー名を一度にさらけ出すことがあり、サポートのスレッドは人が思うより頻繁に公開文書になります。誰かに引用されてからではなく、投稿する前に伏せてください。

PowerShell では Get-VpnConnection が Windows が設定済みと考えているものを一覧表示し、設定ウィンドウが画面に出さない項目も含みます。cmd のプロンプトからは rasdial が接続名で接続し、ipconfig /all がアダプターが実際に受け取ったものを表示します。二つのシェルは同じパーサーを共有しないので、各行は正しい方に貼り付けてください。

Get-VpnConnection
Get-VpnConnection -Name "Office" | Format-List Name,ServerAddress,AuthenticationMethod
rasdial "Office"
ipconfig /all

決めるのはルーティングテーブルであり、アダプターのアイコンではない

企業のトンネルはオフィスの宛先だけをルーティングし、通常の閲覧はローカル接続に残すことがあり、フルトンネルのプロファイルはその逆を行います。どちらの挙動が誤りか決める前に、実際のリソースを開いてください。アイコンが示すのはアダプターの状態で、答えはルーティングテーブルにあります。この二つは、状態ウィンドウが認める以上にしばしば食い違います。

より具体的な項目はサブネットをトンネルに送りつつ、既定ルートは外に残すことができ、これが分割トンネルの本来の見え方です。項目が欠けているのもよくある結果で、ブラウザーからは落ちているトンネルとまったく同じに見えます。到達できないプレフィックスは、アイコンではなくテーブルと比べてください。アイコンとテーブルが食い違うのは、どちらも別の事柄について正しいことを言っているからです。

見覚えのないアダプターがテーブルにあるからといってルートを削除しないでください。仮想マシン、フィルタードライバー、二つ目のクライアントがそれぞれ一つ追加でき、削除すると以前は動いていたものが壊れます。

route print -4
nslookup intranet.corp.internal

プライベートな名前には組織のリゾルバーが必要

プライベートな名前には組織のリゾルバーが必要で、独自の安全な DNS を持つブラウザーはシステム設定を完全に迂回できます。その結果、コマンドラインの問い合わせはアドレスを返すのに、同じ名前がブラウザーでは依然として失敗するという混乱した状況になります。

何も変更する前に、現在の DNS 構成をどのアダプターが提供したかを確認してください。プライベートな名前には組織のリゾルバーを残し、公開サービスに置き換えないでください。公開リゾルバーへの置き換えは通常、公開名を直して内部の名前をすべて壊し、最初の不具合より悪い状態になります。接続が成功と報告するのに何も動かない場合は、ネットワークスタックをリセットする前に転送と DNS を順に確認してください。

Get-DnsClientServerAddress -AddressFamily IPv4
Resolve-DnsName intranet.corp.internal

Windows の VPN 接続の種類とプラグインに関する Microsoft の文書は、どのクライアントがどの種類を扱うかの参照資料であり、メニューのラベルはそれを教えてくれません。変更のたびに再接続し、状態アイコンではなく実際のアプリケーションを試し直してください。動作するプロファイルは見つけられる場所に保存し、次のマシンにもどちらも必要になるので、動かすことになったリゾルバーとルートを記録してください。

関連記事