2019年12月16日月曜日

Workspace ONE UEM の Windows 10 更新プログラム管理 〜 配信最適化(P2P配信)設定〜

こんにちは。
前回に引き続き” Workspace ONE UEM の Windows 10 更新プログラム管理”と題して、Workspace ONE UEM で Windows 10 の更新プログラム管理がどの様に行えるかをご紹介します。

【前回までの記事はこちら】

前回の「更新プロファイル作成編」では、更新プログラム管理に必要なプロファイルの作成方法と主な設定項目をご紹介しました。
今回は前回のブログの中で割愛した、配信最適化機能の設定項目についてご紹介します。インターネットから更新プログラムを取得する場合トラフィック増による通信帯域の圧迫が懸念されますが、Windows10の配信最適化機能を利用してその問題を解決します。
(また長いです。。すみません。)

※今回もWorkspace ONE の操作を確認した環境はVMwareのハンズオンラボを使用させて頂きました。
https://labs.hol.vmware.com/
HOL-2051-09-UEM - Workspace ONE UEM - Getting Started


■Windows 10の配信最適化機能とは


配信最適化の機能は、英語表記でDelivery Optimization(DO)と呼ばれるWindows 10から導入された機能です。これはWorkspace ONE独自の機能ではなく、Windows 10 が元々持っている機能です。
Windows 10 の更新プログラムのデータ取得を、インターネットを経由してMicrosoftのUpdate サーバーが取得する一般的な動作以外に、ローカルネットワークなどの近くにある他のWindows 10からPeer to Peer ( P2P )の技術を使って更新プログラムのデータを取得する機能です。



《P2P配信のイメージ》

※この図はイメージです。実際の動作と異なります


では、なぜ配信最適化機能が必要なのでしょうか?概要編でもご紹介させていただきましたが、PC が社内にあるのが当たり前ではなくなって来ているため、基本的にはWindows 10の更新プログラム取得はインターネットにあるMicrosoftのUpdate サービスから取得する設定で運用します。
そのため、多くのユーザーが社内のネットワークに接続した状態だとインターネット接続のネットワークトラフィックがとても増加してしまいます。こういった問題に対応するため、Windows 10 の配信最適化機能が必要となります。


■配信最適化の機能概要

では、この配信最適化機能はどのように動作するのか?概要をご紹介していきます。

《動作イメージ》


《動作イメージ説明》
【0】PC-BとPC-Cはすでに対象の更新プログラムをMicrosoftのUpdate サーバーや他のクライアントから取得済みとします。

【1】Windows 10 PC-AはMicrosoftのUpdate サーバーに問い合わせを行い、適用可能な更新プログラムの情報を取得します。

【2】次にPC-Aは 配信最適化(Delivery Optimization)のクラウド サービスに問い合わせを行い、更新プログラムのデータの取得先情報を取得します。
(上記イメージ図だと近くにあると判断された、PC-BとPC-CのWindows 10の情報を配信最適化サービスが提供します)

【3】PC-Aは、PC-BとPC-CのWindows 10に更新プログラムのデータをTCP/IPを使用して要求します。場合によってはインターネット上のUpdate サーバーにも要求します。

【4】PC-BとPC-Cやクラウド上のUpdate サーバーが更新プログラムのデータを提供します。
(もし、ここでPC-BやPC-Cと通信できなかった場合、クラウド上のUpdate サーバーからデータを取得します)

【5】PC-Aは更新プログラムのインストール前に、提供された更新プログラムのデータファイルのハッシュ値をすべてチェックします。
(もしハッシュ値が異なる場合は不正なデータとして疑い、取得したデータを破棄します)



このような流れで配信最適化が行われますが、機能のポイントは以下だと考えます。

ダウンロードした更新プログラムのデータを他のクライアントに配信する
ダウンロードした更新プログラムはディスクの空き領域を使用してキャッシュし、他のクライアントに提供できる準備をしています。

インターネット経由で情報を取得する
Windows 10クライアントPCからMicrosoftサービスに対してHTTP/HTTPSによるインターネット接続が必須です。そのため、閉じられたネットワークだと配信最適化機能は利用できません。

更新プログラムのデータを分割して取得
近くのいくつかのクライアントにデータがあれば分割して取得されるため、1つのクライアントPCに多くのデータ取得要求が来ることを避けられます。

取得したデータのハッシュ値を確認する
取得したデータが正規の更新プログラムかどうかチェックしているため、もし不正なデータを受信してもインストールされません。


