资讯详情

资讯详情

从零搭建域控实战:规划、部署、高可用与排错全指南

1. 域控不是装完就完事先想清楚你要解决什么问题很多人第一次接触域控脑子里想的都是装个AD域服务把电脑加进去就完事了。我当年也是这么想的结果第一次给一个三十来人的小团队搭域控装完第二天就发现有人用本地管理员账号照样能改IP、装软件域策略形同虚设。后来才明白域控的核心价值不在于装上了这个动作而在于它能把身份认证、权限管控、策略下发这三件事从每台机器各管各的变成一个中心统一说了算。打个比方没有域的环境就像一栋楼里每个房间各自配一把锁钥匙还都挂在门把手上有了域控相当于整栋楼换成了一张门禁卡系统谁能进哪个房间、几点能进、能带什么东西进去全部由前台统一配置。这个类比虽然粗糙但能帮你快速理解域控的本质——它是一个集中化的身份与策略管理中枢。那什么场景下真正需要上域控我个人的判断标准是三条终端数量超过十五台、有明确的权限分级需求比如财务数据只有财务能看、需要统一推送安全策略或软件。三条里中了两条就值得认真考虑。如果只是五六台机器、大家互相信任、没有合规压力说实话工作组模式反而更省事别为了显得专业硬上域控后期维护成本会让你怀疑人生。这篇文章我会按真实项目落地的顺序来讲从前期规划怎么定域名和结构到安装部署的具体操作再到高可用怎么做、出问题了怎么排查。中间会穿插我自己踩过的坑和验证过的参数配置尽量让你看完能直接照着做而不是又看了一篇下一步下一步完成的流水账。2. 动手之前必须敲定的四件事域名、结构、角色与授权模式2.1 域名命名别用 .local也别用公网域名域名选择是第一个容易埋雷的地方。我见过有人图省事用company.local也见过直接拿公司官网域名company.com当内部AD域名的。这两种做法各有问题。用.local的问题在于它和苹果的 Bonjour 服务默认使用的.local后缀冲突网络里如果有Mac设备或者打印机走mDNS解析会变得很混乱。而直接用公网域名company.com虽然技术上可行但会让内部DNS解析和公网解析纠缠在一起后期做分裂DNSsplit-brain DNS配置时非常容易出错。我的建议是采用ad.company.com或者corp.company.com这种子域名形式。这样既避免了.local的冲突又和公网主域名做了清晰隔离。如果你公司还没有公网域名那就用一个不存在的内部域名比如internal.corp但一定要确保这个域名不会被外部注册造成混淆。提示域名一旦确定并完成域控部署后期修改的成本极高几乎等于重建整个域。所以这一步务必和团队、上级确认清楚再动手。2.2 林和域的结构单域够用就别搞多域很多教程一上来就讲林、树、域的层级关系搞得新手以为必须搭一套复杂的多域结构才专业。实际上对于绝大多数中小规模环境单林单域就是最优解。一个域里可以容纳成千上万个用户和计算机对象完全够用。什么时候才需要考虑多域通常是这几种情况组织有多个地理上分散且网络质量很差的分部、有严格的合规要求需要数据隔离、或者公司经历了并购需要保留各自的管理边界。除此之外单域加OU组织单位分层就能满足几乎所有权限管理需求。OU的设计才是真正需要花心思的地方。我通常按部门设备类型两个维度来划分。比如顶层OU按部门分技术部、财务部、市场部每个部门下面再分用户和计算机两个子OU。这样做的好处是组策略可以精准下发——财务部的计算机可以套用更严格的USB禁用策略而技术部的计算机则放开一些开发工具的安装权限。2.3 域控角色FSMO五角色分别管什么域控安装完成后默认会持有五个FSMO灵活单主机操作角色。很多人只知道有这五个角色但说不清各自管什么。我用一个表格帮你理清楚角色名称作用范围核心职责架构主机整个林控制架构的修改比如新增属性域命名主机整个林负责添加或删除域RID主机单个域分配RID池保证SID唯一PDC模拟器单个域处理密码变更、时间同步、紧急复制基础结构主机单个域维护跨域对象引用的一致性单域控环境下这五个角色都在同一台机器上问题不大。但一旦你做了多域控高可用就要考虑这些角色的归属和转移。尤其是PDC模拟器它承担着时间同步源的角色如果这台机器出问题整个域的时间可能会漂移进而导致Kerberos认证失败——这是很多莫名其妙登录不了问题的根源。2.4 授权模式别让域管理员账号满天飞我见过最危险的做法是给每个IT人员都发一个Domain Admin账号理由是方便管理。这等于把整栋楼的总钥匙复制了十几把任何一把丢了都是灾难。正确的做法是遵循最小权限原则建立分层管理模型。日常的账号解锁、密码重置用账户操作员权限就够了加入计算机到域用域中加入计算机权限只有真正需要修改域架构、管理域控服务器的操作才用Domain Admin。而且Domain Admin账号只用于登录域控服务器本身绝不用来登录普通员工电脑——因为一旦普通电脑中了 credential dumping 类的攻击域管凭据就会被抓走。注意默认的Administrator账号建议重命名并禁用另外创建一个名字不起眼的日常管理账号。这不是偏执是基本的安全卫生习惯。3. 从零部署第一台域控安装、提升与验证的完整链路3.1 系统准备静态IP、计算机名和补丁装域控之前服务器本身要先准备好。三件事必须做配静态IP、改计算机名、打齐补丁。静态IP不用多说域控的IP地址不能变否则DNS解析全乱。计算机名建议用有规律的命名比如DC01、DC02别用WIN-XXXXXX这种随机名后期看日志的时候你会感谢自己。补丁这块我要特别强调域控服务器在提升之前一定要把系统补丁更新到较新的状态。我遇到过一次新装的Server系统没打补丁就提升为域控结果安装过程中某个组件版本不兼容提升到一半失败清理残留花了大半天。后来养成习惯提升前先跑一遍Windows Update确认没有待重启的更新再动手。DNS设置有个细节第一台域控在提升之前DNS指向自己127.0.0.1或者自己的静态IP都可以。但提升完成后一定要确认DNS指向的是自己的IP而不是127.0.0.1否则某些复制操作会出问题。3.2 安装AD DS角色与提升为域控打开服务器管理器通过添加角色和功能向导安装Active Directory 域服务角色。这一步只是安装管理工具和二进制文件还没有真正创建域。安装完成后服务器管理器顶部会出现一个黄色感叹号提示点击将此服务器提升为域控制器。提升向导里选择添加新林输入你之前规划好的域名。林功能级别和域功能级别如果没有特殊兼容需求直接选最高的。功能级别只影响能不能用某些新特性选低了后期想升虽然可以但麻烦。接下来的选项里DNS服务器和全局编录都要勾选。第一台域控必须同时是DNS服务器和全局编录服务器这是硬性要求。DSRM密码是目录服务还原模式密码用于灾难恢复设一个强密码单独记好它和域管理员密码是两回事。数据库、日志文件和SYSVOL的存放路径默认都在C盘。如果服务器有多块盘我建议把数据库和日志分开放到不同的物理盘上对性能有好处。但如果只有一块盘默认路径就行别硬分。提升过程会自动重启重启后域控就生效了。用域管理员账号登录打开Active Directory 用户和计算机能看到你创建的域名结构就说明成功了。3.3 提升后的必做验证清单很多人提升完看到能登录就以为完事了其实还有几项验证必须做否则问题会在后期才暴露检查DNS正向和反向解析打开DNS管理器确认域名的正向区域存在并且域控主机记录A记录正确。反向区域默认可能没建建议手动创建否则日志里全是反向解析失败的告警。运行dcdiag命令这是域控健康检查的瑞士军刀。在命令行执行dcdiag /v逐项看有没有报错。刚装好的域控重点看DNS和复制相关的测试项。确认SYSVOL和NETLOGON共享在命令行执行net share应该能看到这两个共享。如果没看到说明SYSVOL还没复制完成组策略会下发失败。通常等几分钟就好如果一直不出检查DNS设置。验证时间同步域控默认会从外部时间源同步但如果是隔离内网需要手动指定可靠的时间源。时间偏差超过五分钟Kerberos认证就会失败。提示dcdiag的输出很长新手容易看晕。我的经验是重点关注标了failed的项以及警告里反复出现的条目。偶尔一两条关于某个特定测试的警告可以暂时忽略但如果有failed一定要查清楚。3.4 把第一台成员机加入域域控本身跑通后找一台测试机加入域验证。操作很简单系统属性里更改计算机名和域输入域名然后输入有加入域权限的账号凭据。成功后重启用域账号登录。这里有个常见坑成员机的DNS必须指向域控的IP不能指向路由器或者公网DNS。因为加入域的过程依赖DNS SRV记录来定位域控如果DNS指向不对会报找不到域或者域不存在的错误。我见过有人排查了半天防火墙最后发现是DNS指错了。加入成功后在域控的Active Directory 用户和计算机里刷新应该能在默认的Computers容器里看到这台机器。建议把它移动到对应的OU里方便后续策略下发。4. 高可用不是加一台机器那么简单多域控与DNS冗余4.1 第二台域控的部署时机与准备单台域控最大的风险是单点故障——这台机器一挂所有人都登录不了业务直接停摆。所以只要环境稍微正式一点我都会建议至少部署两台域控。第二台域控的部署有两种方式一是全新安装系统后提升为现有域的额外域控二是把现有域控做系统级克隆。第二种方式微软官方支持虚拟化环境下的域控克隆但配置要求较多新手容易出错我更推荐第一种老老实实的方式。准备第二台机器时同样要配静态IP、改计算机名比如DC02、打补丁。DNS先临时指向第一台域控的IP因为提升过程中需要从现有域获取数据。提升向导里这次选将域控制器添加到现有域输入域名和凭据后面的选项和第一台类似DNS和全局编录同样勾选。4.2 复制拓扑与站点间复制的理解两台域控之间会自动建立复制关系同步用户、密码、策略等目录数据。默认情况下同一站点内的域控复制间隔是15秒跨站点则根据站点链接的开销和计划来定。对于大多数单站点环境你不需要手动配置复制拓扑系统会自动生成。但如果你有多个物理位置就需要在Active Directory 站点和服务里规划站点、子网和站点链接。站点规划的核心目的是让客户端优先联系同站点的域控减少跨广域网的认证流量。我踩过的一个坑两个办公点之间用专线连接但没做站点规划结果B点的员工登录时随机联系A点的域控专线一抖动就登录失败。后来划分了站点把各自的子网关联到对应站点问题就解决了。4.3 DNS高可用别让DNS成为新的单点域控高可用做完了但很多人忽略了DNS的高可用。如果成员机的DNS只指向第一台域控那台机器一挂即使第二台域控活着客户端也找不到它。正确的做法是在DHCP服务器或者成员机的网络设置里把两台域控的IP都配成DNS服务器主DNS指向其中一台备用DNS指向另一台。这样一台DNS不可用时客户端会自动切换。域控本身的DNS设置也要注意DC01的主DNS指向DC02备用指向自己DC02反过来。这样形成互相备份避免自己DNS服务出问题时无法解析。4.4 FSMO角色的转移与占用两台域控的情况下五个FSMO角色默认都在第一台上。如果第一台需要停机维护最好提前把角色转移到第二台。转移命令很简单用ntdsutil或者PowerShell的Move-ADDirectoryServerOperationMasterRole都可以。不过说实话如果只是短暂重启不转移问题也不大因为角色在离线后短时间内不会造成严重影响。但如果是长时间停机或者硬件更换就必须转移。转移完成后记得用netdom query fsmo确认角色归属。注意如果第一台域控是永久性下线比如硬件报废除了转移FSMO角色还要做元数据清理把它的记录从AD里彻底删除。否则残留的域控对象会导致复制报错。清理用ntdsutil的元数据清理功能步骤略繁琐操作前务必确认目标机器名删错了很麻烦。5. 排错实战那些让你抓狂的域控故障与排查思路5.1 客户端加域失败从DNS查起加域失败是最常见的求助场景。报错五花八门但排查思路可以固定下来第一步在客户端ping域名看能不能解析到域控IP。如果解析不了问题在DNS。检查客户端的DNS设置是否指向域控域控的DNS服务是否正常正向区域里域名的主机记录是否存在。第二步如果ping通了用nslookup查询SRV记录nslookup -typeSRV _ldap._tcp.dc._msdcs.域名。这条记录是客户端定位域控的关键如果查不到说明DNS的SRV记录有问题。通常重启Netlogon服务会重新注册这些记录。第三步如果DNS都正常检查时间同步。客户端和域控的时间差超过五分钟Kerberos预认证会失败表现就是输入正确密码也提示用户名或密码错误。这种情况在虚拟机环境里特别常见因为虚拟机暂停恢复后时间容易漂移。5.2 组策略不生效分层排查法组策略不生效的原因很多我习惯用分层排查法先确认策略有没有链接到正确的OU并且链接是启用的。然后在客户端运行gpresult /r看策略有没有被应用是被拒绝了还是根本没下发。如果显示被拒绝通常是权限问题或者WMI筛选器挡住了。如果gpresult显示策略已应用但实际没效果运行gpupdate /force强制刷新然后重启。有些策略比如软件安装需要重启才生效。还有一种情况是策略应用了但被本地策略覆盖。组策略的优先级是本地策略 站点策略 域策略 OU策略子OU覆盖父OU。如果同一个设置在多处配置优先级高的生效。排查组策略有个利器是组策略结果向导在GPMC里可以模拟某台机器或某个用户会应用哪些策略非常直观。5.3 域控之间复制失败看事件日志和repadmin复制失败的表现是在一台域控上新建的用户另一台上看不到。排查工具首选repadmin /showrepl它会列出每台域控的复制伙伴和上次复制状态。如果看到last failure有内容就顺着错误码去查。常见的复制失败原因有几个DNS解析问题导致找不到复制伙伴、防火墙挡住了RPC端口、时间不同步导致Kerberos失败、或者域控对象元数据残留。事件日志里的DFS复制和目录服务日志会给出更详细的线索。我遇到过一次复制失败错误码指向RPC不可达。检查防火墙发现135端口开着但动态RPC端口范围没放行。AD复制依赖RPC动态端口需要在防火墙里放行相应的端口范围或者配置固定的RPC端口。这个坑在跨网段环境里特别容易踩。5.4 时间同步问题域控的时间从哪来时间同步是域环境里最容易被忽视但影响最大的问题。默认情况下域内的成员机和成员服务器从域控同步时间域控之间由PDC模拟器统一而PDC模拟器默认从外部时间源同步。如果PDC模拟器无法访问外部时间源比如内网隔离整个域的时间就会慢慢漂移。解决办法是手动指定一个可靠的内网时间源或者配置PDC从硬件时钟同步。检查时间同步状态用w32tm /query /status强制同步用w32tm /resync。如果时间偏差太大可能需要先手动调整到接近正确的时间再让服务同步因为偏差过大时服务会拒绝同步。提示虚拟化环境里域控的时间同步要特别注意。宿主机和虚拟机之间的时间同步服务可能会和域时间同步冲突建议在域控虚拟机上禁用宿主机的集成时间同步让域控自己管理时间。6. 日常维护与备份让域控活得久一点6.1 系统状态备份的正确姿势域控的备份和普通服务器不一样核心是系统状态备份它包含AD数据库、SYSVOL、注册表、证书服务等关键组件。Windows Server自带的Windows Server Backup就能做配置一个每日定时备份到独立磁盘或网络位置。备份频率上我建议至少每天一次并且保留至少两周的备份。因为有些问题比如误删OU可能几天后才被发现备份太旧就恢复不回来了。恢复的时候要注意域控的恢复分权威恢复和非权威恢复。如果只是恢复单台域控的数据用非权威恢复恢复后它会从其他域控同步最新数据。如果是误删了对象需要强制恢复就要用权威恢复让其他域控接受这台机器的数据。权威恢复的操作稍微复杂需要修改注册表或者用ntdsutil设置操作前一定要确认清楚。6.2 日常巡检该看什么域控不是装完就不用管的日常巡检能提前发现很多隐患。我通常每周看这几项事件日志重点看目录服务、DFS复制、DNS服务器三个日志里的错误和警告。磁盘空间AD数据库和日志会持续增长C盘满了域控会出各种奇怪问题。建议给系统盘留足空间数据库和日志盘单独监控。复制状态跑一下repadmin /replsummary看有没有复制延迟或失败。备份状态确认最近的备份成功完成别等到需要恢复时才发现备份早就失败了。时间偏差确认域内时间同步正常。这些检查加起来花不了十分钟但能避免很多半夜被叫起来处理故障的情况。6.3 域控退役的规范流程域控要退役时不能直接关机了事。正确流程是先转移FSMO角色到其他域控确认所有角色转移成功然后运行dcpromo或者用服务器管理器降级这台域控降级过程中它会把自己从AD里清理干净降级完成后再检查一下Active Directory 站点和服务里有没有残留的服务器对象有的话手动删除。如果域控是意外损坏无法降级那就只能做元数据清理。清理前务必确认这台机器确实不会再上线否则清理后它再开机加入网络会造成复制冲突。我个人的经验是域控的维护最怕想当然。觉得应该没问题的地方往往就是出问题的地方。每次变更前做好备份变更后做好验证比任何技巧都管用。这套东西搭起来不难难的是长期稳定地维护而稳定维护的关键就是规范操作加定期巡检没有捷径。
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →