您的位置:首页 > 其它

Windows 2003活动目录物理结构详解

2009-06-01 23:11 477 查看
活动目录复制介绍: 什么是目录分区 什么是复制拓扑 自动产生复制拓扑 全局编录和分区复制



首先要安装Windows Server 2003安装光盘里面的SUPPORT--TOOLS--SUPTOOLS.MSI这个软件 通过开始--运行--输入adsiedit.msc按确定来打开ADSI EDit这个工具 展开Domain可以看到域分区里面的数据 展开OU=Domain Controller可以看到当前有二台域控制器 一台叫做DC1 另一台叫做DC2 展开Configuration可以看到配置分区里面的数据 按CN=Partitions可以看到有多少个分区 其中有二个特定的应用程序分区 展开CN=Sites可以看到有多少个站点 可以看到当前有二个站点 展开CN=Servers可以看到当前有多少台服务器 展开Schema可以看到架构分区里面的数据 里面存储了定义好的类Schema和属性Schema 它在整个森林里面进行复制的 配置分区也是在整个森林里面复制的 域分区是在同一个域之间的DC进行复制的



展开域分区--按OU=人事部 在右边空白处右键--新建--按Object--按user--下一步 我在Value里面就输入b 接着下一步 按完成后就可以看到CN=b这个文件夹了 就是说已经创建了一个用户名叫做b的用户了 你打开Active Directory用户和计算机后 按人事部后也可以看到一个叫做b的用户了



通过开始--程序--管理工具--选择Active Directory站点和服务 我提前创建了2个站点 它们分别叫做Site1 Site2 并且我已经把Default-First-Site-Name(默认站点)删除掉了 在站点内部进行复制 就是说A1 A2 A3它们都在一个站点内 逻辑上是在域内 它会以一个小时为周期去检查有没有遗漏的数据 按Site1 对着NTDS Site Settings右键--选择属性 按更改计划可以看到默认是一小时一次 就是说它会每隔一个小时去检查有没有遗漏的数据需要复制的 而不是说AD每隔一个小时复制一次的 AD复制默认是以拉的方式或者更改通知的方式 我通知你 我这边有数据更新了 你来跟我拿 你跟我做复制更新 我把数据传给你 你再把我传给你的数据写到你的数据库里面



现在可以看到有二个站点 有二台DC 是同一个域的两台DC 逻辑上只有一个域两台DC 物理上有两个站点分别位于不同的子网 DC1放在Site1里面 在192.168.1.0/24这个子网里面 DC2放在Site2里面 在192.168.2.0/24这个子网里面



我现在来到DC2这台计算机 它是在192.168.2.0/24这个子网里面 在命令提示符里面输入ipconfig /all按回车键 可以看到它的IP地址为192.168.2.2 默认网关为192.168.2.254 我来ping 192.168.1.2一下 为什么也能ping通呢? 因为我有一台Windows Server 2003用二块网卡做成路由器 第一块网卡的IP地址为192.168.1.254 第二块网卡的IP地址为192.168.2.254 你可以通过看那个TTL值就知道中间经过一个路由器了 现在那个TTL值为127 因为默认情况下那个TTL值是128 每经过一个路由器TTL值就减1 所以可以知道这两台DC之间是通过路由器来进行通讯的 但是这样就能够保证这二台DC能够进行复制吗?不是的 这二台DC之间要想直接复制的话 必需有一个自动生成的连接对象才可以



展开Site1--按NTDS Settings后可以看到一个自动生成的连接对象 如果这两台DC之间不能够产生自动生成的连接对象的话 那么这两台DC之间是不能够直接复制的 比如我手动来复制一下 如果是同一个站点内会通过更改通知复制的 对着自动生成的连接对象右键--选择立即复制副本 可以看到现在可以立即复制了 没有任何问题 那么这个连接对象是怎么产生的呢?可以看到它是自动生成的 说明不是我创建的 那是谁创建的呢?那是由DC1上面所运行的KCC这个静象去动态地创建了到DC2的连接对象



