Как исправить периодические ошибки DNS при использовании Pihole и локального Bind9 DNS

Краткое описание проблемы:

Клиенты в моей сети не могут разрешить login.live.com. При запуске «host login.live.com» они получают:

      $ host login.live.com 
;; communications error to 10.0.0.52#53: end of file
;; Connection to 10.0.0.50#53(10.0.0.50) for login.live.com failed: timed out.
;; communications error to 10.0.0.52#53: end of file

Если я затем выполню команду «dig login.live.com», он получит действительный ответ, и сразу после этого «host login.live.com» также начнет возвращать ответ. Затем через некоторое время он снова не работает.

Полный вывод команд хоста и копания ниже.

Что может быть причиной этой проблемы?

Как это исправить? Или даже отладить его дальше?

Bind9, похоже, не выдает никаких важных данных журнала.

Подробности о моем окружении:

В моей локальной сети есть два DNS-сервера: основной DNS и Pihole.

Основной DNS-сервер — это сервер Bind9, работающий на Debian. Он действует как DNS-сервер для локальной сети и позволяет разрешать локальные адреса, а также восходящий DNS. Этот DNS-сервер используется большинством серверов и устройств в сети. Адрес основного DNS-сервера — 10.0.0.50.

У меня также есть дополнительный DNS-сервер: pihole. Это Raspberrypi 3 с версией Pihole 5.8.1. Pihole действует как DNS-сервер, который блокирует DNS-запросы ко многим рекламным сетям.

Pihole настроен на использование основного DNS-сервера (10.0.0.50) в качестве восходящего DNS-сервера. Таким образом, любой DNS-запрос, который явно не находится в черном списке Pihole, немедленно перенаправляется на основной DNS-сервер. Адрес Пихола — 10.0.0.52.

Клиенты настроены с двумя серверами имен в их /etc/resolv.conf:

      nameserver 10.0.0.52
nameserver 10.0.0.50

Все клиенты работают под управлением Linux. В основном Debian 10 и 11.

Я убедился, что в pihole нет фильтра черного списка, соответствующего логину.live.com. Так что это не то. Я также попробовал временно отключить pihole. Но проблема сохраняется.

Полный вывод команд dig и хоста на клиенте:

      (root@muscat) (2022-01-20 14:31:59) [0]
~# host login.live.com
;; communications error to 10.0.0.52#53: end of file

;; Connection to 10.0.0.50#53(10.0.0.50) for login.live.com failed: connection refused.
(root@muscat) (2022-01-20 14:32:16) [0]
~# dig login.live.com

; <<>> DiG 9.16.22-Debian <<>> login.live.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52488
;; flags: qr rd ra; QUERY: 1, ANSWER: 12, AUTHORITY: 10, ADDITIONAL: 11

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 0d2944eb18058a23735dde5861e96462433b0a9093dc2ce8 (good)
;; QUESTION SECTION:
;login.live.com.                        IN      A

;; ANSWER SECTION:
login.live.com.         297     IN      CNAME   login.msa.msidentity.com.
login.msa.msidentity.com. 297   IN      CNAME   www.tm.lg.prod.aadmsa.akadns.net.
www.tm.lg.prod.aadmsa.akadns.net. 57 IN CNAME   prda.aadg.msidentity.com.
prda.aadg.msidentity.com. 297   IN      CNAME   www.tm.a.prd.aadg.akadns.net.
www.tm.a.prd.aadg.akadns.net. 297 IN    A       20.190.160.70
www.tm.a.prd.aadg.akadns.net. 297 IN    A       20.190.160.1
www.tm.a.prd.aadg.akadns.net. 297 IN    A       20.190.160.135
www.tm.a.prd.aadg.akadns.net. 297 IN    A       20.190.160.74
www.tm.a.prd.aadg.akadns.net. 297 IN    A       20.190.160.9
www.tm.a.prd.aadg.akadns.net. 297 IN    A       20.190.160.72
www.tm.a.prd.aadg.akadns.net. 297 IN    A       20.190.160.7
www.tm.a.prd.aadg.akadns.net. 297 IN    A       20.190.160.133

