URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 83590
[ Назад ]

Исходное сообщение
"BIND не перечитывает зоны. Как надо делать?"

Отправлено Призрак , 08-Янв-09 18:28 
Как ПРАВИЛЬНО изменять конфиги бинда (FREEBSD-7.0, BIND 9.4.2), чтобы не нагадить случайно DHCP-серверу, который может изменить конфиг пока я его редактирую, и тогда я перезапишу эти его изменения, либо, наоборот, перезаписать его когда я уже измемнил что надо и собираюсь порестартить named чтобы перечитать зоны? И второй вопрос - а как вообще правильно заставить его перечитать эти файлы зон? "rndc reload" не помогает, "/etc/rc.d/named onereload" тоже не помогает - во всех этих случаях пишется что server reload successful, но на самом деле изменения не вступают в силу... Может быть там надо что-нибудь с serial-ом вверху файлов делать?.. (хотя бы покажите ман более толковый чем man, где твердят что должно помогать rndc reload, а про то как изменять конфиги не сказано вообще, и документацию на isc.org, где я заблудился и так ничего и не нашёл)

Содержание

Сообщения в этом обсуждении
"BIND не перечитывает зоны. Как надо делать?"
Отправлено бусик , 08-Янв-09 18:32 
>[оверквотинг удален]
>уже измемнил что надо и собираюсь порестартить named чтобы перечитать зоны?
>И второй вопрос - а как вообще правильно заставить его перечитать
>эти файлы зон? "rndc reload" не помогает, "/etc/rc.d/named onereload" тоже не
>помогает - во всех этих случаях пишется что server reload successful,
>но на самом деле изменения не вступают в силу... Может быть
>там надо что-нибудь с serial-ом вверху файлов делать?.. (хотя бы покажите
>ман более толковый чем man, где твердят что должно помогать rndc
>reload, а про то как изменять конфиги не сказано вообще, и
>документацию на isc.org, где я заблудился и так ничего и не
>нашёл)

именно, нужно зделать serial на +1 к тому, какой у вас сейчас, именно по нему bind смотрит дату зоны, и если сериал больше предыдущего - перечитывает


"BIND не перечитывает зоны. Как надо делать?"
Отправлено Призрак , 08-Янв-09 20:15 
>именно, нужно зделать serial на +1 к тому, какой у вас сейчас,
>именно по нему bind смотрит дату зоны, и если сериал больше
>предыдущего - перечитывает

Попробовал. Нифига.) Остановил бинд, сделал ему сериал 2009010801, запустил, сделал 2009010802 и добавил хост. Сделал rndc reload и /etc/rc.d/named reload - хост не появился. Сделал /etc/rc.d/named restart - появился. Только если я сначала добавлю единичку, а потом сделаю restart, то он ругнётся что journal rollforward failed: journal out of sync with zone.


"BIND не перечитывает зоны. Как надо делать?"
Отправлено Pahanivo , 08-Янв-09 22:52 
>>именно, нужно зделать serial на +1 к тому, какой у вас сейчас,
>>именно по нему bind смотрит дату зоны, и если сериал больше
>>предыдущего - перечитывает
>
>Попробовал. Нифига.) Остановил бинд, сделал ему сериал 2009010801, запустил, сделал 2009010802 и
>добавил хост. Сделал rndc reload и /etc/rc.d/named reload - хост не
>появился. Сделал /etc/rc.d/named restart - появился. Только если я сначала добавлю
>единичку, а потом сделаю restart, то он ругнётся что journal rollforward
>failed: journal out of sync with zone.

ты часом не на слейве пытаешься зону обновить? )


"BIND не перечитывает зоны. Как надо делать?"
Отправлено Призрак , 09-Янв-09 17:06 
>ты часом не на слейве пытаешься зону обновить? )

Нет, это единственный DNS-сервер, он мастер... *проверил на всякий случай* да, мастер.


"BIND не перечитывает зоны. Как надо делать?"
Отправлено бусик , 09-Янв-09 17:19 
>>ты часом не на слейве пытаешься зону обновить? )
>
>Нет, это единственный DNS-сервер, он мастер... *проверил на всякий случай* да, мастер.
>

Проверил на своём ДНС сервере
поменял номер на +1
добавил новую А запись
сохранил
ping имя_добавленного_хоста
Unknown hostname
rndc reload
Reply from.....

что-то вы всё же делаете нетак.
п.с. сам бинд рестартовать нет нужды.
п.п.с. у вас rndc reload точно отрабатывает?


