Я вижу некоторые проблемы с разрешением зоны PTR и не могу понять, что настроено неправильно.
Резюме:
1) Мне делегированы полномочия для моей зоны PTR (246.237.204.in-addr.arpa, не RFC2317), и DNS правильно показывает, что SOA - это мой сервер имен:
$ dig SOA 246.237.204.in-addr.arpa
; <<>> DiG 9.8.3-P1 <<>> SOA 246.237.204.in-addr.arpa
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37131
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;246.237.204.in-addr.arpa. IN SOA
;; ANSWER SECTION:
246.237.204.in-addr.arpa. 2452 IN SOA ns1.playnet.com. hostmaster.playnet.com. 2017092502 10800 900 86400 3600
;; Query time: 23 msec
;; SERVER: 17.128.100.12#53(17.128.100.12)
;; WHEN: Wed Sep 27 11:30:29 2017
;; MSG SIZE rcvd: 104
2) Мой DNS настроен с несколькими представлениями. Зона PTR настраивается в обоих представлениях. Сначала у меня это было только во внешнем виде, но когда я обнаружил, что это не работает, я на всякий случай добавил его и во внутреннее (LAN) представление.
zone "246.237.204.in-addr.arpa" in {
type master;
file "db.246.237.204.rev";
also-notify { 192.168.88.253 key external-key; };
allow-query { any; }
};
3) Разрешение моей локальной сети работает должным образом (dig -x 204.237.246.33 действительно дает правильный ответ).
dig -x 204.237.246.33
; <<>> DiG 9.9.5-9+deb8u13-Debian <<>> -x 204.237.246.33
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63647
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;33.246.237.204.in-addr.arpa. IN PTR
;; ANSWER SECTION:
33.246.237.204.in-addr.arpa. 3600 IN PTR maild.playnet.com.
;; AUTHORITY SECTION:
246.237.204.in-addr.arpa. 3600 IN NS ns1.playnet.com.
246.237.204.in-addr.arpa. 3600 IN NS ns2.playnet.com.
;; ADDITIONAL SECTION:
ns1.playnet.com. 7200 IN A 192.168.88.252
ns2.playnet.com. 7200 IN A 192.168.88.253
;; Query time: 2 msec
;; SERVER: 192.168.88.252#53(192.168.88.252)
;; WHEN: Wed Sep 27 13:13:01 CDT 2017
;; MSG SIZE rcvd: 155
4) Разрешение из ВНЕШНЕЙ ЛВС не работает с NXDOMAIN для любого настроенного хоста в обратной зоне:
$ dig -x 204.237.246.33
; <<>> DiG 9.8.3-P1 <<>> -x 204.237.246.33
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 13946
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;33.246.237.204.in-addr.arpa. IN PTR
;; Query time: 95 msec
;; SERVER: 17.128.100.12#53(17.128.100.12)
;; WHEN: Wed Sep 27 11:21:12 2017
;; MSG SIZE rcvd: 45
Q1: Если SOA верна, почему мой NS не запрашивается для этого?
А теперь самое странное. Когда я указываю свой сервер имен в запросе, внешнем по отношению к моей локальной сети, ответ, который я получаю извне, имеет странные полномочия:
$ dig @ns1.playnet.com -x 204.237.246.33
; <<>> DiG 9.8.3-P1 <<>> @ns1.playnet.com -x 204.237.246.33
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 37679
;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;33.246.237.204.in-addr.arpa. IN PTR
;; AUTHORITY SECTION:
168.192.IN-ADDR.ARPA. 86400 IN SOA 168.192.IN-ADDR.ARPA. . 0 28800 7200 604800 86400
;; Query time: 43 msec
;; SERVER: 204.237.246.252#53(204.237.246.252)
;; WHEN: Wed Sep 27 11:14:18 2017
;; MSG SIZE rcvd: 100
Q2: Как получилось, что 168.192.in-addr.arpa отображается как авторитетный? Откуда это пришло?
Моя внутренняя локальная сеть является сеть RFC 1912 (192.168.88.0/24), и я указал эту зону во внутреннем представлении:
zone "88.168.192.in-addr.arpa" {
type master;
file "/etc/bind/internal/db.88.168.192.in-addr.arpa";
also-notify { 192.168.88.253 key internal-key; };
};
Q3: Означает ли тот факт, что когда я запрашиваю свой NS напрямую и получаю NXDOMAIN, это неправильная конфигурация на моем NS, или это может быть проблема с конфигурацией моего ISP?
Заранее спасибо ... из-за этой проблемы я теряю сон!
Q1: Я не совсем понимаю рассуждения.
Q2: Это действительно странно, я не верю, что BIND может ответить чем-то совершенно не связанным с этим.
Q3: Обычно я бы сказал «да», но, учитывая Q2, я подозреваю, что это может быть не то, что происходит в данном конкретном сценарии.
Я также вижу, что через UDP и TCP можно получить совершенно разные ответы.
Это в сочетании с Q2 наводит меня на мысль, что либо что-то другое, кроме BIND, привязано к 53 / udp на интерфейсе WAN, либо есть что-то еще «посередине», которое вмешивается в трафик.
Проверьте, какой процесс привязан к 53 / udp по этому адресу (netstat -plnut
или аналогичный) для начала.
По UDP ответ соответствует вашему вопросу, но по TCP:
$ dig @204.237.246.253 -x 204.237.246.33 +norec +tcp
; <<>> DiG 9.11.1-P3-RedHat-9.11.1-2.P3.fc26 <<>> @204.237.246.253 -x 204.237.246.33 +norec +tcp
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50398
;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;33.246.237.204.in-addr.arpa. IN PTR
;; ANSWER SECTION:
33.246.237.204.in-addr.arpa. 3600 IN PTR maild.playnet.com.
;; AUTHORITY SECTION:
246.237.204.in-addr.arpa. 3600 IN NS ns1.playnet.com.
246.237.204.in-addr.arpa. 3600 IN NS ns2.playnet.com.
;; ADDITIONAL SECTION:
ns1.playnet.com. 14400 IN A 204.237.246.252
ns2.playnet.com. 14400 IN A 204.237.246.253
;; Query time: 128 msec
;; SERVER: 204.237.246.253#53(204.237.246.253)
;; WHEN: Wed Sep 27 18:49:34 UTC 2017
;; MSG SIZE rcvd: 155
$