대체 DNS 서버를 확인할 수 없습니다.

대체 DNS 서버를 확인할 수 없습니다.

Linux에서 DNS 서버를 전달자로 구성했습니다.
조직의 기본 DNS 서버에만 DNS 쿼리를 전달합니다.

Windows 클라이언트(조직의 지점)에서 기본 DNS는 내 DNS 서버로 설정되고
백업 DNS 서버는 내 서버(전달자 DNS)로 설정됩니다.

내 DNS 서버가 백업으로 설정되어 있으면 확인할 수 없습니다.
하지만 내 DNS 서버가 기본으로 설정되면 해상도가 괜찮습니다.

대체 DNS로 설정할 때 DNS 서버가 제대로 작동하도록 하려면 어떻게 해야 합니까?

답변1

기본 DNS 확인자(예: Windows 클라이언트의 확인자)는 다음을 가정합니다.구성된 모든 DNS 서버는 알아야 할 모든 것을 알고 있거나 찾을 수 있습니다., 한 서버에서 무언가가 존재하지 않는다고 말하면 다른 서버에 두 번째 의견을 요청할 필요가 없습니다.

DNS 서버는 정보를 얻는 위치에 있어 더 많은 유연성을 가질 수 있습니다. 많은 DNS 서버는 요청을 선택적으로 전달하도록 구성할 수 있습니다. "요청이 도메인에 관한 것이라면 X.Y.example서버 A로 요청을 전달하고, 다른 도메인에 관한 것이라면 Y.example서버 B로 전달하고, 그렇지 않으면 인터넷에 요청하여 DNS 쿼리를 시도합니다. 서버가 스스로 해결해 줄 것입니다."

그러나 이는 DNS 확인을 설정하는 일반적인 방법이 아닙니다.


기본 DNS 서버의 정보가 도메인에 관한 것이고 Y.exampleDNS 서버에 하위 도메인에 대한 정보가 있는 경우 X.Y.example기본 DNS 서버에는 소위접착제 기록도메인에 대한 정보입니다 Y.example. 그것은 다음과 같습니다:

X.Y.example.            IN NS <your.DNS.server.name.>

DNS 서버가 도메인 Y.example(즉, 도메인 X.Y.example이나 Y.example도메인의 일부 또는 기타 하위 도메인) 내에 있는 경우:

<your.DNS.server.name.> IN A <your DNS server IP address>

X.Y.exampleNS 레코드는 도메인에 대한 정보를 얻기 위해 DNS 서버에 접속하도록 기본 DNS 서버에 지시합니다 . 이것은 ... 불리운다DNS 위임. A 레코드는 단순히 다음에 연결할 주소를 제공합니다.접착제 기록.


네임서버의 정보가 관련 없는 도메인과 관련된 경우(예: ) Z.other.example세 가지 옵션이 있습니다.

  • 기본 이름 서버는 DNS 서버와 특별한 관계가 있을 수 있으므로 Z.other.example도메인 콘텐츠의 전체 복사본을 다운로드하고 DNS 서버를 정기적으로 확인하여 자동으로 최신 상태로 유지할 수 있습니다. 이를 종종 master/slave관계라고 합니다. 귀하의 서버가 기본 권한이 되지만 Z.other.example기본 DNS 서버는 도메인 콘텐츠에 대한 모든 정보를 갖고 다운로드한 데이터를 기반으로 권한 있는 응답을 할 수 있습니다.

BIND를 사용하면 서버가 다음과 같은 상태가 됩니다.

options {
    allow-transfer { <IP address of primary DNS server>; };
    # The next line is not absolutely necessary but speeds up propagation of updates:
    also-notify { <IP address of primary DNS server>; }; 
    <... any other options here...>
}; 

마스터 서버에는 다음이 포함됩니다.

zone "Z.other.example" { 
    type slave; 
    masters { <IP address of your DNS server>; };
};

예, 이는 조직의기초적인DNS 서버가 슬레이브가 됩니다.Z.other.example도메인에만 사용 가능. 다른 도메인/지역의 경우 이는 영향을 미치지 않습니다.

Z.other.example일반적으로 이 관계는 기본 DNS 서버가 도메인의 NS 레코드 에도 나열될 수 있음을 의미합니다 .그렇게 할 필요는 없어도메인이 기본 DNS 서버 사용자가 내부에서만 사용하는 경우.

  • 또는 기본 DNS 서버가 조건부로 쿼리를 전달하도록 구성될 수 있습니다. "요청이 Z.other.example에 대한 것인 경우 다른 작업을 수행하는 대신 이를 DNS 서버로 전달합니다." 때때로 이는 조직의 내부 DNS 도메인을 통해 수행되며, 그 존재는 공개 NS 기록에 공개되어서는 안 됩니다.

이를 위해 마스터 서버에는 다음이 필요합니다.

zone "Z.other.example" { 
    type forward;
    forwarders { <IP of your DNS server>; };
    forward only;
}; 
  • 또는 특별한 구성 없이 DNS 서버가 도메인을 찾으려면 NS 레코드 체인이 있어야 합니다 Z.other.example.
    • 루트 DNS 서버에는 example최상위 도메인의 DNS 서버를 나타내는 NS 레코드(및 해당 A 레코드)가 있어야 합니다.
    • 도메인 서버에는 보조 도메인의 DNS 서버를 가리키는 NS 레코드 example가 있어야 합니다.other.example
    • 그리고 해당 도메인의 DNS 서버에는 other.example귀하가 담당하는 DNS 서버를 가리키는 NS 레코드가 있어야 합니다 Z.other.example.

이렇게 하면 기본 DNS 서버가 인터넷의 다른 도메인과 마찬가지로 도메인을 찾을 수 있습니다.


Y.exampleDNS 서버가 도메인에 몇 가지 추가 레코드만 제공 하도록 하려는 경우 ,그건 작동하지 않습니다.

DNS 서버가 특정 도메인(위임된 하위 도메인 제외)에 대해 권한이 있는 경우 항상 해당 도메인의 콘텐츠에 대해 완전한 지식을 가지고 있어야 합니다. 권한 있는 DNS 서버가 권한을 갖는다는 의미는 없습니다. 기본 DNS 서버가 조직에 대해 권한이 있고 해당 레코드가 없고 Y.example쿼리 시 일치하는 하위 도메인 위임이 없는 경우 "해당 호스트/도메인 없음" 응답은 사람의 말로 표현됩니다.X.Y.example

"나는 Y.example에 대해 모든 것을 알고 있지만 XYexample과 같은 것은 전혀 없습니다."


기술적으로 클라이언트가 대체 DNS 서버에 요청하도록 기본 서버에서 도메인에 대한 쿼리를 거부하는 것이 가능할 수 있지만,나는 반대를 강력히 추천한다.

이러한 설정은 처음에는 작동하는 것처럼 보일 수 있지만 예상치 못한 방식으로 실패하는 경우가 많습니다. 특히 이름 서버 중 하나 이상이 일시적으로 접근할 수 없는 경우에는 더욱 그렇습니다. 많은 사람들이 이러한 설정을 시도했지만 실패했습니다. 학습 경험에는 종종 고통스러운 문제 해결 프로세스가 포함됩니다.아니요귀하가 선택하거나 경험이 풍부한 DNS 관리자가 문제 해결에 도움을 주기 위해 귀하에게 경고할 것입니다.

관련 정보