基于 IP 地址的 DNS 应答

基于 IP 地址的 DNS 应答

我正在运行 Windows Server 2003 作为 DNS 服务器。我想设置一个 DNS 区域,以便根据请求者的 IP 地址给出不同的答案。假设我有区域 example.com。如果对 www.example.com 的请求来自 IP 地址 192.168.1.1,则答案将是 192.168.1.254,但如果请求来自 192.168.2.1,则答案应该是 192.168.2.254。

其想法是在进行基础设施迁移时让一些服务器驻留在两个网络上。

干杯。

答案1

您正在寻找水平分割 DNS,也经常被称为“DNS观点”(源于view条款在 BIND 配置文件中)。

绑定和其他常见的 Unix 名称服务器都支持此功能,但据我所知,Windows/AD DNS 没有等效功能。

但有些方法可能会有效 -循环记录的网络掩码排序。这绝对是肮脏和令人厌恶的,我不建议这么做。(这位博主的博文有更详细的信息也是在这里我发现了这件令人讨厌的事情)。

您可能还可以使用两个 DNS 服务器、一个虚拟 IP 以及精心设计的路由/防火墙规则集来共同破解某些东西,以便适当地引导客户端 —— 不过我不确定这是否比网络掩码排序更令人厌恶或更不令人厌恶。

答案2

我不相信您可以使用单个 2003 实例进行拆分 DNS。如果每个网段上都有一个实例,则可以将内部设置为回答区域,并将所有其他查询转发到新的 DNS 服务器。

Microsoft DNS 服务器允许您将其绑定到特定接口,但不能运行具有拆分数据的两个不同服务。由于您可以将其从接口解除绑定,因此可能有一种方法可以在另一个接口上运行 ISC Bind。这将使您在一个接口上运行 Microsoft DNS 服务,在另一个接口上运行 BIND,或者可能在两个接口上都绑定。

在 Micosoft 生态系统中,最简单(虽然笨拙)的方法是将 2003 在 Hyper-V 中作为虚拟机运行,每个虚拟机都有自己的 DNS 服务器和数据。如果您将 DNS 区域创建为未集成活动目录,它们仍可能位于同一域中。Server 2008r2 允许您以评估版运行,并为您提供迁移时间。Server 2012 立即激活。请务必在 Hyper-V 中查看 Server 2012 的许可。您可以在标准版上运行多个实例,在数据中心版许可证上运行“无限制”实例。

答案3

使用一台服务器来做到这一点是不可能的。

我的建议是:在每个子网中设置一台具有相同区域、不同 IP 地址的服务器。配置它,以便它们只监听该子网的内部接口。

配置 DHCP 范围,以便仅列出子网范围的本地 DNS 服务器。

如果你使用活动目录,情况可能会变得相当糟糕,因为区域在 DC 之间复制

答案4

我确信循环和网络掩码排序可以帮您实现这一点。Windows Server 2003 DNS 默认启用这两项功能。

相关内容