도메인이 있고 example.com
Azure 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
와일드카드는 불가능하므로 다른 접근 방식을 사용하기로 결정했습니다.
- 모든 외부 사이트는 도메인에서 호스팅됩니다
example.com
. - 모든 내부 사이트는 도메인에서 호스팅됩니다
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에서 작동해야 합니다.