また、データを取得する際のクライアント間の通信ですが、TCPポート7680が使用されます。送受信双方でTCP 7680ポートの通信が許可されている必要があります。その他の通信要件は以下Microsoftのドキュメントをご参考下さい。

※企業のユースケースであまりないと思いますが、インターネットピアを使用する場合はTeredo(IPv6 overIPv4トンネリングプロトコル)が必要になるため、UDP3544での通信が必要です。


■配信最適化の設定

では、この配信最適化機能を使用するにはどのような設定が必要なのかをご紹介していきます。先程もお伝えしましたが、この配信最適化は Workspace ONE 独自の機能ではなく、Windows 10 が元々持っている機能です。Workspace ONE は Windows 10 の各クライアントに対して、配信最適化の設定を適用し管理することができます。

配信最適化の設定は「Windows更新プログラム」のプロファイルから設定します。この画面の表示手順は前回のブログでご紹介しております。


では設定項目について説明します。どのようなルールで配信するかを設定する項目もありますので、設計の考え方も合わせてご紹介します。Workspace ONE UEMで更新プログラムプロファイルを作成する際の参考になればいいなと思っています。



●配信最適化
【ピアツーピア更新】
配信最適化を使用する場合は[許可済み]を選択します。選択すると他の設定項目が表示されます。

【許可するピアツーピア方式】
この設定が1番重要です。以下の選択肢があります。
・同じNATのピアだけを使用する
・同じローカルネットワークドメインのピアだけを使用する
・インターネットピアを使用する
・シンプルダウンロードモード
・バイパスモード

まず、[バイパスモード]と[シンプルダウンロードモード]は、P2Pの配信最適化を使わない設定ですので詳細を割愛します。
配信最適化機能を使う設定は、はじめの3つですのでそれぞれ説明します。

インターネットピアを使用する
順番と異なりなりますが、先にこちらを説明します。名前のとおりインターネット上にあるどこかのWindows 10 (家庭のPCなども含まれる可能性がある)から更新プログラムのデータを取得します。あまり企業で利用されるケースは少ないかと思います。

同じNATのピアだけを使用する
同じグローバルIPアドレスを使用してインターネットに接続しているクライアント間でデータを配信します。



この設定がシンプルで1番わかりやすいですが、下記の様なネットワーク構成にしている企業は注意があります。


本社、拠点間はVPN網を構築し、データセンターや本社のファイアウォールを経由してインターネットに接続していたり、統一のプロキシサービスを使用していたりする場合は、インターネットアクセスのグローバルIPアドレスがすべてのクライアントで同じになってしまうため、VPN網を経由した更新プログラムのデータ配信が多く発生してしまいます。


このような構成の場合は、次の[同じローカルネットワークドメインのピアだけを使用する]を設定することをおすすめします。


同じローカルネットワークドメインのピアだけを使用する
同じActive Directory (AD)ドメインや、同じADのサイトのクライアント間でデータを配信します。



ADドメインのサイトが、配信したい構成と同様に構成されていればこの設定を指定するだけで済みますが、もし配信最適化を使用したい構成とADのサイト構成が異なる場合は、次の設定項目にあるグループIDを使用することでカスタマイズが可能です。

※その他に、同一サブネットで制御する方法もあります。この設定はこのブログの後半で解説しています。


【ピア使用を同じグループ ID を持つメンバーに制限する】
先程の設定で[同じローカルネットワークドメインのピアだけを使用する]を指定した際に、ドメインやサイトの構成から更にカスタマイズして配信のグループを構成することができます。 [上限]を指定するとグループIDの指定画面が表示されるので、IDを入力します。ここで指定した同じグループIDを持つクライアント間で更新プログラムのデータを配信します。
なお、グループIDの値はGUIDです。GUIDを作成する場合はPowershell を開き下記コマンドを実行します。
#コマンド
New-Guid


【VPN ピア キャッシュ機能】
ドメインネットワークに VPN 経由で接続しているときに、クライアント間で更新プログラムのデータ配信を行うかどうかを指定します。[許可しない]がデフォルトですし、多くの場合そのまま許可しないかと思います。

【ピア アップロードに必要な最小バッテリ残量 (%)】
PCがバッテリーを使用して動作している場合、指定したバッテリー残量値を下回った場合データのアップロード(データを提供する側)を行わなくなります。


●メモリ
配信最適化ではダウンロードした更新プログラムのデータが、キャッシュファイルとして他のクライアントに提供するために保持されます。保持される期間やディスクのサイズ、メモリの要件を設定します。

【最大許容キャッシュ サイズ】
配信最適化機能で利用できる最大キャッシュサイズを、GB単位で指定します。0を指定した場合は無制限となります。
(2020年8月更新)

