我有一个问题,在多站点环境中使用基于Active Directory的LDAP。
基本上我有几个不同的环境(站点),他们每个人都有自己的专用的几个域控制器服务器。 为了保持所有信息的同步,每个域控制器都与其他站点的对话对话。
在每个环境中,我也有几个不同的Linux服务器(Web服务器,应用程序服务器等),为了进行身份validation和授权,他们必须联系专用于其环境的正确的域控制器。
我的问题是,我找不到一种方法来指定这些服务器的configuration如何联系他们“最近的”域控制器。
直到现在,我使用DNS Aloggingdomain.local ,它将每个域控制器都返回到域中; 问题是它也返回域控制器不在正确的站点,因此无法访问。
我想另一种方式是为每个引用正确DC的站点创build一个CNAMElogging。
DC-Site1 CNAME到DC1和DC2 DC-Site2 CNAME到DC3和DC4 DC-Site3 CNAME到DC5和DC6 ....
所以使用loggingDC-SiteX.domain.local我能够联系正确的几个域控制器的网站。
这个解决scheme的问题是,我几乎不能编码到它所属的站点的configuration服务器。 我不喜欢,因为我可能会移动服务器到不同的网站,我不得不记得要更新这个configuration。
通常你如何处理这种情况?
你有这个问题的优雅的解决scheme?
你是正确的,使用domain.local名称将返回域中的所有域控制器的所有地址列表,但如果你将尝试ping domain.local(我的意思是你的域的实际名称),DNS必须返回本地IP地址域控制器。
我不知道您的域控制器是否也充当DNS服务器,但是如果是的话,请检查DNS服务器设置 – >高级选项卡 – >启用networking掩码sortingcheckbox必须签入。
关于CNAME,您可以为一台服务器创build多个CNAME,但为多台服务器创build多个CNAME,因此您必须创build两个同名的Alogging,并将其logging到本地域控制器的不同IP上。 但是,对于这种情况,您还需要确保在高级DNS服务器设置中有可用的roud robin,这样DNS服务器就可以平衡服务器之间的查询了。
谢谢,谢尔盖
这是应用程序的责任。 任何需要与Active Directory集成的应用程序都必须符合其工作原理。 这包括根据站点/位置首选项设置域控制器的优先级,select适当的function域控制器,并在发生错误时故障转移到其他域控制器。
换句话说,应用程序需要像Windows客户端一样运行。
UNIX服务器是否知道他们所在的网站?
AD控制器是否正确地更新了SRV DNSlogging(默认情况下是这样做的)?
如果unix服务器知道,例如,在SITE1.EXAMPLE.ORG中,它可以请求AD控制器在SITE1上启用了以下LDAP服务器:
ldapsearch -v -H "ldap:///dc%3Dsite1%2Cdc%3Dexample%2Cdc%3Dorg" [...]
基本上这是一个ldapsearch任何服务器上有SITE1.EXAMPLE.ORG上的LDAP SRV注册:
host -t SRV _ldap._tcp.site1.example.org.