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

Исходное сообщение
"Bind - не хочет разрешать новую запись в зону"

Отправлено andrystepa , 14-Июн-11 16:15 
На локальном шлюзе стоит 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
Разрешает!!!!! Как будто никаких изменений в файле зоны и небыло!!! Как это понимать? Кто знает - помогите пожалуйста!!

Содержание

Сообщения в этом обсуждении
"Bind - не хочет разрешать новую запись в зону"
Отправлено reader , 14-Июн-11 16:52 
а прямая зона то где?

"Bind - не хочет разрешать новую запись в зону"
Отправлено Square , 14-Июн-11 17:00 
> На локальном шлюзе стоит 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


"Bind - не хочет разрешать новую запись в зону"
Отправлено andrystepa , 14-Июн-11 17:18 
> Ваше шаманство с конфигами ничего не значит. Этот сервер не использувется. Разрешение
> имен происходит где-то в другом месте. Остановите его совсем.
> проверьте разрешает ли имена именно указанный сервер, добавив прямое указание где именно
> производить разрешение имени в строку:
> 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
Именно он и отвечает.


"Bind - не хочет разрешать новую запись в зону"
Отправлено Square , 14-Июн-11 18:10 
>ns                     IN      CNAME   ns.ansaldo.local.

Используйте утилиту named-checkzone чтобы проверить корректность конфигурации. С такой записью зона загружена не будет.


"Bind - не хочет разрешать новую запись в зону"
Отправлено andrystepa , 15-Июн-11 14:43 
>>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' она ругается? В файле их несколько.
А серийник я, конечно менял. Но как я заметил еще при предыдущем редактировании файла зоны - это делать не обязательно. Год назад я добавлял в этот файл другую запись и забыл поменять серийник - никаких проблем.


"Bind - не хочет разрешать новую запись в зону"
Отправлено Square , 15-Июн-11 15:53 
>  named-checkzone ansaldo.local /var/named/ansaldo.local
>   named-checkzone ansaldo.local /var/named/ansaldovei.local

Объясните пожалуста, почему для описании одной и той же зоны у вас используются разные файлы настройки?
покажите ваш named.conf


"Bind - не хочет разрешать новую запись в зону"
Отправлено andrystepa , 16-Июн-11 11:51 
>>  named-checkzone ansaldo.local /var/named/ansaldo.local
>>   named-checkzone ansaldo.local /var/named/ansaldovei.local
> Объясните пожалуста, почему для описании одной и той же зоны у вас
> используются разные файлы настройки?
> покажите ваш named.conf

Это один и тот же файл, посто я отвлекся и случайно напечатал эти самые vei. Описка вышла.


"Bind - не хочет разрешать новую запись в зону"
Отправлено reader , 16-Июн-11 11:56 
>>>  named-checkzone ansaldo.local /var/named/ansaldo.local
>>>   named-checkzone ansaldo.local /var/named/ansaldovei.local
>> Объясните пожалуста, почему для описании одной и той же зоны у вас
>> используются разные файлы настройки?
>> покажите ваш named.conf
> Это один и тот же файл, посто я отвлекся и случайно напечатал
> эти самые vei. Описка вышла.

для ns сделайте A запись, а не CNAME


"Bind - не хочет разрешать новую запись в зону"
Отправлено andrystepa , 16-Июн-11 12:17 
>>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 находит, хотя первая в конфиге присутствует а вторая уже удалена. БАРАБАШКа где-то там завелся, не иначе!!!

    


"Bind - не хочет разрешать новую запись в зону"
Отправлено reader , 16-Июн-11 13:10 
>[оверквотинг удален]
> После этого опять запустил проверку конфига:
>
 
>  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 , смотрим логи и файл



"Bind - не хочет разрешать новую запись в зону"
Отправлено andrystepa , 16-Июн-11 14:53 
>[оверквотинг удален]
>>
 
>>  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";
};


И именно в указанных тут директориях я и правлю файлы!!! Где же он взял эти серийники? А файлы зон откуда взялись?

"Bind - не хочет разрешать новую запись в зону"
Отправлено andrystepa , 16-Июн-11 14:55 
>[оверквотинг удален]
> 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 - это у нас название компании такое.