"BIND не перечитывает зоны. Как надо делать?"
Отправлено бусик , 09-Янв-09 17:23 
>>именно, нужно зделать serial на +1 к тому, какой у вас сейчас,
>>именно по нему bind смотрит дату зоны, и если сериал больше
>>предыдущего - перечитывает
>
>Попробовал. Нифига.) Остановил бинд, сделал ему сериал 2009010801, запустил, сделал 2009010802 и
>добавил хост. Сделал rndc reload и /etc/rc.d/named reload - хост не
>появился. Сделал /etc/rc.d/named restart - появился. Только если я сначала добавлю
>единичку, а потом сделаю restart, то он ругнётся что journal rollforward
>failed: journal out of sync with zone.

будьте аккуратней с номерами) почему-то у вас 20090108 -- восьмое число чтоль еще до сих пор?


"BIND не перечитывает зоны. Как надо делать?"
Отправлено Призрак , 09-Янв-09 21:31 
>будьте аккуратней с номерами) почему-то у вас 20090108 -- восьмое число чтоль
>еще до сих пор?

Я писал это вчера. )

Попробовал снова. Я добавляю запись не только в прямую, но и в обратную зоны. Хм, вспоминая какие проблемы у меня были с биндом - он был совсем не рассчитан на запуск без chroot-а, и мне пришлось что-то с ним делать (но незначительное), чтобы его оттуда вытащить. (Кому-то вытаскивание бинда из chroot-а может показаться ужасным вопиющим нарушением безопасности сервера, но, во-первых, удобнее когда всё лежит там где кажется, а во-вторых, у меня используется varmfs, которая перезаписывается при каждой перезагрузке, и это неудобно.) Может быть, там rndc (и скрипт на запуск) так написаны, что не могут нормально работать когда бинд без chroot-а? Но тогда бы они не писали мне server reload successful, и никаких сообщений об ошибке мне тоже не приходит... =/ может быть попробовать на виртуальной машине на новой системе...

А как быть с тем что dhcpd может перезаписать мои файлы если кто-то неожиданно войдёт в сеть когда я их поправил или, наоборот, войдёт когда я их правлю, и тогда я сотру его привязку?


"BIND не перечитывает зоны. Как надо делать?"
Отправлено angra , 10-Янв-09 14:04 
Рекомендую во время rndc reload или /etc/init.d/bind reload смотреть что пишется в /var/log/syslog(или куда вы перенаправили сообщения bind). Будут подобные сообщения:
Jan 10 12:53:36 Falcon named[2279]: reloading configuration succeeded
Jan 10 12:53:36 Falcon named[2279]: reloading zones succeeded
Jan 10 12:53:36 Falcon named[2279]: zone localhost/IN: loaded serial 3
На самом деле изменения serial играет роль только для синхронизации master->slave, на самом мастере и так будет работать, но лучше все-таки всегда увеличивать serial.

По поводу перезаписи. Пользуйтесь vim, он при попытке записи сообщит если файл был изменен, пока вы его редактировали. Возможно и другие редакторы такое умеют. Альтернативно редактируйте копию, а потом сравните время модификации с оригиналом и сделайте mv.


"BIND не перечитывает зоны. Как надо делать?"
Отправлено Призрак , 10-Янв-09 16:58 
>[оверквотинг удален]
>/var/log/syslog(или куда вы перенаправили сообщения bind). Будут подобные сообщения:
>Jan 10 12:53:36 Falcon named[2279]: reloading configuration succeeded
>Jan 10 12:53:36 Falcon named[2279]: reloading zones succeeded
>Jan 10 12:53:36 Falcon named[2279]: zone localhost/IN: loaded serial 3
>На самом деле изменения serial играет роль только для синхронизации master->slave, на самом мастере и так будет работать, но лучше все-таки всегда увеличивать serial.
>
>По поводу перезаписи. Пользуйтесь vim, он при попытке записи сообщит если файл
>был изменен, пока вы его редактировали. Возможно и другие редакторы такое
>умеют. Альтернативно редактируйте копию, а потом сравните время модификации с оригиналом
>и сделайте mv.

Спасибо. Нет, в /var/log/messages (оно?) у меня ничего при этом не пишется (может быть надо было вербозность включить?.. ну да ладно, буду просто перезапускать лучше.) Видимо, придётся руками делать свои скрипты на всё это дело. "Добавить хост", "удалить хост" и всё такое. Чтобы останавливал бинд, процессил файлы и потом снова запускал, это будет достаточно быстро.

Я тоже думал что serial нужен только для мастера-слейва. Значит, всё-таки был прав. ) Спасибо.