绑定命名服务器 – 将一些请求转发给其他服务器

有没有办法使绑定回答一些查询,而是将所有其他查询(同一个域)转发到另一个服务器,如下所示:

example.com A 127.0.0.1 www.example.com A 127.0.0.1 

一切不在此列表(example.com MX,ftp.example.com A等) – 请求192.168.0.1(另一个DNS服务器)

本质上我想拦截一些(但不是全部)查询(在本例中)192.168.0.1并回答。

 example.com A- intercept www.example.com - intercept example.com MX - pass trough ftp.example.com - pass trough 

这对于BIND来说是相当棘手的。 虽然这不是什么问你有没有考虑使用DNSMasq这样的事情是相对简单的另一个DNS服务器?

您的BIND服务器将默认使用/etc/resolv.conf的DNS服务器来parsing非权威性的logging,但仅限于localhost(即本身)和localnet(见下文)。 你应该确保这些都是相应的设置。

localnets的定义 :

匹配运行BIND的服务器的所有IP地址和子网掩码。 例如,如果服务器具有IP地址为192.168.2.3,networking掩码为255.255.255.0(或192.168.2.2/24)的单个接口,则本地networking将匹配192.168.2.0至192.168.2.255和127.0.0.1(回送始终存在,并有一个单一的地址,这是一个networking掩码255.255.255.255)。 某些系统不提供确定本地IPv6地址前缀长度的方法。 在这种情况下,localnet只能匹配本地IP地址,就像localhost一样,尽pipe在这种情况下它将应用于外部和内部(相同的主机)请求。

您也可以像这样明确定义全球转发器,记住要保护您的环境:

 options { recursion yes; allow-recursion-on { 192.168/24; }; forwarders { 8.8.8.8; 8.8.4.4; }; }; 

如果要将特定域的查询引导至特定服务器,可以通过为各个域configuration转发器来执行此操作:

 zone "myothernet.local" { type forward; forwarders { 192.168.50.11; 192.168.50.12; }; }; 

进一步阅读:

我认为你需要子域代表团。 。 但是,通常设置为将区域中的特定子域指向另一个服务器。

就你而言,将区域分配给辅助服务器,在那里设置通配符logging,以及为指向主服务器的特定子域设置子域代理可能更容易。