我有一个使用绑定的主/从dns系统。 主人有2个意见,一个本地和一个公众。 有2个从属服务器具有相同的视图(将configuration文件复制到从站,并将其从主站更改为从站)。 所有似乎都在工作,在我的networking,我得到了当地的networkingDNS信息,外面似乎得到公共DNS信息。
但是,现在我在异地我注意到,只有本地的DNS信息是提供什么。 我使用一些在线工具进行了检查,以挖掘我的名称服务器。 主名称服务器正在返回正确的公共DNS信息,但是从属服务器正在返回本地信息。
这是一个奴隶的configuration文件:
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"; }; };
我无法到达主站configuration文件,但实际上是相同的。 我唯一能想到的是,“公众”的观点是从主人的私人地址转移过来的,这可能是问题吗? 它是否转移地址的视图或列出的文件?
假设你的地址匹配列表是正确的,我敢打赌,你的奴隶默认情况下会看到“本地”视图(他们用来查询主机的IP匹配“本地”视图的标准),所以当一个区域发生变化并且它们同步时拉动“内部”区域并将其提供给外部世界。
如果我是对的,你的奴隶上的pri/open-exodus.net.global.fw将会有“本地”数据。
解决这个问题的最佳方法是在从属视图中使用query-source指令,以确保当他们获取区域时,他们使用IP将会看到相应的视图。