Страница 1 из 1

Кэширующий dns

Добавлено: 2008-12-08 11:40:23
Pal
Всем привет!
Стоит DNS серверв, работает в режиме forwarders. Как я понимаю, предписание сколько хранить информацию в кэше он берёт с SOA записи. Как сделать, чтобы для определённой зоны он хранил кэш не более ( ну допустим ) 20 минут.
Возникает ситуация, когда на мастере обновляют запись, а на кэширующем естественно эта запись обновляется не скоро. Есть мысль засунуть в крон обнуление кэша ( rndc flush ), но в таком случае он сбрасывает весь кэш, есть возможность сбрасывать кэш для определённого имени ( rndc flushname ), но надо для всей зоны.

Код: Выделить всё

#uname -r
7.1-PRERELEASE

Код: Выделить всё

named -v
BIND 9.4.2-P1
Графа options из named.conf

Код: Выделить всё

options
{
        directory       "/etc/namedb";
        pid-file        "/var/run/named/pid";
        dump-file       "/var/dump/named_dump.db";
        statistics-file "/var/stats/named.stats";

        listen-on
	{
		127.0.0.1;
		192.168.1.1;
	};

        allow-recursion { "my_clients"; };
        allow-transfer { none; };
        allow-query { "my_clients"; };
        query-source address 192.168.2.2;
        forwarders { 192.168.3.1; };

};

Re: Кэширующий dns

Добавлено: 2008-12-08 12:03:45
terminus
Поставить правильный DNS сервер unbound, там есть опция cache-max-ttl указывающая время жизни всего кеша, а еще есть команда unbound-control flush_zone которая может дропать только записи для определенной зоны.
http://www.unbound.net/documentation/un ... ntrol.html

йа фанат unbound ога :crazy:

Re: Кэширующий dns

Добавлено: 2008-12-08 13:51:00
Pal
чё другого выхода нет?

Re: Кэширующий dns

Добавлено: 2008-12-08 13:53:40
zg
Pal писал(а):чё другого выхода нет?

Код: Выделить всё

zg# cat /etc/namedb/master/localhost-reverse.db

; $FreeBSD: src/etc/namedb/master/localhost-reverse.db,v 1.1 2007/06/18 05:58:23 dougb Exp $

$TTL 3h
@ SOA localhost. nobody.localhost. 42 1d 12h 1w 3h
        ; Serial, Refresh, Retry, Expire, Neg. cache TTL

        NS      localhost.

1.0.0   PTR     localhost.

1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 PTR localhost.
я почему-то всегда думал, что TTL - это time to live (время жизни). И его можно задавать для каждой зоны вроде как своё.

Re: Кэширующий dns

Добавлено: 2008-12-08 14:08:21
Pal
Всё правильно, это указание времени жизни мастера, своим ns серверам. Но у меня то просто кэширующий сервер.
Поэтому в случае изменений в зоне, мастер шлёт notify сообщения своим слейвам и они качают изменение, и обновляют ( или удаляют, реализация мне не известна ) кэш с этой записью. Поэтому если вы изменили запись, вам не прийдётся ждать пока там у него tll пройдёт. А кэширующий сервер, не является авторитетным, и его не предупреждают об обновлении в зоне.

Re: Кэширующий dns

Добавлено: 2008-12-08 14:12:52
zg
ну тогда только могу посоветовать ман по бинду

Код: Выделить всё

zg# man named.conf | col -b | grep -i time
                     print-time boolean;
                max-transfer-time-in integer;
                max-transfer-time-out integer;
                max-retry-time integer;
                min-retry-time integer;
                max-refresh-time integer;
                min-refresh-time integer;
                max-transfer-time-in integer;
                max-transfer-time-out integer;
                max-retry-time integer;
                min-retry-time integer;
                max-refresh-time integer;
                min-refresh-time integer;
                max-transfer-time-in integer;
                max-transfer-time-out integer;
                max-retry-time integer;
                min-retry-time integer;
                max-refresh-time integer;
                min-refresh-time integer;
zg#

Re: Кэширующий dns

Добавлено: 2011-10-04 0:49:34
Bayerische
Просто поддержать беседу.
И чего я столько мучился с гавёными DNS Билайна! Когда надоело лазить в resolv.conf, наладил bind. Блин, всё моментально открывается!