OpenDNS 서버의 단순 전달자 역할을 할 수 있는 단순 바인드 서버를 설정하고 싶습니다.
나는 바인딩이 루트 서버에 쿼리할 수 있는 것을 원하지 않고, 모든 트래픽이 OpenDNS로만 이동하여 이에 대한 "캐시" 역할을 하도록 하고 싶습니다.
이 목표를 달성하는 방법은 무엇입니까? 어떻게든 루트 서버 프롬프트를 비활성화해야 합니까? 이것이 올바른 절차인가요?
내 생각엔 루트 서버가 제공하는 "." 영역을 주석 처리하는 것 같습니다.명명된.conf.defaultzone문서. 그러나 재귀를 비활성화하면 쿼리가 아닌 루트 서버도 달성할 수 있다고 읽었지만 재귀를 비활성화하면 서버도 전달자를 활용할 수 없게 되는 것 같습니다. 내 conf에 무슨 문제가 있나요?
회의 내용은 다음과 같습니다.
명명된 구성 파일
// This is the primary configuration file for the BIND DNS server named.
//
// Please read /usr/share/doc/bind9/README.Debian.gz for information on the
// structure of BIND configuration files in Debian, *BEFORE* you customize
// this configuration file.
//
// If you are just adding zones, please do that in /etc/bind/named.conf.local
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
명명된.conf.옵션
acl "trusted" {
127.0.0.1/8;
10.0.0.0/8;
172.16.0.0/12;
192.168.0.0/16;
::1;
};
options {
directory "/var/cache/bind"; # bind cache directory
recursion no; # enables resursive queries
allow-query { trusted; } ;
allow-recursion { "none"; };
additional-from-cache no;
allow-transfer { none; }; # disable zone transfers by default
// If there is a firewall between you and nameservers you want
// to talk to, you may need to fix the firewall to allow multiple
// ports to talk. See http://www.kb.cert.org/vuls/id/800113
// If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders.
// Uncomment the following block, and insert the addresses replacing
// the all-0's placeholder.
forward only;
forwarders {
208.67.222.222;
208.67.220.220;
};
//========================================================================
// If BIND logs error messages about the root key being expired,
// you will need to update your keys. See https://www.isc.org/bind-keys
//========================================================================
dnssec-enable no;
dnssec-validation no;
dnssec-lookaside auto;
auth-nxdomain no; # conform to RFC1035
};
이름 .conf.local
//
// Do any local configuration here
//
// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
명명된.conf.defaultzone
// prime the server with knowledge of the root servers
zone "." {
type hint;
file "/etc/bind/db.root";
};
// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912
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";
};
답변1
BIND 구성은 정의된 경우 로컬 BIND에서 충족되지 않은 모든 요청을 전달자에게 보냅니다.
또한 forward only;
사용 시 로컬 영역은 무시되고 모든 요청은 캐시나 전달자에 의해서만 충족됩니다.
로컬 영역(즉, RFC 1918의 개인 IP 주소 및 로컬 집/사무실 영역)이 필요한 경우 전달자를 갖기 위해 루트 힌트 및 지시어로 영역에 주석을 달아야 합니다 forward only;
.
// forward only;
// zone "." {
// type hint;
// file "/etc/bind/db.root";
// };
~에서DNS 사용법
그러나 "전달 전용"이 설정된 경우 BIND는 전달자로부터 응답이 수신되지 않으면 포기하고 gethostbyname()은 즉시 반환됩니다. 따라서 /etc에 있는 파일을 조정하고 서버를 다시 시작할 필요가 없습니다.
내 경우에는 몇 줄만 추가했습니다.
전달 전용; 화물 운송업자 {193.133.58.5 };
내 명명된.conf 파일의 옵션 { } 섹션으로 이동합니다. 그것은 아주 잘 작동합니다. 이것의 유일한 단점은 극도로 복잡한 DNS 소프트웨어를 멍청한 캐시 상태로 축소시킨다는 것입니다.
따라서 단순 캐시만 필요한 경우 요청을 전달하면 됩니다. 이는 요청을 중앙 사무실로 전달할 때와 같은 기업 환경에 적합한 구성입니다.
귀하의 경우 요청을 외부로 전달할 때 forward only
개인 IP 주소 범위/로컬 DNS/Windows 도메인에 대한 DNS 요청을 상위 계층/루트 이름 서버로 전달하는 것을 피하기 위해 맹목적으로 그렇게 하지 않는 것이 좋습니다.