AD 复制检查流程

  1. 首先检查网络通信 重点检查 主机IP 属性中的DNS 配置;
  2. 验证名称解析 也就是DNS记录中的CName 、例如查看域中DC 所有主机cname 然后再ping 测试 连通性。
    • Get-DnsServerResourceRecord -ZoneName ‘abc.com’  -ComputerName ‘abc-dc01′  -RRType “CName” | select HostName,RecordType,@{Name=’RecordData’;Expression={$_.RecordData.HostNameAlias.ToString()}} | Where {$_.RecordData -match $ComputerName}
    • ping 243289a4-447e-4e15-ada4-4f9b4f87f646._msdcs.abc.com
  3. 查看时间服务器及与PDC 是否同步 w32time
    • w32tm /query /configuration | findstr “Type”
    • Type 输出参数有:
      • 1、Nosync 使用硬件时钟
      • 2、NTp  使用外部NTPserver
      • 3、NT5DS  使用域架构同步时间
      • 4、ALLSync 包括NTP和 Nt5DS
    • 查看时间源服务器
      • w32tm /query /source
    • 手动同步时间
      • net time \\pdc.abc.com /set /y
  4. 查看站点内的复制伙伴 、复制类型、复制协议等
    • Get-ADReplicationPartnerMetadata  -Target  “abc.com”  -Scope Domain  -Credential  abc.com\administrator | ft  Server,PartnerAddress,TwoWaySync,PartnerType
  5. 查看域内DC 复制失败情况
    • Get-ADReplicationFailure -Target  abc.com  -Scope  Domain  -Credential  thtfpc.com\administrator | ft Server,Partner ,FailureCount,FirstFailureTime -AutoSize

AD DS 复制

不管公司有多少台DC,和在什么地方,它们之间必须可以互相复制信息。如果他们不能相互复制信息,那么DC的目录(分区)就不一致,例如在一台DC上创建用户,而这个信息不能被复制到其他DC那么用户就只能通过创建账户所在的DC进行身份验证。

ADDS 复制模型

ADDS 使用多主机复制模型除RODC外任何DC都可以修改ADDS数据存储,也就是在一台DC上做出更改后会复制到域中所有其它的DC上。

ADDS 复制一般是指活动目录数据库的复制

复制特点:

  1. 松散一致,可以认为并不是所有DC上的分区副本问题相同的信息。在一台DC上创建用户直到下次复制周期才能获得该信息。但最终会达到一致的状态。
  2. 存储-转发,当不同站点多DC经过慢速WAN连接时,站点中的一台DC目录变化到转发到另一站点中的一台DC,相同站点中的DC再相互转发。
  3. 也就是复制伙伴在同一站点内是直接复制,站点间是间接复制。
  4. 基于状态的,每台DC都会跟踪复制更新的状态,也就是DC对更新的信息进行判断(基于当前数据存储状态)是否需要更新这个信息。
  5. 活动目录一般使用pull(请求)更新而不是主动发送(push)  

a domain controller requests updates at a scheduled time and if updates are available, the domain controller pulls the updates from a domain controller in the other site.

成功创建复制拓扑必须设置以下组件 :

  1. 可路由的IP基础架构,需要配置ADDS站点,并将站点映射到IP子网地址范围。客户机在定位DC时使用IP子网到站点的映射。
  2. DNS  ADDS 复制需要DNS提供SRV 资源记录
  3. Netlogon 服务。DNS 注册需要Netlogon.而且要让ADDS正常工作必须运行Netlogon 服务
  4. 远程过程调用(RPC)连接,ADDS域控制器能够用RPC连接到相同域中的其他DC ,如果 DC都在相同的域中、那么一个站点内的DC和不同站点中的DC必须使用RPC 。不同域和不同站点中的DC可以使用SMTP
  5. 活动目录复制拓扑一般为环形,通过KCC 自动创建,复制拓扑有个严格的限制从源到目标DC之间的间隔不能超过3个DC,也就是从源到目标DC复制数量总数最多是4个

