【図解】初心者向けDNSのSRVレコードとAD冗長化の仕組みと使い方 ~優先順位と重さ,フォーマット~ | SEの道標
ActiveDirectory

【図解】初心者向けDNSのSRVレコードとAD冗長化の仕組みと使い方 ~優先順位と重さ,フォーマット~

Active Directory と DNS の関係

Active Directory では DNS サーバが必須です。というのも、AD 環境下では Kerberos Version5 が使われており、この規格ではクライアント PC は認証サーバの IP アドレスを知るために、DNS の SRV レコードを使うことになっているからです。

Kerberos Version 5 は RFC 4120 で規格化されており、Section 7.2.3.2 に DNS の SRV レコードを使う旨が記載されています。

Kerberos はシングルサインオン (SSO) を提供する認証機構です。KDC と呼ばれるサーバが認証と SSO 用の鍵を配布します。

例えば Active Directory 環境ではドメイン配下の PC からファイルサーバへのアクセスは認証無しでアクセス制御されます。

Kerberos の図解については以下をご参照下さい。

【図解】初心者にも分かるKerberos認証とspnegoの仕組み ~SSOのシーケンス,統合windows認証について~
Kerberos とは Kerberos (読み方:ケルベロス) とはシングルサ...

DNS のレコードとは

DNS の一番有名な使われ方は単にドメイン名 (FQDN や URL) を IP アドレスに変換することです。このようなドメイン名から IP アドレスを調べるためのレコードは『A レコード』と呼ばれています。(IPv4 アドレスは A レコード、IPv6 アドレスは AAAA レコード)

DNS でもう 1 つ有名な使われ方は、SMTP クライアントが宛先メールアドレスの @ 以降のドメイン名から、送信すべき SMTP メールサーバのホスト名を検索することです (実際にはさらにそのホスト名の A レコードを検索して IP アドレスも調べる) 。このようなレコードは『MXレコード』と呼ばれています。

この MX レコードを汎用的にしたものが『SRV レコード』です。MX レコードでは @ 以降のドメイン名を保有している SMTP メールサービスを行うサーバを探索できますが、SRV レコードではドメイン名に対する任意のサービスの場所を探索できます。

ADの冗長化を担うDNS SRVレコード

SRV レコードは後から追加になった DNS レコードです。RFC 2782 で定義されています。

レコードの QNAME (クエリ名) のフォーマットは以下になります。

QNAME = _Service._Proto.Name

_Proto は TCP や UDP 等を示します。.Name は該当のドメイン名です。

_Service はサービス名です。Active Directory ではドメインコントローラ構築時に、以下のサービスが SRV レコードとして自動登録されます。

  • Global Catalog (GC)
  • Kerberos (KDC)
  • Kpasswd
  • LDAP

なので例えば KDC サーバを探す場合のレコードの QNAME は _kerberos._tcp.example.com となります。

デフォルトで作成される SRV レコードを見てみると、以下のようになっています。

SRV レコードが各サービス毎に 2 つずつできています。これはドメインコントローラが 2 台あることを示しています。

このように、AD (正確にはドメインコントローラ) の冗長化は DNS の SRV レコードによって実現されます。

nslookup で SRV レコードを調べてみる

Kerberos の SRV レコードを確認する場合は以下のように打ちます。

nslookup -type=srv _kerberos._tcp.example.com
C:\Users\Administrator>nslookup -type=srv _kerberos._tcp.example.com
サーバー:  localhost
Address:  127.0.0.1

_kerberos._tcp.example.com      SRV service location:
          priority       = 0
          weight         = 100
          port           = 88
          svr hostname   = ad2.example.com
_kerberos._tcp.example.com      SRV service location:
          priority       = 0
          weight         = 100
          port           = 88
          svr hostname   = ad1.example.com
ad2.example.com internet address = 192.168.1.202
ad1.example.com internet address = 192.168.1.201

SRV レコードの仕組みと構造

nslookup の結果からも分かるように、SRV レコードには [サーバのホスト名] と [待ち受け TCP/UDP ポート番号] に加え、[priority] と [weight] という属性があります。

DNS マネージャの該当SRVレコードのプロパティを見ると以下のように priority は "優先順位"、weight は "重さ" として表記されています。

priority (優先順位) は複数ある SRV レコードのうちどれを優先的に使うかを示します。複数の SRV レコード間でこの値が同じ場合は Act-Act 構成となります。この値が異なる場合は、正常時は小さいものだけが使われる、Act-Standby 構成となります。

weight は DNS ラウンドロビン負荷分散時の重みです。この値の比率がラウンドロビンの比率になります。複数の _kerberos._tcp.example.com の SRV レコードで priority が同値であり、ad1 側の SRV レコードの weight が 100 で、ad2 側の SRV レコードの weight が 200 の場合、ad1 より ad2 のほうが 2 倍よく使われます。

SRV レコードのパケットキャプチャ

[Kerberos の SRV レコードクエリ]

[Kerberos の SRV レコードレスポンス]

【厳選 3 冊】Windows を学ぶための本

Windows Serverのエディションやライセンス、用語といった基本から、セットアップ、ネットワーク、ユーザー/グループ、ディスク、ハードウェア、アクセス許可、クォータ、ボリュームシャドウコピー(VSS)、ファイル/フォルダー共有、プリンター、サーバー管理、WebサーバーやFTPサービスを提供するInternet Information Services(IIS) 10.0、Hyper-Vやコンテナー等の仮想化技術、Active Directoryまで説明します。
Active Directoryの概念および導入、構成管理方法を詳細な手順と豊富な画面を使ってわかりやすく解説します。本書では、ドメインサービスを中心に解説し、その他のサービスについても概要を解説します。Active Directoryを初めて使う方でも、画面を見ながら手順に従って操作するだけで簡単に目的の作業を行うことができます。ある程度使いなれている方には、Active Directoryをより使いこなすためのリファレンスとしてお使いいただけます。
全操作、全機能が載ってるから迷わない!基本から便利技・トラブル対応まで全部わかる!基本の操作から最新アプリ、昔ながらの操作も全部できる!はじめてのタッチ操作、はじめてのWindows10の人も安心!「やりたいこと」がすぐできるTIPS400!わかりやすい索引で「あれがしたい」「これがしたい」から探せる、側にあれば安心な1冊!自由自在Windows10を操ろう。

コメント

タイトルとURLをコピーしました