Всякий раз, когда я пытаюсь подключиться к своему серверу с виртуальной машины 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 раза.
Так мои вопросы являются:
ОБНОВИТЬ Я знаю, что на моем клиентском компьютере нет записи PTR, но для клиента вполне допустимо, чтобы ее не было. К тому же я не контролирую DNS-записи клиентских машин.
В зависимости от вашего варианта использования и того, чего именно вы пытаетесь избежать, не исправляя ни DNS, ни конфигурацию ssh, вы можете изменить файлы хостов на своих серверах, чтобы сообщить имя и IP-адрес в sshd.
Он не кэшируется, потому что nslookup не использует преобразователь вашей системы (только записи в resolv.conf), если вы фактически запускаете кеширующий сервер имен локально. По умолчанию на серверах Linux нет локального кеша. Общие включают nscd, sssd и bind.