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

[РЕШЕНО]Bind для локальной зоны

Добавлено: 2010-01-24 23:32:01
strom
Имеется шлюз на котором установлена FreeBSD. Поднял кеширующий dns. Теперь пытаюсь настроить bind для локальной зоны, которую хочу расположить на этом же шлюзе, как nameservere. Цель - в последствии поднять апач для внутренней сети. Bind продолжает работать, как кеширующий сервер, но отказывается работать с зоной для внутрисети.
конфигурационные файлы привожу ниже

файл resolv.conf - прописывается автоматически, т.к на внешнем интерфейсе, ip получается по dhcp у провайдера

named.conf

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

key "rndc-key" {
        algorithm hmac-md5;
        secret "тут реальное число==";
};
controls {
        inet 127.0.0.1 port 953
                allow { 127.0.0.1; } keys { "rndc-key"; };
};

#Nastroyka logov
logging {
        channel syslog {
                syslog daemon;
                severity info;
                print-category yes;
                print-severity yes;
        };
        category xfer-in { syslog; };
        category xfer-out { syslog; };
        category config { syslog; };
        category default { null; };
};

# Cash for internal network
acl "corpnets" { 192.168.0.0/24; 127.0.0.1; };

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

  forwarders {
                127.0.0.1; 85.12.19.30; 85.12.19.31;
        };

 allow-query { "corpnets"; };

#Zones

zone "." {
        type hint;
        file "named.root";
};

zone "localhost" {
        type master;
        file "master/localhost";
        allow-transfer { 127.0.0.1; 192.168.0.1; };
        
};
zone "0.0.127.IN-ADDR.ARPA" {
        type master;
        file "master/localhost.rev";
        allow-transfer { 127.0.0.1; 192.168.0.1; };
        
};

#Зона локальной сети
zone "host.loc" {
        // тип
        type master;
        // файл с зоной
        file "master/host.loc";
        // сервера на которые можно передавать зону
        allow-transfer { 127.0.0.1; 192.168.0.1; };
        
};
        // обратная зона для локалсети
zone "0.168.192.in-addr.arpa" {
        type master;
        file "master/host.loc.rev";
        allow-transfer { 127.0.0.1; 192.168.0.1; };
        
};
файлы зон

localhost

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

$TTL    3600

host.loc        IN      SOA     rout.host.loc. root.rout.host.loc.  (
                                20040603        ; Serial
                                3600    ; Refresh
                                900     ; Retry
                                3600000 ; Expire
                                3600 )  ; Minimum
@       IN      NS      rout.host.loc.
@       IN      A       127.0.0.1
localhost       IN      A       127.0.0.1
localhost.rev

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

$TTL    3600

host.loc        IN      SOA     rout.host.loc. root.rout.host.loc.  (
                                20040603        ; Serial
                                3600    ; Refresh
                                900     ; Retry
                                3600000 ; Expire
                                3600 )  ; Minimum
@       IN      NS      rout.host.loc.
1       IN      PTR     localhost.
host.loc

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

host.loc        IN      SOA     rout.host.loc. root.rout.host.loc.  (
                                20040603        ; Serial
                                3600    ; Refresh
                                900     ; Retry
                                3600000 ; Expire
                                3600 )  ; Minimum
@       IN      NS      rout.host.loc.
@      MX      10      mx.host.loc.
rout.host.loc   IN      A       192.168.0.1
www     IN      A       192.168.0.1
rout    IN      A       192.168.0.1
mx      IN      A       192.168.0.1
mail    IN      A       192.168.0.1
host.loc.rev

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

$TTL    3600

host.loc        IN      SOA     rout.host.loc. root.rout.host.loc.  (
                                20040603        ; Serial
                                3600    ; Refresh
                                900     ; Retry
                                3600000 ; Expire
                                3600 )  ; Minimum
@       IN      NS      rout.host.loc.
1       IN      PTR     rout.host.loc.

Re: Bind для локальной зоны

Добавлено: 2010-01-25 13:26:16
hizel
как отказывается то? :)

Re: Bind для локальной зоны

Добавлено: 2010-01-25 16:36:55
strom
Перед тем как протестировать внутреннюю зону intranet -192.168.0.0/24 прописываю в resolv.conf следующее

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

search host.loc
nameserver 192.168.0.1
остальные сервера, получаемые при каждой перезагрузке по умолчанию от провайдера - закоментировал.
далее пробую

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

