【WSUS】Windows Updateの配信の最適化について考えてみる

どうも、Tです。

Windows Updateの仕組みの1つのある配信の最適化についての備忘録です。WSUSの機能というわけではありませんが、無視もできないため少し調べてみました。

環境

検証環境については、下記記事の「環境」をご参照ください。

そもそも配信の最適化って?

更新プログラムがダウンロードされる場所の違い

配信の最適化(Delivery Optimization)は、頭文字をとってDOとも呼ばれているWindows Updateに関する機能です。

公式からは以下のように説明されています。

Windows Update の配信の最適化とプライバシー

Windows Update配信の最適化は、ローカル ネットワーク上の他の PC や、同じファイルをダウンロードしているインターネット上の PC など、Microsoft に加えて、ソースからWindows更新プログラムとMicrosoft Store アプリを取得できるようにすることで機能します。

つまり、以前はMicrosoftのWindows Updateサーバーから更新プログラムをダウンロードしていましたが、配信の最適化では、その更新プログラムをWindows Updateサーバーや他のパソコンなどダウンロードに最適なものから分散してダウンロードする仕組みです。以下の説明のようにファイルとしてダウンロードされるというより分割されたデータとしてダウンロードするためより高速にダウンロードされます。

Windows配信の最適化を使用して更新プログラムまたはアプリをダウンロードすると、その更新プログラムまたはアプリを既にダウンロードしたローカル ネットワーク上の他の PC (または設定に応じてインターネットから) が検索されます。 ファイル全体が 1 箇所からダウンロードされるのではなく、 より細かい単位に分割されてダウンロードされます。

何が最適化の対象なのか

配信の最適化でサポートされるダウンロードコンテンツは、下記の「配信最適化でサポートされるダウンロードコンテンツの種類」に記載がありました。

What is Delivery Optimization?
This article provides information about Delivery Optimization, a peer-to-peer distribution method in Windows 10 and Windows 11.

配信の最適化の状況を見てみる

配信の最適化は、デフォルトで有効化されています。

「設定」->「Windows Update」->「詳細オプション」->「配信の最適化」を表示すると「他PCからダウンロードを許可する」が「オン」になっています。

「設定」->「Windows Update」->「詳細オプション」->「配信の最適化」->「アクティビティ モニター」を表示するとダウンロードとアップロードの統計情報が表示されます。上記は、インストール後のWindows11をWSUSクライアントにして、WSUSサーバから更新プログラムを適用したものです。

検証したわけではないのでドキュメントからの抜粋ですが、どこからダウンロードされているのかの情報について記載しておきます。

マイクロソフトから

「マイクロソフトから」とは、配信の最適化の設定の中で「HTTPソース」と呼ばれているものです。これのようなインターネット上のMicrosoftのWindows UpdateサーバーやWSUSサーバーがこれにあたります。

Microsoftキャッシュサーバーから

「Microsoft Connected Cache(MCC)」と呼ばれているキャッシュ専用のサービスです。

Microsoft Connected Cache に関するよく寄せられる質問
次の記事では、Microsoft Connected Cache に関してよく寄せられる質問の一覧を示します。
Microsoft 接続キャッシュの概要
この記事では、ソフトウェアのみのキャッシュ ソリューションである Microsoft Connected Cache (MCC) に関する情報を提供します。

現在でもプレビュー機能ではあるのですが、下記の記事が非常にわかりやすかったです。

#11 「Windows AutopilotをMicrosoft Connected Cache(MCC)で高速化する」をやってみた-エンタープライズIT [COLUMNS]
IIJでは、デジタルワークプレース実現の様々なベストプラクティスを公開しています。中でもご要望の多いパターンを、エンジニアが実際に試してみる本企画。今回は「Windows AutopilotをMicrosoft Connected Cache(MCC)で高速化する」方法を取り上げます。

ロールネットワーク上のPCから/インターネット上のPCから

配信の最適化の設定で、どこからダウンロードするかをローカルネットワークやドメイン、インターネットを含めて設定できます。

「ロールネットワーク上のPCから」「インターネット上のPCから」というのは、このような相互にダウンロード、アップロードを用いたP2P機能を表しています。

下記の記事が非常にわかりやすいかったです。