如果你的企业里面有多台DC 你不想让DC1和DC7之间做间接复制 你希望DC1和DC7之间能够直接复制怎么办呢? 按DC1对着NTDS Settings右键--选择新建Active Directory连接 在服务器名里面按DC7 按确定 然后对着DC7右键--选择立即复制副本就ok了 你可以手动创建到其他DC的连接对象 这样有什么好处呢? 比如DC8已经损坏了 这个时候我可以马上创建DC1到DC7的连接对象



我现在来到客户端 在命令提示符里面输入ipconfig /all按回车键后可以看到这台计算机的IP地址为192.168.2.3 可以知道它是在192.168.2.0这个子网里面 这个时候它就会去找离它最近的DC登录了 通过开始--运行--输入regedit按确定打开注册表编辑器 找到注册表编辑器下面那个路径 双击DynamicSiteName这个键值 在数值数据里面可以看到Site2 这个时候它就会问Site2里面yejunsheng.com这个域里面的DC是谁 它就会找一个离它最近的DC登录了 因为DC2的IP地址为192.168.2.2也是在192.168.2.0这个子网里面 并且它们都是属于Site2这个站点 所以这台客户机就去找DC2登录了 在命令提示符里面输入nslookup按回车键 可以看到当前默认DNS服务器是dc1.yejunsheng.com IP地址为192.168.1.2 输入yejunsheng.com按回车键后可以看到192.168.2.2在前面 而192.168.1.2在后面 通过看这个也知道当前该客户端登录yejunsheng.com这个域是去找DC2登录的


我现在来到DC1这台域控制器 并且它是一台DNS服务器 在命令提示符里面输入nslookup按回车键 输入yejunsheng.com按回车键可以看到192.168.1.2这个IP地址在前面而192.168.2.2这个IP地址在后面



如果没有站点链接 Site1和Site2之间是没办法复制的 要想它们能够进行复制就新建一个站点链接 展开Inter-Site Transports 对着IP右键--选择新站点链接 名称就叫做Site1-Site2吧 在此站点链接中的站点里面按Ctrl键把Site1和Site2全选定 按确定就ok了 这个时候Site1和Site2之间就能够进行复制了



我现在把DC1里面自动生成的对象删除掉 这个时候KCC在运行时它检测到Site1和Site2之间有站点链接的话 现在DC1和DC2之间还没有产生自动生成的对象 它会自动产生自动生成对象的 我们也可以手动出发强制DC上的KCC 对着NTDS Settings右键--选择所有任务--按检查复制拓扑 看到了吗?DC1里面的自动生成的对象又回来了 注意:如果你把Site1和Site2之间的站点链接删除掉了 并且把它们自动生成的对象删除掉了 这个时候按检查复制拓扑是没有用的了 不能产生自动生成的对象了 就是说要让它产生自动生成的对象一定有站点链接存在
复制协议:RPC:可以用于站点内复制也可以用于站点之间复制 SMTP:它只能作为站点之间的复制 并且它不能用于同一个域内的DC复制 它可以用于不同域之间复制的 一般情况下我们都会考虑用IP协议 什么时候用SMTP协议呢?当我跟对方物理链接不通的时候可以用邮件传输 那么这个时候我们可以用SMTP协议 换句话说SMTP在复制的时候 它只能够复制架构分区和配置分区的数据



