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

Bind не резолвит имена по сети


0

1

Настроил bind, локально имена из моей зоны резолвятся. А вот если делать nslookup или dig по сети, ответа нет.

Система: Ubuntu 12.04

# named -v
BIND 9.8.1-P1

/etc/hosts на серваке с bind-ом (192.168.1.160)

127.0.0.1	localhost
127.0.1.1	dimon-desktop

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Зона:

/etc/bind/named.conf.local

zone "local" {
	type master;
	file "local/local";
	notify no;
};

/etc/bind/local/local

$TTL 3600
@ SOA local. root.local. (
	2012092501	; Serial
	10800		; Refresh
	3600		; Retry
	604800		; Expiry
	86400		; TTL
)

@			NS	ns.
pixun			A	192.168.1.160

/etc/resolv.conf пустой

С сервера

# dig @192.168.1.160 pixun.local.

; <<>> DiG 9.8.1-P1 <<>> @192.168.1.160 pixun.local.
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28818
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;pixun.local.			IN	A

;; ANSWER SECTION:
pixun.local.		3600	IN	A	192.168.1.160

;; AUTHORITY SECTION:
local.			3600	IN	NS	ns.

;; Query time: 0 msec
;; SERVER: 192.168.1.160#53(192.168.1.160)
;; WHEN: Tue Sep 25 23:47:15 2012
;; MSG SIZE  rcvd: 61

С клиента

# dig @192.168.1.160 pixun.local.

; <<>> DiG 9.7.0-P1 <<>> @192.168.1.160 pixun.local.
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 8715
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;pixun.local.			IN	A

;; AUTHORITY SECTION:
local.			10800	IN	SOA	localhost. nobody.localhost. 42 86400 43200 604800 10800

;; Query time: 36 msec
;; SERVER: 192.168.1.160#53(192.168.1.160)
;; WHEN: Tue Sep 25 23:47:55 2012
;; MSG SIZE  rcvd: 81

ЧЯНТД? Почему при запросе с клиентов нет ответа?

Ответ на: комментарий от shell-script

/etc/bind/named.conf

include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";

logging {
        channel default_syslog {
                file "/var/log/named/named.log" versions 3 size 5M;
                severity debug;
                print-time yes;
                print-severity yes;
                print-category yes;
        };
        category default { default_syslog; };
};

В логи не падает ничего, когда я резолвлю локальный адрес. По-умолчанию я доступ не прописывал. Попробовал дописать в named.conf.options

        listen-on {
                any;
        };
но не помогло

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

С названием «local» всегда проблемы, смени на «mylocal» например

