CentOS7.3 Samba4.7.0 SAMBA_INTERNALからBIND9_DLZへ

シェアする

今まで、SAMBA_INTERNALで自宅内のサーバー群の名前解決をしていましたが、BIND9_DLZ方式に変更しようと思います。

ちなみに、当初の構築では、SAMBA4.6.5でしたが、実は、SAMBA4.7.0にリビジョンアップしていたりします。

SAMBAで利用する名前解決の方式について

SAMBAでは、名前解決の方式として、3種類の方式が利用可能ですが、そのうちのBIND9_FLATFILEについては、今後サポートされなくなるので、特別な理由がない限り、採用しないのが良いでしょう。

参考URL
https://wiki.samba.org/index.php/BIND9_FLATFILE_DNS_Back_End

なので、名前解決でBINDを利用する場合は、必然的に、BIND9_DLZを採用する事になります。

DLZ(Dynamically Loadble Zones)について

SAMBAの名前解決でBIND9_DLZを利用する上で、簡単に、DLZとは何?ということで調べてみました。

参考URL
http://bind-dlz.sourceforge.net

参考URLをザックリ翻訳読みすると、
BIND自体はテキストからDNSデータを読み込むようになっており、すなわち、テキストの編集による間違いを犯しやすくなる。また、そのDNSデータはRAM上に保管され、多数のゾーンに対する権限を持っていると、それに見合ったメモリーを搭載、もしくは、カーネルの再構築が必要になってくる。更に、変更内容を有効にするために、BINDの再ロードや再起動が必要になってくる。

と、言ったことを、解決することを目標にして、BIND-DLZの必要性を述べています。

BIND-DLZに関する詳細な情報は、参考URLを参照するとして、現時点での私が理解しているかも知れない情報は、ざっくりと、下記の通りです。※間違いあれば、指摘下さい。

BIND-DLZは、BINDの機能を拡張するもので、BINDに対するパッチ形式である。
BIND-DLZは、データベースにゾーンデータを格納できる。
BIND-DLZは、BINDの既存機能を削除したり使えないようにするものではないため、ゾーン単位にテキストも使える。

上記のことから、SAMBAでBIND9_DLZ方式を使うということは、BINDは、DLZドライバでSAMBAが持つデータベースを利用することが可能と言えると考えます。

SAMBA_INTERNALからBIND9_DLZへの変更

環境の変更自体は、それほど、難しくありませんでした。

まず、稼動しているSAMBAサーバーにBINDをセットアップしますが、BINDのセットアップは割愛します。
ここからは、BINDが(CentOSのパッケージで)セットアップが同一サーバー内で完了していることを前提としています。

参考URL
https://wiki.samba.org/index.php/BIND9_DLZ_DNS_Back_End

# vim /etc/named.conf
   :(省略)
tkey-gssapi-keytab "/usr/local/samba/private/dns.keytab";
   :(省略)
include "/usr/local/samba/private/named.conf";
# /usr/local/samba/sbin/samba_upgradedns --dns-backend=BIND9_DLZ
Reading domain information
DNS accounts already exist
No zone file /usr/local/samba-4.7.0/private/dns/ORANGETAKAM.LOCAL.zone
DNS records will be automatically created
DNS partitions already exist
Adding dns-dcserv01 account
Unable to find group id for BIND,
set permissions to sam.ldb* files manually
BIND version unknown, please modify /usr/local/samba-4.7.0/private/named.conf manually.
See /usr/local/samba-4.7.0/private/named.conf for an example configuration include file for BIND
and /usr/local/samba-4.7.0/private/named.txt for further documentation required for secure DNS updates
Finished upgrading DNS
You have switched to using BIND9_DLZ as your dns backend, but still have the internal dns starting. Please make sure you add '-dns' to your server services line in your smb.conf.
# cd /usr/local/samba/etc
# cp -p smb.conf smb.conf.bak.20171014
# vim smb.conf
[global]
   :(省略)
server services = -dns  <= 追記
   :(省略)
# vim /etc/named.conf
   :(省略)
#include /etc/named.forward.zone <= コメントアウト(BINDの正引きは、一旦、利用しない)
include "/usr/local/samba/private/named.conf"; <= 追記
   :(省略)
# cd /usr/local/samba/private
# cp -p named.conf named.conf.original
# vim named.conf
dlz "AD DNS Zone" {
   :(省略)
# For BIND 9.9.x
database "dlopen /usr/local/samba-4.7.0/lib/bind9/dlz_bind9_9.so";
   :(省略)
};
# chgrp named /etc/krb5.conf
# chown -R named:named /usr/local/samba/private/dns