मैं अपने सभी डोमेन को न्यूनतम कॉन्फ़िगरेशन के साथ कैसे प्रबंधित कर सकता हूं?


10

यह DNS सर्वर प्रशासन के बारे में एक कैननिकल प्रश्न है

मेरे पास एक या सौ डोमेन हैं। इन सभी डोमेन को पहचान योग्य रूप से कॉन्फ़िगर करने की आवश्यकता है, लेकिन ऐसा लगता है कि इनमें से हर एक डोमेन के लिए एक नए ज़ोन और / या ज़ोनफ़ाइल को कॉन्फ़िगर करने के लिए समय की भारी बर्बादी होती है। इसे स्वचालित करने के लिए एक बेहतर तरीका होना चाहिए!

मुझे लगता है कि मैं किसी चीज़ पर हूँ ... अगर मैं एक ज़ोन बनाऊं ., या अपने DNS सॉफ़्टवेयर में किसी अन्य सुविधा का उपयोग करूं तो एक विशिष्ट आईपी को हमेशा वापस करने के लिए जब एक Aरिकॉर्ड का अनुरोध किया जाता है, तो यह मुझे मेरे वांछित अंत के बहुत करीब लगता है। परिणाम। मेरा सर्वर अनुरोधों के लिए आधिकारिक रूप से प्रतिक्रिया दे रहा है और इसे प्रबंधित करना बहुत आसान है!

यह तब तक बहुत अच्छा काम कर रहा था जब तक कि नामकरण सत्यापन सॉफ्टवेयर ने इन डोमेन की जांच शुरू नहीं की। मुझे लगा कि मैं 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.

और मुझे इन क्षेत्रों के बारे में किसी भी समस्या की जानकारी नहीं है। मुझे बताया जा रहा है कि मैंने इस सवाल को गलत समझा है, या कि मेरे डोमेन वास्तव में काम नहीं करते हैं, लेकिन तब तक मुझे लगता है कि यह मेरे लिए काम करता है।

ध्यान दें कि आप द्वितीयक पर समान चाल नहीं खींच सकते हैं ; प्रत्येक ज़ोन में एक अलग फ़ाइल जमा करने की आवश्यकता होगी । लेकिन चूँकि उस फ़ाइल की सामग्री को आबादी से हटाकर प्राथमिक से ज़ोन स्थानांतरण द्वारा अद्यतित रखा जाएगा, इसलिए यह बहुत बड़ी बात नहीं है।


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 के लिए शॉर्ट-हैंड है।


हाथ से व्यक्तिगत ज़ोन फ़ाइलों को बनाए रखने के बजाय, अपने नाम सर्वर के साथ प्रोग्रामेटिक रूप से इंटरेक्ट करने की विधि सक्षम करें।

मैंने PowerDNS का उपयोग किया है जो RDMS के लिए बैक-एंड के रूप में अनुमति देता है जो उस समय उपयोग किए जा रहे LAMP स्टैक के साथ बहुत अच्छी तरह से फिट होते हैं। अमेज़न रूट 53 जैसी क्लाउड सर्विसेज भी वेब-एपीआई को उजागर करती हैं।

लेकिन यहां तक ​​कि आदरणीय बिंद भी डायनेमिक अपडेट का समर्थन करता है जो मास्टर सर्वर में एक विशेष रूप से DNS संदेशों को भेजकर रिकॉर्ड जोड़ने, बदलने या हटाने का एक तरीका है। उन संदेशों का प्रारूप और अर्थ RFC 2136 में निर्दिष्ट है ।

ज़ोन स्टेटमेंट में allow-updateया एक update-policyक्लॉज़ को शामिल करके डायनामिक अपडेट सक्षम किया जाता है । अधिक जानकारी के लिए बिंद प्रशासक संदर्भ मैनुअल की जाँच करें ।


2
आपके उत्तर का पहला भाग मृत है, लेकिन मुझे यकीन नहीं है कि डीडीएनएस यहां लागू होता है ... इसका उपयोग जोनों को जोड़ने या हटाने के लिए नहीं किया जा सकता है, जो इस परिदृश्य में अधिकांश लोगों को पूरा करने की कोशिश कर रहा है। (प्रत्येक ज़ोन ऐड के लिए name.conf को नहीं छूना है) BIND भूमि में मुझे जो सबसे करीबी चीज़ पता है, वह नया rndc addzoneविकल्प है, लेकिन यह तब भी बदसूरत है क्योंकि यह वर्किंग डायरेक्टरी में हैशेड नाम के साथ एक कॉन्फिग फाइल जनरेट करता है। हर जोड़ा क्षेत्र।
एंड्रयू बी