"Bind - не хочет разрешать новую запись в зону"
Отправлено reader , 16-Июн-11 15:21 
>[оверквотинг удален]
>> };
>> zone "37.254.169.in-addr.arpa" in {
>> type master;
>> file "/var/named/169.254.37.zone";
>> };
>>
>> И именно в указанных тут директориях я и правлю файлы!!! Где же
>> он взял эти серийники? А файлы зон откуда взялись?
> Тьфу ты, опять по инерции вместо ansaldo напечатал ansaldovei - это у
> нас название компании такое.

запущен в chroot наверно, вот и смотрите относительно него, где то в /var/named/...


"Bind - не хочет разрешать новую запись в зону"
Отправлено andrystepa , 16-Июн-11 15:55 
>[оверквотинг удален]
>>> type master;
>>> file "/var/named/169.254.37.zone";
>>> };
>>>
>>> И именно в указанных тут директориях я и правлю файлы!!! Где же
>>> он взял эти серийники? А файлы зон откуда взялись?
>> Тьфу ты, опять по инерции вместо ansaldo напечатал ansaldovei - это у
>> нас название компании такое.
> запущен в chroot наверно, вот и смотрите относительно него, где то в
> /var/named/...

Запущен он не в chroot. Но конфиги действительно лежат в /var/named. Ведь в named.conf именно так и прописано.


"Bind - не хочет разрешать новую запись в зону"
Отправлено reader , 16-Июн-11 16:06 
>[оверквотинг удален]
>>>> 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


"Bind - не хочет разрешать новую запись в зону"
Отправлено andrystepa , 16-Июн-11 16:12 
> в /var/named/etc ? тогда скорей всего в chroot.
>> в named.conf именно так и прописано.
> имеете введу directory "/var/named";
> это будет добавлено к пути к файлу если не указан полный путь,
> но опять таки относительно chroot

Не в /var/named/etc, а в в /var/named - нет там директории /etc. Но даже если в chroot - где же искать эти конфиги?


"Bind - не хочет разрешать новую запись в зону"
Отправлено reader , 16-Июн-11 16:24 
>> в /var/named/etc ? тогда скорей всего в chroot.
>>> в named.conf именно так и прописано.
>> имеете введу directory "/var/named";
>> это будет добавлено к пути к файлу если не указан полный путь,
>> но опять таки относительно chroot
> Не в /var/named/etc, а в в /var/named - нет там директории /etc.
> Но даже если в chroot - где же искать эти конфиги?

посмотрите стартовый скрипт /etc/rc.d/init.d/named, там будет видно в chroot ли и где именно


"Bind - не хочет разрешать новую запись в зону"
Отправлено andrystepa , 17-Июн-11 10:04 
>>> в /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 в которой лежат файлы зоны. Скопировал поверх них свои файлы зон - и все заработало!
Спасибо большое!


"Bind - не хочет разрешать новую запись в зону"
Отправлено Square , 16-Июн-11 19:50 
>> в /var/named/etc ? тогда скорей всего в chroot.
>>> в named.conf именно так и прописано.
>> имеете введу directory "/var/named";
>> это будет добавлено к пути к файлу если не указан полный путь,
>> но опять таки относительно chroot
> Не в /var/named/etc, а в в /var/named - нет там директории /etc.
> Но даже если в chroot - где же искать эти конфиги?

Решите задачу "в лоб" - проведите поиск файла на диске...


"Bind - не хочет разрешать новую запись в зону"
Отправлено aurved , 14-Июн-11 21:15 
А серийник то был увеличен приредактировании или нет? У меня такое впечатление, что нет, а без увеличения серийника зона изменена не будет.

"Bind - не хочет разрешать новую запись в зону"
Отправлено Square , 14-Июн-11 23:34 
> А серийник то был увеличен приредактировании или нет? У меня такое впечатление,
> что нет, а без увеличения серийника зона изменена не будет.

Это не совсем так. В чем можно легко убедиться. Изменение серийного номера зоны имеет смысл для репликации.
Если же у нас один авторитативный сервер - зону можно и не менять. По крайней мере в bind9


"Bind - не хочет разрешать новую запись в зону"
Отправлено aurved , 15-Июн-11 09:43 
да, в 9.8 точно это так