こんにちは、西海です。
今回は、業務で調査したエラーについてまとめます。
エラーの発生状況
AWS環境上に作成されたWindowsインスタンスを起動するたびに、下記エラーが通知されてました。
Network Connectivity Assistant サービスは、次のエラーが原因で開始できなかった IP Helper サービスに依存しています:指定されたサービスは無効であるか、または有効なデバイスが関連付けられていないため、開始できません。
エラー内容によると、Winsowsインスタンスを起動した際に「NcaSvc」サービスが開始できなかったとのこと。
特に実害もないので一旦様子見することになったのですが、インスタンスを起動するたびに通知が来るのも邪魔だったので、原因を調査することになりました。
用語について
調査の前に、エラー内容に書かれている用語について調べました。
iphlpsvcとは
iphlpsvcはWindows OS システムサービスの1つで、「IP ヘルパー」サービスのことです。
Windows Server 2016の公式ドキュメントによると、接続プラットフォームを使用した IPv6 移行テクノロジ (6to4、ISATAP、ポート プロキシ、および Teredo)、および IP-HTTPS を提供します。
NcaSvcとは
NcaSvcはiphlpsvc同じくWindows OS システムサービスの1つで、「Network Connectivity Assistant」サービスのことです。
公式ドキュメントによると、同じくWinsows OSの機能である「DirectAccess」に関連するサービスで、UI コンポーネントに DirectAccess の状態通知を提供します。
※DirectAccessとは以下のような機能です。
DirectAccess を使用すると、従来の仮想プライベート ネットワーク (VPN) 接続を必要とすることなく、組織のネットワーク リソースへのリモート ユーザーの接続を実現できます。 DirectAccess 接続では、リモートのクライアント コンピューターは常に組織に接続されています。リモート ユーザーは、VPN 接続で必要とされるように、接続を開始して停止する必要はありません。 さらに、IT 管理者は、DirectAccess クライアント コンピューターが実行されていてインターネットに接続されているときにはいつでも、それらのコンピューターを管理できます。
DirectAccess
ただし、現在はDirectAccessに代わって「Always on VPN 」が推奨されています。
調査
エラー内容から、iphlpsvcサービスかNcaSvcサービスが無効になっている可能性が高いと判断しました。
そのため実際の設定を確認します。
Windowsインスタンスを起動し、RDPします。
RDP後、スタートメニュー>Windows管理ツール>イベントビューアーから確認すると、エラーが発生していることが確認できます。
各サービス設定を確認するために、スタートメニュー>Windows管理ツール>サービスを起動します。
Iphlpsvcサービスの設定を確認すると、「無効」となっていることが確認できます。
また、NcaSvcサービスの設定は「手動(トリガー)」となっています。
予想通りiphlpsvcサービスが無効になっていました。続いてエラー解決のため以下の2つを試してみます。
①iphlpsvcサービスを有効化する
iphlpsvcサービスを「自動」に設定します。
設定後、インスタンスを再起動し再度イベントビューアーを確認します。
少し確認し辛いですが、エラーが出なくなりました。
②NcaSvcサービスを無効化する
今度はiphlpsvcサービスが無効の状態で、NcaSvcサービスを「無効」に設定します。
設定後、インスタンスを再起動し再度イベントビューアーを確認します。
先ほどと同じくエラーが出なくなりました。
まとめ
今回のエラーを解決するには、下記のどちらかを設定すればよいことを確認できました。
・Iphlpsvcを有効化する
・Ncasvcを無効化する
ただし、Windows側の設定を変更したくない場合などはエラー通知設定を変更して通知を抑制することを検討した方がいいかもしれません。
参考URL
起動時にイベント ビューアーで次のエラーが表示されます: イベント 7001、サービス コントロール マネージャー