AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 17049
Accepted
Doug Luxem
Doug Luxem
Asked: 2009-06-02 10:25:30 +0800 CST2009-06-02 10:25:30 +0800 CST 2009-06-02 10:25:30 +0800 CST

如何使用 DNS 返回地理本地 IP 地址?

  • 772

我们在全球设有多个办事处,但我们的数据中心主要位于两个中心位置(北美和欧洲)。各个办公室之间存在相对较高的延迟,因此我们尝试将服务托管在离用户最近的位置(即加拿大员工在美国使用 Exchange 服务,而不是在欧洲。)

此设置在大多数情况下运行良好。在使用 Active Directory、Exchange 或 DFS 等服务时,客户端依靠 AD 中的现有站点信息来确定最近的位置。

现在,我们请求拥有一个通用 DNS 名称来访问托管在北美和欧洲的某些 Web 服务。以前,我们使用单独的 DNS 名称(na-service.domain.local 或 eu-service.domain.local),但这对我们的最终用户来说变得很麻烦。

我们所有的内部 DNS 目前都托管在使用 Microsoft DNS 的 Windows 2003 和 2008 服务器上。有没有办法将 Microsoft DNS 服务配置为仅响应具有“本地”IP 地址的请求?我知道配置多个 A 记录会导致循环式响应,这并不理想。我们也可以在每个位置使用主区域并且只输入本地 IP 地址,但是我们还有数百个其他 DNS 条目需要手动复制到每个服务器。

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

windows domain-name-system
  • 7 7 个回答
  • 14985 Views

7 个回答

  • Voted
  1. Best Answer
    Evan Anderson
    2009-06-02T10:40:48+08:002009-06-02T10:40:48+08:00

    您可能会对 Microsoft DNS 服务器中的“子网优先级”功能感到满意。它是否对您有帮助取决于您的子网的寻址方式以及地理“本地”服务器的寻址方式。此功能在 Windows Server 2003 和 2008 中默认启用。

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

    BIND 中的“查看”功能可能也可以满足您的需求,但是您谈论的是部署并行 DNS 基础设施和大量配置。

    如果您可以控制基于 Web 的应用程序,您可以做一些现成的事情,例如嵌入一些 Javascript 来“检测”用户的位置并在客户端重定向它们。这有点像丛林联盟,但它可能会满足您的需求。

    • 4
  2. Zypher
    2009-06-02T10:42:20+08:002009-06-02T10:42:20+08:00

    我在工作中曾多次问过这个问题,尽管它从未得到实施,所以这对我来说是纯粹的理论。

    我能想出的最好的解决方案(hack?)是拥有一个不被复制的通用 dns 子域。然后只需将本地服务器放入该设置中。所以你会有这样的事情:

    NA 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。您可以让它们在 EU 和 NA 内部复制,但不要在 EU 和 NA 之间复制区域。

    • 3
  3. Allen
    2009-06-02T21:36:39+08:002009-06-02T21:36:39+08:00

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

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

    很好的附带好处:您的两台服务器可以(几乎)相同地配置,BIND-wise,因此可以充当彼此的故障转移。

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

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

    • 2
  4. Yooakim
    2017-01-05T23:04:47+08:002017-01-05T23:04:47+08:00

    Windows Server 2016 DNS 中的新功能允许您定义策略来处理此类场景。更多信息可以在这里找到。

    • 2
  5. Murali Suriar
    2009-06-02T11:15:34+08:002009-06-02T11:15:34+08:00

    解决方案是否必须通过 DNS 完成?如果不是,这听起来像是IP Anycast的完美候选者。有关更多详细信息,请参阅此问题,但简而言之,它是一种网络架构,允许您从多个位置通告相同的 IP 地址,客户端路由到 IP 的“最近”(从网络成本的角度来看)实例。这样,您可以简单地为您的 DNS 记录指向一个全局 VIP(虚拟 IP)。

    • 1
  6. Gabriel Talavera
    2015-08-11T21:33:59+08:002015-08-11T21:33:59+08:00

    除了 BIND Views,新版本的 Windows Server(目前处于技术预览阶段)还有一个名为DNS Policies的功能,它看起来非常有希望实现您的目标。

    • 1
  7. Jean
    2016-10-08T10:51:05+08:002016-10-08T10:51:05+08:00

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

    该域没有在任何地方复制,但我在每个站点上都使用了主/从配置以实现冗余。

    尽管如果您需要在许多站点上经常维护,这将变得一团糟。

    • 0

相关问题

  • 您最喜欢的云计算提供商是什么?[关闭]

  • Vanilla Powershell 是否足以成为 Windows 和 DB 服务器管理员的语言?

  • 为什么添加新驱动器后我的磁盘驱动器访问速度如此之慢?

  • 在 Windows Server 2003 下使用 wscipt 从 .asp 文件运行 .exe

  • 最佳混合环境(OS X + Windows)备份?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve