Доброго времени коллеги.
Имею такую схему.
1. Bind9 на FreeBSD в качестве мастера. Не обрабатывает внешние запросы вообще, то есть к нему есть доступ только из локалки и от slave-серверов
2. существует 3 сервера в разных датацентрах. Один настроен руками bind, еще 2 куплен DNS-хостинг и работает на DNSManager
Все указанные домены резвятся и все нормально, зоны обновляются и все хорошо, НО.
Заметил такую странную картину. Если мастер становится недоступен, отключили электричество, или отвалился провайдер(что бывает), то слейв-сервера зоны не резолвят, ни один.
к примеру делаю запрос:
$ host domain.ru
Host domain.ru not found: 2(SERVFAIL)
$ host domain.ru.ru X.X.X.X
Using domain server:
Name: X.X.X.X
Address: X.X.X.X#53
Aliases:Host domain.ru.ru not found: 2(SERVFAIL)
Захожу на первый слейв, вижу что зона на месте, но не отдается почему-то. Захожу на другие сейвы, вижу что зона есть, но тоже не отдается.
Может я чего-то не знаю, прошу подсказать, может я что-то недоделал или упустил?
В логах есть такие строчки:
general: warning: zone domain.ru/IN: expired
Может это из-за TTL или может из-за чего-то еще? TTL сейчас выставлены на 600.
>[оверквотинг удален]
> Host domain.ru.ru not found: 2(SERVFAIL)
> Захожу на первый слейв, вижу что зона на месте, но не отдается
> почему-то. Захожу на другие сейвы, вижу что зона есть, но тоже
> не отдается.
> Может я чего-то не знаю, прошу подсказать, может я что-то недоделал или
> упустил?
> В логах есть такие строчки:
> general: warning: zone domain.ru/IN: expired
> Может это из-за TTL или может из-за чего-то еще? TTL сейчас выставлены
> на 600.Вы SOA вашей зоны покажите.
Если у вас там все таймауты по 600 секунд = 10 минут и "шеф, всё пропало!!!"
> Вы SOA вашей зоны покажите.Вышо! SOA запись DNS это же великая тайна ))
Афтур, поизучай
@ IN SOA ns.server.lan. root.server.lan. (
2008122601 ; Serial
28800 ; Refresh
14400 ; Retry
604800 ; Expire - 1 week
86400 ) ; Minimum
>[оверквотинг удален]
> Host domain.ru.ru not found: 2(SERVFAIL)
> Захожу на первый слейв, вижу что зона на месте, но не отдается
> почему-то. Захожу на другие сейвы, вижу что зона есть, но тоже
> не отдается.
> Может я чего-то не знаю, прошу подсказать, может я что-то недоделал или
> упустил?
> В логах есть такие строчки:
> general: warning: zone domain.ru/IN: expired
> Может это из-за TTL или может из-за чего-то еще? TTL сейчас выставлены
> на 600.Спасибо друзья.
Сам допер, написать только некогда было.
Что я еще-то хотел с TTL 600?!
Тема закрыта, поднял TTL.
> Спасибо друзья.
> Сам допер, написать только некогда было.Боюсь что не до конца ты допер!
> Что я еще-то хотел с TTL 600?!
> Тема закрыта, поднял TTL.Тут дело не в TTL. Выше же пишутЪ - "все таймауты" и SOA я тебе с коментами кинул.
>> Спасибо друзья.
>> Сам допер, написать только некогда было.
> Боюсь что не до конца ты допер!
>> Что я еще-то хотел с TTL 600?!
>> Тема закрыта, поднял TTL.
> Тут дело не в TTL. Выше же пишутЪ - "все таймауты" и
> SOA я тебе с коментами кинул.Да вот как раз до конца допер.
Я вроде как не совсем дурак:
Это запись SOA:
2016052509;
900;
600;
86400;
21600;
При этом я поставил expire 24 часа. Мне этого более чем достаточно и TTL поднял.
> В логах есть такие строчки:
> general: warning: zone domain.ru/IN: expired
> Может это из-за TTL или может из-за чего-то еще? TTL сейчас выставлены
> на 600.А у вас точно slave, а не forward?
По идее, нормальный slave может работать сколько угодно при недоступном мастере. Он хранит у себя всю зону и вполне себе авторитативен для клиентов.
А то поведение, которое вы описываете, характерно когда сконфигурированна зона типа forward. В таком случае сервер копию зоны не хранит, а при каждом обращении клиента лазает на master и сохраняет у себя только кэш. Когда TTL кончается, то кэш вычищается и резольвинг становится недоступен.
> По идее, нормальный slave может работать сколько угодно при недоступном мастере. Он
> хранит у себя всю зону и вполне себе авторитативен для клиентов.Да ой! Зачем тогда в SOA праметр expire и за что он отвечает?
>> По идее, нормальный slave может работать сколько угодно при недоступном мастере. Он
>> хранит у себя всю зону и вполне себе авторитативен для клиентов.
> Да ой! Зачем тогда в SOA праметр expire и за что он
> отвечает?Гм. Что-то я действительно серьёзно напутал. Всё правильно, по спецификации expire в SOA именно что контролирует когда slave зона портится.