На локальном шлюзе стоит Mandriva Linux 2009. В качестве DNS сервера используется Bind 9.5.2. В локальной сети есть 2 веб-сервера с различными сайтами. Все работает уже более 2 лет.
Приведу файлы зон:
ansaldo.local
@ IN SOA ns.ansaldo.local. admin.ansaldo.local. (
11432011614
10800
3600
604800
38400 )
@ IN NS ns.ansaldo.local.
1 IN PTR local.ansaldo.local.
1 IN PTR traffic.ansaldo.local.
230 IN PTR timecontrol.ansaldo.local.
1 IN PTR firewall.ansaldo.local.
240 IN PTR distationbuh.ansaldo.local.
1 IN PTR localserver.ansaldo.local.
1 IN PTR comps.ansaldo.local.
И файл 169.254.37.zone:
$ttl 38400
@ IN SOA ns.ansaldovei.local. admin.ansaldo.local. (
11432011614
10800
3600
604800
38400 )
@ IN NS ns.ansaldo.local.
1 IN PTR local.ansaldo.local.
1 IN PTR traffic.ansaldo.local.
230 IN PTR timecontrol.ansaldo.local.
1 IN PTR firewall.ansaldo.local.
240 IN PTR distationbuh.ansaldo.local.
1 IN PTR localserver.ansaldo.local.
1 IN PTR comps.ansaldo.local.
Понадобилось создать еще один локальный веб-сайт. Добавил я его в файлы зон. Теперь они выглядят так:
ansaldo.local
@ IN SOA ns.ansaldo.local. admin.ansaldo.local. (
11432011614
10800
3600
604800
38400 )
@ IN NS ns.ansaldo.local.
1 IN PTR local.ansaldo.local.
1 IN PTR traffic.ansaldo.local.
230 IN PTR timecontrol.ansaldo.local.
230 IN PTR katalog.ansaldo.local.
1 IN PTR firewall.ansaldo.local.
240 IN PTR distationbuh.ansaldo.local.
1 IN PTR localserver.ansaldo.local.
1 IN PTR comps.ansaldo.local.
И файл 169.254.37.zone:
$ttl 38400
@ IN SOA ns.ansaldovei.local. admin.ansaldo.local. (
11432011614
10800
3600
604800
38400 )
@ IN NS ns.ansaldo.local.
1 IN PTR local.ansaldo.local.
1 IN PTR traffic.ansaldo.local.
230 IN PTR timecontrol.ansaldo.local.
230 IN PTR katalog.ansaldo.local.
1 IN PTR firewall.ansaldo.local.
240 IN PTR distationbuh.ansaldo.local.
1 IN PTR localserver.ansaldo.local.
1 IN PTR comps.ansaldo.local.
Вроде бы все нормально. Сделал
rndc reload
пробую разрешить имя нового сайта:
nslookup katalog.ansaldo.local
пишет
non-existing domain
Причем любую другую запись, что в файле зоны он разрешает без проблем!!! Пытался очистить кеш
rndc flush
не помогает.
Удалил одну из записей в файле зоны - timecontrol.ansaldo.local. Очистил кеш, сделал reload. Проверяю:
nslookup timecontrol.ansaldo.local
Разрешает!!!!! Как будто никаких изменений в файле зоны и небыло!!! Как это понимать? Кто знает - помогите пожалуйста!!
а прямая зона то где?
> На локальном шлюзе стоит Mandriva Linux 2009. В качестве DNS сервера используется
> Bind 9.5.2. В локальной сети есть 2 веб-сервера с различными
> сайтами. Все работает уже более 2 лет.Вы в курсе что у вас содержимое ansaldo.local и файл 169.254.37.zone - одинаковые?
> Вроде бы все нормально.
Если это не ошибка и они у вас действительно одинаковые - это дико ненормально.
> Удалил одну из записей в файле зоны - timecontrol.ansaldo.local. Очистил кеш, сделал
> reload. Проверяю:
> nslookup timecontrol.ansaldo.local
> Разрешает!!!!!Ваше шаманство с конфигами ничего не значит. Этот сервер не использувется. Разрешение имен происходит где-то в другом месте. Остановите его совсем.
проверьте разрешает ли имена именно указанный сервер, добавив прямое указание где именно производить разрешение имени в строку:
nslookup timecontrol.ansaldo.local 169.254.37.1
> Ваше шаманство с конфигами ничего не значит. Этот сервер не использувется. Разрешение
> имен происходит где-то в другом месте. Остановите его совсем.
> проверьте разрешает ли имена именно указанный сервер, добавив прямое указание где именно
> производить разрешение имени в строку:
> nslookup timecontrol.ansaldo.local 169.254.37.1Очень извиняюсь, ошибочка вышла. Скопировал оба раз файл обратной зоны. Вот файл ansaldo.local:
$ttl 38400
@ IN SOA ns.ansaldovei.local. admin.ansaldo.local. (
11432011614
10800
3600
604800
38400 )
IN NS ns.ansaldo.local.
IN A 169.254.37.1
; MX 10 mail.ecocentr.local.
locahost IN A 127.0.0.1
;ns IN A 169.254.37.1
;www IN A 169.254.37.1
www IN CNAME ns.ansaldo.local.
ns IN CNAME ns.ansaldo.local.
ftp IN CNAME ns.ansaldo.local.
local.ansaldo.local IN A 169.254.37.1
traffic.ansaldo.local. IN A 169.254.37.1
firewall.ansaldo.local. IN A 169.254.37.1
timecontrol.ansaldo.local. IN A 169.254.37.230
katalog.ansaldo.local. IN A 169.254.37.230
diskstationbuh.ansaldo.local. IN A 169.254.37.240
localserver.ansaldo.local. IN A 169.254.37.1
comps.ansaldo.local IN A 169.254.37.1Я тоже сначала подумал, что разрешает какой-то другой сервер. Хотя в локалке больше DNS серверов нет и быть не может, но, подумал, может барабашка какой. Вводил я команду:
nslookup timecontrol.ansaldo.local 169.254.37.1
Именно он и отвечает.
>ns IN CNAME ns.ansaldo.local.Используйте утилиту named-checkzone чтобы проверить корректность конфигурации. С такой записью зона загружена не будет.
>>ns IN CNAME ns.ansaldo.local.
> Используйте утилиту named-checkzone чтобы проверить корректность конфигурации. С такой
> записью зона загружена не будет.Проверил. Сначала утилита ругнулась на серийник:
named-checkzone ansaldo.local /var/named/ansaldo.local
dns_rdata_fromtext: /var/named/ansaldo.local:2: near '11432011614': out of range
zone ansaldo.local/IN: loading from master file /var/named/ansaldo.local failed: out of rangeТолько одну цифру добавил в серийник - и ругается. Исправил, теперь ругается на другое:
named-checkzone ansaldo.local /var/named/ansaldovei.local
zone ansaldo.local/IN: NS 'ns.ansaldo.local' is a CNAME (illegal)
zone ansaldo.local/IN: loaded serial 120110614Как понять на какую запись 'ns.ansaldo.local' она ругается? В файле их несколько.
А серийник я, конечно менял. Но как я заметил еще при предыдущем редактировании файла зоны - это делать не обязательно. Год назад я добавлял в этот файл другую запись и забыл поменять серийник - никаких проблем.
> named-checkzone ansaldo.local /var/named/ansaldo.local
> named-checkzone ansaldo.local /var/named/ansaldovei.localОбъясните пожалуста, почему для описании одной и той же зоны у вас используются разные файлы настройки?
покажите ваш named.conf
>> named-checkzone ansaldo.local /var/named/ansaldo.local
>> named-checkzone ansaldo.local /var/named/ansaldovei.local
> Объясните пожалуста, почему для описании одной и той же зоны у вас
> используются разные файлы настройки?
> покажите ваш named.confЭто один и тот же файл, посто я отвлекся и случайно напечатал эти самые vei. Описка вышла.
>>> named-checkzone ansaldo.local /var/named/ansaldo.local
>>> named-checkzone ansaldo.local /var/named/ansaldovei.local
>> Объясните пожалуста, почему для описании одной и той же зоны у вас
>> используются разные файлы настройки?
>> покажите ваш named.conf
> Это один и тот же файл, посто я отвлекся и случайно напечатал
> эти самые vei. Описка вышла.для ns сделайте A запись, а не CNAME
>>ns IN CNAME ns.ansaldo.local.
> Используйте утилиту named-checkzone чтобы проверить корректность конфигурации. С такой
> записью зона загружена не будет.Я закомментировал в файле зоны строку:
ns IN CNAME ns.ansaldo.local
и раскомментировал строку
ns IN A 169.254.37.1
После этого опять запустил проверку конфига:
named-checkzone ansaldovei.local /var/named/ansaldovei.local
zone ansaldovei.local/IN: loaded serial 120110614
OK
Как видите никаких проблем больше нет. Однако опять то же самое. Запись katalog.ansaldovei.local сервак не находит, а запись timecontrol.ansaldovei.local находит, хотя первая в конфиге присутствует а вторая уже удалена. БАРАБАШКа где-то там завелся, не иначе!!!
>[оверквотинг удален]
> После этого опять запустил проверку конфига:
>
> named-checkzone ansaldovei.local /var/named/ansaldovei.local
> zone ansaldovei.local/IN: loaded serial 120110614
> OK
>
> Как видите никаких проблем больше нет. Однако опять то же самое. Запись
> katalog.ansaldovei.local сервак не находит, а запись timecontrol.ansaldovei.local находит,
> хотя первая в конфиге присутствует а вторая уже удалена. БАРАБАШКа где-то
> там завелся, не иначе!!!service named restart, rndc stats , смотрим логи и файл
>[оверквотинг удален]
>>
>> named-checkzone ansaldovei.local /var/named/ansaldovei.local
>> zone ansaldovei.local/IN: loaded serial 120110614
>> OK
>>
>> Как видите никаких проблем больше нет. Однако опять то же самое. Запись
>> katalog.ansaldovei.local сервак не находит, а запись timecontrol.ansaldovei.local находит,
>> хотя первая в конфиге присутствует а вторая уже удалена. БАРАБАШКа где-то
>> там завелся, не иначе!!!
> service named restart, rndc stats , смотрим логи и файлСделал и увидел в логе messages нечто странное:
Jun 16 14:30:55 AnsaldoGW named[19971]: 16-Jun-2011 14:30:55.979 general: info: zone 37.254.169.in-addr.arpa/IN: loaded serial 1143200821
Jun 16 14:30:55 AnsaldoGW named[19971]: 16-Jun-2011 14:30:55.984 general: info: zone ansaldo.local/IN: loaded serial 1143200824
Jun 16 14:30:55 AnsaldoGW named[19971]: 16-Jun-2011 14:30:55.985 general: error: zone localhost/IN: loading from master file /var/named/localhost.zone failed: no owner
Jun 16 14:30:55 AnsaldoGW named[19971]: 16-Jun-2011 14:30:55.990 general: notice: running
Но ведь в файлах зон другие серийники!!!
В ansaldo.local - 120110614
в 169.254.37.zone - 120110614
Да откуда же он берет файлы зон??? Ведь в конфиге /etc/named.conf написано:zone "localhost" in {
type master;
file "/var/named/localhost.zone";
allow-update { none; };
};zone "0.0.127.in-addr.arpa" in {
type master;
file "/var/named/127.0.0.zone";
allow-update { none; };
};zone "." in {
type hint;
file "/var/named/named.ca";
};zone "ansaldovei.local" in {
type master;
file "/var/named/ansaldovei.local";
};zone "37.254.169.in-addr.arpa" in {
type master;
file "/var/named/169.254.37.zone";
};
И именно в указанных тут директориях я и правлю файлы!!! Где же он взял эти серийники? А файлы зон откуда взялись?
>[оверквотинг удален]
> type master;
> file "/var/named/ansaldovei.local";
> };
> zone "37.254.169.in-addr.arpa" in {
> type master;
> file "/var/named/169.254.37.zone";
> };
>
Тьфу ты, опять по инерции вместо ansaldo напечатал ansaldovei - это у нас название компании такое.
>[оверквотинг удален]
>> };
>> zone "37.254.169.in-addr.arpa" in {
>> type master;
>> file "/var/named/169.254.37.zone";
>> };
>>
>> И именно в указанных тут директориях я и правлю файлы!!! Где же
>> он взял эти серийники? А файлы зон откуда взялись?
> Тьфу ты, опять по инерции вместо ansaldo напечатал ansaldovei - это у
> нас название компании такое.запущен в chroot наверно, вот и смотрите относительно него, где то в /var/named/...
>[оверквотинг удален]
>>> type master;
>>> file "/var/named/169.254.37.zone";
>>> };
>>>
>>> И именно в указанных тут директориях я и правлю файлы!!! Где же
>>> он взял эти серийники? А файлы зон откуда взялись?
>> Тьфу ты, опять по инерции вместо ansaldo напечатал ansaldovei - это у
>> нас название компании такое.
> запущен в chroot наверно, вот и смотрите относительно него, где то в
> /var/named/...Запущен он не в chroot. Но конфиги действительно лежат в /var/named. Ведь в named.conf именно так и прописано.
>[оверквотинг удален]
>>>> file "/var/named/169.254.37.zone";
>>>> };
>>>>
>>>> И именно в указанных тут директориях я и правлю файлы!!! Где же
>>>> он взял эти серийники? А файлы зон откуда взялись?
>>> Тьфу ты, опять по инерции вместо ansaldo напечатал ansaldovei - это у
>>> нас название компании такое.
>> запущен в chroot наверно, вот и смотрите относительно него, где то в
>> /var/named/...
> Запущен он не в chroot. Но конфиги действительно лежат в /var/named. Ведьв /var/named/etc ? тогда скорей всего в chroot.
> в named.conf именно так и прописано.
имеете введу directory "/var/named";
это будет добавлено к пути к файлу если не указан полный путь, но опять таки относительно chroot
> в /var/named/etc ? тогда скорей всего в chroot.
>> в named.conf именно так и прописано.
> имеете введу directory "/var/named";
> это будет добавлено к пути к файлу если не указан полный путь,
> но опять таки относительно chrootНе в /var/named/etc, а в в /var/named - нет там директории /etc. Но даже если в chroot - где же искать эти конфиги?
>> в /var/named/etc ? тогда скорей всего в chroot.
>>> в named.conf именно так и прописано.
>> имеете введу directory "/var/named";
>> это будет добавлено к пути к файлу если не указан полный путь,
>> но опять таки относительно chroot
> Не в /var/named/etc, а в в /var/named - нет там директории /etc.
> Но даже если в chroot - где же искать эти конфиги?посмотрите стартовый скрипт /etc/rc.d/init.d/named, там будет видно в chroot ли и где именно
>>> в /var/named/etc ? тогда скорей всего в chroot.
>>>> в named.conf именно так и прописано.
>>> имеете введу directory "/var/named";
>>> это будет добавлено к пути к файлу если не указан полный путь,
>>> но опять таки относительно chroot
>> Не в /var/named/etc, а в в /var/named - нет там директории /etc.
>> Но даже если в chroot - где же искать эти конфиги?
> посмотрите стартовый скрипт /etc/rc.d/init.d/named, там будет видно в chroot ли и где
> именноПосмотрел там и нашел вот такие строки:
[ -f /etc/sysconfig/named ] && . /etc/sysconfig/named
[ -f /usr/sbin/named ] || exit 0
[ -f /var/lib/named/etc/named.conf ] || exit 0
Иду в
/var/lib/named/etc/named.conf
и смотрю его. Вижу:
zone "ansaldovei.local" in {
type master;
file "/var/named/ansaldovei.local";
};zone "37.254.169.in-addr.arpa" in {
type master;
file "/var/named/169.254.37.zone";
};
Вроде бы туда же ссылается, но в директории /var/lib/named есть своя директория /var/named в которой лежат файлы зоны. Скопировал поверх них свои файлы зон - и все заработало!
Спасибо большое!
>> в /var/named/etc ? тогда скорей всего в chroot.
>>> в named.conf именно так и прописано.
>> имеете введу directory "/var/named";
>> это будет добавлено к пути к файлу если не указан полный путь,
>> но опять таки относительно chroot
> Не в /var/named/etc, а в в /var/named - нет там директории /etc.
> Но даже если в chroot - где же искать эти конфиги?Решите задачу "в лоб" - проведите поиск файла на диске...
А серийник то был увеличен приредактировании или нет? У меня такое впечатление, что нет, а без увеличения серийника зона изменена не будет.
> А серийник то был увеличен приредактировании или нет? У меня такое впечатление,
> что нет, а без увеличения серийника зона изменена не будет.Это не совсем так. В чем можно легко убедиться. Изменение серийного номера зоны имеет смысл для репликации.
Если же у нас один авторитативный сервер - зону можно и не менять. По крайней мере в bind9
да, в 9.8 точно это так