Tüm alan adlarımı minimum yapılandırmayla nasıl yönetebilirim?


10

Bu, DNS sunucusu yönetimi hakkında kanonik bir sorudur .

Yüz tane alanım var. Tüm bu alan adlarının aynı şekilde yapılandırılması gerekir, ancak bu alan adlarının her biri için yeni bir alan ve / veya alan dosyası yapılandırmak büyük bir zaman kaybı gibi görünüyor. Bunu otomatikleştirmenin daha iyi bir yolu olmalı!

Sanırım bir şeye devam ediyorum ... adında bir bölge oluşturursam .veya bir Akayıt istendiğinde her zaman belirli bir IP döndürmek için DNS yazılımımda başka bir özellik kullanırsam , bu beni istenen sonuma oldukça yaklaştırıyor gibi görünüyor sonuç. Sunucum isteklere yetkili olarak yanıt veriyor ve yönetimi çok daha kolay!

Ad sunucusu doğrulama yazılımı bu etki alanlarını denetlemeye başlayana kadar bu çok iyi çalışıyordu. Hataların çoğunu NSkayıt ekleyerek ortadan kaldırabileceğimi anladım , ancak yazılımım SOAaynı bölge dosyasına birden fazla kayıt eklememe izin vermiyor .

Bu çoklu SOAkayıt sorununu nasıl giderebilirim?

Yanıtlar:


12

Soruyu yanlış anlamadığım sürece bunu düzenli olarak BIND ile yapıyorum ve her bölge tamamen aynı olduğu sürece iyi görünüyor .

Birincil ad named.confsunucumda, genel bölge dosyasına işaret eden girdiler var, örn.

zone "example.com" {
        type master;
        file "primary/example.GENERIC";
};

zone "example.co.uk" {
        type master;
        file "primary/example.GENERIC";
};

ve daha sonra primary/example.GENERIC, ör.

;; 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.

Ve bu bölgelerle ilgili herhangi bir problemin farkında değilim. Soruyu yanlış anladığımı veya gerçekte etki alanlarımın işe yaramadığını söylemeye açıkım, ancak o zamana kadar bunun benim için çalıştığını düşünüyorum.

İkincil için aynı hileyi çekemeyeceğinizi unutmayın ; Her bölge olacak saklanacak farklı bir dosya gerektirir. Ama bu dosyanın içeriği doldurulur ve tutulacaktır beri yukarı güncel birincil bölge xfers tarafından, bu büyük bir anlaşma değil.


4

Hayatınızı kolaylaştırmak için kullanabileceğiniz birkaç kısayol vardır:

Bölge verilerini depolamak için dosyaları kullanan Bind veya benzeri bir yazılım kullanıyorsanız: bölgelerinizi aynı dosyaya yönlendirin, örneğin:

zone "example.net" {
    type master;
    file "/etc/bind/zone/default.zone";
};

zone "example.org" {
    type master;
    file "/etc/bind/zone/default.zone";
};

Belirli DNS kısayollarını kullanabileceğiniz için evrensel bir bölge dosyası oluşturabilirsiniz:

$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

Bu markaları bir nokta ile bitmez bölge dosyalarında hostnames gerçeğinin kullanmak .her zaman birlikte genişletilmiş $ORIGINsırayla örtülü bölge adına ayarlanır hangi. Ve @$ ORIGIN için kısa elidir.


Tek tek bölge dosyalarını el ile korumak yerine, bir yöntemin ad sunucularınızla programlı olarak etkileşime girmesini etkinleştirin.

O zaman kullandığımız LAMP yığını ile çok iyi uyan bir arka uç olarak bir RDMS sağlayan PowerDNS kullandım. Amazon Route 53 gibi Bulut Hizmetleri de web API'lerini ortaya çıkarır.

Ancak saygıdeğer Bind bile , ana sunucuya özel bir DNS mesajı göndererek kayıt ekleme, değiştirme veya silme yöntemi olan dinamik Güncellemeyi de destekler . Bu mesajların formatı ve anlamı RFC 2136'da belirtilmiştir .

Dinamik güncelleştirme, bölge deyimine bir allow-updateveya bir update-policyyan tümce eklenerek etkinleştirilir . Daha fazla bilgi için Bind Administrator Başvuru Kılavuzuna bakın .


