Samba内臓のDNSを使用してAD構築した場合、ラウンドロビンが正常に動作しないなどの問題があったのでBINDを使用する様に設定したメモです。
OS : CentOS release 6.7 (Final)
パッケージ : EnterpriseSAMBA ver4.2
ネットワーク : 192.168.123.0/24
種類 : ドメインコントローラー
ドメイン名 : TEST.LOCAL
DNS : BIND 9.8.2
(1) samba4をインストールする
まずリポジトリの作成
# vi /etc/yum.repos.d/sernet-samba-4.2.repo
※ 参考 https://portal.enterprisesamba.com/
# yum install sernet-samba-ad
サーバの基本設定はこちらを参考にしてください。
Samba4によるAD構築メモ1
(2) samba4のAD設定
# samba-tool domain provision --use-rfc2307 --interactive --function-level=2008_R2
Realm [TEST.LOCAL]:
Domain [TEST]:
Server Role (dc, member, standalone) [dc]:
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:BIND9_DLZ
Administrator password:********
(3) bindの設定(/etc/named.conf)
-----------------------------------------------------------
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { 192.168.123.0/24; localhost; };
allow-transefer { 192.168.123.0/24;}; #冗長構成にする場合
recursion yes;
forwarders {
8.8.8.8; 8.8.4.4;
};
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
tkey-gssapi-keytab "/var/lib/samba/private/dns.keytab";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
include "/var/lib/samba/private/named.conf";
-----------------------------------------------------------
# chown named:named /var/lib/samba/private/dns.keytab
(4) /var/lib/samba/private/named.confの確認
bindのバージョンに合ったsoが有効になっているか
-----------------------------------------------------------
dlz "AD DNS Zone" {
# For BIND 9.8.x
database "dlopen /usr/lib64/samba/bind9/dlz_bind9.so";
# For BIND 9.9.x
# database "dlopen /usr/lib64/samba/bind9/dlz_bind9_9.so";
# For BIND 9.10.x
# database "dlopen /usr/lib64/samba/bind9/dlz_bind9_10.so";
};
-----------------------------------------------------------
# service named restart
(5) samba-toolを使用したゾーンレコードの編集方法
Aレコードの追加
# samba-tool dns add localhost test.local sales-ns A 192.168.123.12
NSレコードの追加
# samba-tool dns add localhost test.local sales NS sales-ns.test.local.
逆引きゾーンの作成
# samba-tool dns zonecreate test.local 123.168.192.in-addr.arpa
PTRレコードの追加
# samba-tool dns add localhost 123.168.192.in-addr.arpa 12 PTR sales-ns.test.local.
ゾーンの確認
# samba-tool dns query localhost test.local @ ALL
# samba-tool dns query localhost test.local sales ALL
ちなみに、Windows管理ツールのDNSマネージャーでゾーンレコードを編集することも可能ですが、単純な設定しかSamba4には対応していないようです。しかもADのデータベースが不整合を起こす可能性もあるので使用はお勧めしません。(6) サブドメインの名前解決を他のDNSに委任する場合
ADで利用するドメインは概ねローカルドメインになるかと思いますが、ルートヒントから委任先を辿ることができません。したがって/etc/named.confに以下の様にフォワーディング設定を追加します。一見samba-toolで委任のNSレコードを追加すれば解決できそうな気もしますがうまくいきませんでした。
-----------------------------------------------------------
zone "sales.test.local"
{
type forward;
forward only;
forwarders
{
192.168.123.12; #委任先DNSのIPアドレス
};
};
-----------------------------------------------------------
# service named restart
【追記】
ADサーバをインターネットに接続していない環境かつサブドメインを別のDNSに委任している場合、D
NSSECが悪影響を与えるようですので明示的に無効にした方が良さそうです。
dnssec-enable no;
dnssec-validation no;
この設定を行ったところ、(6)のゾーン設定が不用になりました。
コメント