सवाल क्या सबमेन के लिए सीएनएन इस्तेमाल किया जाना चाहिए?


मैं कई वेबसाइटों का प्रबंधन करता हूं जिनमें वर्तमान में निम्न DNS कॉन्फ़िगरेशन है:

example.com      - A Record - Production Server IP
test.example.com - A Record - Test Server IP
www.example.com  - CNAME    - example.com
beta.example.com - CNAME    - test.example.com
dev.example.com  - CNAME    - test.example.com

क्या यह सीएनएन रिकॉर्ड का उचित उपयोग है? मैंने ऑनलाइन देखा है और मुझे एक स्पष्ट उत्तर नहीं मिला है। कुछ लोग दावा करते हैं कि सीएनएन रिकॉर्ड खराब हैं (हालांकि, यह स्पष्ट नहीं है कि यह क्यों है) और निम्न सेटअप का प्रस्ताव दें:

example.com      - A Record - Production Server IP
test.example.com - A Record - Test Server IP
www.example.com  - A Record - Production Server IP
beta.example.com - A Record - Test Server IP
dev.example.com  - A Record - Test Server IP

इनमें से कौन सा बेहतर दृष्टिकोण है (और क्यों)?

ध्यान दें: उप डोमेन को अपने स्वयं के एमएक्स रिकॉर्ड की आवश्यकता नहीं होती है, इसलिए यह कोई मुद्दा नहीं है।


76
2017-09-16 17:55


मूल


मुझे लगता है कि यह एक विकी जवाब होना चाहिए। DNS सही होने के लिए इतना कठिन है और क्या यह स्वीकार किया गया उत्तर अभी भी 6 साल बाद अच्छा है? - the0ther
@ द हां हां, आज भी मान्य उत्तर, से जेस्पर मोर्टेंसन, अभी भी मान्य है (भले ही कोई चीजों के नामकरण या सही टीटीएल मानों का उपयोग करने के बारे में बहस कर सके, लेकिन ये CNAME रिकॉर्ड का उपयोग करने के मुद्दे से अलग बिंदु हैं या नहीं)। DNS एक 30 पुराना प्रोटोकॉल है, इसलिए सीएनएन रिकॉर्ड जैसी बुनियादी चीजें समय के साथ बदलती नहीं हैं। - Patrick Mevzek


जवाब:


हां, यह सीएनएन का उचित उपयोग है। चर्चाओं में मैं हिस्सा रहा हूं, तर्क इस तरह से जाते हैं:

सीएनएन के खिलाफ:

  • एक (छोटा) प्रदर्शन जुर्माना है, क्योंकि डाउनस्ट्रीम DNS कैश को 2 DNS लुकअप करने की आवश्यकता है, एक सीएनएन के लिए और एक ए-रिकॉर्ड सीएनएन पॉइंट्स के लिए।
  • अस्पष्ट, सीएनएन के बारे में अस्पष्ट, तर्क "कम" प्राधिकरण या संगतता के मुद्दों के बारे में तर्क।

सीएनएन के पक्ष में:

  • वे हार्डवेयर (भौतिक सर्वर) और सेवाओं के बीच एक स्वच्छ अमूर्त प्रदान करते हैं।
  • वे DNS प्रबंधन को सरल बनाते हैं - जब कोई सर्वर चलता है, तो आपको केवल एक रिकॉर्ड बदलने की आवश्यकता होती है।

कुछ अलग तरीकों की कोशिश करने के बाद ऐसा करने के लिए, अब मेरे पास एक निजी पसंदीदा शैली है। यह है:

  • प्रत्येक भौतिक सर्वर के लिए एक रिकॉर्ड; काफी कम टीटीएल (शायद 30 मिनट) के साथ; सर्वर दे रहा है मानव-अनुकूल नाम
  • प्रत्येक सेवा के लिए एक सीएनएन; एक उच्च टीटीएल (शायद 24 घंटे) के साथ; उपर्युक्त सर्वर नामों को इंगित करना।
  • उपर्युक्त नियमों के लिए एकमात्र निकास के रूप में, डोमेन रूट एक ए-रिकॉर्ड है, जो वेबसर्वर / वेब लोड बैलेंसर को इंगित करता है। (@ को ए-रिकॉर्ड होना आवश्यक है।)

मुझे लगता है कि यह सेटअप अच्छी तरह से काम करता है। यह CNAMES के लिए अतिरिक्त DNS लुकअप रखता है; और यदि कोई सर्वर क्रैश हो जाता है तो भी मैं काफी तेज़ी से सार्वजनिक DNS को बदल सकता हूं।

यहां एक (सुधारित) उदाहरण है BIND वाक्यविन्यास में:

;name     ttl   class rr     value 
server01  30m   IN    A      192.168.0.3
server02  30m   IN    A      192.168.0.4

webmail   24h   IN    CNAME  server01
extranet  24h   IN    CNAME  server02
ftp       24h   IN    CNAME  server02

