Bind9는 개인 네트워크 장치에 대한 일부 공개 TLD를 구성합니다.

Bind9는 개인 네트워크 장치에 대한 일부 공개 TLD를 구성합니다.

foobar.com우리 회사는 다양한 공공 서비스에 사용되는 도메인 이름을 관리합니다 (wg는 www.foobar.com우리 웹사이트를 가리킵니다). 이 도메인에는 DNS 서비스에 공개 DNS 레코드가 있습니다.

foobar.comTLD의 하위 도메인을 사용하기 위해 이름을 할당하려는 내부 네트워크 장치가 있습니다 .

Bind9를 다음과 같이 구성하는 방법:

  1. 먼저 공용 DNS 서버에 특정 IP 주소에 대해 정의된 도메인이 있는지 확인하세요.
  2. 그렇지 않은 경우 내부 DNS 서버에 내부 IP 주소에 대해 정의된 도메인이 있는지 확인하세요.
  3. 실패하면 "일반" 조회가 실패합니다.

현재 우리의 구성은 "켜기/끄기" 기반으로 잘못 작동합니다. 즉, 둘 다 대신 공용 DNS 또는 개인 DNS를 읽습니다. 공개 및 비공개 DNS 레코드에 모두 액세스하려고 하므로 이를 사용할 수 없게 됩니다.

DNS 서버는 별도로 관리되며 프라이빗 DNS는 Bind9이 설치된 장치에 로컬로 위치합니다.

나는 다음을 시도했습니다 :

  1. 개인 DNS 레코드에 이와 같은 것이 있습니다

    IN NS privatens.foobar.com ; the private (local) DNS
    IN NS publicns.foobar.com ; the public DNS
    
  2. named.conf.options공용 DNS 서버로 전달 설정

    options {
        forwarders { ... };
        forward first;
    };
    
  3. 내부 우선순위 조정resolv.conf

이들 중 어느 것도 작동하지 않는 것 같습니다. 예:

www.foobar.com공용 DNS를 사용하여 웹 서버를 가리킵니다. A 레코드가 있는 printer.office.foobar.comCNAME입니다 . 쿼리는 퍼블릭 DNS에서 작동하고 쿼리는 프라이빗 DNS에서 작동하길 원합니다.unique1.foobar.com192.168.5.10www.foobar.comprinter.office.foobar.com

이제 모든 쿼리가 printer.office.foobar.com작동하지만 모두 www.foobar.comNXDOMAIN 응답을 생성하고 거기서 중지됩니다.

단일 도메인(예: )의 서로 다른 두 영역을 읽는 것이 가능합니까? foobar.com아니면 다른 영역을 무시합니까?

편집하다:

상황을 더 명확하게 하기 위해 네트워크와 외부 사물에 대한 매우 멋진 다이어그램을 만들었습니다.

여기에 이미지 설명을 입력하세요.

주황색 내부의 모든 것은 당사의 개인 네트워크이므로 외부에서 접근할 수 없습니다. 녹색으로 표시된 것은 도메인 이름이 설정된 공용 서버입니다. 192.168.5.1그것은 우리의 라우터이고, 192.168.5.5우리의 개인 DNS 서버이며, 또한 ns1.dnsprovider.com제3자가 제공하는 DNS 서버이기도 합니다.

192.168.5.100내가 사용자라고 가정하면 다음이 발생하기를 원합니다.

  1. 쿼리할 때 에서 user1.foobar.comDNS 결과를 얻습니다 privns.foobar.com/192.168.5.5.
  2. 쿼리할 때 www.foobar.com또는 sub.foobar.com다음에서 DNS 결과를 얻을 때ns1.dnsprovider.com

답변1

가능한 구성 중 하나는 다음과 같습니다.내부그리고외부도메인에 대한 지정은 BIND 뷰입니다. 일반적으로 이 설정은 단일 서버 내에서 수행됩니다.

BIND 보기를 사용하면 사람들이 내부에서 보든 외부에서 보든 상관없이 동일한 도메인 내에서 서로 다른 레코드를 가질 수 있으며, 더 흥미롭게도 IP 주소가 다른 동일한 레코드를 가질 수 있습니다. (예를 들어, NAT를 통해 다른 주소에 매핑된 다른 외부 주소는 내부 트래픽으로 경계 방화벽에 부담을 주지 않습니다.)

이 설정의 장점은 동일한 도메인에 대해 두 개 이상의 별도 영역을 유지해야 한다는 것입니다.

보기를 정의하려면 첫 번째 보기에서 응답하는 네트워크를 정의하면 나머지는 두 번째 보기에 표시됩니다.

예를 들면 다음과 같습니다 named.conf.

acl networks1 { 192.168.1.0/24; 192.168.3.0/24; };
acl networks2 { 192.168.2.0/24; };

view "nets1" {
    match-clients { networks1; };
    recursion yes;

    include "mydomain.view1";
}

view "nets2" {
    match-clients { networks2; };
    recursion yes;

    include "mydomain.view2"; 
}

바라보다:예제를 통해 BIND 9의 뷰에 대해 알아보기

관련 정보