Windows 2000 domain level

gulikoza gulikoza at users.sourceforge.net
Sat Mar 15 06:04:59 MDT 2014


On Fri, 14 Mar 2014 19:42:14 +0100, Matthias Dieter Wallnöfer  
<mdw at samba.org> wrote:

> Hi gulikoza,

Hello,

> you are right, we have an error in our domain raise implementation.
> Could you please have a look at this patch:
> https://git.samba.org/?p=mdw/samba.git;a=commitdiff;h=c250548b6f749c3de3b59d3b5e8a6b6093a84476

I checked the patch. It fixes the first part of the problem.
Before the patch:

[root at samba4-ad home]# samba-tool domain level show
ERROR: Could not retrieve the actual domain, forest level and/or lowest DC  
function level!

After the patch:

[root at samba4-ad home]# samba-tool domain level show
Domain and forest function level for domain 'DC=domain,DC=local'

Forest function level: (Windows) 2000
Domain function level: (Windows) 2000
Lowest function level of a DC: (Windows) 2000

The problem however remains, that is is not possible to raise the domain  
level:

[root at samba4-ad home]# samba-tool domain level raise --forest-level=2008  
--domain-level=2008
ERROR: Domain function level can't be higher than the lowest function  
level of a DC!

Note that the other DC in this domain is W2K8 and has this attribute set:

# record 1110
dn: CN=NTDS  
Settings,CN=W2K8SRV,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=local
objectClass: top
objectClass: applicationSettings
objectClass: nTDSDSA
cn: NTDS Settings
msDS-Behavior-Version: 3

While samba4 does not set this attribute:

# record 1302
dn: CN=NTDS  
Settings,CN=SAMBA4-AD,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=local
objectClass: top
objectClass: applicationSettings
objectClass: nTDSDSA
cn: NTDS Settings

The problem is this piece of code in join.py:

  462         if ctx.behavior_version >= samba.dsdb.DS_DOMAIN_FUNCTION_2003:
  463             rec["msDS-Behavior-Version"] =  
str(samba.dsdb.DS_DOMAIN_FUNCTION_2008_R2)

For the 2000 level domains, samba4 will not set msDS-Behavior-Version and  
will be considered the lowest function level DC (at 2000 level). I'm sorry  
but here I do not have enough knowledge of MS AD domains of how & when  
this attribute is set when raising domain level. Perhaps instead of  
checking samba.dsdb.DS_DOMAIN_FUNCTION_2003, the schema version should be  
checked in join.py and msDS-Behavior-Version set based on that (I assume  
that's what adprep does, extends the schema so that these new attributes  
can be added, I'm reading this  
http://technet.microsoft.com/en-us/library/ed42abd5-24c7-4b5a-8165-dbd96727ec84  
- Verify the schema extension).

Or maybe there should be "samba-tool domain dc level raise" or perhaps  
even an implicit raise of DC level for all samba4 DCs when doing a  
domain/forest raise?

I'm doing this from a saved snapshot of the W2K8 DC, this particular  
domain was successfully raised to 2003 level after samba4 was demoted and  
deleted from the domain so that it's not considered the lowest function  
level DC.

A similar problem would apply for the second patch (2012 level). I haven't  
tested it yet, but how is the domain supposed to be raised to 2012 level  
when samba4 DC will be at the 2008_R2 level?

> Regards,
> Matthias Wallnöfer
>

Regards,
gulikoza



More information about the samba-technical mailing list