私は現在 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
私の問題の答えは、ゾーン ファイルの構築方法にあり、これは私にとってはうまくいきました。そのため、今後同じ問題に直面する他の人のために、私の有効な解決策を投稿します。実際には、fwd.example.tv ファイルと rev.example.tv ファイルに example.tv. NS を正しく追加し忘れていたため、ここに私の有効な解決策を示します。
ゾーンを維持する正しい方法は次のとおりです。
$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.
~