对于通过Active Directory DC进行身份validation的应用程序,显然最好将其指向主域DNSlogging,而不是用于故障转移,负载平衡等的特定DC。
那些迫使你对DC的IP进行硬编码的应用程序的最佳实践是什么? 我们可以硬编码一个负载均衡器的IP地址,所以如果一个DC发生故障,应用程序仍然可以进行身份validation。 有没有更好的select?
Active Directory已经内置了负载平衡技术。 您的Windows客户端知道如何在自己的站点中find冗余域控制器,以及如果第一个不可用,则如何使用另一个。 只要有冗余DC,就不需要执行额外的负载平衡,比如“集群式”DC等。
在某种程度上,您可以将Active Directory站点视为“负载平衡器”,因为该站点中的客户端将随机select同一站点中的一个DC。 如果一个站点的所有DC都失败,或者该站点没有DC,则客户将随机select另一个站点。
您可以通过在硬件负载平衡器上放置一个VIP,并使多个域控制器之间的VIP负载平衡,为join域的客户端负载平衡Active Directory提供的DNS服务。 然后,在您的客户端上,将该VIP作为TCP / IPconfiguration中的首选DNS服务器。
我现在正在为全球基础设施做这件事,而且工作得很好。
但是这只适用于DNS服务。
不要尝试加载平衡您的域控制器进行身份validation。 这是在招惹麻烦。 你至less不得不做很多复杂的自定义SPN工作,并且你会抛出微软支持的界限。 从这个博客,你应该阅读 ,我会引用他:
回到供应商,告诉他们你不认为他们是AD集成,你会发现一个不同的解决scheme。
现在应用程序要求您键入域控制器的IP地址 ? 那么,我只是重申我的评论:
谁写了一个应用程序,迫使你硬编码一个域控制器的IP地址到它不知道他或她在做什么。
硬编码IP或使用IP来parsingAD查询从来没有一个很好的理由。 不好的做法没有最佳做法。
对于外部“负载均衡”AD的实际需求很less,很难做到。 对典型查询的需求可能正常工作,但典型的Windows客户端和应用程序需要执行更新。 Windows客户端尝试与特定的dcbuild立关联,以便如果它更新某些内容并立即尝试进行后续操作,则它会遇到相同的dc。 应用程序开发者也是这样做的。 如果您编写创build用户帐户的代码,然后尝试在1毫秒后更改该帐户的密码,则需要点击相同的直stream。
如果您使用一些负载平衡器解决scheme来为前端AD,则需要确保这些方法和关联性不会中断。
如果需要的是可用性,而不是平衡负载,则集群可能更合适(除了集群)。
在大量的广告实施中,更传统的方法是识别大多数消费者,并将其放在具有自己的直播网站。 例如,如果您有五台Exchange服务器,请为这些服务器的子网创build一个站点,然后在该站点中放置专用的GC。 同样适用于其他服务器,如SharePoint。
这个问题的其他几个答案似乎认为除了微软意识到的应用程序,没有其他的世界。 不幸的是,事实并非如此,作为原始问题的证据:
那些迫使你对 DC的IP 进行硬编码的应用程序的最佳实践是什么?
虽然Microsoft不支持或不build议在Active Directory之前使用NLB解决scheme,但确实似乎有一些用于validation非Microsoft AD认知应用程序的选项。