
dnscontrol v5.0.0-rc9
DNS के लिए कोड के रूप में बुनियादी ढांचा!
DNSControl
DNSControl DNS के लिए इन्फ्रास्ट्रक्चर ऐज़ कोड है। इसमें एक पूर्ण-विशेषताओं वाली कॉन्फ़िगरेशन भाषा (Javascript-संगत) शामिल है, साथ ही "प्लग-इन" जो DNS प्रदाता APIs जैसे AWS Route 53, Cloudflare, और Gandi से संवाद करते हैं। यह समान DNS रिकॉर्ड्स को कई प्रदाताओं को भेज सकता है। यह वहाँ चलता है जहाँ Go चलता है (Linux, macOS, Windows)। प्रदाता मॉडल विस्तारणीय है, इसलिए अधिक प्रदाता जोड़े जा सकते हैं।
एक उदाहरण
dnsconfig.js:
// define our registrar and providers
var REG_NAMECOM = NewRegistrar("name.com");
var r53 = NewDnsProvider("r53")
D("example.com", REG_NAMECOM, DnsProvider(r53),
A("@", "1.2.3.4"),
CNAME("www","@"),
MX("@",5,"mail.myserver.com."),
A("test", "5.6.7.8")
)
dnscontrol preview चलाने पर प्रदाताओं (यहाँ name.com रजिस्ट्रार के रूप में और route 53 DNS होस्ट के रूप में) से संवाद होगा, और यह निर्धारित करेगा कि क्या परिवर्तन करने की आवश्यकता है।
dnscontrol push चलाने पर प्रदाता के साथ ये परिवर्तन किए जाएँगे और मेरे DNS रिकॉर्ड सही ढंग से अपडेट हो जाएँगे।
DNSControl चलाने का सबसे आसान तरीका Docker कंटेनर का उपयोग करना है:
docker run --rm -it -v "$(pwd):/dns" ghcr.io/dnscontrol/dnscontrol preview
आरंभ करने के लिए दस्तावेज़ साइट पर Getting Started पृष्ठ देखें!
समर्थित प्रदाता
DNSControl 65 DNS प्रदाताओं और रजिस्ट्रारों का समर्थन करता है:
¹रजिस्ट्रार कार्यों का भी समर्थन करता है ²केवल रजिस्ट्रार
Stack Overflow इस प्रणाली का उपयोग कई रजिस्ट्रारों और DNS प्रदाताओं में सैकड़ों डोमेन और सबडोमेन प्रबंधित करने के लिए करता है।
आप इसे एक DNS कंपाइलर के रूप में सोच सकते हैं। कॉन्फ़िगरेशन फ़ाइलें एक DSL में लिखी जाती हैं जो काफी हद तक JavaScript जैसी दिखती है। इसे एक इंटरमीडिएट प्रतिनिधित्व (IR) में संकलित किया जाता है। कंपाइलर बैक-एंड IR का उपयोग Route53, Cloudflare, और Gandi जैसी सेवाओं, या BIND जैसी प्रणालियों पर आपके DNS ज़ोन को अपडेट करने के लिए करते हैं।
लाभ
- BIND ज़ोन फ़ाइल संपादित करने की तुलना में कम त्रुटि-प्रवण।
- वेब पोर्टल पर बटन क्लिक करने की तुलना में अधिक पुनरुत्पादनीय।
- DNS प्रदाताओं के बीच आसानी से स्विच करें: DNSControl भाषा विक्रेता-अज्ञेय है। यदि आप इसका उपयोग अपने DNS ज़ोन रिकॉर्ड बनाए रखने के लिए करते हैं, तो आप DNS प्रदाताओं के बीच आसानी से स्विच कर सकते हैं। वास्तव में, DNSControl आपके DNS रिकॉर्ड को कई प्रदाताओं पर अपलोड करेगा, जिसका अर्थ है कि आप दूसरे पर स्विच करते समय एक का परीक्षण कर सकते हैं। हमने तीन वर्षों में 3 बार प्रदाता बदले हैं और हमने कभी भी DNS रिकॉर्ड नहीं खोया है।
- DNS पर CI/CD सिद्धांत लागू करें! StackOverflow अपने DNSControl कॉन्फ़िगरेशन को Git में बनाए रखता है और परिवर्तनों को रोल आउट करने के लिए अपनी CI प्रणाली का उपयोग करता है। DNS जानकारी को VCS में रखने का अर्थ है कि हमारे पास पूर्ण इतिहास है। CI का उपयोग हमें यूनिट-टेस्ट और सिस्टम-टेस्ट शामिल करने में सक्षम बनाता है। वह समय याद है जब आप MX रिकॉर्ड के अंत में "." शामिल करना भूल गए थे? हमें यह समस्या तब से नहीं हुई जब हमने यह सुनिश्चित करने के लिए एक परीक्षण शामिल किया कि Tom वह गलती... दोबारा न करे।
- (GitOps) PR-आधारित अपडेट अपनाएँ। डेवलपर्स को PR के रूप में अपडेट भेजने की अनुमति दें, जिनकी आप स्वीकृत करने से पहले समीक्षा कर सकते हैं।
- चर समय बचाते हैं! एक IP पता एक स्थिरांक को निर्दिष्ट करें और पूरी फ़ाइल में चर नाम का उपयोग करें। IP पता वैश्विक रूप से बदलने की आवश्यकता है? बस चर बदलें और "पुनः संकलित" करें।
- मैक्रोज़! अपने SPF रिकॉर्ड, MX रिकॉर्ड, या अन्य दोहराए गए डेटा को एक बार परिभाषित करें और सभी डोमेन के लिए पुनः उपयोग करें।
- Cloudflare को सत्य के एकल स्रोत से नियंत्रित करें। Cloudflare प्रॉक्सिंग ("ऑरेंज क्लाउड" बटन) को सीधे अपनी DNSControl फ़ाइलों से सक्षम/अक्षम करें।
- समान डोमेन को सिंक में रखें ट्रांसफॉर्म और अन्य सुविधाओं के साथ। यदि एक डोमेन को दूसरे का फ़िल्टर किया गया संस्करण होना है, तो इसे सेट अप करना आसान है।
- यह विस्तारणीय है! सभी DNS प्रदाता प्लगइन्स के रूप में लिखे गए हैं। नए प्लगइन्स लिखना बहुत आसान है।
स्थापना
DNSControl को macOS, Linux और Windows के लिए पैकेजों के माध्यम से, या स्रोत कोड से स्थापित किया जा सकता है। आधिकारिक निर्देश देखें।
GitHub Actions (GHA) के माध्यम से
dnscontrol-action या gacts/install-dnscontrol देखें।
अप्रचलन चेतावनियाँ (2025-11-21 को अपडेट की गईं)
- REV() v5.0 में RFC2317 से RFC4183 में स्विच हो जाएगा। यह एक ब्रेकिंग परिवर्तन है। यदि आपका कॉन्फ़िगरेशन प्रभावित है तो चेतावनियाँ आउटपुट होती हैं। v5.0 के लिए कोई तारीख घोषित नहीं की गई है। देखें https://docs.dnscontrol.org/language-reference/top-level-functions/revcompat
- NAMEDOTCOM, OPENSRS, और SOFTLAYER को अनुरक्षकों की आवश्यकता है! इन प्रदाताओं के पास कोई अनुरक्षक नहीं है। अनुरक्षक समय पर PR का जवाब देते हैं और बग ठीक करते हैं, और प्रोटोकॉल परिवर्तनों पर अद्यतित रहने का प्रयास करते हैं। नायक बनने और उन्हें अपनाने में रुचि रखते हैं? tal at what exit dot org से संपर्क करें।
योगदान
योगदान देना चाहते हैं? चाहे वह बग ठीक करना हो, नया DNS प्रदाता जोड़ना हो, या दस्तावेज़ीकरण में सुधार करना हो, योगदान का स्वागत है। आरंभ करने के तरीके के लिए CONTRIBUTING.md देखें।
हमारी वेबसाइट पर अधिक जानकारी
वेबसाइट: https://docs.dnscontrol.org/
आरंभ करने की मार्गदर्शिका: https://docs.dnscontrol.org/getting-started/getting-started