Ошибка в BIND 9.16, приводящая к нарушению обработки TCP-соединений

В опубликованной две недели назад ветке BIND 9.16.0 выявлена серьёзная ошибка, приводящая к исчерпанию лимита на число TCP-соединений. В BIND 9.16 была предложена новая сетевая подсистема, переведённая на механизм асинхронной обработки запросов на основе библиотеки libuv. Из-за ошибки в данной подсистеме счётчик активных TCP-соединений при некоторых условиях не уменьшается, что приводит к нарастающему расхождению его значения с фактическим числом соединений. Через какое-то время значение счётчика может достигнуть установленного лимита на число клиентских соединений и новые запросы по TCP перестанут приниматься (запросы по UDP продолжат обрабатываться).

В основном проблема проявляется на серверах, принимающих TCP-соединения от клиентов сразу не нескольких сетевых интерфейсах. Обновление BIND 9.16 пока не выпущено, но для устранения ошибки опубликован патч. В качестве временного решения можно установить лимит на число соединений (опция tcp-clients) в очень большое значение. Кроме BIND 9.16 проблема затрагивает экспериментальную ветку 9.15, начиная с выпуска 9.15.6, но эта ветка изначальна используется только для разработки и не ориентирована на внедрение на рабочих серверах.

Источник: http://www.opennet.ru/opennews/art.shtml? num=52490

©  OpenNet