你好,我已经创建了 3 个绑定服务器用于公共解析(权威)。
我有 3 个观点:
- 世界(具有 Any acl)
- 东亚(具有 GeoIP acl)
- 内部(用于内部 IP)
我想为我的所有视图共享一些公共区域,例如,我想在除域 c 之外的所有视图上解析域 a.com 和域 b.com。
到目前为止我尝试了以下两种方法:
第一种方法
我试图做一个包含所有视图的公共区域会议。但它似乎不起作用,我尝试了这个解决方案:全局区域在所有视图中可见
但得到了:
common.zones:3: writeable file 'slave/aaa.example.org': already in use: common.zones:3
该问题仅发生在从属设备上,因此似乎已被弃用。
参见此网站:全局区域在所有视图中可见
第二种方法
我看到的另一个解决方案是使用 in-view 语句。我尝试过这个:
view "common" {
match-clients { none; };
include "/etc/bind/common-view.conf";
};
view "world" {
match-clients { !key internal-key; !key east-asia-key; world-client; };
allow-transfer { !key internal-key; !key east-asia-key; srv1; srv2; };
in-view "common";
include "/etc/bind/named.conf.default-zones";
include "/etc/bind/master.conf";
};
不幸的是它似乎也不起作用:
Nov 8 17:48:50 bind1 named[19725]: /etc/bind/master.internal.conf:4: unknown option 'in-view' Nov 8 17:48:50 bind1 named[19725]: /etc/bind/master.asia.conf:4: unknown option 'in-view' Nov 8 17:48:50 bind1 named[19725]: /etc/bind/named.conf:16: unknown option 'in-view'
。
我知道我可以在所有区域上执行这样的视图内语句,但如果我需要添加/删除/更新区域,则必须对每个视图文件进行 3 次修改,这将非常麻烦。
view "mordor" {
...
zone example.com {
...
};
};
view "gondor" {
...
zone example.com {
in-view "mordor";
};
};
view "khand" {
...
zone example.com {
in-view "mordor";
};
};
这是我的命名 -V 输出:
root@bind1:~# named -V
BIND 9.11.4-P2-3~bpo9+1-Debian (Extended Support Version) <id:7107deb>
running on Linux x86_64 4.9.0-8-amd64 #1 SMP Debian 4.9.110-3+deb9u4 (2018-08-21)
built by make with '--build=x86_64-linux-gnu' '--prefix=/usr' '--includedir=/usr/include' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--sysconfdir=/etc' '--localstatedir=/var' '--disable-silent-rules' '--libdir=/usr/lib/x86_64-linux-gnu' '--libexecdir=/usr/lib/x86_64-linux-gnu' '--disable-maintainer-mode' '--disable-dependency-tracking' '--libdir=/usr/lib/x86_64-linux-gnu' '--sysconfdir=/etc/bind' '--with-python=python3' '--localstatedir=/' '--enable-threads' '--enable-largefile' '--with-libtool' '--enable-shared' '--enable-static' '--with-gost=no' '--with-openssl=/usr' '--with-gssapi=/usr' '--with-libidn2' '--with-libjson=/usr' '--with-lmdb=/usr' '--with-gnu-ld' '--with-geoip=/usr' '--with-atf=no' '--enable-ipv6' '--enable-rrl' '--enable-filter-aaaa' '--enable-native-pkcs11' '--with-pkcs11=/usr/lib/softhsm/libsofthsm2.so' '--with-randomdev=/dev/urandom' '--enable-dnstap' '--with-eddsa=no' 'build_alias=x86_64-linux-gnu' 'CFLAGS=-g -O2 -fdebug-prefix-map=/build/bind9-jvc86P/bind9-9.11.4.P2+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -fno-strict-aliasing -fno-delete-null-pointer-checks -DNO_VERSION_DATE -DDIG_SIGCHASE' 'LDFLAGS=-Wl,-z,relro -Wl,-z,now' 'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2'
先感谢您。
答案1
我彻底改变了我的配置结构。有了这个 KB: https://kb.isc.org/docs/aa-00851 示例 4 - 现在具有共享区域