Не-а :( То же самое

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

Вот шикарная дока по бинду, сразу ссылка на настройки логов: http://www.zytrax.com/books/dns/ch7/logging.html - тебе нужна категория queries, скорее всего.

На той машине, которая не получает ответа, что за резолвер? Не бинд ли? Если бинд, прозреваю, что проблема в dnssec.

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

Вобще чуднО:

С клиента

# dig @192.168.1.160 +tcp pixun.mylocal.

; <<>> DiG 9.7.0-P1 <<>> @192.168.1.160 +tcp pixun.mylocal.
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22619
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;pixun.mylocal.			IN	A

;; ANSWER SECTION:
pixun.mylocal.		3600	IN	A	192.168.1.160

;; AUTHORITY SECTION:
mylocal.		3600	IN	NS	ns.

;; Query time: 1 msec
;; SERVER: 192.168.1.160#53(192.168.1.160)
;; WHEN: Wed Sep 26 00:50:31 2012
;; MSG SIZE  rcvd: 63

На сервере:

# netstat -anp | grep named
tcp        0      0 10.0.0.10:53            0.0.0.0:*               LISTEN      29744/named     
tcp        0      0 192.168.1.160:53        0.0.0.0:*               LISTEN      29744/named     
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      29744/named     
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN      29744/named     
tcp6       0      0 :::53                   :::*                    LISTEN      29744/named     
tcp6       0      0 ::1:953                 :::*                    LISTEN      29744/named     
udp        0      0 10.0.0.10:53            0.0.0.0:*                           29744/named     
udp        0      0 192.168.1.160:53        0.0.0.0:*                           29744/named     
udp        0      0 127.0.0.1:53            0.0.0.0:*                           29744/named     
udp6       0      0 :::53                   :::*                                29744/named     
unix  2      [ ]         DGRAM                    262030   29744/named

То есть, на по TCP и UDP слушаем одни и те же порты, но по TCP отвечаем, а по UDP - нет. Я потерян..

Разница только в 953 порту. Но он локальный

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

ОК, логирование уже завтра подключу. Голова не варит на ноч глядя

На той машине, которая не получает ответа, что за резолвер? Не бинд ли? Если бинд, прозреваю, что проблема в dnssec.

Резолвер на клиенте? Имеется ввиду клиентская часть, которая просто запрос пускает? Обычная убунтовская. Но не bind точно

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

Там вроде был dnsmasq.

Я щас по памяти, у меня bind для опытов на рабочей тачке, завтра с четырёх могу ещё подумать и посмотреть, я всё равно его изучаю. :3

Hoodoo ★★★★★ ()

1. Полностью конфиг bind приведи, а не выдержки из него.

2. @ ns ns. - а ты точно уверен, что хочешь так? Именовать объект так, чтобы его имя совпадало с типом записи - плохой тон

3. named-checkconf

4. named-checkzone

5. логи старта bind?

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

1. Да я и не выдержки из конфига приводил, а целиком файлы. Объединю для наглядности с п.3:

# named-checkconf -p /etc/bind/named.conf
options {
	directory "/etc/bind";
	listen-on-v6 {
		"any";
	};
	auth-nxdomain no;
	recursion yes;
	forwarders {
		8.8.8.8;
		8.8.4.4;
	};
};
logging {
	channel "default_syslog" {
		file "/var/log/named/named.log" versions 3 size 5242880;
		severity debug 1;
		print-time yes;
		print-severity yes;
		print-category yes;
	};
	category "default" {
		"default_syslog";
	};
};
zone "mylocal" {
	type master;
	file "local/mylocal";
};
zone "." {
	type hint;
	file "/etc/bind/db.root";
};
zone "localhost" {
	type master;
	file "/etc/bind/db.local";
};
zone "127.in-addr.arpa" {
	type master;
	file "/etc/bind/db.127";
};
zone "0.in-addr.arpa" {
	type master;
	file "/etc/bind/db.0";
};
zone "255.in-addr.arpa" {
	type master;
	file "/etc/bind/db.255";
};

# cat /etc/bind/local/mylocal
$TTL 3600
@ SOA mylocal. root.mylocal. (
	2012092501	; Serial
	10800		; Refresh
	3600		; Retry
	604800		; Expiry
	86400		; TTL
)

@			NS	ns1.
pixun			A	192.168.1.160

2. Переписал на «ns1.»

4.

# named-checkconf /etc/bind/named.conf && echo 'ok'
ok

abr_linux ()
Ответ на: комментарий от no-dashi

5.

26-Sep-2012 23:32:29.035 general: info: zone 0.in-addr.arpa/IN: loaded serial 1
26-Sep-2012 23:32:29.035 general: info: zone 127.in-addr.arpa/IN: loaded serial 1
26-Sep-2012 23:32:29.035 general: info: zone 255.in-addr.arpa/IN: loaded serial 1
26-Sep-2012 23:32:29.036 general: info: zone localhost/IN: loaded serial 2
26-Sep-2012 23:32:29.036 general: info: zone mylocal/IN: loaded serial 2012092501
26-Sep-2012 23:32:29.036 general: error: managed-keys-zone ./IN: loading from master file managed-keys.bind failed: file not found
26-Sep-2012 23:32:29.036 general: info: managed-keys-zone ./IN: loaded serial 0
26-Sep-2012 23:32:29.037 notify: info: zone mylocal/IN: sending notifies (serial 2012092501)
26-Sep-2012 23:32:29.039 general: notice: running
С «severity debug» большое сообщение получается. Нужна детализация?

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

Нутром чувствовал, что проблема кроется не в bind и даже не в resolv.conf.

Когда-то давным-давно я на сервере поставил DNAT udp:53 на сервер провайдера. Поетому запросы шли мимо моего сервака на провайдера.

Решено

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

Нда

Я еще удивился вначале почему в зоне записано
@ SOA local. root.local.
a в ответе сервера
... SOA localhost. nobody.localhost.

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

Та с год назад играл с маршрутизацией и забыл, что пробрасывал запросы на провайдера. Уже и не помню зачем ) По-моему тогда щё пытался bind поставить да лень одержала верх.

Спасибо всем, кто помог ;)

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