【配信最適化機能で使用できる最大キャッシュ サイズ (%)】
配信最適化機能で利用できる最大キャッシュサイズを、ディスクサイズの割合 (1-100%)で指定します。
(2020年8月更新)

【各ファイルが配信最適化キャッシュに保管される最長時間 (秒)】
キャッシュファイルとして保持される最大時間 (秒単位) を指定します。標準は259,200秒で3日間です。0で設定するとは無制限の設定となり、最大キャッシュサイズを超えていない限り保持されることになります。あまり短い期間の保持期間の場合、他のクライアントにP2P配布する前にキャッシュデータが削除されてしまう可能性があります。

【デバイスでピア キャッシュ機能を使用するための最小ディスク サイズ】
配信最適化機能を使用するために、クライアントPCに最低限必要なディスクのサイズです。GB単位で指定します。小さいディスクを積んだクライアントでは配信最適化を動作させない、などの設定に使用できます。標準は32GBなので、今時のPCではあまりこのサイズはないと思いますが、仮想マシンでの運用や動作テストをする場合は注意が必要です。

デバイスでピア キャッシュ機能を使用するための最小 RAM
配信最適化を使用するために、クライアントPCに最低限必要なメモリのサイズです。GB単位で指定します。ここで指定したメモリサイズ以下のクライアントPCは配信最適化のキャッシュとして動作しません。

【ピア キャッシュを使用できる最小コンテンツ ファイル サイズ】
配信最適化を使用し、他のクライアントからファイルを取得する際の最小データサイズを指定します。MB単位で指定します。このサイズ以下のファイルのダウンロードはインターネット上のUpdateサービスから直接データを取得します。

【ピア キャッシュ用に使用されるドライブの場所】
配信最適化でキャッシュに使うドライブを指定します。 既定では、% SystemDrive% が使用されます。環境変数、ドライブ文字、フルパスで指定が可能です。例えば追加ディスクの領域をキャッシュ領域として使いたい場合は変更します。


●ネットワーク
配信最適化を使用する際のネットワーク帯域などを制御します。

※ネットワーク関連の設定の中で、[フォアグラウンド]と[バックグラウンド]の2種類のダウンロードの表記がありますが違いは以下です。
・フォアグラウンド…ユーザーがWindows 10の設定画面などから手動で更新プログラムの取得を実行した場合のダウンロード
・バックグラウンド…OSによる自動的な更新の取得


【デバイスが同時アップロード アクティビティで使用できる最大アップロード帯域幅 (KB/秒)】
配信最適化を使用して、アップロード(他のクライアントへのファイル提供)をする際に使用できる最大アップロード帯域幅 (KB/秒単位) を指定します。0を設定した場合、特に制御されずに可能な限り無制限の帯域幅を許可します。

【デバイスが使用する最大ダウンロード帯域幅 (KB/秒)】
配信最適化を使用して、ダウンロード(更新プログラムファイルの取得)に使用できる最大ダウンロード帯域幅 (KB/秒単位) を指定します。
0を設定した場合、特に制御されずに利用可能な帯域幅が使用されます。

【使用可能な全帯域幅に対する割合としての最大ダウンロード帯域幅 (%)】
配信最適化を使用して、ダウンロード(更新プログラムファイルの取得)に使用できる最大ダウンロード帯域幅をパーセンテージで指定します。
※この設定値はXMLファイル(CSP)で見ると” DOPercentageMaxDownloadBandwidth”だと思われるのですが、Microsoftの配信最適化CSPのドキュメントを見ると「このポリシーは廃止されます。 代わりにDOPercentageMaxForegroundBandwidthとDOPercentageMaxBackgroundBandwidthのポリシーを使用します。」となっているので今後この設定は変更されるかもしれません。


【バックグラウンド ダウンロードの最小 QoS (KB/秒)】
配信最適化でクライアントの最小ダウンロード速度保証(QoS)を指定します。この設定は、[インターネット上のUpdateサーバーからの取得]と、[ローカルのピア(他のクライアントPC)からの取得]の比率を調整します。この値が小さいほど、より多くのファイル(データ)がローカルのピア(他のクライアントPC)から取得します。 この値が大きいほど、インターネット上のUpdateサーバーから取得します。既定値は500です。

【月次アップロード データ上限 (GB)】
配信最適化のクライアントが、1か月あたりに、アップロード(他のクライアントへのファイル提供)で利用できるデータの合計量を、GB単位で指定します。ギガバイト単位で指定します。0を設定した場合、特に制御されません。


