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

BIND не может запросить внешние записи DNS

К сожалению, я системный администратор-любитель и не могу понять, что происходит с BIND (9.8). У нас есть два старых сервера Samba, которые мы используем в качестве контроллеров домена Active Directory, и поэтому они также являются нашими DNS-серверами. Сегодня внезапно все наши внешние DNS-запросы перестали работать, а внутренние все еще работают. Например (все IP-адреса удалены в целях безопасности):

adminlocal@srvdc2:~$ dig +trace +additional google.com

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> +trace +additional google.com
;; global options: +cmd
.                       19357   IN      NS      a.root-servers.net.
.                       19357   IN      NS      m.root-servers.net.
.                       19357   IN      NS      d.root-servers.net.
.                       19357   IN      NS      l.root-servers.net.
.                       19357   IN      NS      c.root-servers.net.
.                       19357   IN      NS      i.root-servers.net.
.                       19357   IN      NS      e.root-servers.net.
.                       19357   IN      NS      k.root-servers.net.
.                       19357   IN      NS      g.root-servers.net.
.                       19357   IN      NS      f.root-servers.net.
.                       19357   IN      NS      h.root-servers.net.
.                       19357   IN      NS      b.root-servers.net.
.                       19357   IN      NS      j.root-servers.net.
;; Received 228 bytes from xxx.xxx.xxx.xxx#53(xxx.xxx.xxx.xxx) in 123019 ms

.                       3600    IN      NS      FWDR-166.FWDR-35.FWDR-80.FWDR-91.
.                       3600    IN      NS      FWDR-133.FWDR-35.FWDR-80.FWDR-91.
FWDR-166.FWDR-35.FWDR-80.FWDR-91. 3600 IN A     91.80.35.166
FWDR-133.FWDR-35.FWDR-80.FWDR-91. 3600 IN A     91.80.35.133
;; BAD (HORIZONTAL) REFERRAL
dig: couldn't get address for 'FWDR-166.FWDR-35.FWDR-80.FWDR-91': no more

Тем не менее, Интернет работает, и поэтому я могу нормально пинговать сервер Google:

adminlocal@srvdc2:~$ ping 216.58.208.174
PING 216.58.208.174 (216.58.208.174) 56(84) bytes of data.
64 bytes from 216.58.208.174: icmp_req=1 ttl=53 time=48.9 ms
64 bytes from 216.58.208.174: icmp_req=2 ttl=53 time=49.4 ms

Я также могу выполнять DNS-запросы через другой сервер:

root@srvdc2:/etc/bind# dig @1.1.1.1 google.com

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> @1.1.1.1 google.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34033
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;google.com.                    IN      A

;; ANSWER SECTION:
google.com.             96      IN      A       172.217.21.78

;; Query time: 61 msec
;; SERVER: 1.1.1.1#53(1.1.1.1)
;; WHEN: Fri Mar 27 17:42:22 2020
;; MSG SIZE  rcvd: 44

Кроме того, в /var/log/messages я вижу это named все время выдает кучу ошибок:

root@srvdc2:~# tail /var/log/messages
Mar 27 17:26:13 srvdc2 rsyslogd-2177: imuxsock begins to drop messages from pid 2105 due to rate-limiting
Mar 27 17:26:17 srvdc2 rsyslogd-2177: imuxsock lost 55 messages from pid 2105 due to rate-limiting
Mar 27 17:26:26 srvdc2 rsyslogd-2177: imuxsock begins to drop messages from pid 2105 due to rate-limiting
Mar 27 17:26:29 srvdc2 rsyslogd-2177: imuxsock lost 68 messages from pid 2105 due to rate-limiting
...
root@srvdc2:~# ps -ef | grep 2105
bind      2105     1  1 17:11 ?        00:00:16 /usr/sbin/named -u bind

Конечно, Интернет работает на машинах, если я заставляю DNS указывать на внешний DNS-сервер, но тогда они теряют доступ к внутренним ресурсам. Есть ли у кого-нибудь идеи, что я могу сделать, чтобы узнать больше о проблеме?

Искренне благодарим вас за любую помощь, которую вы можете предложить.

Итак, я не совсем понимаю, почему, но проблема возникла из вышестоящего шлюза. В нем было перечислено 4 DNS-сервера (2 предоставленных интернет-провайдером и 2 резервных), но, по-видимому, два резервных DNS-сервера использовались BIND (который, как я полагаю, работает в режиме ретрансляции ...?). Таким образом, по какой-то причине эти два внешних DNS-сервера перестали работать, и поэтому каждый внешний DNS-запрос, передаваемый локальным сервером BIND, терпел неудачу, когда он пытался отправить запрос выше.

Решение: я удалил ссылку на два сервера и заменил их Cloudflare DNS.

Спасибо всем, кто уделил время этому вопросу!