知识一致性检查器KCC(knowledge consistency checker)

  1. KCC 在每台DC上以进程方式运行,它用存储在每台DC上配置目录分区中的林信息来创建复制拓扑。因为所有DC上使用相同的配置信息和算法创建拓扑,所以创建拓扑不需要在不同DC上的KCC组件之间进行通信。KCC 与其他KCC通信只是为了让RPC请求复制错误信息。默认每台DC上KCC 每15min 重新计算复制拓扑,也可以强制执行“检查复制拓扑” Repadmin /kcc DomainControllerName
  2. 每台DC上的KCC 每15min 重新计算复制拓扑1次

ISTG 站点间拓扑生成器

查询每个站点拓扑生成器所有的DC   repadmin /istg 

链接对象

  1. 当KCC创建复制拓扑时,它会创建一系列存储在AD DS的配置目录分区中的连接对象。连接对象是用于复制目录信息的域控制器之间的直接逻辑连接、用于复制目录信息。
  2. KCC尝试创建既高效又容错的复制拓扑。KCC构建尽可能多的连接对象来实现这些目标。连接对象始终创建为两个域控制器之间的单向拉连接。这是因为正常的复制过程始终是拉入操作,目标域控制器从发送域控制器请求信息。
  3. 创建一个新的站点时必须为新的站点指定站点链接对象。父子关系模型只能在父域中创建站点,在子域无法创建。
  4. 在大多数情况下,KCC将在域控制器之间建立两个单向连接,以便以任何一种方式复制信息、KCC 自动创建的连接对象是优化过的无需做任何的改变。

站点内复制

  • 设计活动目录拓扑的主要目标是可用性和容错,避免单台DC不可用时导致ADDS 复制失败,这样就会每台DC 创建多个复制伙伴,使用冗余链接形成复制拓扑,不用担心多次接收相同的更新(因为有传播阻尼),由KCC 来自动创建复制拓扑,形成一个复制环,如下图
  • 可以通  repadmin  /showrepl  来查看复制连接和复制状态。复制环是基于目录分区的,也就是说KCC 为每个目录分区计算复制环,可以使用Repadmin 查看连接对象,看看每个连接对象复制哪个目录分区,Repadmin /showconn ServerName 显示 每个连接对象复制的分区。

站点间复制

站点内的复制拓扑由KCC 自动生成,如果组织有多个站点,还必须为每个站点创建复制拓扑,这样需要在站点中委派一台DC上的KCC为该站点的站点间拓扑生成Inter-Site Topology Generator(ISTG),每个站点只有一个ISTG,由ISTG负责为在整个站点计算理想的复制拓扑。当中有2个操作:1、找出站点中出现的每个目录分区的桥头服务器,站点间复制问题从一个站点的桥头服务器发送到另一个站点的桥头服务器,2、在桥头服务器之间创建连接对象,保证信息在站点之间复制。

查看站点间 分区复制情况

repadmin /showrepl   

配置站点间复制

  1. 当安装ADDS时,便创建一个默认的站点(default-first-site-name)的站点可以重命名它。创建站点必须将它和现有的站点链接相连。每个站点和ADDS中的一个或多个IP子网关联。
  2. 如果安装一台新的DC 且林中的站点多于一个,就可以选择在哪个站点中安装新的DC,ADDS安装向导默认是通过匹配DC IP配置来定位站点。
  3. 当需要移动DC 到新的站点时,确保修改DC的IP配置来反映新站点的位置。还需要使用Ipconfig / refreshDNS 命令刷新DNS中的主机记录,并通过住重新启动NETLOGON服务来更新SRV记录。