以上が配信最適化の主な設定項目です。


■設定のポイントまとめ、注意点

1 : 配信の構成

たくさんの設定項目がありましたが、いちばん重要なのは【許可するピアツーピア方式】(ダウンロードモード)の設定です。
 “同じNATのピアだけを使用する”か” 同じローカルネットワークドメインのピアだけを使用する”のどちらかを選択するケースがほとんどかと思います。企業内のネットワーク構成を考慮して最適な設定をご検討ください。

また、配信の構成検討として”同一サブネットのクライアント間のみで取得させたい”というケースもあるかと思います。この場合、Workspace ONE UEMの管理コンソール的には設定項目が存在しませんが、Windows 10のCSPとしては設定が存在します。
※Windows 10 ver1803以降から設定可能。ダウンロードモードがNATでもグループでも動作可。
《サブネット制限の構成イメージ》

この場合、カスタムプロファイルを作成することでWorkspace ONE UEMからも設定が可能です。
カスタムプロファイルの作成方法はこちらのブログ記事で紹介しております。



2 : クライアントPCのディスクとメモリ

配信最適化を使用する場合、クライアントPCで最低限必要なディスク空き領域とメモリを考慮する必要があります。プロファイルの設定で下限/上限のカスタマイズは可能ですが、ある程度クライアントPC自体のスペックも考慮が必要です。
・みんなPCのローカルにデータをたくさん保存するのでディスク空き領域が無い(小さいサイズのディスクしか積んでない)
・社員に配布しているWindows 10 PCにメモリをあまり搭載していない。4GB以下。
上記のようなクライアントPC環境の場合、そもそも配信最適化を使うこと自体が難しい場合もありますのでご注意下さい。


3 : ネットワーク帯域
Windows 10から更新プログラムのファイルサイズが大きくなっているためネットワークの影響は注意が必要です。(高速インストールファイルなどの導入で少しずつサイズが小さくなってきていますが)
ポイント1の配信の構成も重要なネットワークの考慮事項ですが、ネットワークの設定項目で利用する帯域も指定できるので自社のネットワーク帯域を考慮しての設計や、場合によっては運用しながらの微調整が必要かと思います。

ネットワーク帯域もWorkspace ONE UEMの管理コンソールには無い、細かい帯域制御の設定がCSPにはあります。[フォアグラウンド]と[バックグラウンド]の2種類のダウンロード処理をそれぞれ別に帯域制御する設定などが可能です。場合によってはカスタムプロファイルを使用することもご検討ください。


・その他注意点

配信最適化機能のそもそもの注意点ではありますが、ダウンロードするファイルをいずれかのクライアントPCがダウンロードしたら残りのクライアントPCはすべて P2Pで配信する、という指定はできません。
一部の通信は必ずインターネットを経由する必要がありますし、ピア(P2Pの取得先)と通信できなかった場合は、インターネットから更新プログラムをダウンロードします。こういった仕様があるからこそ、外に持ち出したクライアントPCも更新プログラムを取得することができます。
お伝えしたいのは、配信最適化はインターネットへの更新プログラム取得トラフィックを100%無くすものではない、ということにご注意下さい。(Microsoftの資料の中で75%程度はインターネット経由のトラフィック削減できる、という資料もありました)


また、特定のクライアントPCから必ずP2P配信をさせる、BranchCacheのような指定もできません。(WSUSやConfiguration Managerを使用すればBranchCacheは使用できますが、Windows Serverを構築する必要があります。)
Workspace ONE UEM のスマートグループを使用することで更新プログラムの配信順番を制御し、先に更新プログラムを取得するクライアントPCをある程度指定することは可能ですが、メモリ項目で設定した”キャッシュファイルとして保持される時間”を過ぎるとキャッシュファイルが削除されるので、この配信の順番をある程度制御したい場合キャッシュの保持期間設定も考慮が必要です。


《スマートグループを使用した配信順番の制御イメージ》

■まとめ

以上が配信最適化のご紹介です。前回に引き続きまた大変な長文になってしまいました・・・。
このように配信最適化も配信パターンや帯域などの細かな制御が可能です。WSUSを使用する目的の一つである”更新プログラム取得時のインターネットトラフィックの削減”も、配信最適化をうまく使用すれば同じ様にインターネットトラフィックの削減が実現できるかと思います。

以上でWorkspace ONEで適用できるWindows 更新プログラム プロファイルの設定内容は一通り解説させていただきました。
このシリーズでは次に、更新プログラムの適用状態のチェックや、配信最適化機能の効果について確認したいと思います。


#####
《参考情報のURLリンク》