यह समझने में कि आप क्या कहना चाह रहे हैं, लेकिन एक अलग व्याख्या यह है कि कई डोमेन के साथ कठिनाई काम को बनाए रखने और नकल करने में है। DNS को स्वचालित / स्क्रिप्ट करना कुछ ऐसा है जो अच्छी तरह से प्रलेखित नहीं है।
HBruijn

4

संक्षिप्त जवाब

यदि आप BIND में "शून्य कॉन्फ़िगरेशन" सेटअप की तलाश कर रहे हैं, तो यह मौजूद नहीं है। रूट ज़ोन ( .) स्थापित करना एक अच्छे विचार की तरह लगता है, लेकिन यह नहीं है, और आपको एक ऐसा समाधान खोजने की आवश्यकता है जिसमें आपकी आवश्यकताओं के अनुरूप DNS को तोड़ना शामिल नहीं है।

लंबा जवाब

हम पिछले एक साल में कई बार इस प्रश्न के वेरिएंट प्राप्त कर रहे हैं।

इसका उत्तर यहाँ बहुत सरल है: आप एक एकल ज़ोन परिभाषा सेट नहीं कर सकते। कोई भी सॉफ़्टवेयर जो आपको परिभाषित करता है या अन्यथा SOAइस संदर्भ में कई रिकॉर्डों को संश्लेषित करता है टूटा हुआ सॉफ़्टवेयर है, और टूटी हुई चीज़ें करना सर्वरफ़ॉल्ट के लिए विषय पर नहीं है। आपको या तो DNS सॉफ़्टवेयर चुनने की ज़रूरत है जो आपके लिए इस प्रबंधन को सरल बनाता है, या आपको एक अलग रणनीति के साथ आने की आवश्यकता है जिसमें इस विशेष शॉर्टकट को शामिल नहीं किया गया है।

निश्चित रूप से कुछ तरकीबें हैं जिनका उपयोग आप जीवन को आसान बनाने के लिए कर सकते हैं ... एक उदाहरण के रूप में BIND का उपयोग करते हुए, यह कई ज़ोन को परिभाषित करने के लिए काफी सामान्य है जो सभी एक ही टेम्पलेट ज़ोन फ़ाइल को संदर्भित करते हैं। यह पूरी तरह से कानूनी और मान्यता सॉफ्टवेयर है इसके साथ कुछ भी गलत नहीं होगा: MadHatter का जवाब देखें। ज्यादातर लोग इस समाधान से गुजरते हैं क्योंकि हर बार एक नया डोमेन हासिल करने के लिए ज़ोन घोषणा को जोड़ने के लिए "अभी भी बहुत काम है", लेकिन इस तरह की होस्टिंग के लिए "इसे एक बार कॉन्फ़िगर और दूर चलना" विकल्प नहीं है।

BIND के नए संस्करण एक विकल्प का समर्थन करते हैं, जो allow-new-zonesआपको गतिशील रूप से नई rndc addzoneकार्यक्षमता के माध्यम से मक्खी पर ज़ोन परिभाषा बनाने देगा । आप इस पर एक नज़र डालना चाहते हैं और देख सकते हैं कि क्या यह आपकी आवश्यकताओं के अनुरूप है।

सुझाए गए समाधानों के अलावा, आपके विकल्प कुछ सीमित हैं। कभी-कभी आप काम करने के साथ फंस जाते हैं यदि सॉफ्टवेयर चीजों को वैसा नहीं करता है जैसा आप चाहते हैं।


-2

जब आप कहते हैं "डोमेन को पहचान से कॉन्फ़िगर करने की आवश्यकता है", तो क्या आपका मतलब है कि उन्हें समान संसाधन रिकॉर्ड रखने होंगे? उस स्थिति में, DNAMEसभी डोमेन के लिए एक आरआर एक क्लीनर समाधान नहीं होगा?

मैं आपके प्रश्न के दायरे में सख्ती से रहते हुए उसी टेम्पलेट फ़ाइल को आयात करके @MadHatter द्वारा चाल को हरा नहीं सकता। मैं केवल LDAPबैकएंड के लिए समान दृष्टिकोण की पेशकश कर सकता हूं (मेरे मामले में, पॉवरडएनएस के साथ प्रयोग किया जाता है): 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

अफसोस की बात है कि DNFC तकनीक RFC की सीमाओं के कारण क्षेत्र के शीर्ष को याद करती है। DNAME रिकॉर्ड से उत्पन्न CNAME संश्लेषण अभी भी गैर-सिंथेटिक CNAME रिकॉर्ड की समान बाधाओं के अधीन है । मदहैटर के समाधान के विपरीत, परिणाम 100% समान आरआरसेट से बहुत दूर है।
एंड्रयू बी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.