Windows 10 配信の最適化①~ダウンロードモード編~
※ 2024/2/22 一部内容を修正しました。SCD プラットフォームビジネスユニット 新宅です。今年は雪が積もる時期が若干早いですね。大体年明け後に雪が増えてくるのですが、今年はもうすでに雪が増えてきています。配...

配信の最適化をグループポリシーで制御する

配信の最適化は、基本機能のためこれ自体を無効にすることはできませんが、ダウンロードの方法は、グループポリシーである程度制御できます。

配信の最適化 (Delivery Optimization) に関するよくあるお問い合わせ
※本記事はマイクロソフト社員によって公開されております。 概要本稿では Windows 10、11 及び Windows Server 2019、2022 において様々なコンテンツのダウンロードに利用される配信の最適化 - Delivery Optimization (以降 DO) について多く寄せられているご質問...

Q7:
配信の最適化を無効化することはできますか?また BITS / Branch Cache を利用してダウンロードできますか?
A7:
DO はダウンロードを行う基本機能であるため、無効化することはできかねますが、ダウンロード モードを Bypass (100) に設定することで、ダウンロード処理を BITS/Branch Cache に転送することができます。
また Windows 11 では Bypass (100) 設定が廃止されているため、BITS/Branch Cache に転送することはできません。

「コンピュータの構成」->「管理用テンプレート」->「Windows コンポーネント」->「配信の最適化」->「ダウンロードモード」を開きます。

「有効」にチェックをし、ダウンロードモードに「簡易(99)」を選択し「OK」をクリックします。

「HTTP のみ (0)」と「簡易(99)」の違いは、クラウドサービスへ接続するか、しないかです。クラウドサービスとは、配信の最適化のP2PでどのPC同士をピアリングさせるかを行うクラウドサービスです。

https://learn.microsoft.com/ja-jp/windows/deployment/do/waas-delivery-optimization-reference#download-mode

HTTP のみ (0)

この設定はピアツーピア キャッシュを無効にしますが、配信の最適化では、ダウンロード元のソースまたは Microsoft Connected Cache サーバーから HTTP 経由でコンテンツをダウンロードできます。 このモードでは、配信の最適化のクラウド サービスによって提供される追加のメタデータを使用して、ピアを介さない信頼性と効率性の高いダウンロード エクスペリエンスが実現されます

簡易 (99)

簡易モードは、配信の最適化のクラウド サービスの使用を完全に無効にします (オフライン環境)。 配信の最適化クラウド サービスが利用できない、到達できない、またはコンテンツ ファイルのサイズが 10 MB 未満の場合、配信の最適化は自動的にこのモードに切り替わります。 このモードでは、配信の最適化により、ダウンロード元のソースまたは Microsoft 接続キャッシュ サーバーからの HTTP 経由で信頼性の高いダウンロード エクスペリエンスが提供され、ピアツーピア キャッシュはありません。

「設定」->「Windows Update」->「詳細オプション」->「配信の最適化」を表示すると「他PCからダウンロードを許可する」が「オフ」でグレーアウトになります。

上記のグループポリシーを設定した後、WSUS環境で複数のWSUSクライアントでWindows Updateを行ったところ、ダウンロード統計情報では「マイクロソフトから」の部分のみ増え、アップロード統計情報はN/Aのままだったため、配信の最適化のP2Pが動作していないことがわかりました。

ここが不安な配信の最適化

この記事では、配信の最適化で自動的にP2Pが行われないように確認しました。配信の最適化を調べている中で使った方がいい、使わない方がいいとどちらも一概に言えないため、とりあえず動かないようにしておく方法を知りたかったからです。

特にオンプレミスのWindows10、11などのクライアントOS環境で使うのにいささか不安に思ってしまう部分が多かったからです。

そもそも企業向けではない?

公式ではなくWindows10の古い記事ですが、配信の最適化について以下のように説明されているものですが、下記のような記事がありました。

配信の最適化について #1 概要篇
※本記事はマイクロソフト社員によって公開されております。※この記事は過去に作成され、公開された記事を再編したものです。 2017/12/12 更新 - 「ポート要件」に記載した URL の情報を更新しました。 みなさま、こんにちは。WSUS サポート チームです。 今秋にも Windows 10 Fall Creat...