[u@h W]$ host -v host.loc
Trying "host.loc"
Host host.loc not found: 2(SERVFAIL)
Received 26 bytes from 192.168.0.1#53 in 0 ms
Вот так ругается. Подскажите чего не так.

Re: Bind для локальной зоны

Добавлено: 2010-01-25 16:53:49
hizel
стрянно, почему не zone "loc" ?

у меня

в /etc/namedb/named.conf

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

  zone "local" {
    type master;
    file "internal/local.db";
  };
и в /etc/namedb/internal/local.db

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

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

@       NS      @

; Silence a BIND warning
@       A       192.168.22.193
router  A       192.168.22.193

Re: Bind для локальной зоны

Добавлено: 2010-01-25 17:17:53
strom
переписал файлы - получилось
файл named.conf

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

#Зона локальной сети
zone "loc" {
        // тип
        type master;
        // файл с зоной
        file "master/loc";
};

zone "0.168.192.in-addr.arpa" {
        type master;
        file "master/loc.rev";
};

файл loc

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

$TTL    3600

@ SOA @ nobody.loc.  (
                                20040603        ; Serial
                                3600    ; Refresh
                                900     ; Retry
                                3600000 ; Expire
                                3600 )  ; Minimum
@       NS      @

; Silence a BIND warning
@       A       192.168.0.1
rout  A       192.168.0.1
www    IN      A       192.168.0.1
mx     IN      A       192.168.0.1
mail   IN      A       192.168.0.1

файл loc.rev

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

$TTL    3600

@ SOA @ nobody.loc. (
                                20040603        ; Serial
                                3600    ; Refresh
                                900     ; Retry
                                3600000 ; Expire
                                3600 )  ; Minimum
@       IN      NS      rout.loc.
1       IN      PTR     rout.loc.

Re: Bind для локальной зоны

Добавлено: 2010-01-25 17:19:02
hizel
то есть работает? проблема решена?

Re: Bind для локальной зоны

Добавлено: 2010-01-25 17:20:18
strom
Выдает следующее... на обратную зону вроде не ругается... а вот на прямую

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

[u@h W]$ host -v rout.loc
Trying "rout.loc"
Host rout.loc not found: 2(SERVFAIL)
Received 26 bytes from 192.168.0.1#53 in 1 ms
[u@h W]$ host -v 192.168.0.1
Trying "1.0.168.192.in-addr.arpa"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7297
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;1.0.168.192.in-addr.arpa.      IN      PTR

;; ANSWER SECTION:
1.0.168.192.in-addr.arpa. 3600  IN      PTR     rout.loc.

;; AUTHORITY SECTION:
0.168.192.in-addr.arpa. 3600    IN      NS      rout.loc.

Received 78 bytes from 192.168.0.1#53 in 2 ms

Re: Bind для локальной зоны

Добавлено: 2010-01-25 17:26:50
hizel
так named при внедрении настроек ошибок в лог не дает?

Re: Bind для локальной зоны

Добавлено: 2010-01-25 17:31:08
strom
он и до внедрения в log ошибок не давал... сейчас еще раз проверил. Все по прежнему - на прямую зону ругается, в логе все нормально...

Re: Bind для локальной зоны

Добавлено: 2010-01-25 17:40:42
hizel
не вижу где собак зарыт, видимо поможет только включение дебаг лога

Re: Bind для локальной зоны

Добавлено: 2010-01-25 18:10:10
strom
с каким значением debug-log named запускать?

Re: Bind для локальной зоны

Добавлено: 2010-01-25 22:18:24
_Гагарин_ёпт
а че параметр listen-on не нужен что ли для авторитетных ДНС серверов?..

покажи:

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

sockstat -l | grep named

Re: Bind для локальной зоны

Добавлено: 2010-01-25 22:52:38
_Попов_ёпт
да, без listen-on пашет... туплю перед сном...

собственно твоя конфигурация, только применительно ко мне:

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

options {
          version "version.bind.";
          directory "/etc/namedb";
          pid-file        "/var/run/named/pid";
          dump-file       "/var/dump/named_dump.db";
          statistics-file "/var/stats/named.stats";
          allow-query { 127.0.0.1; 172.16.16/24; };
};

zone "." { type hint; file "named.root"; };

zone "loc" {
        type master;
        file "master/loc";
};

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

$TTL    3600

@ SOA @ nobody.loc.  (
                                20040603        ; Serial
                                3600    ; Refresh
                                900     ; Retry
                                3600000 ; Expire
                                3600 )  ; Minimum
