497 日以上連続稼動させたときに生じる問題について
こんにちは。Windows プラットフォームサポートの進藤です。
今回はシステムの連続稼動日数が 497 日を超えた場合に生じる問題 (サポート技術情報 2553549) について取り上げます。
この問題は、閉じた環境などで、システムの定期的な再起動を実施していない環境で条件 (497 日連続稼働) を満たした場合に TCP/IP ネットワーク通信ができなくなってしまう問題です。
* Windows Server 2008 R2 では、セキュリティ更新プログラム MS12-032 (KB 2688338) にこの問題に対する修正が含まれておりますが、Windows Server 2008 では、MS12-032 を適用していても個別に修正プログラムの適用が必要ですのでご注意ください。
ただし、セキュリティ更新プログラムを定期的に適用していれば再起動も必要となってきますので、その場合には連続稼働日数が 497 日を超過するという条件には合致しなくなりますので本障害は発生しません。
詳細はサポート技術情報にも記載されておりますが、改めまして問題の概要とその対処策を整理してお伝えいたします。
1. 問題の概要
各システムでは TCP 通信を開始する際に通信するためのポート番号が自動的に割り当てられ、使用されなくなると自動的にそのポート番号は開放されます。ポート番号の数は有限ですが、数多く用意されているため、一般的な利用方法において枯渇することはありません。
しかし、Windows Vista、Windows 7、Windows Server 2008 および Windows Server 2008 R2 では、OS の再起動を行わずにシステムの稼動日数が 497 日を経過すると、一部の TCP ポート (TIME_WAIT 状態になったポート) が開放されずに残留し続ける問題があり、最終的にポート番号の枯渇が発生する可能性があります。
この問題はサポート技術情報 2553549 で報告しており、修正プログラムを公開しています。
文書番号 : 2553549
タイトル : All the TCP/IP ports that are in a TIME_WAIT status are not closed after 497 days from system startup in Windows Vista, in Windows 7, in Windows Server 2008 and in Windows Server 2008 R2
URL: https://support.microsoft.com/kb/2553549/en-us
文書番号 : 2553549 (日本語版)
タイトル : Windows Vista、Windows 7、Windows Server 2008 および Windows Server 2008 R2 で、システム起動から 497 日経過すると、TIME_WAIT 状態であるすべての TCP/IP ポートが閉じられない
URL : https://support.microsoft.com/kb/2553549/ja
2. どういったことが起こるか
修正プログラムを適用していない場合、システムの稼動日数が 497 日を経過するとTIME_WAIT と呼ばれる状態になったポートが開放されずに残留し続けます。
そのまま OS を再起動させない状態が続くと、最終的には通信ポートが枯渇してしまい、TCP 通信を行うアプリケーションが通信できなくなるといった影響が出てきます。
本問題が発生したことによる影響として、Active Directory に関するもので一例を挙げますと、次のようなお問い合わせをいただいております。
・ ドメイン コントローラー間の複製ができない
・ グループ ポリシーが適用できない
・ 管理ツールの起動ができない
3. 対象の OS
本問題が発生する OS と Service Pack のバージョンは以下の通りです。
※ 下記の Service Pack (SP) には本問題の修正は含まれていません。
Windows Server 2008 SP1
Windows Server 2008 SP2
Windows Server 2008 R2
Windows Server 2008 R2 SP1
Windows Vista SP1
Windows Vista SP2
Windows 7
Windows 7 SP1
4. 対処策
本問題は、システムの再起動を行う事で対処可能ですが、497 日経過後はまた同様の現象が発生するため、恒久的な対処を行う場合にはサポート技術情報 2553549 の修正プログラムを適用する必要があります。
なお、サポート技術情報 2553549 の修正プログラムは Windows Update では配信されていないため、Windows Server Update Services (WSUS) で配信することはできません。
ただし、Windows Server 2008 R2 もしくは Windows 7 では、Windows Update で自動的に配信されるセキュリティ更新プログラム MS12-032 (KB 2688338) に 2553549 の修正が含まれているため、2688338 のセキュリティ更新プログラムが適用済みであれば、2553549 の修正プログラムを適用する必要はありません。
文書番号 : 2688338
タイトル : MS12-032: Vulnerability in TCP/IP could allow elevation of privilege: May 8, 2012
URL : https://support.microsoft.com/kb/2688338/en-us
文書番号 : 2688338 (日本語版)
タイトル : [MS12-032] TCP/IP の脆弱性により、特権が昇格される (2012 年 5 月 8 日)
URL : https://support.microsoft.com/kb/2688338/ja
* Windows Server 2008 または Windows Vista では、セキュリティ更新プログラム2688338 には 2553549 の修正が含まれていない為、別途 2553549 の修正プログラムを適用する必要があります。
5. 本問題について対処済みかどうか確認する方法
次の更新プログラムが適用されていれば、本問題について対処済みであると判断することができます。
・Windows 7 または Windows Server 2008 R2 の場合
KB 2553549 または KB 2688338
・Windows Vista または Windows Server 2008 の場合
KB 2553549
( 参考) システム稼働時間を確認する方法
イベント ビューアのシステム ログには、毎日 12:00 に ID 6013 のイベントにてシステムの稼働時間が秒数で記録されており、この秒数を日数に計算することでシステムの稼動日数を計算することができます。
ソース : Eventlog ID : 6013
「システムの稼働時間は XXX 秒です。」
「コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。」