こんにちは。Azureサポート部の石井です。
Azure上の Windows 仮想マシンのライセンス認証について解説します。
Azureでは、独自の KMS ホスト (ライセンス認証サーバー) があり、Azure 上の Windows OS のライセンス認証を行うことができます。
Azure Marketplace から展開した Windows VM
Azure Marketplaceから展開した Windows VM であれば、基本的に自動的に検知されて認証されますので、特段の設定はいりません。ただし、カスタム DNS サーバーを構築し、使用している場合にはご注意ください。
Azure の KMS ホストは、ホスト名 kms.core.windows.net 、IP アドレス 23.102.135.246、ポート 1688 です。
お客様独自の DNS サーバーを構築し、使用している場合 Azure Marketplace から展開した VM は、kms.core.windows.net に名前解決をし、ライセンス認証を試みます。当該の名前解決が DNS サーバーによって行える必要がありますので、適宜 DNS サーバーの設定を行い、IP アドレスが解決できるように設定してください。
DNS サーバー側の変更が面倒な場合、後続の手動で IP アドレスを指定しておくという方法を取ることも可能です。
Azure に VHD を持ち込んだ場合
1. ボリューム ライセンス用 KMS クライアント セットアップ キーの入力
※ 以下手順は、ボリューム ライセンス版 Windows メディアからセットアップした OS の場合不要です。 VHD を持ち込む場合、ボリューム ライセンス版メディアからセットアップしたか不明な場合、念のため行ってください。 (重複実行しても問題にはなりませんので、ご安心ください。一律の手順にするのであれば、この手順を含めてしまうことも一案です。) まず、以下参考資料より、お使いの Windows の KMS クライアント セットアップ キーの文字列をコピーしておきます。 ご参考: 付録 A:KMS クライアント セットアップ キー https://technet.microsoft.com/ja-jp/library/jj612867.aspx 管理者としてコマンド プロンプトを開き、以下コマンドを実行します。 "cscript %WinDir%system32slmgr.vbs /ipk %KMSクライアントセットアップキーの文字列%"
2. KMS ホストの指定
管理者としてコマンド プロンプトを実行し、以下コマンドを入力し、KMS サーバーを指定してください。
cscript c:windowssystem32slmgr.vbs /skms 23.102.135.246:1688
上記で設定は完了です。
認証が成功していれば、アプリケーションのイベントログに以下が記録されます。
---------------------------------------------------------------------- イベント ID : 12288 ソース : Security-SPP 説明 : クライアントからキー管理サービスコンピューターにライセンス認証要求が送信されました。 情報 : 0x00000000, 0x00000000, <KMS ホストのホスト名または IP アドレス>:<ポート>, ・・・・・ ---------------------------------------------------------------------- イベント ID : 12289 ソース : Security-SPP 説明 : クライアントでキー管理サービスコンピューターからのライセンス認証応答を処理しました。 情報 : 0x00000000, 0x00000000, ・・・・・ ----------------------------------------------------------------------
- トラブルシュート編
Azureの KMS ホストの IPアドレスは 23.102.135.246、認証用のポートは 1688 です。
Azure でお問い合わせいただくライセンス認証の問題は以下 2 パターンがほとんどです。
- NSG でインターネット方向の疎通をすべてブロックしている
NSG で VMからインターネットへの送信方向 (Outbound) の通信をすべてブロックしていると、KMS ホストへの通信も阻害されます。上記 IP アドレスとポートを許可例外に登録してください。
- ExpressRoute 環境で、強制トンネリングをしている
以下に詳しく紹介されていますが、強制トンネリングをしていると、すべての通信がオンプレミスに送られます。Azure の KMS は、Azure 内部からの通信しか受け付けませんので、ユーザー定義ルートを追記する必要があります。(Azure 外部から受け付けてしまうと、世界中の Windowsの認証を無条件にて行えてしまうためです。)
ご参考: ExpressRoute 環境でライセンス認証ができない事象について
https://blogs.technet.microsoft.com/jpaztech/2016/05/16/azure-vm-may-fail-to-activate-over-expressroute/
疎通のチェックは、Windows 仮想マシン内から Windows PowerShell を使うと便利です。以下、TNC (Test-NetConnection) コマンドでのチェックが行えます。
PS C:Usersmyname > tnc 23.102.135.246 -port 1688 ComputerName : 23.102.135.246 RemoteAddress : 23.102.135.246 RemotePort : 1688 InterfaceAlias : Ethernet 4 SourceAddress : 172.16.41.6 TcpTestSucceeded : True 最後の行が Trueとなっていれば成功です。
最後に、3 つの良くお問い合わせいただくご質問についてご紹介します。
- FAQ 1. ライセンス認証がたまに失敗する
イベント ログ上のエラーとして、イベントID: 8198、あるいは 8200 にてライセンス認証失敗が記録されるという場合があります。
AzureのKMS サーバーは全世界の Azure 上のWindows OSを認証している関係で、稀に負荷が集中するといったタイミングで応答ができない場合があります。一般的には、エラー イベントが数日に1回、といった頻度で記録されるに留まりますが、場合によっては丸 1 日継続するようなケースもあります。
Azure データセンターでも、随時 KMS の補強作業を行っていますが、常時 100 %成功を目指しているものではありません。この理由としては、Windows のライセンス認証はその後リトライされ、合計 180 日間連続で失敗し続けなければライセンスが失効することはありません。つまりエラー イベントが恒常的にではなく、一時的に記録されるだけである場合、無視可能です。
さらに最悪の場合、180日間ライセンス認証が行えないまま経過しても、ライセンス認証切れを示す「通知モード」となるだけであり、機能制限が生じるわけではありません。
ライセンス認証の失敗エラーが発生しても慌てず、数日程度待って成功するかご確認ください。
- FAQ 2. ライセンスを持ち込む Azure Hybrid Use Benefit (AHUB) の場合に手順に差異はあるか
AHUB にて、ライセンスを持ち込んだ場合も、Azure 上の KMS ホストと認証していただいて問題ありません。Azure にライセンスを持ち込んだか否かは、ゲスト OS 上の管理操作としては無関係で、一律 Azure の KMS ホストを利用可能となっています。
- FAQ 3. オンプレミスの KMS ホストで認証したい
何らかの理由で、外部通信を一切行わせたくないようなお客様では、オンプレミスの KMS ホストと認証をさせたい場合があります。Azure VM から VPN もしくは ExpressRoute 回線にて、オンプレミスの KMS ホストと認証できる場合、オンプレミスの KMS と認証させても問題ありません。KMS ホストでは、ライセンス認証を行える上限などの制約はありませんので、オンプレミスの KMS と認証させることによるデメリットはありません。