
다음과 같이 바인딩을 설정했습니다.
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
listen-on port 53 { any; };
# listen-on-v6 port 53 { ::1; };
directory "/var/named";
forwarders { 10.90.0.135; 10.90.0.174; };
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 { any; };
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";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
zone "appletop.local" IN {
type master;
file "appletop.local";
allow-update { none; };
};
그런데 전달이 안 되나요?
DNS 서버 주소를 다른 컴퓨터에 넣으면 resolv.conf
올바른 조회를 얻을 수 있으므로 DNS 서버가 나를 대신해 해결할 수 있어야 하지만 다른 컴퓨터를 다시 이 컴퓨터로 가리키면 이름을 확인할 수 없습니다.
뭐가 문제 야?
MadHatter가 제안한 변경 후:
이제 시작되지만 발굴 +추적에 멈추고 전달되지 않습니다. 아래 전달자 주소가 표시되지 않는 이유는 무엇입니까?
[root@ns1 ~]# ping www.yahoo.com
^C
[root@ns1 ~]# cd /etc/
[root@ns1 etc]# cp named.conf named.conf.last
[root@ns1 etc]# vi named.conf
[root@ns1 etc]# /etc/init.d/named reload
Reloading named-sdb: [ OK ]
[root@ns1 etc]# service named stop
Stopping named: . [ OK ]
[root@ns1 etc]# /etc/init.d/named start
Starting named: [ OK ]
[root@ns1 etc]# nslookup www.yahoo.com
;; connection timed out; trying next origin
Server: 10.138.10.30
Address: 10.138.10.30#53
** server can't find www.yahoo.com: NXDOMAIN
그리고 +trace를 사용한 발굴:
[root@ns1 etc]# dig +trace www.yahoo.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.0.2.el6_4.6 <<>> +trace www.yahoo.com
;; global options: +cmd
. 518400 IN NS E.ROOT-SERVERS.NET.
. 518400 IN NS M.ROOT-SERVERS.NET.
. 518400 IN NS I.ROOT-SERVERS.NET.
. 518400 IN NS F.ROOT-SERVERS.NET.
. 518400 IN NS G.ROOT-SERVERS.NET.
. 518400 IN NS K.ROOT-SERVERS.NET.
. 518400 IN NS B.ROOT-SERVERS.NET.
. 518400 IN NS A.ROOT-SERVERS.NET.
. 518400 IN NS C.ROOT-SERVERS.NET.
. 518400 IN NS L.ROOT-SERVERS.NET.
. 518400 IN NS J.ROOT-SERVERS.NET.
. 518400 IN NS H.ROOT-SERVERS.NET.
. 518400 IN NS D.ROOT-SERVERS.NET.
내 전체 파일은 이제 다음과 같습니다. 무엇이 잘못되었나요?
options {
listen-on port 53 { any; };
# 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 { any; };
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 forward;
forward first;
forwarders { 10.90.0.135;
10.90.0.174;
} ; };
include "/etc/named.rfc1912.zones"; include "/etc/named.root.key";
zone "appletop.local" IN {
type master;
file "appletop.local";
allow-update { none; }; };
답변1
어떤 전달자를 사용해야 하는지는 알려주었지만 언제 사용해야 하는지는 알려주지 않았습니다. 대신에 모든 것에 사용하고 싶다면
zone "." IN {
type hint;
file "named.ca";
};
노력하다
zone "." {
type forward;
forward first;
forwarders { 10.90.0.135;
10.90.0.174;
} ;
} ;
편집하다: 좋습니다. 대신 위의 방법을 시도해 보세요. 하지만 "로컬에서 먼저 해결을 시도한다"는 것이 무슨 뜻인지 이해가 되지 않습니다. 당신은 그것을 전달하고 싶다고 말했습니다.
답변2
dnssec-validation yes;
내 경우에는 다음 으로 변경하여 문제가 해결되었습니다.dnssec-validation no;
답변3
MadHatter의 응답 "문제는 dnssec입니다" 아래 OP의 설명에서 명확하지 않은 경우를 대비하여 이 답변이 내 문제를 해결했음을 알았으므로 명시적으로 이 답변을 게시하고 있습니다.
캐싱, 전달 전용 BIND 서버를 설정했는데 전달되지 않았습니다. 쿼리는 몇 초의 지연을 거쳐 루트 서버로 이동했습니다. dnssec 옵션을 비활성화하면 이 문제가 해결되어 이제 예상대로 작동합니다.
dnssec-enable no;
dnssec-validation no;
dnssec-lookaside auto;