Bind9 socket.c неожиданная ошибка

Вопрос или проблема

Процесс named выдает такую ошибку весь день:

Jun 17 12:50:43 s named[24479]: socket.c:5274: неожиданная ошибка:
Jun 17 12:50:43 s named[24479]: connect(198.41.0.4#53) 22/Неверный аргумент

Что это за ошибка?

Named (BIND 9.8.4-rpz2+rl005.12-P1) работает на Debian GNU/Linux squeeze/sid x32. С машины я могу выполнить telnet к этому адресу (a.root-servers.net.), также я могу разрешить IP-адрес в имя с помощью nslookup.

Я бы предположил, что это временная ошибка, однако если инструментальные команды работают, а вы получаете эту ошибку, значит что-то не так. Возможно, это ошибка BIND, возможно, конфигурация фаервола (инспекторы).

Ваша операционная система и BIND довольно стары и вышли из поддержки (с 2013 года, так как это ветка тестирования).

Я бы срочно обновил их оба; если у вас нет ядра и BIND, скомпилированных вручную, у них уже есть пара неприятных ошибок, которые можно исследовать удаленно.

Если проблема продолжит существовать, я бы углубился в отладку проблемы.

Ответ или решение

Ошибка socket.c в BIND9: Анализ и Рекомендации

Ошибка, которую вы наблюдаете в процессе работы BIND (named), выглядит следующим образом:

Jun 17 12:50:43 s named[24479]: socket.c:5274: unexpected error:
Jun 17 12:50:43 s named[24479]: connect(198.41.0.4#53) 22/Invalid argument

Что это за ошибка?

Данная ошибка указывает на неожиданное поведение в части кода, ответственной за создание и использование сокетов. В частности, проблема может заключаться в том, что BIND не смог установить соединение с указанным DNS-сервером по IP-адресу 198.41.0.4, что соответствует корневому DNS-серверу (a.root-servers.net). Код ошибки 22/Invalid argument может указывать на некорректный аргумент, переданный в системный вызов connect().

Возможные причины

  1. Транзиторная ошибка: Действительно, подобные ошибки могут возникать из-за временных сбоев в сети или проблем с DNS-сервером. Если вы можете успешно выполнять команды, такие как telnet и nslookup, это может указывать на кратковременные сбои.

  2. Версия ПО: Вы используете устаревшую версию BIND (9.8.4-rpz2+rl005.12-P1), которая была выпущена в 2013 году. В этой версии могут присутствовать уязвимости и ошибки, исправленные в более новых релизах. Устаревшее ПО также может подвергать вашу систему риску.

  3. Конфигурация брандмауэра: Возможно, вы сталкиваетесь с проблемами, связанными с конфигурацией сетевых фильтров или брандмауэров, которые могут блокировать определенные соединения. Проверьте правила и настройки вашего брандмауэра на наличие ограничений для входящих и исходящих соединений на порт 53.

  4. Сетевые проблемы: Не исключены также проблемы на уровне сети, такие как ограничения от провайдеров или проблемы с маршрутизацией.

Рекомендации

  1. Обновление системы: Настоятельно рекомендуем обновить как ОС, так и BIND до последних стабильных версий. Новые версии содержат исправления для известных ошибок и уязвимостей.

  2. Проверка конфигурации:

    • Убедитесь, что конфигурация BIND корректна и не содержит ошибок.
    • Проверьте настройки вашего брандмауэра, чтобы удостовериться, что порты, необходимые для работы DNS, открыты.
  3. Мониторинг: Настраивайте логирование BIND для более детального отслеживания возникающих ошибок. Это поможет детализации проблемы при повторении ситуации.

  4. Тестирование: Используйте команды диагностики, такие как dig и nslookup, для проверки доступности других DNS-серверов и для тестирования конфигурации вашего DNS.

  5. Изучение документации: Ознакомьтесь с официальной документацией BIND и рассмотрите вопросы, касающиеся известных ошибок в версиях, которые вы используете.

Заключение

Ошибка socket.c:5274: unexpected error в BIND требует внимательного анализа. Рассматривая указанные аспекты и следуя вышеуказанным рекомендациям, вы сможете устранить проблему и повысить надежность работы вашего DNS-сервера. Не забывайте следить за обновлениями ПО, чтобы гарантировать защиту от уязвимостей и обеспечить стабильность работы.

Оцените материал
Добавить комментарий

Капча загружается...