명명된 구성에 오류가 있습니다.

명명된 구성에 오류가 있습니다.

저는 현재 DNS를 연구하고 있는데 centos6 VM에서 다음 오류가 발생했습니다. 이게 내가 팔로우하는 사람이야지도 시간

  [root@server1 named]# sudo service named start
Starting named:
Error in named configuration:
zone example.tv/IN: has no NS records
zone example.tv/IN: not loaded due to errors.
_default/example.tv/IN: bad zone
rev.example.tv:1: unknown RR type '1.168.192.in-addr.arpa.'
zone 1.168.192.in-addr.arpa/IN: loading from master file rev.example.tv failed: unknown class/type
zone 1.168.192.in-addr.arpa/IN: not loaded due to errors.
_default/1.168.192.in-addr.arpa/IN: unknown class/type
zone localhost.localdomain/IN: loaded serial 0
zone localhost/IN: loaded serial 0
zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0
zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
zone 0.in-addr.arpa/IN: loaded serial 0
                                                           [FAILED]
[root@server1 named]#

여기 내 fwd.example.tv 파일이 있습니다:

$ORIGIN example.tv.
$TTL 86400
@       IN SOA server1.example.tv. root.example.tv. (
        2018021011;serial
3600; refresh
1800;retry
604800; expire
86400;min TTL
)
@IN     NS      server1.example.tv.
@IN     NS      server2.example.tv.
server1         IN      A       192.168.1.17
server2         IN      A       192.168.1.20

~
~

여기 내 rev.example.tv 파일이 있습니다:

@ORIGIN 1.168.192.in-addr.arpa.
$TTL 86400
@       IN      SOA     server1.example.tv.     root.example.tv.(
2018021011; serial
3600; refresh
1800;retry
604800; expire
86400; minimum TTL
)



@IN NS server1.example.tv.
@IN NS server2.example.tv.
server1 A 192.168.1.17
server2 A 192.168.1.20
17 IN PTR server1.example.tv.
20 IN PTR server2.example.tv.
~
~

여기 내 /etc/named.conf 파일이 있습니다:

Code: Select all
options {
       listen-on port 53 { 127.0.0.1; 192.168.1.17; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { localhost; 192.168.1.0/24; };
        allow-transfer {localhost; 192.168.1.20; };
        recursion yes;

        dnssec-enable yes;
        dnssec-validation yes;
        dnssec-lookaside auto;
        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";

        managed-keys-directory "/var/named/dynamic";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
zone "." IN {
        type hint;
        file "named.ca";
};




zone "example.tv" IN{
        type master;

file "fwd.example.tv";
allow-update {none;};
};

zone "1.168.192.in-addr.arpa" IN{
type master;
file "rev.example.tv";
allow-update{none;};
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

답변1

named-checkconf및를 사용하여 named-checkzone구성 및 영역 파일을 확인하세요.

스포일러 경고: @IN유효한 구문이 아니므로 읽어야 합니다 @ IN.

답변2

내 문제에 대한 답은 나에게 맞는 영역 파일을 구성하는 방식에 있기 때문에 앞으로 같은 문제에 직면할 다른 사람들을 위해 내 작업 솔루션을 게시하고 있습니다. 실제로 example.tv를 추가하는 것을 놓쳤습니다. NS는 fwd.example.tv 파일과 rev.example.tv 파일에서 올바른 방식으로 작동하므로 여기에 내 작업 솔루션이 있습니다.

영역을 유지하는 올바른 방법은 다음과 같습니다.

$ORIGIN example.tv.
$TTL 86400
@       IN SOA server1.example.tv. root.example.tv. (
2018021000
3600
1800
604800
86400
)

@               IN      NS      server1.example.tv.
@               IN      NS      server2.example.tv.

server1         IN      A       192.168.1.17
server2         IN      A       192.168.1.20
example.tv.     IN      A       192.168.1.17
~
~

리버스 존을 유지하는 올바른 방법은 다음과 같습니다.

$ORIGIN 1.168.192.in-addr.arpa.
$TTL 86400
@       IN      SOA     server1.example.tv.     root.example.tv.(
2018021011; serial
3600; refresh
1800;retry
604800; expire
86400; minimum TTL
)



@       IN NS server1.example.tv.
@       IN NS server2.example.tv.
server1 A 192.168.1.17
server2 A 192.168.1.20
17 IN PTR server1.example.tv.
20 IN PTR server2.example.tv.
        IN      NS      example.tv.
1       IN      PTR     example.tv.
~

관련 정보