Azure 上の仮想マシンに展開したWindows ServerをAlibaba Cloud 上に構築したActive Directory Domain Service (ADDS)に参加させる話です。
Azure側で必要となるVNETのDNS構成の変更およびAlibaba Cloud側で必要となるECSのセキュリティグループの変更の2点がポイントとなります。
また、まとめにはInternational サイトで提供されている”PrivagteZone”についても簡単に紹介しています。 PrivagteZoneはVPC内の名前解決を提供できるDNS機能でVPCにバインドします。 結果、VPC上のECSの名前解決の一元管理を実現する機能となっています。
目次
1. システム構成
Azure 上に展開したWindows Server をAlibaba Cloud 上のADDSにドメイン参加させます。 ポイントは以下の2点です。
- Azure のVNETのDNS設定でAlibaba Cloud のECSを指定する
- Azure の仮想マシンとAlibaba Cloud の仮想マシン間の通信を許可する
2. Alibaba Cloud のセキュリティグループでの通信許可設定
Alibaba Cloud 側でDNSを提供するECSのセキュリティグループでAzure の仮想マシンからの通信を許可する設定を追加します。
セキュリティグループの既定の設定ではICMPやRDP、SSHしか許可されていません。 明示的に追加する必要があります。
今回はAzureのVNETのCIDRとなる”192.168.0.0/16”からの通信をすべて許可することにします。 厳密に制御する場合はDNSやSMB、Kerberos、RPCなどを許可しましょう。
3. Azure VNETのDNS設定
VNET のDNS設定の初期値は”既定(Azure 提供)”です。 この設定ではAzure VNET上のインスタンスおよびインターネット上のホストの名前解決は行えますが、Alibaba Cloud 上のECSの名前解決は行えません。
まずは初期値の動作を確認します。
この時、Azure 上の仮想マシンのWindows Server はDHCPから割り当てられたDNSサーバー”168.63.129.16”を参照しています。
試しにnslookup コマンドから”bigriver.local”の名前解決を試みます。 当然のことながら失敗します。
という訳でVNETで定義するDNSサーバーを変更する必要があります。
VNETのDNSサーバーの設定から”カスタム”を指定し、Alibaba Cloud 上のECSのIPアドレス”172.24.133.100”を設定します。 このAlibaba Cloud 上のECSにはDNS機能がすでに構築されています。
また、このAzure の設定を変更した後にはAzure の仮想マシンの再起動が必要となります。 Azure のWindows Server を再起動します。
再起動後、nslookupコマンドから”bigriver.local”を名前解決します。 正常に名前解決することが出来ました。
4. ドメイン参加
Azure 側の仮想マシンでAlibaba Cloud 上のADDSにDomain joinします。
システムのプロパティから”Change settings”をクリックします。 Azure のWindows Server の言語がEnglish になっていますが必要であれば日本語に変更しましょう。今回はEnglish のまま進めることにします。
”Computer Name”タブから”Change”をクリックします。
”Domain”にADDSのドメイン名となる”bigriver.local”を指定します。
ADDS上のアカウントを指定しドメインに参加します。 アカウントは任意です。既定の設定では管理者権限を持たないアカウントでも一定回数はドメイン参加可能です。
この後、Windows Server の再起動が求められますので再起動します。
再起動後にドメインのadministrator でAzure 上のWindows Server にサインインします。
サインイン完了後、コマンドプロントからset コマンドを実行し”USERDOMAIN”と”USERNAME”の環境変数を確認します。 それぞれ”USERDOMAIN=BIGRIVER”、”USERNAME=administrator”となっており、正常にドメインのadministratorでサインイン出来たことが確認出来ます。
4. まとめ
Azure では仮想マシンのIPアドレスとDNSサーバーはDHCPから自動配布され、利用者がネットワークアダプターの設定を手動で変更することはサポートされていません。 ただし、VNETのDNSの設定を変更することでAzure 上の仮想マシンが参照するDNSサーバーを任意のものに変更することが可能です。
Azure のVNETの名前解決の詳細は以下の公式ドキュメントが大変参考になります。
以下の9つのシナリオについてどのように構成するとよいか具体的に説明があります。
シナリオ | ソリューション |
---|---|
同じ仮想ネットワーク内に配置された VM 間、または同じクラウド サービス内の Azure クラウド サービスのロール インスタンス間での名前解決。 | Azure DNS Private Zones または Azure で提供される名前解決 |
異なる仮想ネットワーク内の VM 間または異なるクラウドサービスのロール インスタンス間での名前解決。 | Azure DNS Private Zones、または Azure で解決するために仮想ネットワーク間でクエリを転送する、ユーザーが管理する DNS サーバー (DNS プロキシ)。 「独自の DNS サーバーを使用する名前解決」を参照してください。 |
仮想ネットワーク統合を使用した Azure App Service (Web App、Function、Bot など) から同じ仮想ネットワーク上のロール インスタンスまたは VM への名前解決。 | Azure で解決するために仮想ネットワーク間でクエリを転送する、ユーザーが管理する DNS サーバー (DNS プロキシ)。 「独自の DNS サーバーを使用する名前解決」を参照してください。 |
App Service Web Apps から同じ仮想ネットワーク内の VM への名前解決。 | Azure で解決するために仮想ネットワーク間でクエリを転送する、ユーザーが管理する DNS サーバー (DNS プロキシ)。 「独自の DNS サーバーを使用する名前解決」を参照してください。 |
ある仮想ネットワーク内の App Service Web Apps から異なる仮想ネットワーク内の VM への名前解決。 | Azure で解決するために仮想ネットワーク間でクエリを転送する、ユーザーが管理する DNS サーバー (DNS プロキシ)。 「独自の DNS サーバーを使用する名前解決」を参照してください。 |
Azure 内の VM またはロール インスタンスからのオンプレミスのコンピューターとサービスの名前解決。 | ユーザーが管理する DNS サーバー (オンプレミスのドメイン コントローラー、ローカルの読み取り専用ドメイン コントローラー、ゾーン転送を使用して同期する DNS セカンダリなど)。 「独自の DNS サーバーを使用する名前解決」を参照してください。 |
オンプレミスのコンピューターからの Azure のホスト名の解決。 | 対応する仮想ネットワーク内のユーザーが管理する DNS プロキシ サーバーにクエリを転送し、プロキシ サーバーが解決するために Azure にクエリを転送します。 「独自の DNS サーバーを使用する名前解決」を参照してください。 |
内部 IP 用の逆引き DNS。 | 独自の DNS サーバーを使用する名前解決。 |
仮想ネットワークではなく、異なるクラウド サービスに配置された VM またはロール インスタンス間での名前解決。 | 適用不可。 異なるクラウド サービス内にある VM とロール インスタンス間の接続は、仮想ネットワークの外側ではサポートされません。 |
Alibaba Cloud のECSではAzure 同様にAlibaba Cloud のDHCPからIPアドレスとDNSサーバーが自動的に配布されます。しかし、Azure と異なり、ECSが参照するDNSサーバーを変更する機能は標準では提供されていません。 Alibaba Cloud の公式ドキュメントの記載は見つからなかったのですがECS上のOSのネットワークアダプタの設定で手動で変更するしかないようです。
ちょっと話は変わるのですが、International サイトでは”PrivagteZone”としてVPC内の名前解決のためのDNSサーバー機能が提供されています。
”PrivateZone is an Alibaba Cloud private domain name resolution and management service based on VPC. ”とある通り、VPCごとにプライベートの名前解決を提供するDNSサービスとなります。
What is PrivateZone?
Last Updated: Oct 23, 2018
PrivateZone is an Alibaba Cloud private domain name resolution and management service based on VPC. You can use PrivateZone to resolve private domain names to IP addresses in one or multiple specified VPCs.
PrivateZone allows you to easily manage ECS hostnames, SLB, OSS, and other Alibaba Cloud resources using private zone records. The private domains cannot be accessed outside the specified VPCs. Additionally, you can connect a specified VPC with traditional data centers through a dedicated network connection or VPN. This allows for communications between traditional data centers and Alibaba Cloud VPCs using private domain names.
https://www.alibabacloud.com/help/doc-detail/64611.htm?spm=a2c63.l28256.a3.1.18732bddbwM4LZ
また、具体的な利用方法としてVPCへのバインドに関する案内もあります。
”On the ECS instance placed in the VPC that is associated with a private zone, the private zone record overrides the DNS record on the Internet”とありますのでPrivateZoneにバインドしたVPC上のECSの名前解決について自由に上書きできるとのこと。 この機能が日本サイトでも提供開始されることでAlibaba Cloud のECSでも手動でネットワークアダプタの設定を変更することなく、DNSの名前解決を一元管理できそうですね。 機能の提供開始を待つことにします。
Bind/UnBind VPC
Last Updated: Nov 12, 2018
Before you associate private zones with VPCs, make sure that you have added records to the zones. For more information about how to add records, see Add records to a private zone.
On the ECS instance placed in the VPC that is associated with a private zone, the private zone record overrides the DNS record on the Internet. Note: The DNS record in the public network remains unaffected outside the VPC. We recommend that you add records for your private zone. For queries initiated within the VPC, an empty record in the private zone may override the DNS record on the Internet, which causes errors.
Assume that you have added a private zone aliyun.com and have added records for the zone. Then you can associate the private zone with a VPC. When an ECS instance in this VPC access the subdomains of aliyun.com, the private zone record for aliyun.com is used and overrides the DNS record in public networks.
https://www.alibabacloud.com/help/doc-detail/64629.htm?spm=a2c63.p38356.b99.12.5cbb17cfS1fM8Z
なお、”The private domains cannot be accessed outside the specified VPCs.”とある通り、VPC以外からの利用は出来ないとのこと。 試していませんがAzure上の仮想マシンからこのPrivagteZoneを参照し、名前解決を一元管理することは難しそうです。