Windows 10 のアップグレードや累積形式の更新プログラムを配信した際に、世界的なネットワーク負荷高騰が発生してしまうことを防ぐために実装された機能であり、ホーム ユーザーまたは 数十台規模のスモール ビジネス環境での利用を主に想定しています。

現在は、機能追加や更新もかかり、配信の最適化をWindows Updateの配信の主軸にしようとしているように感じられますが、周りでも配信の最適化をバリバリ有効活用している話を聞かないので、デフォルト有効のままにしておくのにいささか不安を感じました。

有効活用している事例あれば教えて欲しいです。

ネットワークの帯域足りる?

配信の最適化は、Windows Updateサーバー(WSUSサーバーも含む)⇔PC間のネットワーク帯域をP2Pで削減する効果が望めますが、次はPC⇔PC間のネットワークの問題に発生する可能性があります。

ダウンロードについては、帯域制御の仕組みは備わってはいるものの、アップロードの帯域制御はインターネット上の他のPC向けのみです。利用者の知らないうちにPCのネットワーク帯域やCPUなどのリソースを使うことで新たな問題が発生しそうです。

また、最近はWi-Fi接続のPCも多いため、これらが一斉にダウンロード・アップロードをしだすとWi-Fiのアクセスポイントが耐えられるのかという不安もあります。

クライアントの要件が厳しいかも

必須なわけではありませんが、P2Pでピアキャッシュを使用する際の推奨はディスクが64GB~256GB、メモリが1GB~4GBです。

ここまでのリソース余力があるクライアントPCを用意するのは難しそうです。

https://learn.microsoft.com/ja-jp/windows/deployment/do/waas-delivery-optimization-reference#minimum-disk-size-allowed-to-use-peer-caching

ピア キャッシュを使用できる最小ディスク サイズ
MDM 設定: DOMinDiskSizeAllowedToPeer

この設定では、ピア キャッシュを使用するデバイスで必要なディスクの最小サイズ (GB 単位の容量) を指定します。 推奨される値は 64 から 256 で、 既定値は 32 GB です。

ピア キャッシュを使用できる最小 RAM (含む)
MDM 設定: DOMinRAMAllowedToPeer

この設定は、ピア キャッシュを使用するために必要な RAM の最小サイズを GB 単位で指定します。 たとえば、最小値の設定が 1 GB の場合には、ピア キャッシュを使用するために 1 GB 以上の RAM が利用可能なデバイスが許可されます。 推奨値は 1 から 4、 既定値は 4 GB です。

外部…どこにつなげられればいいの…

配信の最適化はP2Pのためクライアント間で通信を行う必要があります。

https://learn.microsoft.com/ja-jp/windows/deployment/do/waas-delivery-optimization-faq

配信の最適化で使用されるポートはどれですか?
配信の最適化は、TCP/IP を使用して他のピアからの要求をポート 7680 でリッスンします。 サービスは、デバイスでこのポートを登録して開きます。 ファイアウォール経由の受信トラフィックを受け入れるようにポートを設定する必要があります。 ポート 7680 経由で受信トラフィックを許可しない場合は、配信の最適化のピアツーピア機能を使用できません。 ただし、ポート 80 経由の HTTP または HTTPS トラフィック (既定のWindows Update データなど) を使用して、デバイスは正常にダウンロードできます。

配信の最適化では、Teredoを使用して、NAT 間のデバイス (またはサブネット間のゲートウェイまたはファイアウォールを使用する任意の形式の内部サブネット) を含むピア グループを作成します。 このシナリオを有効にするには、ポート 3544 経由で受信 TCP/IP トラフィックを許可する必要があります。 ファイアウォールで “NAT トラバーサル” 設定を探して、これを設定します。

また、配信の最適化はクラウドサービスを利用しているため構成に応じて、クライアントPCから下記の接続も必要です。

https://learn.microsoft.com/ja-jp/windows/deployment/do/waas-delivery-optimization-faq

配信の最適化をサポートするためにファイアウォールを介して許可する必要があるホスト名は何ですか?
クライアントと配信の最適化クラウド サービス間の通信の場合:

*.prod.do.dsp.mp.microsoft.com

配信の最適化メタデータの場合:

*.dl.delivery.mp.microsoft.com

