我有一个使用 bind 的主/从 DNS 系统。主服务器有 2 个视图,一个本地视图和一个公共视图。有 2 个从服务器具有相同的视图(将配置文件复制到从服务器并将其从主服务器更改为从服务器)。一切似乎都在运行,在我的网络内部我获得了本地网络 DNS 信息,而外部似乎获得了公共 DNS 信息。
但是现在我已经不在现场了,我注意到提供的是本地专用 DNS 信息。我使用一些在线工具检查了我的名称服务器。主名称服务器返回了正确的公共 DNS 信息,但是从属服务器返回的是本地专用信息。
这是一个从属设备的配置文件:
options {
directory "/var/bind";
pid-file "/var/run/named/named.pid";
listen-on-v6 { ::1; 2002:4b94:5e92::1; 2002:4b94:5e91:2::31; };
listen-on { 127.0.0.1; 75.148.94.146; 192.168.0.31; };
transfer-source-v6 2002:4b94:5e91:2::31;
allow-query { any; };
recursion no;
};
logging {
channel default_log {
file "/var/log/named/named.log" versions 5 size 50M;
print-time yes;
print-severity yes;
print-category yes;
};
category default { default_log; };
category general { default_log; };
};
view "local" {
match-clients { 192.168.0.0/16; 127.0.0.1; 2002:4b94:5e91:2::/16; };
recursion yes;
zone "." IN {
type hint;
file "named.cache";
};
zone "open-exodus.net" {
type slave;
masters { 2002:4b94:5e91:2::2; };
file "pri/open-exodus.net.local.fw";
};
zone "0.168.192.in-addr.arpa" {
type slave;
masters { 2002:4b94:5e91:2::2; };
file "pri/open-exodus.net.local.rev";
};
# zone "2.0.0.0.0.0.0.0.1.9.e.5.4.9.b.4.2.0.0.2.ip6.arpa" {
# type master;
# file "pri/open-exodus.net.local.ip6.rev";
# };
};
view "public" {
match-clients { any; };
recursion no;
zone "open-exodus.net" {
type slave;
masters { 2002:4b94:5e91:2::2; };
file "pri/open-exodus.net.global.fw";
};
};
我无法从异地获取主配置文件,但它几乎完全相同。我唯一能想到的是“公共”视图从主私有地址传输,这可能是问题所在吗?它是为地址传输视图,还是为列出的文件传输视图?
答案1
假设您的地址匹配列表正确,我敢打赌您的从服务器默认看到的是“本地”视图(它们用于查询主服务器的 IP 与“本地”视图的标准相匹配),因此当区域发生变化并且它们同步时,它们会拉出“内部”区域并将其提供给外部世界。
如果我是对的,pri/open-exodus.net.global.fw
您的从服务器中将有“本地”数据。
解决此问题的最佳方法是使用query-source
从属服务器视图中的指令,以确保当它们获取区域时,它们使用可以看到适当视图的 IP...