Рекурсивная пересылка Bind DNS-сервер не отвечает из кеша

Постановка задачи

У меня есть сервер кэширования и пересылки bind, который работает почти так, как ожидалось. Все запросы пересылаются, их TTL кешируется. На первый взгляд, все выглядело нормально, пока я не увидел, что время отклика никогда не опускается ниже 150 мс моего VPN.

После выполнения tcpdump я обнаружил, что, хотя bind хорошо знал, что TTL больше 0 (в данном случае TTL 14000), преобразователь все еще переадресовывал каждый запрос. TTL ответа по- прежнему уменьшается, как и ожидалось, но каждый отдельный запрос по-прежнему передается в восходящем направлении независимо от TTL, оставшегося в кэшированной записи.

Если я отключу переадресацию, это поведение прекращается, и кеш работает как положено.

Версия

Bind 9.9.4-29  (Redhat forked)
OS: CentOS 7

Соответствующие части конфигурации

allow-query { local; };
recursion yes;
allow-recursion { local; };
max-cache-size unlimited;
stacksize unlimited;
datasize unlimited;

    zone "." IN {
    type forward;
    forward first;
    forwarders { 192.168.120.3; 192.168.120.2; };
    };

Я пробовал оба forward first; а также forward only; Этот распознаватель почти не загружен и имеет несколько ГБ доступной памяти. В любой момент времени в нем никогда не кэшируется более нескольких сотен записей.

Вполне вероятно, что у меня неправильное ожидание поведения в привязке? Используя Unbound я не видел такого поведения, но я бы хотел переключиться обратно на bind по другим причинам.

1 ответ

Решение

решаемая

Проблема существовала между клавиатурой и стулом.

Что пошло не так

При устранении неполадок я переключал свой /etc/resolv.conf туда и обратно между локальными и обратными преобразователями.

Первопричина

Только одна чашка кофе в подарок. Я думал, что переключился обратно на локальный распознаватель, и я не сделал. Извинения, ложная тревога.

Другие вопросы по тегам