在深入讨论细节之前,先介绍一下背景知识:我有一台运行 Windows 2003 Server 的服务器,我在该服务器上托管我的 ASP.net 网站和 SQL Server + Reports。我一直在创建普通的 Windows 用户帐户来验证我的用户,并且启用了集成的 Windows 身份验证和模拟功能。我设置了一组对应于特定角色(管理员、高级用户、普通用户等)的用户组,并测试了成员资格以启用或禁用某些功能。总的来说,我对这个解决方案非常满意,它设置起来很快,我不必担心存储密码之类的麻烦。
好吧,我现在要做的是设置一个包含 3 台服务器(Web、SQL、Reports)的新环境,并且我希望这三台服务器共享通用用户帐户。我知道我可以将这三台机器添加到域中,这意味着在其中一台机器上安装 Active Directory。
我是不是搞错了方向?你能建议一个替代配置吗?
假设我坚持使用 AD,我有几个关于 DNS 的问题。老实说,我不想摆弄 DNS 设置,因为我的 ISP 已经有自己的 DNS 服务器,而且运行良好。不过,DNS 和 AD 似乎是交织在一起的。
首先,如果我要在 mycompany.net 中创建一个名为 mycompany.net 的新域,我是否实际上需要成为该域名的注册所有者并确保 DNS 条目指向托管 AD 的机器的 IP 地址?
其次,对于我尝试添加到域中的另外两台机器,我是否需要调整它们的 DNS 设置?我尝试将首选 DNS 服务器 IP 地址设置为我新安装的 AD 的 IP 地址,但没有成功。
此时,我无法将另外两台机器添加到域中。
以下是我根据论坛上看到的一些建议运行的一些诊断程序(抱歉,它们是法语的,不过如果需要我可以翻译)。我运行了 nltest,这似乎表明客户端可以发现域控制器。当我运行 dcdiag 时,对 DsGetDcName 的调用失败,错误为 1722,不太清楚这意味着什么。
有什么建议吗?谢谢!
C:\Users\Administrator>nltest /dsgetdc:mycompany.net
Contrôleur de domaine : \\REPORTS.mycompany.net
Adresse : \\111.111.111.111
GUID dom : 3333a4ec-ca56-4f02-bb9e-76c29c6c3832
Nom dom : mycompany.net
Nom de la forêt : mycompany.net
Nom de site du contrôleur de domaine : Default-First-Site-Name
Nom de notre site : Default-First-Site-Name
Indicateurs : PDC GC DS LDAP KDC TIMESERV WRITABLE DNS_DC DNS_DOMAIN DNS
_FOREST CLOSE_SITE FULL_SECRET
La commande a été correctement exécutée
C:\Users\Administrator>dcdiag /s:mycompany.net /u: mycompany.net \pcollins /p:somepass
Diagnostic du serveur d'annuaire
Exécution de l'installation initiale :
* Forêt AD identifiée.
Collecte des informations initiales terminée.
Exécution des tests initiaux nécessaires
Test du serveur : Default-First-Site-Name\REPORTS
Démarrage du test : Connectivity
......................... Le test Connectivity
de REPORTS a réussi
Exécution des tests principaux
Test du serveur : Default-First-Site-Name\REPORTS
Démarrage du test : Advertising
Erreur irrécupérable : l'appel DsGetDcName (REPORTS) a échoué ; erreur
1722
Le localisateur n'a pas pu trouver le serveur.
......................... Le test Advertising
de REPORTS a échoué
Démarrage du test : FrsEvent
Impossible d'interroger le journal des événements
File Replication Service sur le serveur REPORTS.mycompany.net. Erreur
0x6ba « Le serveur RPC n'est pas disponible. »
......................... Le test FrsEvent
de REPORTS a échoué
Démarrage du test : DFSREvent
Impossible d'interroger le journal des événements DFS Replication sur
le serveur REPORTS.mycompany.net. Erreur 0x6ba
« Le serveur RPC n'est pas disponible. »
......................... Le test DFSREvent
de REPORTS a échoué
Démarrage du test : SysVolCheck
[REPORTS] Une opération net use ou LsaPolicy a échoué avec l'erreur
53, Le chemin réseau n'a pas été trouvé..
......................... Le test SysVolCheck
de REPORTS a échoué
Démarrage du test : KccEvent
Impossible d'interroger le journal des événements Directory Service
sur le serveur REPORTS.mycompany.net. Erreur 0x6ba
« Le serveur RPC n'est pas disponible. »
......................... Le test KccEvent
de REPORTS a échoué
Démarrage du test : KnowsOfRoleHolders
......................... Le test KnowsOfRoleHolders
de REPORTS a réussi
Démarrage du test : MachineAccount
Impossible d'ouvrir le canal avec [REPORTS] : échec avec l'erreur 53 :
Le chemin réseau n'a pas été trouvé.
Impossible d'obtenir le nom de domaine NetBIOS
Échec : impossible de tester le nom principal de service (SPN) HOST
Échec : impossible de tester le nom principal de service (SPN) HOST
......................... Le test MachineAccount
de REPORTS a réussi
Démarrage du test : NCSecDesc
......................... Le test NCSecDesc
de REPORTS a réussi
Démarrage du test : NetLogons
[REPORTS] Une opération net use ou LsaPolicy a échoué avec l'erreur
53, Le chemin réseau n'a pas été trouvé..
......................... Le test NetLogons
de REPORTS a échoué
Démarrage du test : ObjectsReplicated
......................... Le test ObjectsReplicated
de REPORTS a réussi
Démarrage du test : Replications
......................... Le test Replications
de REPORTS a réussi
Démarrage du test : RidManager
......................... Le test RidManager
de REPORTS a réussi
Démarrage du test : Services
Impossible d'ouvrir IPC distant à [REPORTS.mycompany.net] : erreur 0x35
« Le chemin réseau n'a pas été trouvé. »
......................... Le test Services
de REPORTS a échoué
Démarrage du test : SystemLog
Impossible d'interroger le journal des événements System sur le
serveur REPORTS.mycompany.net. Erreur 0x6ba
« Le serveur RPC n'est pas disponible. »
......................... Le test SystemLog
de REPORTS a échoué
Démarrage du test : VerifyReferences
......................... Le test VerifyReferences
de REPORTS a réussi
Exécution de tests de partitions sur ForestDnsZones
Démarrage du test : CheckSDRefDom
......................... Le test CheckSDRefDom
de ForestDnsZones a réussi
Démarrage du test : CrossRefValidation
......................... Le test CrossRefValidation
de ForestDnsZones a réussi
Exécution de tests de partitions sur DomainDnsZones
Démarrage du test : CheckSDRefDom
......................... Le test CheckSDRefDom
de DomainDnsZones a réussi
Démarrage du test : CrossRefValidation
......................... Le test CrossRefValidation
de DomainDnsZones a réussi
Exécution de tests de partitions sur Schema
Démarrage du test : CheckSDRefDom
......................... Le test CheckSDRefDom
de Schema a réussi
Démarrage du test : CrossRefValidation
......................... Le test CrossRefValidation
de Schema a réussi
Exécution de tests de partitions sur Configuration
Démarrage du test : CheckSDRefDom
......................... Le test CheckSDRefDom
de Configuration a réussi
Démarrage du test : CrossRefValidation
......................... Le test CrossRefValidation
de Configuration a réussi
Exécution de tests de partitions sur mycompany
Démarrage du test : CheckSDRefDom
......................... Le test CheckSDRefDom
de mycompany a réussi
Démarrage du test : CrossRefValidation
......................... Le test CrossRefValidation
de mycompany a réussi
Exécution de tests d'entreprise sur mycompany.net
Démarrage du test : LocatorCheck
Avertissement : l'appel DcGetDcName(GC_SERVER_REQUIRED) a échoué ;
erreur 1722
Serveur de catalogue global introuvable - Les catalogues globaux ne
fonctionnent pas.
Avertissement : l'appel DcGetDcName(PDC_REQUIRED) a échoué ; erreur
1722
Contrôleur principal de domaine introuvable.
Le serveur contenant le rôle PDC ne fonctionne pas.
Avertissement : l'appel DcGetDcName(TIME_SERVER) a échoué ; erreur
1722
Serveur de temps introuvable.
Le serveur contenant le rôle PDC ne fonctionne pas.
Avertissement : l'appel DcGetDcName(GOOD_TIME_SERVER_PREFERRED) a
échoué ; erreur 1722
Serveur de temps introuvable.
Avertissement : l'appel DcGetDcName(KDC_REQUIRED) a échoué ; erreur
1722
Centre de distribution de clés introuvable : les centres de
distribution de clés ne fonctionnent pas.
......................... Le test LocatorCheck
de mycompany.net a échoué
Démarrage du test : Intersite
......................... Le test Intersite
de mycompany.net a réussi
更新1:
我明显感觉到问题是由某些安全设置引起的。我在其他地方读到过,客户端需要能够访问文件共享 sysvol。我必须启用 Microsoft Windows 客户端以及之前被禁用的文件和打印机共享。当我现在运行 dcdiag 时,广告测试可以正常工作,我想这是向前的进步。它目前在服务步骤上受阻(无法打开远程 IPC)。
Démarrage du test : Services
Impossible d'ouvrir IPC distant à [REPORTS.locbus.net] : erreur 0x35
« Le chemin réseau n'a pas été trouvé. »
......................... Le test Services
de REPORTS a échoué
该错误信息的原始英文版本:Could not open Remote ipc to [server]
更新2:
我附上更多诊断信息:
Netsetup.log(客户端):
09/24/2009 13:27:09:773 -----------------------------------------------------------------
09/24/2009 13:27:09:773 NetpValidateName: checking to see if 'WEB' is valid as type 1 name
09/24/2009 13:27:12:773 NetpCheckNetBiosNameNotInUse for 'WEB' [MACHINE] returned 0x0
09/24/2009 13:27:12:773 NetpValidateName: name 'WEB' is valid for type 1
09/24/2009 13:27:12:805 -----------------------------------------------------------------
09/24/2009 13:27:12:805 NetpValidateName: checking to see if 'WEB' is valid as type 5 name
09/24/2009 13:27:12:805 NetpValidateName: name 'WEB' is valid for type 5
09/24/2009 13:27:12:852 -----------------------------------------------------------------
09/24/2009 13:27:12:852 NetpValidateName: checking to see if 'MYCOMPANY.NET' is valid as type 3 name
09/24/2009 13:27:12:992 NetpCheckDomainNameIsValid [ Exists ] for 'MYCOMPANY.NET' returned 0x0
09/24/2009 13:27:12:992 NetpValidateName: name 'MYCOMPANY.NET' is valid for type 3
09/24/2009 13:27:21:320 -----------------------------------------------------------------
09/24/2009 13:27:21:320 NetpDoDomainJoin
09/24/2009 13:27:21:320 NetpMachineValidToJoin: 'WEB'
09/24/2009 13:27:21:320 OS Version: 6.0
09/24/2009 13:27:21:320 Build number: 6002
09/24/2009 13:27:21:320 ServicePack: Service Pack 2
09/24/2009 13:27:21:414 SKU: Windows Server® 2008 Standard
09/24/2009 13:27:21:414 NetpDomainJoinLicensingCheck: ulLicenseValue=1, Status: 0x0
09/24/2009 13:27:21:414 NetpGetLsaPrimaryDomain: status: 0x0
09/24/2009 13:27:21:414 NetpMachineValidToJoin: status: 0x0
09/24/2009 13:27:21:414 NetpJoinDomain
09/24/2009 13:27:21:414 Machine: WEB
09/24/2009 13:27:21:414 Domain: MYCOMPANY.NET
09/24/2009 13:27:21:414 MachineAccountOU: (NULL)
09/24/2009 13:27:21:414 Account: MYCOMPANY.NET\pcollins
09/24/2009 13:27:21:414 Options: 0x25
09/24/2009 13:27:21:414 NetpLoadParameters: loading registry parameters...
09/24/2009 13:27:21:414 NetpLoadParameters: DNSNameResolutionRequired not found, defaulting to '1' 0x2
09/24/2009 13:27:21:414 NetpLoadParameters: status: 0x2
09/24/2009 13:27:21:414 NetpValidateName: checking to see if 'MYCOMPANY.NET' is valid as type 3 name
09/24/2009 13:27:21:523 NetpCheckDomainNameIsValid [ Exists ] for 'MYCOMPANY.NET' returned 0x0
09/24/2009 13:27:21:523 NetpValidateName: name 'MYCOMPANY.NET' is valid for type 3
09/24/2009 13:27:21:523 NetpDsGetDcName: trying to find DC in domain 'MYCOMPANY.NET', flags: 0x40001010
09/24/2009 13:27:22:039 NetpDsGetDcName: failed to find a DC having account 'WEB$': 0x525, last error is 0x79
09/24/2009 13:27:22:039 NetpDsGetDcName: status of verifying DNS A record name resolution for 'KING.MYCOMPANY.NET': 0x0
09/24/2009 13:27:22:039 NetpDsGetDcName: found DC '\\KING.MYCOMPANY.NET' in the specified domain
09/24/2009 13:27:30:039 NetUseAdd to \\KING.MYCOMPANY.NET\IPC$ returned 53
09/24/2009 13:27:30:039 NetpJoinDomain: status of connecting to dc '\\KING.MYCOMPANY.NET': 0x35
09/24/2009 13:27:30:039 NetpDoDomainJoin: status: 0x35
09/24/2009 13:27:30:148 -----------------------------------------------------------------
ipconfig /all(在客户端上):
Configuration IP de Windows
Nom de l'hôte . . . . . . . . . . : WEB
Suffixe DNS principal . . . . . . :
Type de noeud. . . . . . . . . . : Hybride
Routage IP activé . . . . . . . . : Non
Proxy WINS activé . . . . . . . . : Non
Carte Ethernet Connexion au réseau local :
Suffixe DNS propre à la connexion. . . :
Description. . . . . . . . . . . . . . : Intel 21140-Based PCI Fast Ethernet
Adapter (Emulated)
Adresse physique . . . . . . . . . . . : **-15-5D-A1-17-**
DHCP activé. . . . . . . . . . . . . . : Non
Configuration automatique activée. . . : Oui
Adresse IPv4. . . . . . . . . . . : **.***.163.122(préféré)
Masque de sous-réseau. . . . . . . . . : 255.255.255.0
Passerelle par défaut. . . . . . . . . : **.***.163.2
Serveurs DNS. . . . . . . . . . . . . : **.***.163.123
NetBIOS sur Tcpip. . . . . . . . . . . : Activé
ipconfig /all(在服务器上):
Configuration IP de Windows
Nom de l'hôte . . . . . . . . . . : KING
Suffixe DNS principal . . . . . . : mycompany.net
Type de noeud. . . . . . . . . . : Hybride
Routage IP activé . . . . . . . . : Non
Proxy WINS activé . . . . . . . . : Non
Liste de recherche du suffixe DNS.: locbus.net
Carte Ethernet Connexion au réseau local :
Suffixe DNS propre à la connexion. . . :
Description. . . . . . . . . . . . . . : Intel 21140-Based PCI Fast Ethernet
Adapter (Emulated)
Adresse physique . . . . . . . . . . . : **-15-5D-A1-1E-**
DHCP activé. . . . . . . . . . . . . . : Non
Configuration automatique activée. . . : Oui
Adresse IPv4. . . . . . . . . . . : **.***.163.123(préféré)
Masque de sous-réseau. . . . . . . . . : 255.255.255.0
Passerelle par défaut. . . . . . . . . : **.***.163.2
Serveurs DNS. . . . . . . . . . . . . : 127.0.0.1
NetBIOS sur Tcpip. . . . . . . . . . . : Activé
nslookup(在客户端上):
Serveur : *******.***.com
Address: **.***.163.123
Nom : mycompany.net
Addresses: ****:****:a37b::****:a37b
**.****.163.123
答案1
您说得对——Active Directory 对 DNS 有很强的依赖性。
为了简化此操作,您应该将 Microsoft DNS 服务器安装到域控制器计算机上,并将其配置为使用自身进行 DNS。您的 ISP 的 DNS 服务器可能不支持动态更新,而动态更新会使 Active Directory 的使用变得轻松(而且他们可能不会为您的 AD 域名配置区域)。
您可以选择将 ISP 的 DNS 服务器配置为所运行 DNS 服务器中的“转发器”,以允许将 DNS 服务器无法回答的查询发送到 ISP,但 Microsoft DNS 服务器将在其“常规”配置中将查询解析到根 DNS 服务器。不过,不使用 ISP 的 DNS 服务器其实也没什么大不了的。
配置您想要加入域的计算机,以使用域控制器的 DNS 服务器作为其唯一的 DNS 服务器。不要在任何计算机上指定任何其他 DNS 服务器。它们应该使用您的 Microsoft DNS 服务器的 IP 地址作为其唯一的 DNS 服务器。
这样就可以解决无法将其他计算机加入域的问题。当您尝试从这些计算机加入域时,请务必指定完全限定域名(如有必要,请使用“nslookup”检查它们是否可以将域名解析为指向域控制器计算机的“A”记录)。如果您尝试了几次但仍然不起作用,您可能需要通过从提升的命令提示符运行“ipconfig /flushdns”来刷新您尝试加入的计算机上的 DNS 缓存。
您可以为 Active Directory 域的 DNS 名称使用任何名称。只有您的服务器将使用“了解”您的域的 DNS 服务器,因此您可以选择任何名称。请记住,您的 DNS 服务器将对该域具有“权威性”。例如,如果您选择“microsoft.com”作为 Active Directory 域名,则您的域成员计算机将无法解析“microsoft.com”命名空间中的“真实”名称(因为您的 DNS 服务器会认为它“拥有”“microsoft.com”域)。
我建议您使用您已拥有的域名的子域名,例如“ad.company.com”,或者使用带有“.local”后缀的域名(有些人说使用“.local”并不“合适”,因为没有 RFC 将其称为保留域名)。我更喜欢“ad.company.com”样式的名称。不过,看起来您已经安装了 AD,因此您的名称选择有点“固定”。(可以重命名域名,而且并不太难,但在这种情况下,最好卸载并重新安装 AD。)