Назад | Перейти на главную страницу

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

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

У меня есть работающий сервер кэширования и пересылки привязок почти как и ожидалось. Все запросы перенаправляются, их 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 я не заметил такого поведения, но хотел бы вернуться к привязке по другим причинам.

Решено

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

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

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

Основная причина

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