![BIND DNS 可以工作,但 BIND 视图根本不起作用](https://linux22.com/image/751633/BIND%20DNS%20%E5%8F%AF%E4%BB%A5%E5%B7%A5%E4%BD%9C%EF%BC%8C%E4%BD%86%20BIND%20%E8%A7%86%E5%9B%BE%E6%A0%B9%E6%9C%AC%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
早上好,我们公司计划为视图实施 BIND DNS。因此,我在 VMware 工作站(没有 dhcp 网络)中设置了一个小型测试环境来使用视图。我有 3 个 CentOS8 盒子,其中一个安装了 BIND。DNS 工作正常,但视图设置不正确。基本上,centos dns 客户端可以解析任何东西,就好像没有实施视图一样。我预计一个域中的一个客户端无法解析另一个域,反之亦然。我已经关注了这个视频我已经关注了这个视频 youtube.com/watch?v=AXsM18yyDQE 。下面是所涉及的配置文件,一切都按视频中的方式设置,但有些不对劲,我看不出是什么。
命名配置文件
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
acl mezam {
192.168.161.0/24;
localhost;
};
acl silverz {
192.168.162.0/24;
};
命名的.conf.选项
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
directory "/var/named";
dnssec-validation auto;
allow-query { "any";};
allow-recursion { "any";};
};
命名的.conf.本地
view "mezam"
{
match-clients { mezam; };
zone "mezam.org." IN {
type master;
file "mezam.org.internal.zone";
};
zone "." IN {
type hint;
file "/var/named/named.ca";
};
};
view "silverz"
{
match-clients { silverz; };
zone "silverz.org." IN {
type master;
file "silverz.org.internal.zone";
};
};
和区域:
$ORIGIN mezam.org.
$TTL 3M
@ IN SOA ns1.mezam.org. hostmaster.mezam.org. 2020042402 3M 3M 3M 3M
IN NS ns1.mezam.org.
IN A 192.168.161.5
ns1 IN A 192.168.161.5
centos8 IN A 192.168.161.10
-
$ORIGIN silverz.org.
$TTL 3M
@ IN SOA ns1.silverz.org. hostmaster.silverz.org. 2020042502 3M 3M 3M 3M
IN NS ns1.silverz.org.
IN A 192.168.161.5
ns1 IN A 192.168.161.5
centos8x IN A 192.168.162.10
我重新启动了绑定服务器,但直到我在 named.conf.options 文件中添加了 recursion yes 后,问题才得以解决。现在,下面是来自 162 网络中的 dns 客户端对 mezam.org 域的 dig 输出,它应该被拒绝,但实际上却被接受了:
[root@centos8x ~]# dig mezam.org
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el8 <<>> mezam.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51598
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 3e631d936b78fff089f3f8f45ea6b43109ba002df1beb326 (good)
;; QUESTION SECTION:
;mezam.org. IN A
;; ANSWER SECTION:
mezam.org. 180 IN A 192.168.161.5
;; AUTHORITY SECTION:
mezam.org. 180 IN NS ns1.mezam.org.
;; ADDITIONAL SECTION:
ns1.mezam.org. 180 IN A 192.168.161.5
;; Query time: 0 msec
;; SERVER: 192.168.161.5#53(192.168.161.5)
;; WHEN: Mon Apr 27 12:30:09 CEST 2020
;; MSG SIZE rcvd: 116
答案1
从问题中可以看出,网络中的客户端向(另一个网络中的名称服务器的地址)192.168.162.0/24
发送查询并得到错误的观点(表示为权威答案)。192.168.161.5
这就带来一个问题,192.168.162.0/24
网络与192.168.161.0/24
网络之间的连通性怎么样?有没有NAT?
要确认这一点,请启用查询日志或tcpdump
在名称服务器计算机上运行,以确认来自其他网络的查询的源地址是什么。
如果源地址是网络中路由器接口的地址192.168.161.0/24
,则表明它正在这些网络之间进行 NAT(这当然会破坏这种地址匹配)。
根据评论,似乎用于测试的主机是虚拟机,其互连环境是基于 NAT 的。