이것은 DNS 서버 관리에 대한 정식 질문 입니다.
백개 정도의 도메인이 있습니다. 이러한 모든 도메인을 동일하게 구성해야하지만 이러한 모든 도메인에 대해 새 영역 및 / 또는 영역 파일을 구성해야하는 것은 시간 낭비로 보입니다. 이것을 자동화하는 더 좋은 방법이 있어야합니다!
나는 뭔가에 있다고 생각합니다 …라는 영역을 만들 .
거나 DNS 소프트웨어의 다른 기능을 사용하여 A
레코드가 요청 될 때 항상 특정 IP를 반환하면 원하는 끝까지 가까워지는 것 같습니다 결과. 내 서버가 요청에 정식으로 응답하고 있으며 관리하기가 훨씬 쉽습니다!
이것은 네임 서버 검증 소프트웨어가 이러한 도메인을 확인하기 시작할 때까지 잘 작동했습니다. NS
레코드 를 추가하여 대부분의 오류를 제거 할 수 있다는 것을 알았지 만 소프트웨어는 SOA
동일한 영역 파일에 둘 이상의 레코드를 넣을 수 없습니다 .
이 다중 SOA
레코드 문제를 어떻게 해결합니까?
답변
내가 질문을 오해하지 않는 한, 나는 정기적으로 BIND를 사용하며 각 영역이 완전히 동일한 한 괜찮은 것처럼 보입니다 .
내 기본 네임 서버에 named.conf
일반 영역 파일을 가리키는 항목이 있습니다.
zone "example.com" {
type master;
file "primary/example.GENERIC";
};
zone "example.co.uk" {
type master;
file "primary/example.GENERIC";
};
그리고 다음과 primary/example.GENERIC
같은 영역 파일이 있습니다.
;; Start of Authority
@ IN SOA ns.teaparty.net. dns.gatekeeper.ltd.uk. (
2004091201 ; serial number YYYYMMDDNN
28800 ; refresh 8 hours
7200 ; retry 2 hours
864000 ; expire 10 days
3600 ) ; min ttl 1 day
;;
;; Name Servers
IN NS ns.teaparty.net.
IN NS ns2.teaparty.net.
그리고 나는이 영역에 전혀 문제가 없다는 것을 알고 있습니다. 나는 질문을 오해했거나 내 도메인이 실제로 작동하지 않는다는 말을들을 수 있지만 그때까지는 그것이 저에게 효과적이라고 생각합니다.
참고 당신이 차에 같은 트릭을 풀 수 없습니다 ; 각 영역이 됩니다 에 저장하기 위해 다른 파일이 필요합니다.하지만 그 파일의 내용이 채워 유지되기 때문에 최신 차에서 존 xfers으로이 큰 문제가되지이다.
답변
인생을 더 쉽게 만들기 위해 사용할 수있는 여러 가지 단축키가 있습니다.
파일을 사용하여 영역 데이터를 저장하는 바인드 또는 유사한 소프트웨어를 사용하는 경우 영역을 동일한 파일로 지정하십시오.
zone "example.net" {
type master;
file "/etc/bind/zone/default.zone";
};
zone "example.org" {
type master;
file "/etc/bind/zone/default.zone";
};
특정 DNS 속기를 사용할 수 있으므로 범용 영역 파일을 만들 수 있습니다.
$TTL 1h ; default expiration time of all resource records without their own TTL value
@ IN SOA ns1.example.com. username.example.com. (
20140218131405 ; Serial number YYYYMMDDHHMMSS
28800 ; Refresh 8 hours
7200 ; Retry 2 hours
604800 ; Expire 7 days
86400 ; Minimum TTL 1 day )
@ IN NS ns1.example.com. ; ns1.example.com is a primary nameserver
@ IN NS ns2.example.com. ; ns2.example.com is a backup nameserver
@ IN MX 10 mail.example.com. ; mail.example.com is the mailserver
@ IN MX 20 mail2.example.com. ; the secondary mailserver
@ IN A 192.0.2.1 ; IPv4 address for the bare domain
IN AAAA 2001:db8:10::1 ; IPv6 address for the bare domain
www IN A 192.0.2.1 ; www.domain
IN AAAA 2001:db8:10::1 ; IPv6 address for www.domain - note by starting the line with a blank it becomes the continuation of the previous record and this IPv6 record applies to www
wwwtest IN CNAME www ; wwwtest is an alias for www
이는 점 .으로 끝나지 않는 영역 파일의 호스트 이름 이 항상 $ORIGIN
암시 적으로 영역 이름으로 설정되어 확장 되는 사실을 이용합니다 . 그리고 @$ ORIGIN의 속기입니다.
개별 영역 파일을 직접 유지 관리하는 대신 메소드가 이름 서버와 프로그래밍 방식으로 상호 작용할 수 있도록하십시오.
필자는 RDMS를 백엔드로 사용할 수있는 PowerDNS를 사용했는데 당시에 사용했던 LAMP 스택에 매우 적합했습니다. Amazon Route 53과 같은 클라우드 서비스도 웹 API를 노출합니다.
그러나 유능한 Bind조차도 마스터 서버에서 특수한 형태의 DNS 메시지를 보내 레코드를 추가, 교체 또는 삭제하는 방법 인 동적 업데이트 도 지원 합니다. 이러한 메시지의 형식과 의미는 RFC 2136에 지정되어 있습니다.
zone 문에 allow-update
또는 update-policy
절 을 포함시켜 동적 업데이트를 활성화 합니다. 자세한 내용은 Bind Administrator Reference Manual을 확인하십시오 .
답변
짧은 답변
BIND에서 “제로 구성”설정을 찾으려면 존재하지 않습니다. 루트 영역 ( .
)을 설정하는 것은 좋은 생각처럼 보이지만 그렇지 않습니다. 필요에 따라 DNS를 해제하지 않는 솔루션을 찾아야합니다.
긴 답변
지난 한 해 동안이 질문의 변형이 여러 차례 나타났습니다.
대답은 여기에서 매우 간단합니다. 단일 영역 정의를 설정할 수 없습니다. SOA
이 컨텍스트에서 여러 레코드 를 정의하거나 합성 할 수있는 모든 소프트웨어 는 손상된 소프트웨어이므로 깨진 작업을하는 것은 ServerFault의 주제가 아닙니다. 이 관리를 단순화하는 DNS 소프트웨어를 선택하거나이 특정 바로 가기와 관련이없는 다른 전략을 세워야합니다.
BIND를 예로 들어 삶을 더 쉽게 만들기 위해 사용할 수있는 몇 가지 트릭이 있습니다. 모두 동일한 템플릿 영역 파일을 참조하는 여러 영역을 정의하는 것이 일반적입니다. 이것은 완벽하게 합법적이며 유효성 검사 소프트웨어는 아무런 문제가 없습니다. MadHatter의 답변을 참조하십시오. 새로운 도메인을 확보 할 때마다 영역 선언을 추가하는 것은 여전히 ”너무 많은 일”이기 때문에 대부분의 사람들은이 솔루션을 사용하지만 이러한 종류의 호스팅에 대해 “한 번 구성 및 이동”옵션이 없습니다.
최신 버전의 BIND allow-new-zones
는 새로운 rndc addzone
기능을 통해 동적으로 영역 정의를 동적으로 생성 할 수 있는 옵션을 지원 합니다. 이것을보고 당신의 요구에 맞는지 확인하고 싶을 수도 있습니다.
제안 된 솔루션 이외의 옵션은 다소 제한적입니다. 때로는 소프트웨어가 원하는 방식으로 작업을 수행하지 않으면 작업을 수행하지 않아도됩니다.
답변
“도메인을 동일하게 구성해야합니다”라고 말하면 동일한 도메인 레코드를 보유해야한다는 의미입니까? 이 경우 DNAME
하나의 도메인을 제외한 모든 도메인 의 RR이 더 깨끗한 솔루션이 아닐까요?
@MadHatter가 동일한 템플릿 파일을 가져 오는 동안 트릭을 이길 수는 없지만 엄격하게 질문 범위 내에 있습니다. LDAP
백엔드 (내 경우에는 powerDNS와 함께 사용)에 대한 비슷한 접근 방식 만 제공 할 수 있습니다 associatedDomain
.
dn: dc=vanitydomains,ou=DNS,dc=myDIT
objectClass: dNSDomain2
objectClass: domainRelatedObject
dc: vanitydomains
associatedDomain: vanitydomain.ORG
associatedDomain: vanitydomain.NET
associatedDomain: vanitydomain.COM
associatedDomain: vanitydomain.INFO
sOARecord: NS1.example.com sysadmin.example.com 2011100701 28800 1800 2592000 10800
dNameRecord: example.com
nSRecord: NS1.example.com
nSRecord: NS2.example.com