ADDCを構築する際、「samba-tool domain provision」において

  • SAMBA_INTERNAL
    samba内蔵のDNSを使います
  • BIND9_FLATFILE
    外部のDNS bindを使用するが、その連携はファイルベース
  • BIND9_DLZ
    こちらも外部のDNS bindを使用するが、連携はbindのdlz機構を使います

のいずれかでDNSを選ぶのだが、いったん選んだ後で、別の機構に移る事ができる。
例えば初めはSAMBA_INTERNALを選んだのだが、BIND DNSの機能が必要になったとか、
BIND9_DLZを選んだのだが、BIND DNSのメンテが面倒でSAMBA_INTERNALに乗り換えたいとかとか。

samba_upgradednsを使用して簡単に切り替えられるようだ。
参照先:https://wiki.samba.org/index.php/Changing_the_DNS_backend

SAMBA_INTERNALからBIND DNSへ

まずはBIND DNSを構築する。参照bind/構築
その後、sambaを停止して

[root@c ~]# systemctl stop samba

samba_upgradednsを実行してDNSのbackendをBIND DNSとさせる。

[root@c ~]# /opt/samba/sbin/samba_upgradedns --dns-backend=BIND9_DLZ
Reading domain information
DNS accounts already exist
No zone file /opt/samba/private/dns/SYBYL.LOCAL.zone
DNS records will be automatically created
DNS partitions already exist
Adding dns-c account
See /opt/samba/private/named.conf for an example configuration include file for BIND
and /opt/samba/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.
[root@c ~]#

画面に流れる説明文に従い、/opt/samba/private/named.confをnamed.confにincludeさせて、使用するBINDのバージョンに
合わせてdlzを調整します。そして、dns.keytabも組み込んでパーミッションを変更する。

[root@c ~]# vi /etc/named.conf
options {
    directory      "/var/named";
    forward        only;
    forwarders     {
        192.168.0.1;
    };
    session-keyfile  "/var/run/named/session.key";
    pid-file         "/var/run/named/named.pid";
    tkey-gssapi-keytab "/opt/samba/private/dns.keytab";
};
include "/opt/samba/private/named.conf";
 
[root@c ~]# 
[root@c ~]# chgrp named /opt/samba/private/dns.keytab
[root@c ~]# chmod g+r /opt/samba/private/dns.keytab
[root@c ~]# vi /opt/samba/private/named.conf
dlz "AD DNS Zone" {
    # For BIND 9.8.x
    # database "dlopen /opt/samba/lib/bind9/dlz_bind9.so";
 
    # For BIND 9.9.x
     database "dlopen /opt/samba/lib/bind9/dlz_bind9_9.so";
 
    # For BIND 9.10.x
    # database "dlopen /opt/samba/lib/bind9/dlz_bind9_10.so";
};
[root@c ~]#

その後、smb.confを調整するのだが、SAMBA_INTERNALでprovisionするとsmb.confには
server servicesの項目は表示されない。sambaが提供するserver servicesのデフォルト値が
適用されるためである。っで、そのデフォルト値はというとtestparmで得られる。

[root@c ~]# /opt/samba/bin/testparm -sv|grep "server services"
(中略)
server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate, dns
[root@c ~]#

最後のdnsがsamba謹製のDNSである SAMBA_INTERNAL を使用するという意味。
なので、ここではBIND DNSを利用したいので、dnsを消す。

[root@c ~]# vi /opt/samba/etc/smb.conf
server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate
[root@c ~]#

とする。その後、BINDとsambaを起動すれば完了

BIND9_DLZを辞めてSAMBA_INTERNALを採用する。

まず稼働中のBIND DNSを停止させ(systemctl diseble namedも実施)

[root@c ~]# systemctl stop named

sambaも停止させて、samba_upgradednsでDNSのbackendをsamba謹製のDNSとさせる

[root@c ~]# /opt/samba/sbin/samba_upgradedns --dns-backend=SAMBA_INTERNAL
[root@c ~]#

あとはsmb.confのserver servicesにdnsを追加してsambaを起動すれば完了


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2015-11-05 (木) 23:35:06 (567d)