Я провожу внутренний тест (Centos 7 Virtual) о том, как настроить DNS-сервер.
Используя bind, у меня не было проблем с получением named-checkzone -D с синтаксисом OK в конце.
но когда я попытаюсь получить обратную зону, она продолжит давать мне имя без владельца / без имени текущего владельца
[root@CentOS named]# cat db.climent.cat
$TTL 1H
@ IN SOA servidor hostmaster (
2004070101 ;; serial
8H ;; refresh for slaves
3H ;; retry
4W ;; expire time at slaves
1H ;; negative TTL
)
IN NS servidor
IN MX 10 servidor
a01 IN A 192.168.56.1
a02 IN A 192.168.56.2
a03 IN A 192.168.56.3
a04 IN A 192.168.56.4
a05 IN A 192.168.56.5
a06 IN A 192.168.56.6
a07 IN A 192.168.56.7
a08 IN A 192.168.56.8
a09 IN A 192.168.56.9
a10 IN A 192.168.56.10
a11 IN A 192.168.56.11
a12 IN A 192.168.56.12
a13 IN A 192.168.56.13
a14 IN A 192.168.56.14
a15 IN A 192.168.56.15
a16 IN A 192.168.56.16
a17 IN A 192.168.56.17
a18 IN A 192.168.56.18
a19 IN A 192.168.56.19
a20 IN A 192.168.56.20
#a21 IN A 192.168.56.21
a22 IN A 192.168.56.22
a23 IN A 192.168.56.23
a24 IN A 192.168.56.24
a25 IN A 192.168.56.25
a26 IN A 192.168.56.26
a27 IN A 192.168.56.27
a28 IN A 192.168.56.28
a29 IN A 192.168.56.29
a30 IN A 192.168.56.30
a31 IN A 192.168.56.31
a32 IN A 192.168.56.32
a33 IN A 192.168.56.33
a34 IN A 192.168.56.34
a35 IN A 192.168.56.35
servidor IN A 192.168.56.21
;Els servidors de noms i de correu electrònic han de ser host A
correu IN CNAME servidor
dns IN CNAME servidor
;; Defineix dominis de serveis amb CNAMEs. IMPORTANT: es posen noms de màquina que resolgui DNS i no IPs.
www IN CNAME a01
ftp IN CNAME a02
и файл обратной зоны
[root@CentOS named]# cat db.56.168.192
$TTL 1H
@ IN SOA servidor.climent.cat. hostmaster.climent.cat. (
1; Serial
604800; Refresh
86400; Retry
2419200; Expire
604800 ); Negative Cache TTL
IN NS servidor.climent.cat.
1 IN PTR a1.climent.cat.
2 IN PTR a2.climent.cat.
3 IN PTR a3.climent.cat.
4 IN PTR a4.climent.cat.
5 IN PTR a5.climent.cat.
6 IN PTR a6.climent.cat.
7 IN PTR a7.climent.cat.
8 IN PTR a8.climent.cat.
9 IN PTR a9.climent.cat.
10 IN PTR a10.climent.cat.
11 IN PTR a11.climent.cat.
12 IN PTR a12.climent.cat.
13 IN PTR a13.climent.cat.
14 IN PTR a14.climent.cat.
15 IN PTR a15.climent.cat.
16 IN PTR a16.climent.cat.
17 IN PTR a17.climent.cat.
18 IN PTR a18.climent.cat.
19 IN PTR a19.climent.cat.
20 IN PTR a20.climent.cat.
#21 IN PTR a21.climent.cat.
22 IN PTR a22.climent.cat.
23 IN PTR a23.climent.cat.
24 IN PTR a24.climent.cat.
25 IN PTR a25.climent.cat.
26 IN PTR a26.climent.cat.
27 IN PTR a27.climent.cat.
28 IN PTR a28.climent.cat.
29 IN PTR a29.climent.cat.
30 IN PTR a30.climent.cat.
31 IN PTR a31.climent.cat.
32 IN PTR a32.climent.cat.
33 IN PTR a33.climent.cat.
34 IN PTR a34.climent.cat.
35 IN PTR a35.climent.cat.
36 IN PTR servidor.climent.cat.
Ошибка, которую он дает ...
[root@CentOS named]# named-checkzone -D 56.168.192.in-addr.arpa db.56.168.192
db.56.168.192:2: no current owner name
db.56.168.192:9: no current owner name
zone 56.168.192.in-addr.arpa/IN: loading from master file db.56.168.192 failed: no owner
zone 56.168.192.in-addr.arpa/IN: not loaded due to errors.
любая идея, предложение или помощь? искал пару учебников или информацию в Интернете, но не смог сделать трюк
PS: Бывает, что Centos, которые я использую для проведения тестов, прежде чем переходить к более серьезным вещам с DNS, находится в ip 21, поэтому он прокомментирован
Ведущая проблема с пробелами в строке SOA?
Чтобы немного подробнее рассказать об очень кратком ответе Харгута, проблема, похоже, сводится к некоторому недопониманию формата основного файла (стандартизованное текстовое представление данных зоны DNS, которого должен придерживаться ваш файл зоны).
Ошибка, о которой вы спрашиваете, по-видимому, связана с предположительно случайным начальным пробелом в SOA
линия. (Такая же проблема со случайным начальным пробелом существует как в db.climent.cat
и db.56.168.192
файлы, включенные в вопрос.)
Причина, по которой ведущие пробелы имеют решающее значение, заключается в том, что формат основного файла основан на наборе полей, разделенных пробелами, причем первое поле начинается слева в каждой строке.
Это крайнее левое поле - это имя владельца (указано в сообщении об ошибке), и само поле всегда присутствует (в то время как некоторые другие поля являются необязательными). В вашем случае с ведущим пробелом все ваши поля были сдвинуты вправо, а значение в имя владельца пусто (значение перед первым набором пробелов - это пустая строка).
Пустое значение для имя владельца означает, что предыдущее имя владельца также должно быть повторно использовано для этой записи, но это явно не может работать с самой первой записью, поскольку предыдущей записи нет.
Следует также отметить, что вы говорите, что #21
запись закомментирована. На самом деле это не закомментировано как #
не является символом комментария в формате основного файла. Если вы хотите что-то прокомментировать, вы должны использовать символ комментария ;
, как то, что вы сделали, например ; Serial
.
Я делаю то же самое (в Debian), но вижу разницу в наших файлах обратной зоны. У меня есть $ORIGIN
.
Кроме того, вы добавили зону в /etc/bind/named.conf.local
или подобное завести?
Наконец, комментарии в файлах зон представляют собой точку с запятой. ;
не знаки фунта #
Из /etc/bind/named.conf.local
:
zone "97.99.10.in-addr.arpa" {
type master;
notify no;
file "/etc/bind/db.10.99.97";
};
И /etc/bind/db.10.99.97
:
user@darkstar:~/ $ cat /etc/bind/db.10.99.97
$TTL 3D ; default ttl for records without a specified lifetime
$ORIGIN 97.99.10.in-addr.arpa.
@ IN SOA ns.restricted.test. root.restricted.test. (
1536033696 ; serial number
1638 ; ns refresh
204 ; ns retry
10485 ; authority expiry
256 ); min (RFC2308 §4)
; we dont use a hostname when we tell about our nameserver(s)
IN NS ns.restricted.test.
; hostname in this case is the last quad of the IP address
2 IN PTR gw.restricted.test.
2 IN PTR ns.restricted.test.