Wi-Fiや無線LAN、優先LANでVPN接続失敗する場合の解決方法を解説します。
Windows標準の「事前共有キーを使ったL2TP/IPSec」が行えなくなり、
「リモートコンピューターと最初にネゴシエートするときに、セキュリティ層で処理エラーが検出されたため、L2TP接続に失敗しました」エラーが発生した場合の解決方法
問題概要
Windows標準の「事前共有キーを使ったL2TP/IPSec」接続ができない。
エラーメッセージ
- 「リモートコンピューターと最初にネゴシエートするときに、セキュリティ層で処理エラーが検出されたため、L2TP接続に失敗しました。」
- 「この接続のセキュリティ ポリシーが見つからなかったため、L2TP 接続に失敗しました。」
原因
このエラーは、主に以下の原因で発生します。
- 事前共有キーの設定ミス
- VPNサーバーとクライアントで設定されている事前共有キーが一致していない。
- 事前共有キーに半角英数字以外の文字が含まれている。
- IPSecの設定ミス
- 認証プロトコル、暗号化アルゴリズム、データの整合性アルゴリズムなどの設定が誤っている。
- 必要なサービスが起動していない。
- ネットワーク、グループポリシーなど環境の問題
- ファイアウォールやルーターの設定がVPN接続を阻害している。
- インターネット接続に問題がある。
- ポリシーに制限がある。
解決方法
以下の手順を順番に試して接続テストしてください。多くの場合で3の工程まで確認すれば問題を解決できます。
1. 事前共有キーを確認する
VPNサーバーとクライアントで設定されている事前共有キーが一致していることを確認します。
- 事前共有キーは半角英数字のみで構成されている必要があります。
- 大文字と小文字は区別されます。
2. IPSecの設定を確認する
以下の設定を確認します。
- 認証プロトコル: CHAPまたはEAP-MSCHAPv2を選択する。
- 暗号化アルゴリズム: AES-128またはAES-256を選択する。
- データの整合性アルゴリズム: SHA-1またはSHA-2を選択する。
3. 必要なサービスを確認する
以下のサービスが起動していることを確認します。起動している場合は再起動します。PC再起動でもOKですが、再起動後に以下サービスが起動してるか確認して下さい。
- IPsec Policy Agent
- IKE and AuthIP IPsec Keying Modules
4. ネットワーク環境を確認する
以下の項目を確認します。
- ファイアウォール: VPN接続に必要なポートが開いていることを確認する。
- ルーター: PPTPパススルー機能が有効になっていることを確認する。
- インターネット接続: インターネットに接続できていることを確認する。
ファイアウォール設定
VPN接続に必要なポートがブロックされていないか確認します。
- 開放すべきポート
- UDP 500 (IPSec)
- UDP 1701 (L2TP)
- UDP 4500 (NATトラバーサル)
それでも改善しない場合のテスト方法、セキュリティソフトの一時無効化
一部のセキュリティソフトがL2TP接続をブロックする場合があります。検証のためセキュリティソフトを一時的に無効化して接続を試してください。
グループポリシーの調整
ローカルグループポリシーエディターを開く
Windowsキー + R →
gpedit.msc
と入力してEnter。
次のパスに進む
コンピューターの構成 > 管理用テンプレート > ネットワーク > ネットワーク接続 > L2TPクライアント接続
「L2TP用のIPSecセキュリティポリシーの使用」をダブルクリック
設定を「有効」にする。
PCを再起動。
レジストリを編集する
上記の手順で問題が解決しない場合は、レジストリを編集することで解決できる場合があります。
レジストリの編集は、誤操作をするとシステムトラブルが発生する可能性があります。以下の手順は、上級者向けです。
- レジストリエディタを開く
- スタートメニューを開き、regeditと入力して検索結果からレジストリエディタを開きます。
- UACの確認画面が表示されたらはいをクリックします。
- レジストリキーを移動する
- 以下のレジストリキーに移動します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent
- PolicyAgentキーがない場合は作成します。
- 以下のレジストリキーに移動します。
- DWORD値を作成する
- PolicyAgentキーを右クリックし、新規 > DWORD (32 ビット) 値を選択します。
- 新しい値の名前をAssumeUDPEncapsulationContextOnSendRuleに変更します。
- AssumeUDPEncapsulationContextOnSendRuleをダブルクリックし、値を2に設定します。
- コンピュータを再起動する
- コンピュータを再起動します。
レジストリ値 AssumeUDPEncapsulationContextOnSendRule
の役割と設定値の意味
AssumeUDPEncapsulationContextOnSendRule
は、NAT (Network Address Translation) 環境で L2TP/IPSec VPN 接続を確立する際の動作を制御するためのレジストリキーです。以下では、値の意味とそれぞれの設定がどう影響するかを説明します。
値の意味
値 | 意味 |
---|---|
0 | デフォルト設定: NAT トラバーサルを無効化。NATデバイスが間にある場合、L2TP/IPSec接続は確立できない。 |
1 | 制限付きNATサポート: 片側のみがNAT環境下の場合にL2TP/IPSec接続が可能。 |
2 | 完全なNATサポート: 両端がNAT環境にある場合でもL2TP/IPSec接続が可能。 |
なぜ値を 2 にするのか
値を 2
に設定することで、以下のようなシナリオでもL2TP/IPSec接続が確立可能になります:
- クライアント側もサーバー側もNATデバイスを介している場合(例: 自宅のWi-Fiルーターや企業ネットワークのNAT)。
- 一般的なVPN環境で広く互換性を保つ必要がある場合。
NATを超える通信を許可するため、ほとんどの問題を解決できます。
他の値を設定した場合の影響
- 0(デフォルト)
NATデバイスを通過する接続が無効になるため、NAT環境での接続は失敗します。 - 1(片側のみNAT対応)
片方の端末が直接接続で、もう一方がNAT環境下にある場合に限り接続が成功します。両端がNAT環境の場合、接続は失敗します。 - 2(推奨設定)
NATデバイスが両側に存在しても接続が成功するため、最も広い互換性を提供します。
補足事項
- 値を
2
に設定しても接続に失敗する場合、VPNサーバー側の設定やファイアウォール設定に問題がある可能性があります。 - セキュリティ上、必要に応じてのみこの設定を適用することが推奨されます。
AssumeUDPEncapsulationContextOnSendRule
の値を 2 に設定することで、最も広範なNAT環境でL2TP/IPSec接続が可能になります。- 値が 0 や 1 では、特定のNAT環境下で接続が失敗する可能性があります。
- 値を変更後、サービスの再起動やPCの再起動を行い、設定を適用してください。
その他
上記の手順で問題が解決しない場合は、以下の方法も試してみてください。
- VPNサーバーの設定を確認する
- VPNクライアントの設定を確認する
- ネットワーク機器の設定を確認する
- Microsoftフォーラムなどで情報を探す
参考情報
- [Windows 10 で VPN 接続の問題を解決する]