LINUX.ORG.RU
решено ФорумAdmin

Не получается настроить bind9 для локальной сети

 


0

1

Привет, ЛОР.

Есть одна локальная сетка, в которой я хочу завести домен, но так уж вышло что в DNS я нуб.

Итак, я устанавливаю bind, настраиваю кэш, после чего создаю две зоны в /etc/bind/named.conf.local:

zone "home.local" {
        type master;
        file "/etc/bind/db.home";
        update-policy local;
};


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

db.home:

$TTL    604800
@       IN      SOA     home.local. root.home.local. (
                              7         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL

        IN      A       192.168.0.100   


localhost       IN      A       127.0.0.1

home.local.     IN      NS      serv.home.local.

t410    IN      A       192.168.0.107
desk    IN      A       192.168.0.106
serv    IN      A       192.168.0.100

rev.0.168.192.in-addr.arpa:

$TTL    604800
@       IN      SOA     home.local. root.home.local. (
                              6         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;

IN      NS      serv.home.local.

107     IN      PTR     t410.home.local.
106     IN      PTR     desk.home.local.
100     IN      PTR     serv.home.local.

Перезагружаю сервер, прописываю его в resolv.conf машины, и обнаруживаю что не проходят пинги ни на один из описанных хостов.

host -l home.local

home.local name server serv.home.local.
home.local has address 192.168.0.100
desk.home.local has address 192.168.0.106
localhost.home.local has address 127.0.0.1
serv.home.local has address 192.168.0.100
t410.home.local has address 192.168.0.107

nslookup t410.home.local

Server:		192.168.0.100
Address:	192.168.0.100#53

Name:	t410.home.local
Address: 192.168.0.107

ping serv.home.local

ping: unknown host serv.home.local

host serv.home.local

serv.home.local has address 192.168.0.100

host 192.168.0.100

Host 100.0.168.192.in-addr.arpa not found: 2(SERVFAIL)

По поводу in-addr.arpa посмотрите, что даёт ″host -l 0.168.192.in-addr.arpa.″.

По поводу ping. Если считать, что вы опечатались и на ″ping serv.home.local ″ ответ, что не найден ″serv.home.local″, а не ″t410.home.local″, то можно посмотреть файл ″/etc/nsswitch.conf″, что там в строке ″hosts″.

mky ★★★★★ ()
Ответ на: комментарий от mky

Вывод host -l 0.168.192.in-addr.arpa.

host -l 0.168.192.in-addr.arpa.
; Transfer failed.
Host 0.168.192.in-addr.arpa not found: 2(SERVFAIL)
; Transfer failed.

В строчке с пингом действительно ошибка, там должно было быть ping serv.home.local, да. Не то скопипастил. Поправил пост.

Файл /et/nsswitch.conf:

passwd:         compat
group:          compat
shadow:         compat

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

njm2ody ()
Ответ на: комментарий от njm2ody

Вот, значит зоны 0.168.192.in-addr.arpa. у вас нет. На всякий случай убедитесь, что нет ответа на ″host -t SOA 0.168.192.in-addr.arpa.″ и ищите, почему bind не загружает эту зону. Посмотрите логи bind'а, там, если это не отключено, должно быть написано, загружал ли он при старте эту зону или была ошибка и он её целиком проигнорировал. Может прав на чтение файла не хватает, может файл назван по другому, может в файле зоны нужно прописать ″$ORIGIN 0.168.192.in-addr.arpa.″

А работе ping мешает nsswitch.conf. Лично я вобще не навижу zeroconf, поэтому у меня:

hosts:          files dns
хотя вам в принципе должно хватить удаления строки ″[NOTFOUND=return]″.

mky ★★★★★ ()
Последнее исправление: mky (всего исправлений: 1)
Ответ на: комментарий от mky

Ещё добавлю, что в целом использовать ″.local″ в качестве имени top-level домена в DNS-сервере не очень хорошая идея. Это имя зарезервировано для mDNS (multicast) и должно резолвится с помощью multicast-запросов, а не DNS-сервера. И, если сегодня в Линуксе это можно перенастроить, то не факт что завтра у вас в сети не появится устройство, где это прибито гвоздями.

Уж лучше, либо сделать себе свой поддомен из того домена, что куплен для офиса, либо взять имя, которое не используется и вряд ли будет кем-либо зарегестрировано, допустим ″.lan00″.

mky ★★★★★ ()
Ответ на: комментарий от mky

Ещё добавлю, что в целом использовать ″.local″ в качестве имени top-level домена в DNS-сервере не очень хорошая идея. Это имя зарезервировано для mDNS (multicast) и должно резолвится с помощью multicast-запросов, а не DNS-сервера. И, если сегодня в Линуксе это можно перенастроить, то не факт что завтра у вас в сети не появится устройство, где это прибито гвоздями.

Спасибо, как выяснилось проблема была именно в том что я использовал домен local, стоило его сменить на другой и все заработало.

Что же до обратной зоны, то бинд не мог найти NS запись для нее,

zone 0.168.192.in-addr.arpa/IN: has no NS records
zone 0.168.192.in-addr.arpa/IN: not loaded due to errors.

Заменил строку

IN      NS      serv.home.local.
на
@ IN NS serv.home.local.
(домен, как вы помните, другой) и добавил
$ORIGIN 0.168.192.in-addr.arpa

Кроме того, отредактировал /etc/nsswitch.conf как советовали.

Теперь все хорошо, насколько я могу судить.

njm2ody ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.