LINUX.ORG.RU
ФорумAdmin

Не обновляется кэш в bind

 


1

1

Настроен bind в режиме кэширующего сервера. Конфиг такой:

options {
   directory "/var/named";
   listen-on port 53 {
      127.0.0.1;
      172.17.17.254;
      185.132.*.*;
   };
   pid-file "/run/named/named.pid";
   dump-file "/var/named/data/cache_dump.db";
   max-cache-size unlimited;
   allow-query { localclients; };
   allow-recursion { any; };
   allow-transfer { none; };
   allow-update { none; };
   recursion yes;
};

acl localclients {
   172.17.17.0/24;
   localhost;
};

zone "." IN {
   type hint;
   file "named.ca";
};

zone "localhost" IN {
        type master;
        file "named.localhost";
        allow-update { none; };
};

zone "1.0.0.127.in-addr.arpa" IN {
        type master;
        file "named.loopback";
        allow-update { none; };
};

Перестал обновляться кэш. Файл кэша /var/named/data/cache_dump.db последний раз обновлялся в мае. Права выставлены максимальные.
Ну и ещё вопрос, а можно как-то расширенно кэшем в bind управлять, например присваивать некоторым записям бесконечный TTL?

★★★★★

Ответ на: комментарий от anonymous

Хотите сказать, что у меня есть заблуждения по поводу работы bind? То есть кэш он чисто в оперативной памяти находится, на диск не пишется? Управлять им и просматривать никак нельзя?

sunny1983 ★★★★★
() автор топика
Ответ на: комментарий от sunny1983

начните собирать метрики сервисов и делать из них графички. Это очень полезно и наглядно будет видна статистика по кэшу вашего байнда. Да, кэш он в памяти, можете его руками подампить через rndc. Насчет модификации его - сомневаюсь (можно почистить запись точно, но менять поля..)

anonymous
()
Ответ на: комментарий от sunny1983

То есть кэш он чисто в оперативной памяти находится, на диск не пишется?

А разве bind не скидывает кэш в файл при перезапуске? Рестартаните named и посмотрите, обновится ли файл. Если обновится, значит, все в порядке с кэшем.

Serge10 ★★★★★
()
Ответ на: комментарий от sunny1983

То есть кэш он чисто в оперативной памяти находится, на диск не пишется?

Именно так.

Управлять им и просматривать никак нельзя?

rndc dumpdb (и там ещё параметры можно), и смотреть этот самый cache_dump.db. Посредством того же rndc можно сбросить данные либо все, либо частично.

AS ★★★★★
()
Ответ на: комментарий от Serge10

А разве bind не скидывает кэш в файл при перезапуске?

Нет, если кто-нибудь rndc dumpdb не позовёт. И нигде не видел, что он его должен читать при старте.

AS ★★★★★
()

Ну и ещё вопрос, а можно как-то расширенно кэшем в bind управлять, например присваивать некоторым записям бесконечный TTL

Надо такой TTL в зоне описать, и всё будет. :-) Можно, наоборот, уменьшить: max-cache-ttl в options {}.

AS ★★★★★
()
Ответ на: комментарий от AS

Я просто кое-что не понимаю. Вот DNS в MikroTik, например, содержит такие настройки как статический кэш, неужели bind так же не умеет? Кэширующий DNS ведь для чего нужен, если клиент запросит A-запись для домена google.com, чтобы выдать её ему из собственного кэша, а перенаправлять запрос на другой DNS, территориально расположенный в США, правильно ведь? По этой логике кэш должен сохраняться при перезапуске DNS и статические записи в нём тоже должны быть.

sunny1983 ★★★★★
() автор топика
Ответ на: комментарий от AS

Нет, если кто-нибудь rndc dumpdb не позовёт.

Тогда еще проще - выполнить несколько раз rndc dumpdb с интервалом, скажем, в 5 минут и сравнить полученные файлы. Если файлы отличаются, значит, все в порядке с кешем.

И нигде не видел, что он его должен читать при старте.

Есть специальная опция при запуске:

-x cache-file

Правда, сами разработчики не рекомендуют ей пользоваться.

Serge10 ★★★★★
()
Ответ на: комментарий от sunny1983

если клиент запросит A-запись для домена google.com, чтобы выдать её ему из собственного кэша, а не перенаправлять запрос на другой DNS, территориально расположенный в США, правильно ведь?

Правильно.

По этой логике кэш должен сохраняться при перезапуске DNS и статические записи в нём тоже должны быть.

Зачем? Кэш можно и заново набрать. Опять же Bind - это достаточно серьёзный софт для нормального сервера, который часто перезагружаться, в общем-то, не должен.

AS ★★★★★
()
Ответ на: комментарий от Serge10

-x cache-file
Правда, сами разработчики не рекомендуют ей пользоваться.

Ну значит можно тогда dumpdb перед остановкой, и скормить этот файл при старте, видимо.

AS ★★★★★
()
Ответ на: комментарий от Serge10

Правда, сами разработчики не рекомендуют ей пользоваться.

Более того

It is only of interest to BIND 9
               developers and may be removed or changed in a future release.

anc ★★★★★
()
Ответ на: комментарий от AS

Может я опять заблуждаюсь, но главная ведь идея - ускорить интернет у пользователей. Необходимость набирать кэш каждый раз сводит всю идею ускорения на нет. Я вообще думал, что крупные DNS могут делиться своим кэшем с другими, но не смог ничего нагуглить на этот счёт.

sunny1983 ★★★★★
() автор топика
Ответ на: комментарий от sunny1983

Может я опять заблуждаюсь, но главная ведь идея - ускорить интернет у пользователей.

Да. Точнее даже у группы пользователей: на одного пользователя это не так эффективно, хотя тоже не плохо.

Необходимость набирать кэш каждый раз сводит всю идею ускорения на нет.

Отнюдь. На одной странице даже несколько ссылок может быть на один и тот же Google. И рекомендованные ttl где-то в районе суток, то есть, то есть, если сегодня компьютер выключил, то завтра 99% данных этого кэша уже не нужна, а после завтра он вообще никому не нужен весь.

Я вообще думал, что крупные DNS могут делиться своим кэшем с другими

Зачем, если сразу у DNS зоны можно спросить в момент необходимости?

AS ★★★★★
()
Последнее исправление: AS (всего исправлений: 1)
Ответ на: комментарий от sunny1983

Дополню AS TTL выставляют не случайно. Например всякие ddns минуту ставят «не просто так». Или из личной практики, при «переезде» я заранее меняю TTL на 10мин, потом возвращаю на сутки. С точки зрения моего named отвечающего за зону я получаю большую нагрузку уменьшая TTL.

anc ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.