Я настроил локальный DNS-сервер (потому что маршрутизатор нашего интернет-провайдера не поддерживает локальный DNS) и настроил его на разрешение статических IP-адресов и пересылку других запросов на маршрутизатор интернет-провайдера. Таким образом, DNS работает нормально, но теперь другим клиентам, которые пытаются подключиться к другим службам на сервере, требуется много времени для подключения. Например, sshd и apt-cacher работают очень медленно. В то время как ssh работает отлично и быстро на других серверах. Поэтому, похоже, сервер слишком медленный для запуска такого количества служб.
Итак, последний вопрос, который возникает из этого: как мне узнать, что именно так сильно замедляет работу?
Сервер работает на Debian jessie. DNS-сервер — bind9.
После небольшого исследования системного журнала я обнаружил, что bind9 выдает кучу ошибок, подобных следующей:
Dec 28 18:36:18 cache named[3878]: DNS format error from 192.168.2.1#53 resolving www.arcor-online.net/A for client 192.168.2.3#48110: reply has no answer
Dec 28 18:36:18 cache named[3878]: error (FORMERR) resolving 'www.arcor-online.net/A/IN': 192.168.2.1#53
решение1
Я не уверен, что вы имеете в виду под "сервером маршрутизатора провайдера" здесь. Маршрутизаторы обычно не являются DNS-серверами.
Однако вы можете попробовать ssh -v
посмотреть, где задержка: на удаленном конце или на конце вашего клиента. Также проверьте журнал BIND 9, чтобы увидеть, сообщает ли он о каких-либо проблемах.
За исключением этого и проверки того, правильно ли решены проблемы с помощью команды, например, dig @127.0.0.1 flame.org. SOA
чтобы убедиться, что ваш локальный DNS работает для имен, для которых вы не являетесь уполномоченным, без просмотра конфигураций, сетевых трассировок или журналов отладки, я больше ничем помочь не могу.
решение2
Проблема была совсем не такой, как я ожидал. Настраивая bind9 и беспокоясь о том, как структурировать сеть вокруг сервера, я изменил IP-адрес сервера и забыл изменить сервер имен в /etc/resolv.conf. Это означает, что сервер пытался связаться с пустым IP-адресом и остановился, пока не истекло время ожидания запроса.
решение3
Может быть полезно посмотреть на использование процессора, памяти и хранилища системы.
Полезной командой для начала может быть:
ps auxf | sort -nr -k 3 | head -10
Также вы можете использовать инструменты, чтобы увидеть, находятся ли процессы в состоянии ожидания на медленном или перегруженном хранилище, например:
vmstat 3
Даже если вы считаете, что у вас слишком много оборудования, важно взглянуть на основы.
Как всегда, убедитесь, что вы используете последние обновления Debian, чтобы быть уверенным, что на вас не повлияют ошибки или уязвимости безопасности.