站点连接

  1. 把站点连接起来的ADDS对象称为站点连接(Site Links),安装 ADDS后会创建一个默认名为DefaultIpSiteLink 的站点连接。如果创建额外站点连接之前不创建其他站点链接,那么这个默认的站点链接将包含所有的站点。如果所有站点都通过一个站点链接相连,那么所有站点之间的复制流量就有完全相同的属性。如果想在站点之间配置不同的复制设置,就需要创建额外的站点链接,并把合适的站点分配给站点链接。如果创建新的站点链接请设置站点开销和复制计划,尽量不要和DefaultIpSiteLink 相同,
  2. Get-AdReplicationSiteLink -Filter * 查看站点链接
  3. 站点A和站点B相连,则创建站点链接对象AB,站点B和站点C相连创建站点链接BC,
  4. 新建站点链接  new-adreplicationsitelink  ‘sh-yf’ -cost 20 -ReplicationFrequencyInMinutes 30 -siteinclude sh,yf
  5. 站点链接配置选项
    • 开销 反映网络链接的速度和使用该链接的花费,如果有冗余的站点链接会选择开销最小的站点链接为复制路径,设置的开销值越小,则物理链路速度应越快。
    • 复制计划,默认为24小时内都可以进行复制
    • 复制间隔,定义了桥头服务器检查其他站点中的桥头服务器是否有目录更新的时间间隔,默认情况下为180min ,
    • 复制传输协议,默认情况下使用RPC over IP 或SMTP 作为复制传输协议。

站点链接桥(Site Link Bridges)

  1. 站点间的复制是通过桥头服务器完成的,默认情况下ISTG(站点间拓扑生成器)在计算站点间复制拓扑时,自动识别桥头服务器。 ,可查看站点哪台是桥头服务器可以使用 repadmin /bridgeheads  命令 。默认情况下没有配置BH(BiridgeHead) 。
  2. 一个站点内设置一个BH 即可、配置首选BH的好处是确保所选的DC被选为BH 、配置首选BH 限制了ISTG选择桥头服务器的能力,ISTG 总是被配置为首选桥头服务器的服务器
  3. 如果想控制哪台服务器是桥头服务器,那么必须为需要复制到站点的每个分区配置首选桥头服务器。
  4. 如果首选桥头服务器出现故障,也没有其他服务器被委派为该目录分区的桥头服务器,那么ISTG就不会选择其他的桥头服务器,在服务器再次可以或重新配置首选桥头服务器之前,复制都会停止。如果BH出现故障可以删除该首选BH,让ISTG 标识一台桥头服务器或选择另一台BH。
  5. 如果首选桥头服务器出现故障,而且选择重新配置首选桥头服务器,就需要在双方站点中做出配置更改,直到双方站点的配置都改变以后,信息才能在站点间复制。

AD DNS SRV 注册故障排除

nslookup -type=srv  _ldap._tcp.dc._msdcs.abc.com 

Resolve-DnsName  -Type srv  -Name   _ldap._tcp.dc._msdcs.abc.com 

重新注册SRV 记录:

验证DC是否正在尝试注册正确的记录。为此,请停止DC上的“Netlogon”服务,然后删除位于%systemroot%\System32\Config文件夹中的“Netlogon.dnb”和“Netlogon.dns”文件。然后启动netlogon服务。验证“Netlogon.dns”文件是否包含正确的SRV记录,并验证这些记录是否已在DNS中更新。

如果SRV 记录未正确的更新,排查事件日志中的ID为5774,5775,5781, 每个ID 暗示一个SRV记录注册问题

  1. 使用nslookup  验证SRV 记录问题

在 DNS 上,选择”开始运行 > “。

在” 打开” 框中,键入 cmd 。

键入 nslookup ,然后按 Enter。

键入 set type=all ,然后按 Enter。

键入 _ldap._tcp.dc._msdcs.Domain_Name

_ldap._tcp.gc._msdcs.Domain_Name

_ldap._tcp.pdc._msdcs.Domain_Name

  <Domain_Name> 其中 是域的名称,然后按 Enter。

Nslookup 返回以以下格式出现的一个或多个 SRV 服务位置记录,其中是域控制器的主机名,域控制器所属的域在哪里,以及域控制器的 Internet 协议

<Server_Name> <Domain_Name> (IP) <Server_IP_Address> 地址:

原因:

这些错误的常见原因是域控制器在其TCP/IP属性中将自身引用为主DNS服务器。当域控制器在此配置中启动时,Netlogon服务可能会在DNS服务启动之前启动。因为,Netlogon服务必须在DNS中注册记录,但DNS服务尚不可用,可能会出现错误。在这种情况下,您可以安全地忽略错误,因为Netlogon服务将在大约五分钟后再次尝试注册记录,此时它将成功。避免此问题的最简单方法是将域控制器配置为使用另一台DNS服务器来注册SRV记录。