ペイロードの場合 (省略可能):

*.windowsupdate.com

複数の NAT 間のグループ ピアの場合 (Teredo):

win1910.ipv6.microsoft.com

環境によっては、これらを用意するのもなかなか骨が折れそうです。そして、記事によってこのURLが微妙に異なっている場合があり、本当の正解がわかりません(探すのを諦めました)。

どこまで有用か計測が難しい…

先ほどのアクティビティ モニター画面や下記のPowerSehllのコマンドを用いて、どこからダウンロードされれているかを見ることは可能です。

配信の最適化について #3 効果測定篇
※本記事はマイクロソフト社員によって公開されております。※この記事は過去に作成され、公開された記事を再編したものです。 みなさま、こんにちは。WSUS サポート チームです。 今回は「概要篇」、「グループポリシー篇」に引き続き第 3 回は「効果測定篇」として、実際に配信の最適化でどの程度ピアからファイルを取得出来て...

が、これらを一括して取得する方法が、標準の機能ではありません。1つ1つのクライアントPCから取得する何かしらの仕組みが必要になりそうです。

また、P2Pに用いるファイルはキャッシュとしてPCが保持します。これはデフォルト3日です。つまり3日以内に同じファイルを使うPCがいなければ無駄になる(Windows UpdateサーバーかWSUSから取得する)ということです。そして、キャッシュを伸ばせばその分、使用するディスク容量が必要になりそうです。

https://learn.microsoft.com/ja-jp/windows/deployment/do/waas-delivery-optimization-reference#max-cache-age

最大キャッシュ時間
MDM 設定: DOMaxCacheAge

配信の最適化用に構成された環境では、キャッシュされた更新プログラムや Windows アプリケーションのインストール ファイルに有効期限を設定することが必要な場合があります。 その場合、この設定によって、各 Windows 10 クライアント デバイス上の配信の最適化のキャッシュに各ファイルを保持できる最大秒数を定義します。 または、組織は、この値を “0” に設定することを選択できます。これは、ピアがコンテンツを再ダウンロードしないように “無制限” を意味します。 “無制限” の値を設定すると、配信の最適化はキャッシュ内のファイルを長く保持し、必要に応じてキャッシュをクリーンアップします (たとえば、キャッシュ サイズが許可されている最大領域を超えた場合など)。 既定値は 259,200 秒 (3 日間) です。

最適化のための最適化が難しい

このように配信の最適化の機能ではあるものの、それを有効に活用して、どの程度最適化をされているのかを管理・運用し続けていくのが非常に難しいと感じました。

海外などの事例や勉強会などの資料を見ると、有効に働いているような記事もありますが、実際にどれくらいのメリットがあるのか実情として公開資料がなかったため、やはり可視化するのが難しいのだろうなという感想です。

参考

公式

https://jpwinsup.github.io/blog/2023/04/28/WindowsUpdate/DO/DeliveryOptimization_QA/

https://jpwinsup.github.io/blog/2022/02/28/WindowsUpdate/DO/AboutDO_1/

配信の最適化について #2 グループポリシー篇
※本記事はマイクロソフト社員によって公開されております。※この記事は過去に作成され、公開された記事を再編したものです。 みなさま、こんにちは。WSUS サポート チームです。 ちょっと期間が空いてしまいましたが、今回は第 1 回は「概要篇」に引き続き、配信の最適化のグループ ポリシーについて紹介をいたします。グループ...
配信の最適化について #3 効果測定篇
※本記事はマイクロソフト社員によって公開されております。※この記事は過去に作成され、公開された記事を再編したものです。 みなさま、こんにちは。WSUS サポート チームです。 今回は「概要篇」、「グループポリシー篇」に引き続き第 3 回は「効果測定篇」として、実際に配信の最適化でどの程度ピアからファイルを取得出来て...
配信の最適化に関してよく寄せられる質問
配信の最適化に関してよく寄せられる質問の一覧。

ブログ

まとめ

かなり古い記事ですが、配信の最適化が有効に活用できそうなシナリオを考えている人もいましたが、かなり局所的なケースになりそうです。

Delivery Optimization: Scenarios and configuration options
Look at scenarios and options for configuring Delivery Optimization to manage bandwidth for app and OS updates.