![DNS: 하위 도메인 확인을 다른 이름 서버에 위임](https://rvso.com/image/1502893/DNS%3A%20%ED%95%98%EC%9C%84%20%EB%8F%84%EB%A9%94%EC%9D%B8%20%ED%99%95%EC%9D%B8%EC%9D%84%20%EB%8B%A4%EB%A5%B8%20%EC%9D%B4%EB%A6%84%20%EC%84%9C%EB%B2%84%EC%97%90%20%EC%9C%84%EC%9E%84.png)
저는 로컬 서버의 일부에 별칭을 쉽게 지정할 수 있도록 집에 DNS 서버를 설정하고 있으며, DNS를 더 잘 이해하기 위한 프로젝트이기도 합니다. 나는 이것에 익숙하지 않기 때문에 용어에 대한 실수를 용서하고 수정하십시오!
내 로컬 DNS 서버의 목적은 내 도메인을 사용하여 일부 로컬 컴퓨터에 액세스하는 것입니다. 내 도메인이 이라고 가정해 보겠습니다 my-domain.com
. 집에 로 액세스하려는 미디어 서버가 있고 media.my-domain.com
이 목적으로 사용하는 두 개의 로컬 DNS 서버가 있습니다. 이러한 DNS 서버는 다른 쿼리를 위해 Google DNS에 위임합니다.
내 로컬 DNS 서버에 my-domain.com
저장된 에 대한 영역 파일은 다음과 같습니다 ./etc/bind/zones/db.my-domain.com
ns1
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA ns1.my-domain.com. admin.my-domain.com. (
3 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
; name servers - NS records
@ IN NS ns1.my-domain.com.
@ IN NS ns2.my-domain.com.
;
; name servers - A records
ns1.my-domain.com. IN A 10.55.55.55
ns2.my-domain.com. IN A 10.55.55.56
;
; 10.55.55.0/24 - A records
media.my-domain.com. IN A 10.55.55.100
/etc/bind/named.conf.options
내 로컬 DNS 서버에 저장된 옵션 파일은 다음과 같습니다 ns1
.
acl "trusted" {
10.55.55.0/24; # home network
};
options {
directory "/var/cache/bind";
recursion yes;
allow-recursion { trusted; };
listen-on { 10.55.55.55; };
allow-transfer {none; }; # disable zone transfers
forwarders {
8.8.8.8; # google1
8.8.4.4; # google2
};
//========================================================================
// 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-validation auto;
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
};
여기에 10.55.55.0/24
내 로컬 서브넷이 있고, ns1
및 ns2
는 각각 기본 및 보조 DNS 서버입니다.
나는 my-domain.com
인터넷에서 다른 목적으로 사용하고 있습니다. 예를 들어 액세스하면 admin.my-domain.com
공개적으로 표시되는 웹사이트의 관리 콘솔로 이동됩니다. 즉, Google의 DNS 서버에서 nslookup
켜기를 수행하면 admin.my-domain.com
전 세계적으로 액세스 가능한 공용 IP 주소에 매핑된 것을 볼 수 있습니다.
안타깝게도 로컬 DNS 서버를 구현한 후에는 admin.my-domain.com
올바르게 확인할 수 없습니다. 내 nslookup
요청이 이 하위 도메인에 대해 구성되지 않은 로컬 DNS 서버에 도달했고 로컬 DNS로부터 "응답 없음" 메시지를 받았습니다.
대신 제가 원하는 동작은 내 DNS 서버가 에 대한 요청을 Google DNS로 전달하고 , 및 에 my-domain.com
대한 답변만 제공하는 것입니다 . 나와 비슷한 몇 가지 질문을 보았지만 응답은 각 하위 도메인에 대해 단일 영역 파일을 만드는 경향이 있습니다. 정말 이 방법밖에 없나요? "규칙을 지정했다면 그 규칙을 따르세요. 그렇지 않으면 체인을 (내 경우에는 Google DNS에) 위임하세요."라고 말할 수 있으면 정말 좋겠습니다.ns1.my-domain.com
ns2.my-domain.com
media.my-domain.com
x.my-domain.com
용어에 대해 명확하지 않기 때문에 Google에서 이 문제를 해결하는 방법을 잘 모르겠습니다. 그리고 저는 멍청한 놈이기 때문에 직접 문제를 해결하려면 어디서부터 시작해야 할지 모르겠습니다. 내가 요구하는 것이 가능할까요? 이 동작을 구현하거나 검색하는 방법에 대한 도움을 주시면 대단히 감사하겠습니다. 감사해요!
답변1
문제는 Bind를 전체 example.com
.
따라서 내부 DNS 레코드뿐만 아니라 example.com
.
또는 내부 사용을 위해 example.com의 하위 도메인을 예약하기 위해 Bind를 신뢰할 수 있게 만드는 대신 example.com
내부 DNS를 그에 대해서만 신뢰할 수 있게 만드세요. 즉, 이라는 영역을 만들고 home.example.com
사용합니다 media.home.example.com
. 이렇게 하면 내부 및 공용 DNS에 충돌하는 레코드가 있을 수 없습니다.