80
2017-09-16 19:45



धन्यवाद, आखिरकार सीएनएन पर एक उचित राय जो स्पष्ट रूप से और संक्षेप में रखी गई है। - Tyler
@ जेस्पर मोर्टेंसन: क्या आप कृपया एक छोटे से उदाहरण के साथ थोड़ा सा जवाब अपडेट कर सकते हैं, विशेष रूप से मुझे आपके तीसरे बिंदु को समझ में नहीं आया जब आप कहते हैं "ऊपर दिए गए नियमों के लिए एकमात्र निकास के रूप में, डोमेन रूट एक ए-रिकॉर्ड है," आप पहले से ही हैं 1 बिंदु में कहा कि आप प्रत्येक भौतिक परत सर्वर के लिए एक रिकॉर्ड का उपयोग करते हैं। (बीटीडब्ल्यू लिंक चले गए हैं) - Marco Demaio
@ मार्को डेमायो: "डोमेन रूट ए-रिकॉर्ड" के बारे में: एक दूसरा स्तर डोमेन जैसा company.comएक जोन शीर्ष है। इसे एक एसओए रिकॉर्ड की जरूरत है। इस प्रकार यह एक रिकॉर्ड होना चाहिए और एक सीएनएन नहीं होना चाहिए - देखें serverfault.com/questions/170194/... - Jesper Mortensen
@ एक रिकॉर्ड होने की आवश्यकता नहीं है; बल्कि, एक सीएनएन निषिद्ध है। - Michael Hampton♦
बस जोड़ना चाहता था कि सीएनएन विशेष रूप से उपयोगी हैं यदि आपका सर्वर आईपीवी 6 पते का समर्थन करता है, क्योंकि आपको प्रति सर्वर कम से कम दो प्रविष्टियों (एक ए और एएएए रिकॉर्ड प्रत्येक) की आवश्यकता होगी ताकि सब-डोमेन के लिए एक सीएनएन का उपयोग किया जा सके। इस मामले में बहुत आसान है। यदि आप टीटीएल के लिए जेस्पर की सिफारिशों का उपयोग करते हैं (या आपके DNS प्रदाता के पास स्वचालित स्वचालित हैंडलिंग है) तो कोई वास्तविक प्रदर्शन जुर्माना नहीं होना चाहिए। - Haravikk


हाँ यह उचित है।

मेरे सर्वोत्तम अभ्यास, जो कि कई लोग साझा करते हैं, प्रत्येक सर्वर आईपी के लिए 1 रिकॉर्ड बनाना है; और किसी और चीज के लिए CNAMES का उपयोग करें।

एक आम उदाहरण होगा:

server1.example.com.      IN A      192.168.0.1
server2.example.com.      IN A      192.168.5.2
www                       IN CNAME  server1
ftp                       IN CNAME  server1
beta                      IN CNAME  server2

12
2017-09-16 18:03



मुझे इस सवाल में पता है कि उन्होंने कहा कि मेल यहां कोई मुद्दा नहीं है, लेकिन मान लीजिए कि आप मेल का उपयोग करते हैं कि आप एमएक्स रिकॉर्ड के साथ कैसे जाएंगे? धन्यवाद! - Marco Demaio
एमएक्स रिकॉर्ड भी सर्वर नाम को इंगित करेगा। IN MX server1 और सुविधा के लिए मैं भी स्थापना की सिफारिश करेंगे imap या pop तथा smtp सीएनएन, संभवतः भी mail, जैसा कि कई ई-मेल प्रोग्राम इसका अनुमान लगाते हैं। सही एसआरवी रिकॉर्ड स्थापित करना भी एक अच्छा विचार है, लेकिन चूंकि यह एक अपेक्षाकृत बुनियादी सवाल है क्योंकि एसआरवी रिकॉर्ड एक साधारण विन्यास के लिए थोड़ा अधिक हो सकता है। - Chris S
एक त्वरित टिप्पणी, MXरिकॉर्ड सीएनएन नहीं होना चाहिए, देखें serverfault.com/a/232243/2874  यह शायद अभ्यास में ठीक काम करता है - लेकिन फिर भी, ऐसा करने के लिए बेहतर नहीं है। - Jesper Mortensen
यदि आप किसी सीएनएन पर एमएक्स या एसआरवी रिकॉर्ड इंगित करते हैं तो BIND ज़ोन लोड करने से इनकार कर देगा ... शायद मुझे यह स्पष्ट करना चाहिए कि एमएक्स रिकॉर्ड को एक रिकॉर्ड को इंगित करने की आवश्यकता है। धन्यवाद। - Chris S
@ChrisS, आपके उत्तर को संपादित करने और स्पष्ट रूप से इस तथ्य का जिक्र करने के बारे में कि एक एमएक्स रिकॉर्ड एक सीएनएन प्रविष्टि को इंगित नहीं कर सकता है? - Alexis Wilke