WSUS サーバーのダウンロード障害について – BITS と Range ヘッダー


(更新) 2017/9/12 補足情報を追記しました。

こんにちは。WSUS サポート チームです。

今回は WSUS サーバーが Microsoft Update サイトや上位の WSUS サーバーから更新プログラムのインストーラーをダウンロードする際に、よくあるトラブル事例と対処方法をご紹介します。
もし下記のような症状が出ている場合には、本ブログ記事が役立つと思います。

・いくつかの更新プログラムについてのみ、ダウンロードが失敗する
・ダウンロードが異常に遅い (例えば、月例のセキュリティ更新プログラムをダウンロードするのに数日かかる、など)
・アプリケーション イベントログに下記のようなエラーが記録されている

イベントの種類: エラー
イベント ソース: Windows Server Update Services
イベント カテゴリ: (2)
イベント ID: 364
日付: date
時刻: time
ユーザー: 該当なし
コンピューター: ServerName
説明:コンテンツ ファイルのダウンロードに失敗しました。原因:サーバーは必要な HTTP プロトコルをサポートしていません。バックグラウンド インテリジェント転送サービス (BITS) では、サーバーが Range プロトコル ヘッダーをサポートしている必要があります。

こういった場合、下記の技術情報でご紹介する対処方法をお試しください。

バックグラウンド インテリジェント転送サービスを使用してファイルをダウンロードしようとすると、次のエラー メッセージが表示される: "コンテンツ ファイル ダウンロードに失敗しました"
http://support.microsoft.com/kb/922330/ja

本ブログ記事ではトラブルの詳細、対処方法とその影響についてもう少し補足してご説明します。

トラブルの詳細について
====================
WSUS サーバーが更新プログラムのインストーラーをダウンロードする際には、"Background Intelligent Transfer Service" (BITS) サービスが利用されます。
BITS は帯域制御の機能を持ったファイル転送の仕組みで、バックグラウンド、フォアグラウンド、と 2 種類の転送モードを持ちます。

WSUS サーバーは既定の設定で、バックグラウンド モードを利用してダウンロードを行います。
この時、ダウンロード要求は HTTP/1.1 の Range ヘッダーを使って、インストーラーをいくつものブロックに分けて分割ダウンロードを行います。

しかし、プロキシやネットワーク機器の設定状況によっては、Range ヘッダーを利用した通信を拒否する、通信が遅くなる、といった事象が発生することがあります。
これが先に挙げた症状の、よくある発生要因です。

対処方法について
====================
技術情報 KB922330 でご紹介する対処方法は、下記の 2 通りです。

A. プロキシやネットワーク機器の設定を変更し、Range ヘッダーを利用した通信をサポートするように対処する
++++++++++++++++++++++++++
技術情報では具体的な製品名として SonicWALL を挙げておりますが、それ以外のネットワーク機器が影響することもありえます。
ただ、この対処方法はいくつものネットワーク機器を調べる必要があり、また設定を変更するとネットワーク全体に影響が及ぶため、ほとんど実施されることはありません。

B. WSUS の BITS をフォアグラウンド モードに変更する
++++++++++++++++++++++++++
BITS の設定をフォアグラウンド モードに変更すると、Range ヘッダーを利用した分割ダウンロードは行われず、インストーラー全体をまとめて 1 つのダウンロード要求で処理します。
技術情報の "方法 1:プロキシ サーバーが HTTP 1.1 の範囲要求をサポートしていない" を実施するのですが、具体的には下記の 2 ステップで設定を変更しています。

ステップ 1
WSUS が利用するデータベース "SUSDB" に対して、下記の SQL クエリを実行して設定値を変更する。

update tbConfigurationC set BitsDownloadPriorityForeground=1

ステップ 2
WSUS のサービス "Update Services" を再起動して、設定変更を反映させる。

もし設定を元に戻したい場合には、ステップ 1 で実行する SQL クエリを下記に変更して、"Update Services" を再起動します。

update tbConfigurationC set BitsDownloadPriorityForeground=0

WSUS が利用する既定のデータベース Windows Internal Database に対して GUI から SQL クエリを実行したい時には、下記のブログ記事をご参照ください。

WSUS データベースを簡単に操作するには
http://blogs.technet.com/b/jpwsus/archive/2012/03/08/how-to-manage-wid.aspx

BITS フォアグラウンド モードの影響について
====================
BITS を用いたファイル転送には帯域制御を設定可能ですが、BITS フォアグラウンド モードは帯域制御を行いません。
もし帯域制御をグループ ポリシー等で設定する環境では、注意が必要となります。
なお、WSUS が BITS を利用する際の設定のみが変更されるため、その他の場面で BITS が利用されるときの動作には影響ありません。

- 参考資料
タイトル: Background Intelligent Transfer Service
URL: http://msdn.microsoft.com/en-us/library/windows/desktop/bb968799.aspx

 

(補足情報)
Windows 10 の機能更新プログラムなど、2 GB を超えるファイルについては、WSUS の設定で BITS フォアグラウンド モードに変更したとしても、Range ヘッダーを使って分割ダウンロードが行われます。こちらは、BITS における想定された動作となりますので、機能更新プログラムのダウンロードを実施する場合は、お手数をおかけいたしますが、ネットワーク中継機器で Range ヘッダーを許可してくださいますようお願いいたします。


Comments (0)

Skip to main content