;; AUTHORITY SECTION:
akadns.net.             5125    IN      NS      a11-129.akadns.net.
akadns.net.             5125    IN      NS      a7-131.akadns.net.
akadns.net.             5125    IN      NS      a28-129.akagtm.org.
akadns.net.             5125    IN      NS      a18-128.akagtm.org.
akadns.net.             5125    IN      NS      a3-129.akadns.net.
akadns.net.             5125    IN      NS      a12-131.akagtm.org.
akadns.net.             5125    IN      NS      a1-128.akadns.net.
akadns.net.             5125    IN      NS      a13-130.akagtm.org.
akadns.net.             5125    IN      NS      a5-130.akagtm.org.
akadns.net.             5125    IN      NS      a9-128.akadns.net.

;; ADDITIONAL SECTION:
a1-128.akadns.net.      5125    IN      A       193.108.88.128
a3-129.akadns.net.      5125    IN      A       96.7.49.129
a5-130.akagtm.org.      48773   IN      A       95.100.168.130
a7-131.akadns.net.      5125    IN      A       23.61.199.131
a9-128.akadns.net.      5125    IN      A       184.85.248.128
a11-129.akadns.net.     5125    IN      A       84.53.139.129
a12-131.akagtm.org.     48773   IN      A       184.26.160.131
a13-130.akagtm.org.     48773   IN      A       2.22.230.130
a18-128.akagtm.org.     48773   IN      A       95.101.36.128
a28-129.akagtm.org.     48773   IN      A       95.100.173.129

;; Query time: 12 msec
;; SERVER: 10.0.0.52#53(10.0.0.52)
;; WHEN: Thu Jan 20 14:32:18 CET 2022
;; MSG SIZE  rcvd: 721

(root@muscat) (2022-01-20 14:32:18) [0]
~# host login.live.com
login.live.com is an alias for login.msa.msidentity.com.
login.msa.msidentity.com is an alias for www.tm.lg.prod.aadmsa.akadns.net.
www.tm.lg.prod.aadmsa.akadns.net is an alias for prda.aadg.msidentity.com.
prda.aadg.msidentity.com is an alias for www.tm.a.prd.aadg.akadns.net.
www.tm.a.prd.aadg.akadns.net has address 20.190.160.133
www.tm.a.prd.aadg.akadns.net has address 20.190.160.7
www.tm.a.prd.aadg.akadns.net has address 20.190.160.72
www.tm.a.prd.aadg.akadns.net has address 20.190.160.9
www.tm.a.prd.aadg.akadns.net has address 20.190.160.74
www.tm.a.prd.aadg.akadns.net has address 20.190.160.135
www.tm.a.prd.aadg.akadns.net has address 20.190.160.1
www.tm.a.prd.aadg.akadns.net has address 20.190.160.70
(root@muscat) (2022-01-20 14:32:20) [0]
~# host login.live.com
;; communications error to 10.0.0.52#53: end of file

;; Connection to 10.0.0.50#53(10.0.0.50) for login.live.com failed: connection refused.
(root@muscat) (2022-01-20 14:33:37) [0]
~# host login.live.com
;; communications error to 10.0.0.52#53: end of file

;; Connection to 10.0.0.50#53(10.0.0.50) for login.live.com failed: connection refused.
(root@muscat) (2022-01-20 14:34:05) [0]
~#

1 ответ

Хорошо. Итак, наконец-то решили эту проблему. Проблема заключалась в том, что брандмауэр DNS-сервера не разрешал TCP/53. В большинстве случаев это работает, поскольку по умолчанию DNS работает через UDP. Однако в данном конкретном случае размер ответа превышает максимальный размер, разрешенный для пакетов DNS/udp (где-то между 512–580 байтами), поэтому хост переключается на TCP. Тогда это терпит неудачу.

Другие вопросы по тегам