Windows のトンネルが失敗し、ログに 10051 という番号が現れます。これは WSAENETUNREACH で、ソケット操作が宛先への利用可能な経路を見つけられないときに報告されます。拒否されたパスワードでも、期限切れの証明書でも、サーバーがトンネルパケットを見て拒否した証拠でもありません。

一つのセッションで二つの異なる操作がこれを生み出すことがあります。意味は異なり、担当も異なります。

コードが報告すること、しないこと

このエラーはローカルの判断を表します:スタックが要求された宛先への経路を見つけられなかったため、操作はマシンから出ていません。これは経路についての記述であり、相手側があなたの資格情報をどう見ているかではありません。認証の失敗と読むと、証明書ストアやアカウントのリセットへ向かうことになりますが、それらが原因ではない問題です。下流のファイアウォールがパケットを許可したかどうかも、パケット自体が送られていないため、このコードは語りません。

記録するときは周辺のログ行も残してください。番号だけでは宛先、トランスポート、時刻が失われ、一週間後に解釈できるかどうかはこの三つにかかっています。

どの操作が、いつ失敗したか

クライアントが VPN の外側エンドポイントに到達しようとしているときのエラーは、トンネル確立後のアプリケーション障害とは別のケースです。前者ではサーバーへのトランスポート経路が欠けているか、取り除かれています。後者ではトンネルは存在し、その内部の何かが要求した宛先を解決もルーティングもできません。同じコード、違う層、違う担当です。接続試行との時刻の関係で、どちらかはたいてい決まります。

エラーだけでなく、失敗した操作を引用してください:どのアドレスへ、どのトランスポートで、手順のどの時点で接続したのか。その表現が、第二の人が判断を再現できるようにします。

エンドポイントとアドレスファミリーを比較する

解決された宛先、トランスポート、ポートを記録します。名前が IPv4 と IPv6 の両方のアドレスを返すなら、IPv4 の確認が成功しても IPv6 の失敗については何も説明できません。クライアントは試していない側のファミリーを使っているかもしれませんし、もう一方を強制すると実験を変えるだけで修正にはなりません。

Resolve-DnsName vpn.example.net -Type A,AAAA
Find-NetRoute -RemoteIPAddress 198.51.100.62
Get-NetConnectionProfile

経路クエリは、現在の状態でその宛先への最適なローカルアドレスと経路を返すので、障害が起きている間に実行してください。切断されたアダプター、変わったネットワーク、予期しない経路は、すべてリセットした後では別の見え方になります。二つ目のアクティブなトンネルがエンドポイント経路を奪うこともあり、その場合は一方のクライアントだけにこのコードが出ます。

経路の答えとは何かを忘れないでください:ローカルの判断が一つあるだけで、送信の許可ではありません。ファイアウォールがデータグラムを受け入れるか、遠端で何かが待ち受けているかは分かりません。

他のソケットエラーと引き継ぎ

エラー 10054 は別の報告で、UDP 受信では以前の送信に関連する ICMP ポート到達不能が現れることがあります。これは特定の宛先ポートについてのメッセージであり、経路が存在しないという宣言ではなく、両者は別の調査につながります。すべてのソケット番号を接続失敗の変種として扱うことが、欠けた経路をクライアントの再インストールで「直す」やり方です。

有用な引き継ぎには、正確なコード、失敗した操作、エンドポイントとアドレスファミリー、選択された経路、ネットワーク変更の時刻が含まれます。示された経路の問題は、その設定を所有する担当を通じて修正してください。証明書の交換や相手検証の無効化は存在しない経路を提供できず、どちらも最終的な診断を難しくします。

関連記事