はじめに
Active Directory(AD)を調べていると、
「ADってDNSを使うらしいけど、何に使っているの?」
という疑問が出てきます。
結論からいうと、
Active Directoryは、ドメインコントローラーを見つけるためなどにDNSを利用します。
この記事では、ADとDNSの関係をできるだけ簡単に整理します。
1. ADとDNSは別物
まず、ここを分けて考えます。
Active Directory
↓
ユーザーやコンピューターを管理する
DNS
↓
名前とIPアドレスを対応させる
つまり、
ADとDNSは別の仕組みです。
ただし、Active DirectoryはDNSを利用するため、
Active Directory
↓
DNS
という関係になっています。
2. なぜADにDNSが必要なのか?
例えば、PCが
corp.example.local
というADドメインに参加しているとします。
ユーザーがログインするとき、PCはドメインコントローラー(DC)を見つける必要があります。
でも、
「どのDCに接続すればいいの?」
という情報をどうやって調べるのでしょうか?
そこでDNSを利用します。
3. DNSを使ってドメインコントローラーを探す
ADでは、ドメインコントローラーを見つけるためにDNSのSRVレコードなどが利用されます。
例えば、
_ldap._tcp.dc._msdcs.corp.example.local
のようなDNSレコードがあります。
これを問い合わせることで、
corp.example.local
↓
ドメインコントローラーはどこ?
↓
DC1
DC2
という情報を取得できます。
イメージすると、
PC
|
| 「corp.example.localのDCはどこ?」
v
DNS
|
| SRVレコード
v
DC1 / DC2
となります。
4. その後、ADの認証が行われる
DNSでDCを見つけたら、次にADの認証処理が行われます。
ざっくりした流れは、
① PC
↓
② DNSに問い合わせ
↓
③ ドメインコントローラーを発見
↓
④ DCへ接続
↓
⑤ Kerberosなどを利用して認証
↓
⑥ ログイン
です。
ここで重要なのは、
DNSがユーザー認証をしているわけではない
ということです。
DNSは、
「認証を担当するドメインコントローラーはどこ?」
を探すために利用されています。
5. Managed Microsoft ADの場合
AWSのManaged Microsoft ADでも、基本的な考え方は同じです。
例えば、
Managed Microsoft AD
DC1
10.123.30.1
DC2
10.123.40.1
という構成だったとします。
Windows ServerなどのクライアントがADを利用すると、
Windows Server
|
| DNS問い合わせ
v
Managed Microsoft AD DNS
|
| DCの情報
v
DC1 / DC2
|
v
ADの認証・処理
という流れになります。
6. じゃあ普通のDNS問い合わせはどうなる?
ここも重要です。
例えば、
www.google.com
を名前解決したい場合、
ADが管理しているドメインとは関係ありません。
そのため、Managed Microsoft ADのDNSから別のDNSへ問い合わせを転送する構成があります。
例えば、
Windows Server
|
v
Managed Microsoft AD DNS
|
| DNS転送
v
Route 53 VPC Resolver
|
v
DNS名前解決
という構成です。
特定のドメインだけ別のDNSへ転送する場合には、Conditional Forwarderなどを利用できます。
7. DNSの問い合わせ先はどうやって決まる?
AWS環境では、クライアントがどのDNSサーバーを利用するかも重要です。
VPCではDHCPオプションセットによってDNSサーバーを指定できます。
例えば、
domain-name-servers
10.123.30.1
10.123.40.1
と設定している場合、
EC2
|
| DNS問い合わせ
v
10.123.30.1 / 10.123.40.1
|
v
Managed Microsoft AD DNS
という形になります。
つまり、
DHCPオプションセット
↓
「DNSはここを使ってね」
↓
Managed Microsoft AD
↓
AD関連の名前解決
という関係です。
8. 全体をまとめると
ADとDNSの関係をまとめると、
AWS VPC
|
DHCPオプションセット
|
v
Windows Server / EC2
|
| DNS
v
Managed Microsoft AD
|
+--------+--------+
| |
AD関連の名前 その他の名前
| |
v v
AD DNS DNS転送先
|
v
Route 53 Resolver
となります。
9. まとめ
今回覚えておきたいのは、この3つです。
① ADとDNSは別物
AD
↓
ユーザー・PCなどを管理
DNS
↓
名前解決
② ADはDNSを利用する
特に、ドメインコントローラーを見つけるためにDNSが重要です。
PC
↓
DNS
↓
DCを発見
↓
AD認証
③ AWSではDNSの経路を意識する
Managed Microsoft ADを利用している場合、
クライアント
↓
AD DNS
↓
AD関連の名前解決
または
クライアント
↓
AD DNS
↓
DNS転送
↓
Route 53 Resolver
というように、問い合わせるドメインによって経路が変わることがあります。
DNS障害を調査するときは、
「このDNS問い合わせは、今どのDNSサーバーが受けて、次にどこへ問い合わせているのか?」
を意識すると、原因を追いやすくなります。