根据位置为客户端提供不同的服务器 IP

网络工程 dns
2022-02-07 21:08:37

我正在寻找一种根据位置为客户端提供不同 IP 的方法。

我是一名 Casper 管理员(使用 JAMF Software 的软件进行 Mac 管理)并在全球管理超过 75 台分发服务器。Mac 客户端通过 https 从这 75 个分发服务器接收软件和补丁。今天,我在 Casper 管理控制台中将单个站点子网范围限定为特定服务器。当客户端签入 Casper 以获取任何未决策略时,将根据 Casper 服务器子网列表评估客户端 IP,然后告知从哪个特定分发服务器获取包。这种方法有很多开销,因为我必须手动更新 Casper 中的子网和服务器列表。该公司有两个私有 A 类子网,这些子网对物理站点不是超可联网的,并且不断变化。由于公司网络的管理是外包的,因此我可以使用的网络信息也很有限。

目标是当 Mac 签入 Casper 以获取其策略时,Casper 服务器返回类似“distribution.company.com”的内容作为客户端应使用的分发服务器的 DNS 名称。然后,当客户端查找服务器 IP 地址时,DNS 将提供最接近客户端的分发服务器的 IP。

我对 DNS 还很陌生,仍在研究这个主题。任何建议或指导都会有所帮助。

谢谢!

作为参考,客户端使用 http get 请求和简单的密码验证从分发服务器下载软件,使用类似于此的链接:https ://server-hostname-01.company.com/CasperShare/Packages/Security%20patch% 201.pkg

1个回答

在实施任何合理的解决方案之前,必须解决两个问题:

  1. 不断变化
  2. 公司网络的管理外包

如果不了解和控制您的网络,就没有什么可做的了。在动态网络环境中,您永远不知道 IP实际在哪里,因此也不知道它的本地缓存是什么。

许多 CDN 使用 DNS 来引导流量,但他们非常清楚客户端基于地址的位置。另一种选择是任播——利用路由在多个位置拥有一个 IP——但这需要控制网络。

如果每个站点、区域等都有本地 DNS 服务器,您可以通过指向本地服务器的本地 dns 区域来近似两者:“distribution.casper.company.com ,并单独定义子域 ( casper )每个本地 DNS 服务器。