我如何使用DNS来返回一个地理上的本地IP地址?

我们在全球有几个办事处,但我们的数据中心主要分布在两个中心地点(北美和欧洲)。 各办事处之间的延迟时间相对较长,因此我们尝试在距离用户最近的位置托pipe服务(即加拿大员工在美国使用Exchange服务,而不是在欧洲)。

这个设置在很大程度上运行良好。 当使用Active Directory,Exchange或DFS等服务时,客户端依靠AD中的现有站点信息来处理最近的位置。

现在,我们要求有一个通用的DNS名称来访问NA和欧洲托pipe的某些Web服务。 以前,我们已经使用了独立的DNS名称(na-service.domain.local或eu-service.domain.local),但是对于我们的最终用户来说这很麻烦。

我们所有的内部DNS目前都托pipe在带有Microsoft DNS的Windows 2003和2008服务器上。 有什么办法可以configuration微软的DNS服务,只响应具有“本地”IP地址的请求? 我知道configuration多个Alogging会导致循环式的响应,这是不理想的。 我们也可以在每个位置使用主要区域,只input本地IP地址,但是我们有数百个需要手动复制到每个服务器的其他DNS项目。

如果这不能与MS DNS完成,是否有其他低成本的替代品? 我知道F5 Networks有能够处理这个问题的产品,但费用相当高。

您可能会在Microsoft DNS服务器中使用“Subnet Prioritization”function。 它是否会帮助你将取决于你的子网是如何解决的,以及你的地理上的“本地”服务器是如何解决的。 Windows Server 2003和2008中默认启用此function。

我build议阅读这个function。 查看http://technet.microsoft.com/en-us/library/dd197495(WS.10).aspx下的“子网优先级”标题。

BIND中的“视图”function可能会做你想做的事情,但是你正在讨论部署一个并行的DNS基础设施和大量的configuration。

如果您拥有基于Web的应用程序的控制权,那么您可以通过embedded一些Javascript来“检测”用户的位置并将其redirect到客户端。 这是一个布什联赛,但它可能会做你所需要的。

我在工作中曾经问过几次这样的问题,尽pipe这个问题从来没有实现过,所以这就是纯粹的理论。

最好的解决scheme(黑客?)我可以想出将是有一个共同的dns子域不复制。 然后把本地服务器放在那个设置里。 所以你会有这样的事情:

不适用DNS服务器
service.domain.local
web01.service.domain.local – > 10.10.10.200

欧盟DNS服务器
service.domain.local
web01.service.domain.local – > 10.200.200.200

因此,连接到web01.service.domain.local的客户端将从该默认的dns服务器获取服务的本地IP。 你可以让它们在欧盟和北美的范围内进行复制,但是在欧盟和北美之间没有复制区域。

正如之前的回答所述,BIND的视图看起来像你想要的。 它允许名称服务器将同一名称服务器的不同configuration呈现给您定义的客户端组。

这些组可以通过单独的IP地址或前缀来定义(如10.10.1.192/26)。 希望你的欧盟和美国的东道主可以这样区分。

好的一面好处是:您的两台服务器可以(几乎)以相同的方式进行configuration,从而实现对方的故障转移。

思考Views的一个好方法就是它是一个DNS服务器的虚拟化版本。 有点。

BIND可以在www.isc.org免费获得。

解决scheme是否需要通过DNS来完成? 如果没有,这听起来像是IP Anycast的完美候选人。 看到这个问题的更多细节,但简而言之,它是一个networking体系结构,允许您从多个位置通告相同的IP地址,客户端路由到IP的“最接近”(从networking成本angular度)实例。 这样,您可以简单地为您的DNSlogging指定一个全球VIP(虚拟IP)。

除了BIND Views之外,Windows Server的新版本(目前在技术预览版中)也有一个称为DNS策略的function,它看起来非常有希望实现你正在寻找的function。

我遇到过同样的问题。 如果domain是domain.local,并且我希望webmail.domain.local根据站点做出不同的响应,我创build了一个新的区域 webmail.domain.local(非AD集成),并向Webmail服务器的本地IP地址添加了通配符。

这个域没有被复制到任何地方,但是我在每个站点上都使用主/从configuration来实现冗余。

尽pipe如此,如果您需要在很多站点上频繁维护,这会变得很糟糕。

Windows Server 2016 DNS中的新function允许您定义策略来处理这种情况。 更多信息可以在这里find。