Sambaで構築したDC(Ubuntu)に2台目が追加できない

Sambaで構築したDC(Ubuntu)に2台目が追加できない ・・・という事象が発生したため簡単にですが自分の場合はこうやったら直ったという記録です。

構成

Raspberry Pi 4 にUbuntu 22.04LTSをインストール済み。

やろうとしたこと

現在メインのDCは2代目となりRaspberry Pi 4 ×3台でPROXMOXのクラスターの上に仮想マシンで動作。
SV-ATLASというホスト名で動作している。
ここに冗長性確保のため、単体のRaspberry Pi 4にUbuntu 22.04LTSをインストールしたホスト名SV-CHRONUSを2台目DCとして追加したい。

kerberosチケットは取得可能

kinit administrator

チケットの発行ができることは確認できたので、以下のコマンドでドメインへの参加を試みる。

samba-tool domain join hoge.ne.lan DC -U Administrator --dns-backend=SAMBA_INTERNAL

問題発生

NFO 2023-09-18 16:50:46,661 pid:95460 /usr/lib/python3/dist-packages/samba/join.py #105: Finding a writeable DC for domain 'hoge.ne.lan'
INFO 2023-09-18 16:50:46,721 pid:95460 /usr/lib/python3/dist-packages/samba/join.py #107: Found DC sv-atlas.hoge.ne.lan
Password for [WORKGROUP\Administrator]:
INFO 2023-09-18 16:50:52,698 pid:95460 /usr/lib/python3/dist-packages/samba/join.py #1527: workgroup is HOGE
INFO 2023-09-18 16:50:52,699 pid:95460 /usr/lib/python3/dist-packages/samba/join.py #1530: realm is hoge.ne.lan
Adding CN=SV-CHRONUS,OU=Domain Controllers,DC=hoge,DC=ne,DC=lan
Join failed - cleaning up
ERROR(ldb): uncaught exception - LDAP error 53 LDAP_UNWILLING_TO_PERFORM -  <00002035: ../../source4/dsdb/samdb/ldb_modules/ridalloc.c:565: No RID Set DN - Remote RID Set creation needed> <>
  File "/usr/lib/python3/dist-packages/samba/netcmd/__init__.py", line 186, in _run
    return self.run(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/samba/netcmd/domain.py", line 698, in run
    join_DC(logger=logger, server=server, creds=creds, lp=lp, domain=domain,
  File "/usr/lib/python3/dist-packages/samba/join.py", line 1543, in join_DC
    ctx.do_join()
  File "/usr/lib/python3/dist-packages/samba/join.py", line 1431, in do_join
    ctx.join_add_objects()
  File "/usr/lib/python3/dist-packages/samba/join.py", line 639, in join_add_objects
    ctx.samdb.add(rec, controls=controls)

上記のようなエラーが発生して困った。自分なりに注目したのは

No RID Set DN - Remote RID Set creation needed

試したこと

ネットで調べていくと、操作マスター(FSMO)の1つにRIDマスターというものがあるとのこと。
恐らくこれが問題であろうと考えた。ソースのURLは忘れたが(いつも通り酒飲んだ状態でネットで調べていたため)
同じようなエラーが発生した時に1台目のDCにてFSMOの権限を奪取?するコマンドにて状態が変化したと書いてあったため、SV-ATLASにて次のコマンドを実行した。

samba-tool fsmo seize --role=all

直った

先のfsmo seize~を実行した後に再度下記のコマンドをSV-CHRONUSにて実行

samba-tool domain join hoge.ne.lan DC -U Administrator --dns-backend=SAMBA_INTERNAL

無事にhoge.ne.lanに参加できた!

きっかけは不明

1代目のDC環境ではRaspberry Pi 4 1台+メインのサーバーの仮想マシン1台の計2台で冗長性は確保。
ところがある日猛暑のせいかマイクロSDがお亡くなりになりRaspberry Pi 4が起動しなくなった。
この時に冗長性を確保することの重要性を身を持って体感したため、ラズパイを追加購入し3台1組としてPROXMOXにて高可用性設定をした仮想マシンに2代目となるメインDC=FSMOを構築。
ラズパイが動作していない間はメインサーバーであるPRIMERGY TX1320 M1のPROXMOX上の仮想マシンがサービスを提供。この予備の仮想マシーンに追加する形で2代目メインDCを追加したため、FSMOの設定が不足していた可能性がある。

3連休の後半をこのエラーによって潰されたが無事に解決できたので何よりである。

高木
  • 高木

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です