Jump to content
Калькуляторы

Странный глюк с DNS

Со вчерашнего дня на одном сервере вдруг стали очень долго ресолвится DNS-имена.

# nslookup mail.ru
Server:         10.1.128.11
Address:        10.1.128.11#53

Non-authoritative answer:
Name:   mail.ru
Address: 217.69.139.200
Name:   mail.ru
Address: 217.69.139.202
Name:   mail.ru
Address: 94.100.180.200
Name:   mail.ru
Address: 94.100.180.202

# nslookup mail.ru 10.1.128.11
Server:         10.1.128.11
Address:        10.1.128.11#53

Non-authoritative answer:
Name:   mail.ru
Address: 94.100.180.200
Name:   mail.ru
Address: 94.100.180.202
Name:   mail.ru
Address: 217.69.139.200
Name:   mail.ru
Address: 217.69.139.202

# nslookup mail.ru localhost
Server:         localhost
Address:        ::1#53

Non-authoritative answer:
Name:   mail.ru
Address: 217.69.139.202
Name:   mail.ru
Address: 94.100.180.200
Name:   mail.ru
Address: 94.100.180.202
Name:   mail.ru
Address: 217.69.139.200

 

Первая команда выполняется секунды две.

Вторая команда выполняется моментально.

Третья команда также выполняется моментально (на сервере есть dnsmasq).

Если выполнить пинг по доменному имени, между пингами проходит по 1-2 секунды. Если выполнить пинг по IP-адресу, пинги проходят без задержек.

 

Где искать проблему?

Share this post


Link to post
Share on other sites

Debian 7.8 x64, никакого особого софта нет (медленный ресолвинг доменного имени наблюдается везде - ping, nslookup, dig, perl-скрипты, sh-скрипты).

dnsmasq отключал (на всякий случай), ничего не поменялось.

В resolv.conf указаны только два DNS-сервера (10.1.128.11 и 10.1.128.12), более ничего.

Share this post


Link to post
Share on other sites

Если указываю +trace, то зависает на каком-нибудь из root-servers.net.

Но мне кажется, что тут дело совсем в другом.

 

Выполняю dig @10.1.128.11 mail.ru, моментально получаю ответ:

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> @10.1.128.11 mail.ru
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50502
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;mail.ru.                       IN      A

;; ANSWER SECTION:
mail.ru.                22      IN      A       217.69.139.202
mail.ru.                22      IN      A       94.100.180.200
mail.ru.                22      IN      A       94.100.180.202
mail.ru.                22      IN      A       217.69.139.200

;; AUTHORITY SECTION:
mail.ru.                557     IN      NS      ns2.mail.ru.
mail.ru.                557     IN      NS      ns1.mail.ru.

;; ADDITIONAL SECTION:
ns1.mail.ru.            411     IN      AAAA    2a00:1148:db00::2
ns2.mail.ru.            411     IN      AAAA    2a00:1148:db00::1

;; Query time: 0 msec
;; SERVER: 10.1.128.11#53(10.1.128.11)
;; WHEN: Fri Feb 20 15:50:26 2015
;; MSG SIZE  rcvd: 181

То есть на запрос мне отвечает 10.1.128.11#53.

Выполняю dig mail.ru, ответ получаю с задержкой в 1-2 секунды:

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> mail.ru
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43994
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;mail.ru.                       IN      A

;; ANSWER SECTION:
mail.ru.                31      IN      A       94.100.180.200
mail.ru.                31      IN      A       94.100.180.202
mail.ru.                31      IN      A       217.69.139.200
mail.ru.                31      IN      A       217.69.139.202

;; AUTHORITY SECTION:
mail.ru.                506     IN      NS      ns2.mail.ru.
mail.ru.                506     IN      NS      ns1.mail.ru.

;; ADDITIONAL SECTION:
ns1.mail.ru.            360     IN      AAAA    2a00:1148:db00::2
ns2.mail.ru.            360     IN      AAAA    2a00:1148:db00::1

;; Query time: 0 msec
;; SERVER: 10.1.128.11#53(10.1.128.11)
;; WHEN: Fri Feb 20 15:51:17 2015
;; MSG SIZE  rcvd: 181

 

То есть отвечает один и тот же сервер и ответ один и тот же.

Но во втором случае почему-то с большой задержкой.

 

Не пойму, в чем тут разница.

Share this post


Link to post
Share on other sites

У вас в обоих случаях query time 0ms, очевидно, что ответ идет из кэша сервера. А не запрашивает ли ваш диг тем временем второй сервер из resolv.conf?

Share this post


Link to post
Share on other sites

А не запрашивает ли ваш диг тем временем второй сервер из resolv.conf?

Действительно, по какой-то причине второй сервер не обслуживает запросы.

Спасибо за подсказку, пока что убрал из resolv.conf второй DNS, стало все нормально.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this