로컬에서 일치하지 않는 경우 로컬 영역에 대한 DNS 요청을 외부 DNS로 전달하는 방법(BIND9)

로컬에서 일치하지 않는 경우 로컬 영역에 대한 DNS 요청을 외부 DNS로 전달하는 방법(BIND9)

도메인이 있고 example.comAzure DNS를 사용하여 인터넷에서 표시되어야 하는 모든 호스트 이름을 확인합니다. mail.example.com가리켜도록 정의했으며 198.51.100.123문제 없이 외부 클라이언트에서 해결할 수 있습니다.

이는 example.com내 LAN에서도 사용되며 바인딩을 사용하면 모든 로컬 IP 주소를 확인하며 이는 로컬 호스트 이름에 잘 작동합니다. 내 DHCP 서버도 이를 처리하는 방법을 알고 있으며 영역 파일을 적절하게 업데이트합니다. 다른 영역에 대한 모든 DNS 요청은 Cloudflare DNS로 전달됩니다.

내 서버가 로컬 이름 서버를 사용하도록 하고 싶습니다. 로컬 영역 파일에서 항목을 찾을 수 없으면 Azure 서버에 연결하여 확인해야 합니다. 내 영역 파일에 다음 항목을 추가하면 다음 호스트 이름에 대해 작동합니다.

external-dns            A       1.1.1.1
vpn                     NS      external-dns
www                     NS      external-dns
ftp                     NS      external-dns

와일드카드는 더 이상 Bind9에서 작동하지 않으므로 * NS external-dns. 이를 수행하는 다른 방법이 있습니까?

답변1

response-policy마스터 영역 대신 영역을 사용하세요 .example.com

호스트 이름을 확인하려고 시도할 때 바인딩은 먼저 영역 파일을 찾고 response-policy, 대답을 찾지 못하면 계속 찾습니다.

다음은 설정 예입니다.

options {
    # Your normal options
    response-policy { zone "local_example_com"; };
};
zone "local_example_com" {
    type master;
    file "master/local_example.zone";
    allow-query {none;};
};

master/local_example.zone그런 다음 다음을 포함 하는 영역 파일을 추가합니다 .

$TTL 24H
@    SOA LOCALHOST. named-mgr.example.com (1 1d 1h 30d 2h)
     NS  LOCALHOST.

host1.example.com     A   192.168.1.1
host2.example.com     A   192.168.1.2
host3.example.com     A   192.168.1.3
host4.example.com     A   192.168.1.4

해결하려고 하면 host1.example.com영역에서 답변을 얻고 response-policy, 해결하려고 하면 네임서버를 mail.example.com사용하여 해결됩니다 example.com.

답변2

와일드카드는 불가능하므로 다른 접근 방식을 사용하기로 결정했습니다.

  1. 모든 외부 사이트는 도메인에서 호스팅됩니다 example.com.
  2. 모든 내부 사이트는 도메인에서 호스팅됩니다 int.example.com.

어떤 방식으로든 변경 example.com되지 않으며 항상 그랬던 것처럼 Azure DNS에서 계속 사용할 수 있습니다. 이제 내부 바인드 서버가 int.example.com도메인을 호스팅하고 DHCP 서버도 int.example.com로컬 도메인으로 푸시되도록 업데이트됩니다.

내부 사이트를 HTTPS를 통해 사용할 수 있기를 원하므로 도메인에 대해 LetsEncrypt를 사용하여 인증서를 생성할 수 있어야 합니다 int.example.com. LetsEncrypt가 내부 서비스에 연결할 수 없으므로 DNS 확인으로 되돌려야 합니다.

Azure DNS int.example.com의 하위 영역으로 영역을 추가했습니다 . example.com이 영역에는 로컬 서버를 사용하기 때문에 DNS 항목이 없습니다. 우리는 내부 정보를 외부 DNS 서버에 노출시키고 싶지 않습니다. 유일한 목적은 LetsEncrypt에 대한 DNS 확인이므로 AcmeSh에는 TXT 레코드를 생성/제거하기 위한 적절한 자격 증명이 있어야 합니다. 나는 팔로우했다이 가이드적절한 자격 증명을 생성합니다. 내 설정은 Azure DNS를 사용하고 있지만 하위 영역을 지원하는 모든 DNS에서 작동해야 합니다.

관련 정보