DNS基础设施概念问题

DNS基础设施概念问题,dns,bind,powerdns,Dns,Bind,Powerdns,我写信给你是因为我的DNS infrastructure.DNS有一个概念问题。我的基础设施由一台DNS机器(递归或转发)和另一个authoritave组成,后者根据客户端的源拥有say视图(即使不是这样,我们也可以将其同化为Bind)。不应直接查询此自动机器,但必须通过另一台机器进行查询。这里总结一下基础设施: > Client Location 1 Client Location 2 Client Location 3 > \

我写信给你是因为我的DNS infrastructure.DNS有一个概念问题。我的基础设施由一台DNS机器(递归或转发)和另一个authoritave组成,后者根据客户端的源拥有say视图(即使不是这样,我们也可以将其同化为Bind)。不应直接查询此自动机器,但必须通过另一台机器进行查询。这里总结一下基础设施:

> Client Location 1     Client Location 2   Client Location 3
>               \           |           /
>               DNS Recursive ou Forwarding
>                           |           
>               DNS Authoratitve with 3 « views ».
我想到了不同的解决方案来解决这些问题:

  • 在DNS Recursive(或Forwading)上创建不同的端口,每个端口包含一个DNS,该DNS将对应于一个查询权威DNS(从而识别来源)的视图。但我发现这个解决方案相当丑陋,如果视图数量增加,这个问题将迅速增加
  • 使用DNS扩展名:EDNS转发客户端网络(但这似乎相当复杂)
我想知道你是否有其他的解决方案,如果没有,什么是最好的。
提前谢谢你

第一个解决方案似乎并不可行,因为在各种终端客户端操作系统中几乎没有办法更改默认DNS端口。相反,您需要在单独的IP地址上使用单独的递归名称服务器,并且每个客户端都配置了它需要使用的特定名称服务器

第二种解决方案可以工作,它是ECS的“EDNS客户端子网”功能,在各种名称服务器中都有描述和支持。请参见Bind中的示例:

现在你真的确定你需要这个设置,还是这是实现你目标的唯一途径?很难提出其他想法,就像你描述的那样,从一开始你的解决方案,但实际上不是你最初的问题,也不是你的限制

例如,在某些情况下,只需为每个客户机配置不同的域搜索列表就可以解决此问题
client1
client1.example.com
作为后缀,
client2
client2.example.com
依此类推。现在,只有一个标准递归名称服务器和一个权威的
example.com
名称服务器,没有任何扩展或复杂的设置,当
client1
尝试解析
www
时,它将(5月)获得与
client2
不同的回复,同时尝试解析
www
,因为最后两个完全限定的域名确实不同(
www.client1.example.com
vs
www.client2.example.com
),因为搜索列表不同。当然,这在很大程度上取决于每个客户机上运行的应用程序类型

使用更简单的名称服务器,如
dnsmasq
,也可能会有所帮助,但您的空间问题定义得不够明确,无法确定建议的内容