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

Исправить медленный вход по SSH из-за обратного просмотра без отключения UseDNS

Всякий раз, когда я пытаюсь подключиться к своему серверу с виртуальной машины Azure, это занимает много времени из-за сбоя обратного поиска DNS.

Я могу отключить поиск с помощью UseDNS no и полностью обойти проблему, но это делает журналы менее полезными, поэтому я бы предпочел не делать этого таким образом.

Я также использую локальный сервер BIND для кэширования и обслуживания локальных зон.

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

Mar 10 22:56:04 ghost named[1813]: DNS format error from 8.8.8.8#53 resolving 137.161.97.23.in-addr.arpa/PTR for client 127.0.0.1#37839: invalid response

Это повторяется для каждого сервера, настроенного как пересылка, а также для серверов Microsoft, обслуживающих эту зону. Затем следует пауза в 1 секунду, и все это повторяется 4 раза.

Если я выполню nslookup -type=ptr -nosearch -d2 137.161.97.23.in-addr.arpa 207.46.75.254 подобные предупреждения бывают, но не повторяются 4 раза.

Так мои вопросы являются:

  1. Почему этот ответ не кешируется?
  2. Почему sshd повторяет попытку 3 раза?
  3. Могу я что-нибудь с этим поделать?

ОБНОВИТЬ Я знаю, что на моем клиентском компьютере нет записи PTR, но для клиента вполне допустимо, чтобы ее не было. К тому же я не контролирую DNS-записи клиентских машин.

В зависимости от вашего варианта использования и того, чего именно вы пытаетесь избежать, не исправляя ни DNS, ни конфигурацию ssh, вы можете изменить файлы хостов на своих серверах, чтобы сообщить имя и IP-адрес в sshd.

Он не кэшируется, потому что nslookup не использует преобразователь вашей системы (только записи в resolv.conf), если вы фактически запускаете кеширующий сервер имен локально. По умолчанию на серверах Linux нет локального кеша. Общие включают nscd, sssd и bind.