@       NS      @

; Silence a BIND warning
@       A       172.16.16.1
rout  A       172.16.16.1
www    IN      A       172.16.16.1
mx     IN      A       172.16.16.1
mail   IN      A       172.16.16.1
дает результаты:

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

/home/dm>host -v rout.loc
Trying "rout.loc"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4837
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;rout.loc.                      IN      A

;; ANSWER SECTION:
rout.loc.               3600    IN      A       172.16.16.1

;; AUTHORITY SECTION:
loc.                    3600    IN      NS      loc.

;; ADDITIONAL SECTION:
loc.                    3600    IN      A       172.16.16.1

Received 72 bytes from 127.0.0.1#53 in 6 ms
Trying "rout.loc"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34761
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;rout.loc.                      IN      AAAA

;; AUTHORITY SECTION:
loc.                    3600    IN      SOA     loc. nobody.loc. 20040603 3600 900 3600000 3600

Received 69 bytes from 127.0.0.1#53 in 3 ms
Trying "rout.loc"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52600
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;rout.loc.                      IN      MX

;; AUTHORITY SECTION:
loc.                    3600    IN      SOA     loc. nobody.loc. 20040603 3600 900 3600000 3600

Received 69 bytes from 127.0.0.1#53 in 3 ms
в resolv.conf ничего нету абсолютно.

Re: Bind для локальной зоны

Добавлено: 2010-01-25 23:07:12
hizel
а что вы все каку-то друацкую зону loc используете? пользователи линупса что ли? :-)

Re: Bind для локальной зоны

Добавлено: 2010-01-25 23:22:32
snorlov
Я бы сначало бы проверил права пользователя bind на каталог master и на файлы в нем, затем
добавил бы listen { 192.168.0.1;127.0.01}; пусть bind слушает только внутреннюю сеть ну и локалхост
убрал forwarders и начал бы использовать зону root, все равно значения будут хранится в кеше
в зонах убил бы allow-transfer - нафиг передавать зоны самому себе
В зонах убил бы вообще упоминание про адрес 127.0.0.1

Re: Bind для локальной зоны

Добавлено: 2010-01-25 23:23:32
_Менделеев
провел чисты эксперимент из локалки. Правда у меня там тока виндовые машины и как там сделать host команду я не в понятиях, зато умею пользоваться nslookup:

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

Default Server:  UnKnown
Address:  172.16.16.1

> rout.loc
Server:  UnKnown
Address:  172.16.16.1

Name:    rout.loc
Address:  172.16.16.1

> set type=soa
> rout.loc
Server:  UnKnown
Address:  172.16.16.1

loc
        primary name server = loc
        responsible mail addr = nobody.loc
        serial  = 20040603
        refresh = 3600 (1 hour)
        retry   = 900 (15 mins)
        expire  = 3600000 (41 days 16 hours)
        default TTL = 3600 (1 hour)
> set type=a
> rout.loc
Server:  UnKnown
Address:  172.16.16.1

Name:    rout.loc
Address:  172.16.16.1 
вот, отдает ведь собака все что ни папросишь.

насчет линупса, так ведь эта... я тут причем-та... дядя hizel?
это все он... топикстартёр.

а если по делу, то че-та намучено в named.conf
надо срочно упрощать, ведь у меня-то работаит (описано выше как)

Re: Bind для локальной зоны

Добавлено: 2010-01-25 23:40:03
strom
Похоже я нашел собаку, но пока не совсем понимаю в чем она порылась
на обратную зону все вроде нормально

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

[u@h W]$ named-checkzone loc /etc/namedb/master/loc.rev
zone loc/IN: loaded serial 20040603
OK
а вот это выдает на прямую, вот где она порылась, собака эта...

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

[u@h W]$ named-checkzone loc /etc/namedb/master/loc
/etc/namedb/master/loc:1: no current owner name
zone loc/IN: loading master file /etc/namedb/master/loc: no owner

Re: Bind для локальной зоны

Добавлено: 2010-01-25 23:51:43
google
no current owner name
In your named logs, "no current owner name" means that that zone doesn't have a valid SOA.
Q:
I get a error message like "zone wireless.ietf56.ietf.org/IN: loading master
file primaries/wireless.ietf56.ietf.org: no owner".

A:
This error is produced when a line in the master file contains leading white
space (tab/space) but the is no current record owner name to inherit the
name from. Usually this is the result of putting white space before a
comment. Forgetting the "@" for the SOA record or indenting the master file.