优化DNS SRV记录

DNS的SRV记录,用于客户端来定位服务器,请求LDAP服务,请求kerberos服务。再加上站点的概念,那么事情就变得更加美好了。客户端总是去请求本站点内的DC服务器,加快登录速度,人人都满意,于是IT运行起来也顺畅了。但是以下的情况,事情就可能变得复杂起来了:

1、客户端在加入域时,他并不知道自己处于什么站点,本来处在A站,最理想的也是找A站点的服务器做加域操作,但事实会这样嘛;

2、如果客户端所在的A站点中的域控出现问题,离线了,那么客户端登录时,验证是找B站点还是找C站点的服务器,假设AB之间的连接速度优于AC之间的速度,是不是一定找B站点做验证;

要回答上面的两个问题,我们首先要明白客户端是去获取哪些SRV记录的。默认情况下,DC都会在DNS站点中通过netlogon服务注册相应的SRV记录,
_ldap._tcp.<SITE>._sites.dc._msdcs.<DOMAIN>.<TLD>
_ldap._tcp.dc._msdcs. <DOMAIN>.<TLD>

客户端如果知道他是在哪个站点,那么他也是先查寻第一条SRV记录,找到相应的DC来请求服务。

如果当前站点中没有服务器或是离线了,那么他会开始查找第二条SRV记录,问题就出在这个过程中,因为每个站点中的DC都会在此注册相应的记录,客户端选取DC时也是依据SRV记录的优先级来排列,如果优先级一致,那么客户端就会随机找一台DC来做验证。这样一随机,就会出现上面的两个问题,两个无法保证,于是IT的世界也不和谐了。

要解决以上的问题,我们在规划DC时,可以采用主站点和分支机构的经典架构,主站点与所有分支机构都通过WAN来链接,同时让分支机构的DC不去注册_ldap._tcp.dc._msdcs. <DOMAIN>.<TLD>记录,这样一来,如果分支机构的站点中DC离线时,那么他只会去找主站点的DC做验证,而不会找其它站点的DC。于是问题就很明确了,如何使分支站点的DC不注册_ldap._tcp.dc._msdcs. <DOMAIN>.<TLD>记录?组策略中提供了相应的选项:计算机设置/管理模板/系统/网络登录/DC定位程序DNS记录/DC定位程序不是由DC注册,给个截图,看个明白

优化DNS SRV记录_第1张图片

启用这个策略,同时添加上不需要注册的SRV记录,怎么添加,kb306602有一个详细的说明,我们这里把它复制过来

Domain Controller-Specific Records

Collapse this table Expand this table
 
Mnemonic Type DNS Record
LdapIpAddress A <DnsDomainName>
Ldap SRV _ldap._tcp.<DnsDomainName>
DcByGuid SRV _ldap._tcp.<DomainGuid>.domains._msdcs.<DnsForestName>
Kdc SRV _kerberos._tcp.dc._msdcs.<DnsDomainName>
Dc SRV _ldap._tcp.dc._msdcs.<DnsDomainName>
Rfc1510Kdc SRV _kerberos._tcp.<DnsDomainName>
Rfc1510UdpKdc SRV _kerberos._udp.<DnsDomainName>
Rfc1510Kpwd SRV _kpasswd._tcp.<DnsDomainName>
Rfc1510UdpKpwd SRV _kpasswd._udp.<DnsDomainName>

Global Catalog-Specific Records

Collapse this table Expand this table
 
Mnemonic Type DNS Record
Gc SRV _ldap._tcp.gc._msdcs.<DnsForestName>
GcIpAddress A gc._msdcs.<DnsForestName>
GenericGc SRV

_gc._tcp.<DnsForestName>

当然,最后补充一点关于问题1的,我们可以使用netdom join命令来指定本站点的域控执行加域操作,语法如下

NETDOM JOIN %COMPUTERNAME% /DOMAIN:<DOMAIN>\<DC> /OU:<distinguished name of OU> /USERD:<DOMAIN>\<USER> /PASSWORDD:<PASSWORD>

 

本文出自 “I AM A VM” 博客,谢绝转载!

你可能感兴趣的:(职场,dns,休闲,活动目录,SRV)