AD 集成区域

  1. DNS的默认应用程序分区:当林中的第一台服务器升级为DC并安装DNS时,那么就会在ADDS 中创建2个新应用程序目录分区,DomainDnsZones 分区和  ForestDnsZones 分区. DNS zone information is then stored in these directory partitions, rather than in a text file on the DNS server hard disk。
  2. 每个分区有不同的信息和复制配置,DomainDnsZones 分区包含所有的DC记录,所有记录除_msdcs记录都包含在DomainDnsZones 中,被复制到域中运行DNS服务的所有DC上。 ForestDnsZones 分区复制到林中所有的DC运行的DNS服务器上,ForestDnsZones 包含DC和客户端所需要的用于定位林中其他域中DC服务的信息。ForestDnsZones分区根据GUID列出整个林中所有的DC也列出林中所有的GC,_msdcs区域也存储在ForestDnsZones分区中。
  3. ADDS和DNS命名空间集成:确保DNS 命名空间与AD DS 设计正确集成,并确保所有DC SRV 记录都在DNS 中注册 ,为了让林中不同DC 可以互相复制,它们必须可以在DNS中互相找到对方。

Get-DnsServerDirectoryPartition 查询Dns目录分区

AD 和 DNS

ADDS 需要DNS 来提供定位网络上的资源,没有可靠的DNS基础架构,活动目录复制就会失败,客户端则无法登录网络,Exchange无法发送邮件,如果打算管理ADDS就需要彻底了解ADDS 集成DNS实现。

Active Directory 域服务 (AD DS) 使用 DNS 作为其域控制器定位机制。 在执行任何主体 Active Directory 操作(例如身份验证、更新或搜索)时,计算机将会使用 DNS 来查找 Active Directory 域控制器。 此外,域控制器也使用 DNS 来查找彼此。

ADDS  使用用SRV (服务资源记录)的缩写定义域控制器,所有域控制器都在DNS中注册SRV记录,这些记录将计算机标识为提供AD DS相关服务。

SRV记录格式:

Service._Proto.Name TTL Class SRV Priority Weight Port Target

Service: 服务名称,前缀“_”是为防止与DNS Label(普通域名)冲突。

Proto:   服务使用的通信协议,_TCP、_UDP、其它标准协议或者自定义的协议。

Name:    提供服务的域名。

TTL:     缓存有效时间。

CLASS:   类别

Priority: 该记录的优先级,数值越小表示优先级越高,范围0-65535。

Weight:   该记录的权重,数值越高权重越高,范围0-65535。    

Port:     服务端口号,0-65535。

Target:   host地址。

SRV 记录位置

Get-content   C:\Windows\System32\config\netlogon.dns

查看DNS中注册的SRV 记录

Get-DnsServerResourceRecord  -ZoneName DomainName(例:abc.com)  -RRType srv

为了使DNS服务器能够支持Active Directory,服务器需要支持服务(SRV)资源记录类型和动态更新协议。Active Directory使用DNS作为域控制器的定位机制,使网络上的计算机能够获取域控制器的IP地址。在Active Directory安装期间,服务(SRV)和地址(A)资源记录在DNS中动态注册。域控制器定位器(Locator)机制的功能需要这两种类型的记录。

要在域或林中查找域控制器,客户端需要在DNS中查询域控制器的SRV和A DNS资源记录。资源记录向客户端提供域控制器的名称和IP地址。在此上下文中,SRV和A资源记录称为定位器DNS资源记录。

将域控制器添加到林中时,将使用该域控制器的定位器DNS资源记录更新DNS服务器上承载的DNS区域。因此,DNS区域必须允许动态更新(RFC 2136),托管该区域的DNS服务器必须支持SRV资源记录(RFC 2782)才能播发Active Directory目录服务。

至少,DNS服务器必须支持SRV资源记录;但可以手动将SRV资源记录添加到DNS。

安装Active Directory后,可以在域控制器的以下位置找到这些记录:systemroot\System32\Config\Netlogon.dns