[Samba] Replication between Samba DCs (on different sites)?

Rowland Penny rpenny at samba.org
Wed Feb 8 10:49:20 UTC 2023



On 08/02/2023 10:16, Lorenzo Milesi via samba wrote:
>> Lorenzo seems to be able to do some basic debugging too.. maybe we
>> can use this opportunity and try to understand what is going on,
>> instead of using the force?
> 
> Inspired by those kind words (:D), I tried investigating further... Indeed, I'd rather find a solution than wiping dc2. At the moment users are authenticating correctly, I have some time. I asked to avoid any administration task on the domain in the meantime.

If you can do a bit of investigation, this will help to make Samba 
better in the long term, I was just focussing on fixing your immediate 
problem.

> 
> 
> root at dc2:~# ldbsearch --cross-ncs -H /var/lib/samba/private/sam.ldb -b DC=DomainDnsZones,DC=wdc,DC=domain,DC=it '(cn=Infrastructure)'
> # record 1
> dn: CN=Infrastructure,DC=DomainDnsZones,DC=wdc,DC=domain,DC=it
> objectClass: top
> objectClass: infrastructureUpdate
> cn: Infrastructure
> instanceType: 4
> whenCreated: 20200723054831.0Z
> uSNCreated: 5712
> showInAdvancedViewOnly: TRUE
> name: Infrastructure
> objectGUID: 21b49376-474e-481b-b18d-0062e980b1f3
> systemFlags: -1946157056
> objectCategory: CN=Infrastructure-Update,CN=Schema,CN=Configuration,DC=wdc,DC=domain,DC=it
> isCriticalSystemObject: TRUE
> whenChanged: 20230207165009.0Z
> uSNChanged: 6269
> fSMORoleOwner: CN=NTDS Settings,CN=DC2,CN=Servers,CN=ARUBA-DataCenter1,CN=Sites,CN=Configuration,DC=wdc,DC=domain,DC=it
> distinguishedName: CN=Infrastructure,DC=DomainDnsZones,DC=wdc,DC=domain,DC=it
> 
> # returned 1 records
> # 1 entries
> # 0 referrals
> 
> Same output is returned on DC1:
> root at dc1:~# ldbsearch --cross-ncs -H /var/lib/samba/private/sam.ldb -b DC=DomainDnsZones,DC=wdc,DC=domain,DC=it '(cn=Infrastructure)'
> # record 1
> dn: CN=Infrastructure,DC=DomainDnsZones,DC=wdc,DC=domain,DC=it
> objectClass: top
> objectClass: infrastructureUpdate
> cn: Infrastructure
> instanceType: 4
> whenCreated: 20200723054831.0Z
> whenChanged: 20230207165009.0Z
> uSNCreated: 5834
> uSNChanged: 5834
> showInAdvancedViewOnly: TRUE
> name: Infrastructure
> objectGUID: 21b49376-474e-481b-b18d-0062e980b1f3
> fSMORoleOwner: CN=NTDS Settings,CN=DC2,CN=Servers,CN=ARUBA-DataCenter1,CN=Sites,CN=Configuration,DC=wdc,DC=domain,DC=it
> systemFlags: -1946157056
> objectCategory: CN=Infrastructure-Update,CN=Schema,CN=Configuration,DC=wdc,DC=domain,DC=it
> isCriticalSystemObject: TRUE
> distinguishedName: CN=Infrastructure,DC=DomainDnsZones,DC=wdc,DC=domain,DC=it
> 
> # returned 1 records
> # 1 entries
> # 0 referrals
> 
> I found this[1] thread from last month, unfortunately without a solution, where Rowland talks about possible issues with DC's site. So I moved dc2 to "Default-First-Site-Name" and attempted roles transfer, and IT WORKED:

I think you have just proved that there is a bug in the 'sites' code, 
though were it is, I couldn't see.

> 
> root at dc1:~# samba-tool fsmo transfer --role=all -U administrator
> This DC already has the 'rid' FSMO role
> This DC already has the 'pdc' FSMO role
> This DC already has the 'naming' FSMO role
> This DC already has the 'infrastructure' FSMO role
> This DC already has the 'schema' FSMO role
> Password for [WDC\administrator]:
> FSMO transfer of 'domaindns' role successful
> FSMO transfer of 'forestdns' role successful
> 
> root at dc1:~# samba-tool fsmo show
> SchemaMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=wdc,DC=domain,DC=it
> InfrastructureMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=wdc,DC=domain,DC=it
> RidAllocationMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=wdc,DC=domain,DC=it
> PdcEmulationMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=wdc,DC=domain,DC=it
> DomainNamingMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=wdc,DC=domain,DC=it
> DomainDnsZonesMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=wdc,DC=domain,DC=it
> ForestDnsZonesMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=wdc,DC=domain,DC=it
> 
> 
> Now all DCs reports the roles managed by dc1.
> 
> Replication is still not working on dc2:
> root at dc2~# samba-tool drs replicate dc2 dc1 DC=ForestDnsZones,DC=wdc,DC=domain,DC=it
> ERROR(<class 'samba.drs_utils.drsException'>): DsReplicaSync failed - drsException: DsReplicaSync failed (2, 'WERR_FILE_NOT_FOUND')
>    File "/usr/lib/python3/dist-packages/samba/netcmd/drs.py", line 570, in run
>      drs_utils.sendDsReplicaSync(server_bind, server_bind_handle, source_dsa_guid, NC, req_options)
>    File "/usr/lib/python3/dist-packages/samba/drs_utils.py", line 100, in sendDsReplicaSync
>      raise drsException("DsReplicaSync failed %s" % estr)

Problem is, your replication is failing because it cannot find a file 
(but what file ?) and your searches above only searched 
'DC=DomainDnsZones,DC=wdc,DC=domain,DC=it'.
Can you try with the base 'DC=ForestDnsZones,DC=wdc,DC=domain,DC=it'


> 
> 
> So I should now have a sane domain, correct me if I'm wrong.

No, not in my opinion, not when 'samba-tool drs replicate' doesn't seem 
to be working.

Rowland



More information about the samba mailing list