2
Cevabınızın ilk yarısı öldü, ancak DDNS'nin burada uygulandığından emin değilim ... bu senaryodaki çoğu insanın neyi başarmaya çalıştığını yenen bölgeler eklemek veya kaldırmak için kullanılamaz. (her bölge eklemek için named.conf'a dokunmak zorunda değilsiniz) BIND arazisinde bildiğim en yakın şey yeni rndc addzoneseçenektir, ancak çalışma dizininde karma bir ada sahip bir yapılandırma dosyası oluşturduğu için hala çirkin her eklenen bölge.
Andrew B

Ne demeye çalıştığınızı anlayın, ancak farklı bir yorum, birçok alandaki zorluğun işi sürdürmek ve çoğaltmaktır. DNS'yi otomatikleştirmek / komut dosyası yazmak iyi belgelenmemiş bir şeydir.
HBruijn

4

Kısa cevap

BIND'de "sıfır yapılandırma" kurulumu arıyorsanız, mevcut değildir. Bir kök bölge ( .) oluşturmak iyi bir fikir gibi görünür, ancak değildir ve ihtiyaçlarınıza uygun DNS'yi kırmayı içermeyen bir çözüm bulmanız gerekir.

Uzun cevap

Geçen sene birkaç kez bu sorunun varyantlarını alıyoruz.

Burada cevap oldukça basit: tek bir bölge tanımı ayarlayamazsınız. SOABu bağlamda birden çok kaydı tanımlamanıza veya başka bir şekilde sentezlemenize izin veren herhangi bir yazılım bozuk yazılımdır ve bozuk şeyler yapmak ServerFault için konuyla ilgili değildir. Ya bu yönetimi sizin için basitleştiren DNS yazılımını seçmeniz ya da bu özel kısayolu içermeyen farklı bir strateji bulmanız gerekir.

Hayatı kolaylaştırmak için kullanabileceğiniz bazı hileler vardır ... BIND'ı örnek olarak kullanmak, hepsi aynı şablon bölge dosyasına referans veren birden fazla bölge tanımlamak için oldukça yaygındır. Bu tamamen yasaldır ve doğrulama yazılımı bununla ilgili yanlış bir şey bulamaz: MadHatter'in cevabına bakın. Çoğu kişi bu çözümü geçer çünkü yeni bir alan her alındığında bir bölge bildirimi eklemek "çok fazla iş" olur, ancak bu tür bir barındırma için "bir kez yapılandır ve uzaklaş" seçeneği yoktur.

BIND'ın daha yeni sürümleri allow-new-zones, yeni rndc addzoneişlevler aracılığıyla anında bölge tanımları oluşturmanıza olanak tanıyan bir seçeneği destekler . Buna bir göz atmak ve ihtiyaçlarınızı karşılayıp karşılamadığını görmek isteyebilirsiniz.

Önerilen çözümlerin dışında, seçenekleriniz biraz sınırlıdır. Bazen yazılım işleri istediğiniz gibi yapmazsa işi yapmakta sıkışıp kalırsınız.


-2

"Alan adlarının aynı şekilde yapılandırılması gerekiyor" derken, aynı kaynak kayıtlarını tutmaları gerektiği anlamına mı geliyor? Bu durumda, bir alan DNAMEdışındaki herkes için RR daha temiz bir çözüm olmaz mı?

Sorunuz kapsamında kalırken aynı şablon dosyasını içe aktarma işleminin @MadHatter tarafından yapamam. Sadece LDAParka uç için benzer bir yaklaşım sunabilirim (benim durumumda, powerDNS ile kullanılır): associatedDomainilgili SOA ve NS kayıtları için öznitelikleri ekleyin, şöyle:

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

Ne yazık ki DNAME tekniği, RFC'lerin sınırlamaları nedeniyle bölgenin tepesini kaçırıyor. DNAME kayıtlarından kaynaklanan CNAME sentezi, sentetik olmayan CNAME kayıtlarının aynı kısıtlamalarına tabidir . MadHatter'in çözümünün aksine, sonuç% 100 özdeş RR setlerinden çok uzaktır.
Andrew B
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.