如何解析本地找不到但存在于另一个DNS服务器上的同一区域的DNS名称?
我需要为一系列Linux容器运行本地绑定DNS服务器。假设该区域是example.com 在我的基础设施中已经有一个example.com域,我想使用本地DNS服务器覆盖一些记录(它必须是DNS,而不是本地主机) 有没有办法告诉BIND检查我的本地DNS服务器,如果没有找到记录,请在另一个DNS服务器上查找同一区域的记录 我曾尝试设置转发器,但我认为这只适用于不同区域,而不是同一区域如何解析本地找不到但存在于另一个DNS服务器上的同一区域的DNS名称?,dns,bind,Dns,Bind,我需要为一系列Linux容器运行本地绑定DNS服务器。假设该区域是example.com 在我的基础设施中已经有一个example.com域,我想使用本地DNS服务器覆盖一些记录(它必须是DNS,而不是本地主机) 有没有办法告诉BIND检查我的本地DNS服务器,如果没有找到记录,请在另一个DNS服务器上查找同一区域的记录 我曾尝试设置转发器,但我认为这只适用于不同区域,而不是同一区域 有什么想法吗?做你想做的事没有简单的方法 对于繁琐的解决方案,您可以为要在父区域内覆盖的每个DNS名称定义一个区
有什么想法吗?做你想做的事没有简单的方法 对于繁琐的解决方案,您可以为要在父区域内覆盖的每个DNS名称定义一个区域文件,例如: named.conf:
zone "foo.domain" {
type master;
file "foo.domain";
}
zone "bar.domain" {
type master;
file "bar.domain";
}
foo.domain:
foo.domain. SOA ...
NS foo.domain.
A 1.2.3.4
bar.domain:
bar.domain. SOA ...
NS foo.domain.
A 2.3.4.5
你也可以尝试使用。
基本上,您的DNS服务器(如果它不知道答案)会向转发器请求IP解析
即:
# vi /etc/bind/named.conf.options
options {
directory "/var/cache/bind";
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
listen-on { 127.0.0.1; 192.168.1.0/24; };
forwarders {
10.138.27.194;
};
};
您可以使用一个响应策略区域(以下称为
rpz
),该区域允许覆盖通过绑定服务器查询的任何名称
路径指的是Debian
在选项
部分的/etc/bind/named.conf.options
中,添加:
options {
# Create a response-policy zone to allow overrides
response-policy { zone "rpz"; };
};
在/etc/bind/named.conf.local
中添加rpz
区域:
zone rpz {
type master;
file "/etc/bind/db.rpz";
allow-query { none; };
};
最后,rpz
区域文件/etc/bind/db.rpz
:
; BIND zone file for rpz zone
;
$TTL 600
@ SOA localhost. root.localhost. (
2017100300 ; Serial
86400 ; Refresh
10800 ; Retry
3600000 ; Expire
600 ; Negative Cache TTL
)
NS localhost.
google.com CNAME forcesafesearch.google.com.
example.com A 192.0.2.123