はじめに
SambaのDomain Controllerでレプリケーションを行っている構成で障害が起こったときの対象方法です。
環境
- Debian bullseye 64bit
- Samba 4.13.13+dfsg-1~deb11u5
- Windows Server 2022 Standard
- Client
- Windows10 Pro
- Client
Active Directoryの環境
1台目のDC: beta(FSMOの役割) 192.168.1.1 2台目のDC: omega 192.168.1.2 ドメイン名: ND レルム: ND.somedomain 機能レベル : 2008 R2
故障したのがFSMOのDCだった場合
自動で2台目のDC(192.168.1.2)がFSMOになります。
故障した1台目のDC(192.168.1.1)と同じ名前で、DCに参加させると便利です。
故障した1台目(192.168.1.1)のDCのresolv.confを修正します。
sudo vi /etc/resolv.conf
正常に動作している2台目(192.168.1.2)のDCを最初に参照するように追記します。
これを行わないとKerberosによる認証が行えません。
search xx.xx.xx nameserver 192.168.1.2 nameserver 127.0.0.1
不要なファイルを削除して、DCに参加させます。
ND.SOMEDOMAINは、構築時に設定したRealmです。
sudo rm -f /etc/samba/smb.conf sudo systemctl stop samba-ad-dc sudo rm -fr /var/lib/samba/sysvol/* sudo rm -fr /var/lib/samba/private/* sudo rm -fr /var/lib/samba/*.tdb sudo samba-tool domain join ND.SOMEDOMAIN DC -U administrator --dns-backend=SAMBA_INTERNAL
smb.confの修正
/etc/samba/smb.confを修正します。
dns forwarderは、1台目のDCのIPアドレス、または1台目のDCを作成したときに設定したdns forwarderを指定します。
Active DirectoryのDomain Contorollerではbackendにadおよびridは設定できないので、強制的にtdbになります。
「backend = ad」と設定した場合、testparmを実行すると分かりますが無視されます。
Samba Wikiの「RFC2307 on AD Domain Controllers」項目にあるように「idmap_ldb:use rfc2307 = yes」は非推奨なので設定しません。
また、Samba Wikiの「Identity Mapping on a Samba Domain Controller」項目にあるようにActive DirectoryのDomain Contorollerにはidmapの設定を記述することは非推奨なのでコメントします。
[global]
dns forwarder = 192.168.100.2
netbios name = BETA
realm = ND.SOMEDOMAIN
server role = active directory domain controller
workgroup = ND
; idmap config * : backend = tdb
; idmap config * : range = 100000-999999
; idmap config ND.xxx: backend = ad
; idmap config ND.xxx : range = 1001-99999
; idmap config ND.xxx: schema_mode = rfc2307
; idmap config ND.xxx: unix_nss_info = yes
; idmap config ND.xxx: unix_primary_group = yes
; idmap_ldb:use rfc2307 = yes
winbind enum users = yes
winbind enum groups = yes
; winbind offline logon = yes
obey pam restrictions = yes
template homedir = /home/%U
template shell = /bin/bash
[sysvol]
path = /var/lib/samba/sysvol
read only = No
[netlogon]
path = /var/lib/samba/sysvol/ND.SOMEDOMAIN/scripts
read only = No
故障したのが2台目のDCだった場合
不要なファイルを削除して、DCに参加させます。
故障した2台目のDC(192.168.1.1)と同じ名前で、DCに参加させると便利です。
ND.SOMEDOMAINは、構築時に設定したRealmです。
sudo rm -f /etc/samba/smb.conf sudo systemctl stop samba-ad-dc sudo rm -fr /var/lib/samba/sysvol/* sudo rm -fr /var/lib/samba/private/* sudo rm -fr /var/lib/samba/*.tdb sudo samba-tool domain join ND.SOMEDOMAIN DC -U administrator --dns-backend=SAMBA_INTERNAL
smb.confの修正
/etc/samba/smb.confを修正します。
dns forwarderは、1台目のDCのIPアドレス、または1台目のDCを作成したときに設定したdns forwarderを指定します。
Active DirectoryのDomain Contorollerではbackendにadおよびridは設定できないので、強制的にtdbになります。
「backend = ad」と設定した場合、testparmを実行すると分かりますが無視されます。
Samba Wikiの「RFC2307 on AD Domain Controllers」項目にあるように「idmap_ldb:use rfc2307 = yes」は非推奨なので設定しません。
また、Samba Wikiの「Identity Mapping on a Samba Domain Controller」項目にあるようにActive DirectoryのDomain Contorollerにはidmapの設定を記述することは非推奨なのでコメントします。
[global]
dns forwarder = 192.168.100.2
netbios name = OMEGA
realm = ND.SOMEDOMAIN
server role = active directory domain controller
workgroup = ND
; idmap config * : backend = tdb
; idmap config * : range = 100000-999999
; idmap config ND.xxx: backend = ad
; idmap config ND.xxx: range = 1001-99999
; idmap config ND.xxx: schema_mode = rfc2307
; idmap config ND.xxx: unix_nss_info = yes
; idmap config ND.xxx: unix_primary_group = yes
; idmap_ldb:use rfc2307 = yes
winbind enum users = yes
winbind enum groups = yes
; winbind offline logon = yes
obey pam restrictions = yes
template homedir = /home/%U
template shell = /bin/bash
[sysvol]
path = /var/lib/samba/sysvol
read only = No
[netlogon]
path = /var/lib/samba/sysvol/ND.SOMEDOMAIN/scripts
read only = No
Daemonのリスタート
sudo systemctl restart samba-ad-dc
動作確認
fsmo(Flexible Single Master Operation)が2台目のDCになっていること、レプリケーションが動作していることを確認します。
sudo samba-tool fsmo show sudo samba-tool drs showrepl


Comments