Windows Server 2022 で RRAS を用いた VPN を構成した際、「サービスが起動しない」「L2TP/IPsec が外部から繋がらない」という相談は非常に多く、原因は役割サービスの不足や証明書・ポート設定、NAT まわりの相性など多岐にわたります。本記事は、VM→物理移行のケースも含め、管理者がその場で再現できる具体手順と検証ポイントを体系化した実践ガイドです。
RRAS サービスが起動せず「指定されたファイルが見つかりません」エラー
対象環境:Windows Server 2022 Datacenter/VMware Workstation 15(VM 上で RRAS 構成)。サービス起動時に “The system cannot find the file specified”(指定されたファイルが見つかりません) が表示される場合の切り分けと対処です。
よくある原因(観点別)
- 役割サービス不足:「リモート アクセス」の下にある Routing と DirectAccess と VPN (RAS) が片方だけ導入されている。
- システムファイル破損:OS イメージやドライバの破損/欠損でサービスホスト(svchost)起動に失敗。
- 依存サービス未起動:「Remote Access Connection Manager」や「Secure Socket Tunneling Protocol Service」などが停止/無効。
- 旧設定の残骸:過去の RRAS 設定、古い NIC バインド、ゴースト NIC が残って競合。
- 仮想 NIC 相性:VMware Tools 未更新、E1000/E1000e ドライバの相性、ブリッジ/NAT 設定不整合。
最短で原因を絞り込むフロー(全手順コピペ可)
| 対策 | 詳細 |
|---|---|
| 役割と機能の再確認 | Server Manager → 役割と機能の追加で「リモート アクセス」→「ルーティング」と「DirectAccess と VPN (RAS)」の両方を有効化。PowerShell では以下:Get-WindowsFeature RemoteAccess,Routing,DirectAccess-VPN Install-WindowsFeature RemoteAccess,Routing,DirectAccess-VPN -IncludeManagementTools |
| システムファイル修復 | 管理者 PowerShell/CMD で OS コンポーネントを整合。sfc /scannow DISM /Online /Cleanup-Image /RestoreHealth |
| 依存サービスの確認 | services.msc で下記が 自動/実行中 か確認:・Remote Access Connection Manager(RasMan) ・Secure Socket Tunneling Protocol Service(SstpSvc) ・IKE and AuthIP IPsec Keying Modules(IKEEXT) ・IPsec Policy Agent(PolicyAgent) 詳細はコマンドも有効: sc query RemoteAccess sc qc RemoteAccess Get-Service RasMan,SstpSvc,IKEEXT,PolicyAgent | Format-Table Name,Status,StartType |
| RRAS 設定のリセット | 古い設定が残ると起動だけ失敗することがあるため既定値へ戻す:netsh ras set conf ras # その後、RRAS コンソールで再構成(ウィザードで「カスタム構成 → VPN アクセス」など) |
| 仮想 NIC の互換性 | VMware Workstation 15 では仮想 NIC を VMXNET3 推奨。ブリッジ or NAT を用途に合わせて選択し、VMware Tools を最新化。 不要な旧 NIC は削除(後述の「幽霊 NIC」対策)。 |
起動エラーを深掘り検証する(イベント・トレース)
- イベント ビューアー:アプリケーションとサービス ログ → Microsoft → Windows → RemoteAccess(Operational)、IKEEXT、RasMan を時系列で確認。
- RAS トレース(詳細):
netsh ras set tracing * enabled # ログ: %windir%\tracing*.log # 解析後は無効化 netsh ras set tracing * disabled - ファイアウォール ルール束:
Get-NetFirewallRule -DisplayGroup "Routing and Remote Access" | Sort-Object DisplayName | Format-Table DisplayName, Enabled, Direction重要な規則(L2TP-In、IPsec IKE-In、IPsec NAT-T-In など)が Enabled = True であること。
VM→物理/物理→VM でハマりやすい NIC の残骸(幽霊 NIC)対策
インターフェイス バインドの不整合は RRAS の起動失敗やアドレス配布不具合の温床です。非表示デバイスを出して掃除します。
set devmgr_show_nonpresent_devices=1
start devmgmt.msc
# 「表示」→「非表示のデバイスの表示」→ ネットワーク アダプターの薄いデバイスを削除
RRAS コンソールの「IPv4 → 一般」で、外向き(インターネット) と 内向き(社内) のインターフェイスが正しく選ばれているかを再点検しましょう。
再インストールで整える(最終手段)
依存関係の崩れが大きい場合はアンインストール→再起動→再インストールが安全です。
# アンインストール
Uninstall-WindowsFeature RemoteAccess -Restart
# 再インストール(役割サービスを明示)
Install-WindowsFeature RemoteAccess,Routing,DirectAccess-VPN -IncludeManagementTools
# ウィザードで VPN 構成を再作成
物理サーバでの L2TP/IPsec VPN 接続失敗(IKEv2 初期化エラー/証明書不足)
対象環境:物理機に Windows Server 2022 を再構築。PSK(事前共有キー)で L2TP を構成し、ホームルーター越しに外部から接続すると 「Remote Access Connection Manager – IKEv2 の初期化に失敗」、「L2TP ポートを開けない/証明書が無い」 等が出るケース。
接続要件の整理(PSK と IKEv2 の違い)
- L2TP/IPsec + PSK:サーバー証明書は不要。ルーターの UDP 500/4500/1701 開放と PSK 一致が肝。
- IKEv2:サーバー証明書(EKU: Server Authentication / VPN 用)が必須。自己署名でも可だが、クライアントに信頼させる必要あり。
ルーター/ファイアウォールの開放チェック
| 用途 | プロトコル | ポート/番号 | 備考 |
|---|---|---|---|
| IKE(メインモード) | UDP | 500 | IPsec 交渉の起点。NAT 環境では後続で 4500 に移行(NAT‑T)。 |
| NAT‑T | UDP | 4500 | 必須。開いていないと 809 エラー等を誘発。 |
| L2TP トンネル | UDP | 1701 | IPsec で保護される。L2TP を使うなら必ず開放。 |
二重 NAT(モデム+家ルーター等)の場合は上位側までポート転送を連鎖させるか、静的グローバル IP を推奨します。UPnP 任せは不安定になりがちです。
RRAS の PSK 設定と IKEv2 の扱い
- RRAS コンソール → サーバー右クリック → プロパティ → セキュリティ。
- 「L2TP 接続用のカスタム IPsec ポリシーを許可」にチェックし、PSK を設定。クライアントと完全一致させる。
- 証明書を用意できない/管理を簡素化したい場合は、IKEv2 をいったん無効化して L2TP/IPsec+PSK のみに絞るとトラブルが減ります(後述)。
運用ヒント:IKEv2 を無効化し L2TP/IPsec+PSK のみを許可すると、証明書まわりの不備による初期化失敗を切り分けやすくなります。
Windows 側のサービス/レジストリ確認
- サービス:IKEEXT、IPsec Policy Agent、Remote Access Connection Manager が 自動、状態が 実行中 であること。
- NAT‑T 回避策(古いルーター向け):下記を追加後、再起動。両側 NAT の場合は値
2が目安。レジストリ: HKLM\SYSTEM\CurrentControlSet\Services\PolicyAgent DWORD AssumeUDPEncapsulationContextOnSendRule = 2 - ファイアウォール:「Routing and Remote Access」グループの受信規則が有効か。
Get-NetFirewallRule -DisplayGroup "Routing and Remote Access" | Where-Object {$_.Direction -eq "Inbound"} | Format-Table DisplayName, Enabled
IKEv2 を無効化して L2TP のみに絞る(切り分け用)
- RRAS コンソール → ポート → IKEv2 を選択 → プロパティ → 最大ポート数を 0 に設定。
- 同様に SSTP を使わない場合は SSTP のポート数も 0 に。L2TP は必要数を確保(例:L2TP 128)。
- RRAS サービスを再起動。
クライアント側のチェック(Windows)
- 詳細ログ接続:
rasphone.exe -d <接続名>でダイヤラを開き詳細ログに。
接続プロパティで VPN の種類 → L2TP/IPsec を明示、IPsec 設定 → 事前共有キー を入力。 - よくあるエラーコード: エラー 意味 対処 809 NAT 越えやファイアウォールでブロック UDP 500/4500/1701 の開放、NAT‑T、ALG の無効化、上位ルーターまで転送 789, 791 IPsec 交渉失敗/PSK 不一致 PSK を再設定、サーバーと完全一致を確認 868 リモート サーバー名解決失敗 FQDN/DNS を見直し、RRAS 側のクライアント向け DNS 配布を設定
パケットレベルで失敗点を特定する
根治には「どの段」で止まっているかを見切るのが最短です。
| 観点 | 確認方法 | 成功の目安 |
|---|---|---|
| IKE(UDP 500) | サーバーでキャプチャ(例:udp.port==500 or 4500) | メインモード完了後、NAT‑T で 4500 へ移行 |
| NAT‑T(UDP 4500) | ESP 封入の UDP 4500 が往復 | クイックモード(SA 交渉)完了 |
| L2TP(UDP 1701) | IPsec で守られた L2TP 制御が流れる | PPP 認証に進み、IP 配布へ |
MTU とフラグメンテーションの落とし穴(PPPoE 環境など)
PPPoE 回線や一部ルーターでは、IPsec + L2TP のヘッダ分だけ MTU が実効的に小さくなり、IKE は通るのに PPP ネゴで固まる症状が出ます。外向き NIC の MTU を控えめに設定して改善することがあります。
# 外向きインターフェイス名を確認
netsh interface ipv4 show interfaces
# 例: MTU 1400 にする(要管理者)
netsh interface ipv4 set subinterface "Ethernet" mtu=1400 store=persistent
DNS と名前解決(社内リソースに繋がらない場合)
- RRAS の IPv4 → 静的アドレス プール に内部 IP 範囲を用意し、「DNS サーバー」へ社内 DNS のアドレスを指定。
- クライアントの VPN 接続の DNS サフィックスや名前解決順序を見直し、クエリが社内 DNS に流れるよう調整。
追加ベストプラクティス(安定運用に効く小ワザ集)
- 累積更新プログラムを即時適用:RRAS/VPN 関連はアップデートで安定度が大きく変わることがあります。再起動可能なメンテ時間にこまめに適用。
- ログの定期監視:「重大/エラー」イベントを収集し、SIEM やスクリプトでメール通知。RemoteAccess、RasMan、IKEEXT を最低限監視。
- バックアップしてから触る:現在の RRAS 構成はエクスポートしておくと安心。
netsh ras dump > C:\Admin\rras-backup.txt # 復元 netsh exec C:\Admin\rras-backup.txt - 不要 NIC の削除:VM→物理移行後に残った「幽霊 NIC」はデバイス マネージャー(非表示デバイス表示)で削除し、RRAS のバインドを整理。
- 認証の方針を明確に:小規模は PSK で簡素化、ゼロトラスト寄りなら IKEv2 + 証明書 or EAP‑TLS、RADIUS(NPS)とポリシーで強化。
- SSTP を代替案に:HTTPS(TCP 443)ベースのため、特殊なポート開放が難しい拠点では SSTP の方が通りやすいことがあります(証明書は必須)。
実践クックブック:この順で直すと速い
- Server Manager で役割サービスの不足を解消(Routing と DirectAccess/VPN を両方入れる)。
- sfc /scannow → DISM で OS を健全化。
- 依存サービスを自動/実行中に統一、RRAS の sc qc を確認。
- RRAS 既定化(netsh ras set conf ras) → 再構成。
- ファイアウォールとルーターで UDP 500/4500/1701 を開放、二重 NAT を解消。
- PSK の一致を両端で再入力(コピペ時の全角/空白混入に注意)。
- IKEv2 を一旦 0 ポート化し、L2TP+PSK 単独で疎通確認。
- VMware Tools 更新・VMXNET3 へ切替、幽霊 NIC を清掃。
- MTU 最適化(PPPoE でうまくいかないときの奥の手)。
- 詳細トレースとパケットキャプチャで失敗段を可視化。
管理者メモ:RRAS/VPN コマンド チートシート
| 目的 | コマンド | 補足 |
|---|---|---|
| 役割の状況確認 | Get-WindowsFeature RemoteAccess,Routing,DirectAccess-VPN | Install 状態が Installed か確認 |
| 役割の導入 | Install-WindowsFeature RemoteAccess,Routing,DirectAccess-VPN -IncludeManagementTools | GUI と同等 |
| OS 健全化 | sfc /scannowDISM /Online /Cleanup-Image /RestoreHealth | 順番に実行 |
| サービス確認 | sc query RemoteAccessGet-Service RasMan,SstpSvc,IKEEXT,PolicyAgent | 状態/開始種別 |
| RRAS 既定化 | netsh ras set conf ras | 初期値に戻し再構成 |
| トレース on/off | netsh ras set tracing * enablednetsh ras set tracing * disabled | %windir%\tracing |
| ファイアウォール ルール | Get-NetFirewallRule -DisplayGroup "Routing and Remote Access" | 受信規則が有効か確認 |
| IPsec SA のリセット | Remove-NetIPsecMainModeSA -AllRemove-NetIPsecQuickModeSA -All | 検証時の一時的なリセットに |
よくある落とし穴と回避策(ケース別)
| 症状 | 原因例 | 回避策 |
|---|---|---|
| RRAS 起動で「指定されたファイルが見つかりません」 | 役割サービス不足/システムファイル欠損/ゴースト NIC/依存サービス停止 | 役割を再導入、sfc/DISM、依存サービス自動化、netsh ras set conf ras、NIC 清掃 |
| IKEv2 初期化に失敗 | サーバー証明書未配置/不信頼、EAP 設定不整合 | サーバー証明書(EKU: Server Auth)を正しく配置、まずは L2TP+PSK に絞って切り分け |
| 外部から L2TP が繋がらない(809) | UDP 500/4500/1701 未開放、二重 NAT、ALG 干渉 | 三つのポートをサーバーへ転送、上位ルーターまで連鎖転送、IPsec パススルーの挙動に注意 |
| 接続後に社内名解決ができない | クライアントの DNS が外部のまま | RRAS で社内 DNS を配布、接続時の DNS サフィックス設定で補強 |
| VPN は張れるが速度が出ない/切れる | MTU 不整合/回線品質/CPU オフロード設定 | MTU を 1400 前後で再調整、NIC オフロード(LRO/TSO)見直し、VMXNET3 利用 |
まとめ:このガイドで得られる成果
- RRAS サービスの正常起動:役割サービス/依存サービス/システムファイル/NIC の順で是正し、再構成。
- L2TP/IPsec の安定接続:UDP 500/4500/1701 の開放、PSK の厳密一致、NAT‑T と MTU の整合で実運用に耐える疎通を確立。
- 障害時の再現性:イベント/トレース/パケットで「どの段で失敗しているか」を即時に可視化できる体制を構築。
- 移行/再構築にも強い:ゴースト NIC 清掃、バックアップ/リストア手順、VMware 最適化で環境差異にも揺らがない。
もし問題が継続する場合は、IKE/IPsec の詳細デバッグログを有効にし、Wireshark 等で IKE ハンドシェイク(メイン/クイック)のどこで失敗しているかを特定すれば、原因の切り詰めが一気に進みます。

コメント