是不是站点之间有站点链接就可以开始复制了呢?不是的 每一个站点都要推选出一台服务器来首先参与站点之间的复制 然后站点之间的复制再推选出两台服务器之间完成之后再去做站点内部的复制 现在站点1和站点2有站点链接了 Site1和Site2之间可以进行复制了 我指的是站点之间的复制 不是DC和DC之间的复制 但是Site1和Site2之间的复制必需有一个代表吧 比如说Site1推选DC1来复制 Site2推选DC2来复制 我们之间复制完成了 接下来在Site内部以拉的方式解决 作为某一个站点一个代表者我们通常叫做桥头堡服务器桥头堡服务器它默认是由站点间拓扑生成器推选出来的 展开Site1--Servers--对着NTDS Settings右键--选择属性可以看到Site1的拓扑生成器是DC1 每一个站点的拓扑生成器就会自动去推选出一台桥头堡服务器 推选出一台桥头堡服务器之后再运行桥头堡服务器上的KCC建立到其他站点桥头堡服务器的链接对象 如果你不想让它自动推选桥头堡服务器 也可以手动推选桥头堡服务器 比如我对着DC1右键--选择属性 添加协议 按IP按添加 按确定 这个时候DC1就成为桥头堡服务器了 DC1和DC2之间用什么协议复制是可以更改的 对着自动生成对象右键--选择属性 在传输里面可以看到IP RPC SMTP这三种协议 一般情况下我们都保持默认值 不需要更改它



在Active Directory站点和服务里面对着IP右键--选择属性 在常规里面可以看到沟上为所有站点链接搭桥 什么意思呢?这个沟打上就是去启用了站点链接的传递性 换句话说 DC1和DC3是可以复制的 通过DC2来复制 我们根本不需要手动去创建站点A和站点C之间的站点链接桥 假设有A B C吧 有AB的站点链接 BC的站点链接 我们不需要再创建链接桥ABC或者创建一个AC的站点链接了 默认有一个站点链接的传递性
复制冲突机制:属性冲突 相同名字冲突 移动对象至被删除的OU冲突



我现在来到DC1这台域控制器 打开Active Directory用户和计算机 对着alice右键--选择属性 按电话 在家庭电话里面输入123 按确定 AD在复制的时候复制的是属性 当一个属性里面有多个值的话 在Windows 2003里面只复制一个单一的值



我现在来到DC2这台域控制器 对着alice右键--选择属性 按电话 在家庭电话里面输入456 按确定 复制结果会是什么呢?



我现在来到DC1这台域控制器 在命令提示符里面输入repadmin /showmeta cn=alice,ou=yejunsheng,dc=yejunsheng,dc=com 按回车键 可以看到homePhone的版本号是1 时间是2008-04-21 13:54:22 如果在DC2那台域控制器的homePhone版本号是2的话 最终复制的结果 可知电话号码肯定是456 因为DC2的版本号比DC1的版本号高 如果版本号是一致的 它就会看时间 那台域控制器的时间晚就生效



我现在来到DC2这台域控制器 在命令提示符里面输入repadmin /showmeta cn=alice,ou=yejunsheng,dc=yejunsheng,dc=com按回车键 可以看到homePhone的版本号是2 并且时间是2008-04-21 14:11:10 比DC1的时间晚 这个时候可以知道两台域控制器最终复制的电话号码肯定是456了



看到了吗? 现在DC1这台域控制器里面的alice这个用户属性里面家庭电话变成456了 刚才我输入的是123 但是我要说明一下 在Windows Server 2003里面首先要检查一个元素 是这个属性更新的次数 比如说我现在把DC1上的电话号码改成789了 那最终结果将会是789 它会先考虑变化的次数 再去考虑时间 简单说一句话谁最后写的电话号码谁就赢 如果DC1是最后写的就是DC1赢 如果DC2是最后写的就是DC2赢



我首先在DC1那台域控制器里面新建一个叫做a的OU 然后让DC1和DC2之间复制一下 我就把DC1里面的a这个OU删除掉 这个时候DC2还没有知道 DC2里面还是有a这个OU 然后我把alice这个用户拖曳到a这个OU里面



我现在来到DC1这台域控制器 按F5键刷新了 还是看不到a这个OU并且也看不到alice这个用户 注意:实际上是可以看到alice这个用户的 在Active Directory用户和计算机里面按查看--选择高级功能 就可以看到一个叫做LostAndFound的OU 你按一下这个OU就可以看到alice这个用户了
repadmin工具:使用repadmin工具可以查看和手工创建复制拓扑 强制DC之间复制 查看复制的元数据 dcdiag工具:使用dcdiag工具可以分析DC的状态并且报告问题 执行一系列测试来确认系统各方面有没有问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息