최소한의 구성으로 모든 도메인을 관리하려면 어떻게해야합니까?


10

이것은 DNS 서버 관리에 대한 정식 질문 입니다.

백개 정도의 도메인이 있습니다. 이러한 모든 도메인을 동일하게 구성해야하지만 이러한 모든 도메인에 대해 새 영역 및 / 또는 영역 파일을 구성해야하는 것은 시간 낭비로 보입니다. 이것을 자동화하는 더 좋은 방법이 있어야합니다!

나는 뭔가에 있다고 생각합니다 ...라는 영역을 만들 .거나 DNS 소프트웨어의 다른 기능을 사용하여 A레코드가 요청 될 때 항상 특정 IP를 반환하면 원하는 끝까지 가까워지는 것 같습니다 결과. 내 서버가 요청에 정식으로 응답하고 있으며 관리하기가 훨씬 쉽습니다!

이것은 네임 서버 검증 소프트웨어가 이러한 도메인을 확인하기 시작할 때까지 잘 작동했습니다. NS레코드 를 추가하여 대부분의 오류를 제거 할 수 있다는 것을 알았지 만 소프트웨어는 SOA동일한 영역 파일에 둘 이상의 레코드를 넣을 수 없습니다 .

이 다중 SOA레코드 문제를 어떻게 해결합니까?

답변:


12

내가 질문을 오해하지 않는 한, 나는 정기적으로 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으로이 큰 문제가되지이다.


4

인생을 더 쉽게 만들기 위해 사용할 수있는 여러 가지 단축키가 있습니다.

파일을 사용하여 영역 데이터를 저장하는 바인드 또는 유사한 소프트웨어를 사용하는 경우 영역을 동일한 파일로 지정하십시오.

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을 확인하십시오 .


2
답변의 전반부는 끝났지 만 DDNS가 여기에 적용되는지 확신 할 수 없습니다 ... 영역을 추가하거나 제거하는 데 사용할 수 없으므로이 시나리오의 대부분의 사람들이 달성하려고하는 것을 물리 치고 있습니다. (모든 영역 추가에 대해 named.conf를 만질 필요가 없습니다.) BIND 랜드에서 가장 가까운 것은 새로운 rndc addzone옵션이지만, 작업 디렉토리에서 해시 된 이름으로 구성 파일을 생성하기 때문에 여전히 추악합니다. 추가 된 모든 영역.
앤드류 B

당신이 말하려는 것을 이해하지만, 다른 해석은 많은 영역의 어려움이 작업을 유지하고 복제하는 것입니다. DNS 자동화 / 스크립팅은 잘 문서화되지 않은 것입니다.
HBruijn

4

짧은 답변

BIND에서 "제로 구성"설정을 찾으려면 존재하지 않습니다. 루트 영역 ( .)을 설정하는 것은 좋은 생각처럼 보이지만 그렇지 않습니다. 필요에 따라 DNS를 해제하지 않는 솔루션을 찾아야합니다.

긴 답변

지난 한 해 동안이 질문의 변형이 여러 차례 나타났습니다.

대답은 여기에서 매우 간단합니다. 단일 영역 정의를 설정할 수 없습니다. SOA이 컨텍스트에서 여러 레코드 를 정의하거나 합성 할 수있는 모든 소프트웨어 는 손상된 소프트웨어이므로 깨진 작업을하는 것은 ServerFault의 주제가 아닙니다. 이 관리를 단순화하는 DNS 소프트웨어를 선택하거나이 특정 바로 가기와 관련이없는 다른 전략을 세워야합니다.

BIND를 예로 들어 삶을 더 쉽게 만들기 위해 사용할 수있는 몇 가지 트릭이 있습니다. 모두 동일한 템플릿 영역 파일을 참조하는 여러 영역을 정의하는 것이 일반적입니다. 이것은 완벽하게 합법적이며 유효성 검사 소프트웨어는 아무런 문제가 없습니다. MadHatter의 답변을 참조하십시오. 새로운 도메인을 확보 할 때마다 영역 선언을 추가하는 것은 여전히 ​​"너무 많은 일"이기 때문에 대부분의 사람들은이 솔루션을 사용하지만 이러한 종류의 호스팅에 대해 "한 번 구성 및 이동"옵션이 없습니다.

최신 버전의 BIND allow-new-zones는 새로운 rndc addzone기능을 통해 동적으로 영역 정의를 동적으로 생성 할 수 있는 옵션을 지원 합니다. 이것을보고 당신의 요구에 맞는지 확인하고 싶을 수도 있습니다.

제안 된 솔루션 이외의 옵션은 다소 제한적입니다. 때로는 소프트웨어가 원하는 방식으로 작업을 수행하지 않으면 작업을 수행하지 않아도됩니다.


-2

"도메인을 동일하게 구성해야합니다"라고 말하면 동일한 도메인 레코드를 보유해야한다는 의미입니까? 이 경우 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

안타깝게도 DNAME 기법은 RFC의 한계로 인해 해당 영역의 정점을 놓칩니다. DNAME 레코드로 인한 CNAME 합성에는 여전히 합성되지 않은 CNAME 레코드의 제약 조건 이 적용됩니다 . MadHatter의 솔루션과 달리 결과는 100 % 동일한 RR 세트와는 거리가 멀습니다.
앤드류 B
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.