Назад | Перейти на главную страницу

Проблемы с многовидовым DNS PTR

Я вижу некоторые проблемы с разрешением зоны 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

$