我们目前有一个私有的DNS服务,我们希望迁移到Bind9。因此,我必须将当前的配置迁移到Bind9,但设置它时遇到了问题。
这是背景。
我有一个公共域名"acme.com“由一个注册员管理。在这个登记处,我管理公共域名,例如:
acme.com IN A < Public IP server 1 >
www.acme.com IN A < Public IP server 1 >
*.acme.com IN A < Public IP server 1 >
other.acme.com IN A < Public IP server 2 >在公司的内部DNS服务器上,我们有"acme.com“的子域名,如"application-1.acme.com”。
我所做的Bind9配置现在允许我解析诸如"google.com“这样的公共域名,也可以解析"application-1.acme.com”这样的私有域名。
但是,如果我试图解析我们的注册商管理的域名,比如"acme.com“或"www.acme.com",那么DIG应用程序就会给我这样的答案:
dig @10.0.0.254 acme.com
; <<>> DiG 9.11.5-P4-5.1+deb10u2-Debian <<>> @10.0.0.254 acme.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25017
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: a231205f94a3ec92010000005fa95de884db288162c0f9b9 (good)
;; QUESTION SECTION:
;acme.com. IN A
;; AUTHORITY SECTION:
acme.com. 600 IN SOA ns1.acme.inc. admin. acme.inc. 2020110501 3600 600 86400 600
;; Query time: 2 msec
;; SERVER: 192.168.0.245 #53(10.0.0.254)
;; WHEN: Mon Nov 09 16:19:03 CET 2020
;; MSG SIZE rcvd: 124这是我的named.conf文件:
acl "trusted" {
// some ip range
};
options {
directory "/var/cache/bind";
listen-on { any; };
listen-on-v6 { any; };
allow-query { any; };
allow-transfer { none; };
pid-file "/var/run/named/named.pid";
allow-recursion { trusted; };
recursion yes;
forward only;
forwarders { 8.8.8.8; 8.8.4.4; };
dnssec-validation auto;
auth-nxdomain no;
};
view "trusted" {
match-clients { trusted; };
recursion yes;
zone "acme.com" IN {
type master;
file "/etc/bind/zones/acme.com.zone";
};
};在这里,acme.com.zone文件:
$TTL 3600;
@ IN SOA ns1.acme. admin.acme. (
2020110501;
3600;
600;
86400;
600 );
IN NS ns1.acme.
ns1.acme. IN A 10.0.0.254
application-1 IN A 10.0.1.1
application-2 IN A 10.0.1.2
application-3 IN A 10.0.1.3我不明白我的设置有什么问题。
发布于 2020-11-10 14:58:12
因为绑定服务器对于example.com是权威的,所以即使是子域的NXDOMAIN,它也不会执行递归。您要么需要使用另一个级别的子域application.sub.example.com,要么使用应对政策区(RPZ)配置单独的异常。
发布于 2020-11-10 15:20:14
事后帮助不大,但一般来说,您不希望内部/私有DNS服务器的内部主机名仅位于(相同)顶级域区域中,这与您对公共主机名使用的内容相同。
因为当您这样做时,您将得到您现在所面临的情况:某种形式的影子簿记,以确保您的内部DNS将返回与您的DNS注册程序中存在的每个公共DNS记录相同的结果。
最好在您的域中指定一个子域供内部使用(例如int.example.com与记录application-1.int.example.com和application-2.int.example.com等)。或者,当您拥有这两种情况时:在内部使用example.net和公开使用example.com。
您需要做的一个工作是将您的公共DNS记录复制到您的内部DNS中,并获得以下内容:
$TTL 3600;
@ IN SOA ns1.example. admin.example. (
2020110501;
3600;
600;
86400;
600 );
IN NS ns1.example.com.
ns1.example.com. IN A 10.0.0.254
application-1.example.com. IN A 10.0.1.1
application-2.example.com. IN A 10.0.1.2
application-3.example.com. IN A 10.0.1.3
example.com. IN A < Public IP server 1 >
www.example.com. IN A < Public IP server 1 >
*.example.com. IN A < Public IP server 1 >
other.example.com. IN A < Public IP server 2 >不过,您可以避免这个问题,只需在公共DNS区域中发布内部主机名和公共主机名:公用DNS中的专用IP地址。
https://serverfault.com/questions/1042027
复制相似问题