バインド9.8.2を実行し、ビューの1つにあるホストにクエリを実行するとservfailエラーが発生します。これが私のconfファイルの一部です。
view "insideview" {
match-clients { 192.168.100.202; };
zone "internal" IN {
type master;
file "/var/named/db.internal.com";
notify yes;
allow-update { none; };
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
};
view "external" {
match-clients { any; };
extzone1
extzone2
extzone3
extzone4
etc, etc...
};
失敗は、一致リスト(192.168.100.102)にあるクライアントがinternal.comdbファイルの内部ゾーンにあるホストにクエリを実行しようとした場合にのみ発生します。これが私のdbファイルです。
$TTL 86400
@ IN SOA dns.testlab.net. root.testlab.net. (
2015012877
28800 ; refresh 8 hours
7200 ; retry 2 hours
864000 ; expire 10 days
86400 ; min ttl 1 day
)
IN NS dns.testlab.net.
server1 IN A 192.168.155.206
したがって、192.168.100.202からserver1.testlab.netにクエリを実行すると、servfailが発生します。デバッグを行いました。これがロギングからの出力です。
12-Aug-2016 10:57:59.764 query-errors: debug 1: client 192.168.100.202#41591: view insideview: query failed (SERVFAIL) for server1.testlab.net/IN/A at query.c:6569
12-Aug-2016 10:57:59.764 query-errors: debug 2: fetch completed at resolver.c:3076 for server1.testlab.net/A in 0.000047: failure/success [domain:testlab.net,referral:0,restart:1,qrysent:0,timeout:0,lame:0,nete rr:0,badresp:0,adberr:2,findfail:0,valfail:0]
そして、サービスのリロード後の/ var/log/messagesは次のようになります。
received control channel command 'reload'
loading configuration from '/etc/named.conf'
reading built-in trusted keys from file '/etc/named.iscdlv.key'
using default UDP/IPv4 port range: [1024, 65535]
using default UDP/IPv6 port range: [1024, 65535]
no IPv6 interfaces found
sizing zone task pool based on 18 zones
Warning: view insideview: 'empty-zones-enable/disable-empty-zone' not set: disabling RFC 1918 empty zones
Warning: view extview: 'empty-zones-enable/disable-empty-zone' not set: disabling RFC 1918 empty zones
reloading configuration succeeded
reloading zones succeeded
zone internal/IN/insideview: loaded serial 2015012877
zone testlab.net/IN/extview: zone serial (2015091713) unchanged. zone may fail to transfer to slaves.
zone testlab.net/IN/extview: loaded serial 2015091713
received control channel command 'stats'
dumpstats complete
「any」リストに含まれる別のホストIPからDNSサーバーにクエリを実行すると、結果が返されますが、「外部」ビューにリストされているゾーンに対してのみ、期待どおりに機能します。誰かが私の内部ビューが機能していない理由を理解するのを手伝ってもらえますか?
これを変更しました:
view "insideview" {
match-clients { 192.168.100.202; };
zone "internal" IN {
これに:
view "insideview" {
match-clients { 192.168.100.102; };
zone"testlab.net" IN {
期待どおりに動作するようになりました。