我想根据传入查询有条件地解析 DNS 请求。
假设我有 4 个域名 - www.a.com、www.b.com、www.c.com 和 www.d.com。目前它们使用 CNAME 指向 s.com。现在根据一些条件(地理位置、时间等),我想将它们指向不同的服务器。
例如,当 s.com 收到来自 a.com 或 b.com 的请求时,它应该指向 s1.com,在后者情况下指向 s2.com。
是否有针对此问题的托管解决方案,我可以在其中定义规则或其他内容。 BIND 会在此场景中工作吗?
提前致谢。
答案1
由于多种原因(例如缓存、传播时间等),DNS 并不是这种情况下的最佳选择。
理想情况下,您可以使用某种工具来管理传入流量 - 例如 Stingray Traffic Manager 或 F5 Traffic Manager。这样您不仅能够根据条件管理流量,还可以设置重定向 - 例如 301(因为移动不是暂时的)。我有使用 Zeus/StingRay 的经验,这些产品正好能满足您的需求。
答案2
我同意 Chris 的观点,但回到实际问题上,理论上可以使用 BIND 来实现。除了极短期的解决方案外,我不推荐使用它。
将特定记录的 TTL 设置为零(警告:某些您不操作的缓存服务器可能会选择忽略这一点并实现最小 TTL)或其他非常低的数字,并使用视图来控制根据源 IP 提供哪个版本的 s.com。
请注意,观点影响整个域,因此,除非您想要管理完全不同的域版本,否则您需要在子域上执行此操作。(即具有的拆分视图,以及没有拆分视图的foo.s.com
单独区域)s.com