Check-Host.cc

ग्लोबल SRV Record Checker

स्टँडर्ड A आणि AAAA रेकॉर्ड्स डोमेन नेमला IP ॲड्रेसमध्ये ट्रान्सलेट करण्यापुरते मर्यादित असताना, SRV (Service) रेकॉर्ड त्याहून अधिक कॉम्प्लेक्स आहे. RFC 2782 मध्ये डिफाइन केलेले, SRV रेकॉर्ड विशिष्ट नेटवर्क ॲप्लिकेशन्ससाठी अचूक होस्टनेम, प्रोटोकॉल, आणि अचूक पोर्ट नंबर डिफाइन करण्याचा एक प्रमाणित मार्ग स्थापित करते. ते एंटरप्राईज सर्व्हिस डिस्कव्हरीचे (service discovery) बॅकबोन आहेत, जे Microsoft Active Directory, SIP/VoIP राउटिंग, XMPP इन्स्टंट मेसेजिंग, आणि मॅसिव्ह मल्टीप्लेअर सर्व्हर आर्किटेक्चर्ससाठी (जसे की _minecraft._tcp.example.com रिझॉल्व्ह करणे) मोठ्या प्रमाणावर वापरले जातात.

सिंटॅक्स आणि Port Binding

SRV रेकॉर्ड त्याच्या रिजिड (rigid) फॉरमॅटिंग स्ट्रक्चरमुळे लगेच ओळखता येते. रेकॉर्डचे नाव सर्व्हिस दर्शवणाऱ्या अंडरस्कोरने (underscore) सुरू झाले पाहिजे, त्यानंतर ट्रान्सपोर्ट प्रोटोकॉल दर्शवणारा अंडरस्कोर, बेस डोमेनला जोडलेला असावा (उदा. _sip._tls.example.com). मिळणारा पेलोड कनेक्ट होणाऱ्या क्लायंटला चार विशिष्ट डेटा पॉईंट्स पुरवतो: प्रायोरिटी (Priority), वेट (Weight), टार्गेट पोर्ट (Port), आणि कॅनोनिकल टार्गेट होस्टनेम (Hostname). हे ॲडमिनिस्ट्रेटर्सना नॉन-स्टँडर्ड पोर्ट्स वापरून एकाच IP ॲड्रेसवर मल्टिपल वेगवेगळ्या सर्व्हिसेस चालवण्याची अनुमती देते, ज्यासाठी एंड-युजर्सना त्यांच्या क्लायंट्समध्ये पोर्ट नंबर्स लक्षात ठेवण्याची आणि टाईप करण्याची आवश्यकता नसते.

नेटिव्ह फेलओव्हर आणि वेटेड लोड बॅलेंसिंग

SRV रेकॉर्डचे सर्वात शक्तिशाली वैशिष्ट्य म्हणजे त्याचे नेटिव्ह, मल्टी-टायर्ड (multi-tiered) राउटिंग लॉजिक. Priority इंटिजर तंतोतंत MX रेकॉर्डसारखे काम करतो; कनेक्ट होणारे क्लायंट नेहमी सर्वात कमी प्रायोरिटी असलेल्या सर्व्हरसोबत हँडशेक नेगोशिएट करण्याचा प्रयत्न करतील. हे तात्काळ फेलओव्हर रिडंडन्सी (Failover Redundancy) एस्टॅब्लिश करते. जर मल्टिपल रेकॉर्ड्स तंतोतंत समान प्रायोरिटी शेअर करत असतील, तर Weight इंटिजर ट्रिगर होतो. हा प्रोपोर्शनल (proportional) लोड बॅलेन्सर म्हणून काम करतो. जर सर्व्हर A चे वेट 75 असेल आणि सर्व्हर B चे वेट 25 असेल, तर क्लायंट ॲप्लिकेशन नवीन कनेक्शनपैकी 75% सर्व्हर A कडे राउट करेल. हे इंजिनिअर्सना वेगवेगळ्या हार्डवेअर क्षमतेच्या क्लस्टर्सवर (clusters) हुशारीने ट्रॅफिक राउट करण्याची अनुमती देते.

HTTP SRV रेकॉर्ड्सकडे दुर्लक्ष का करते

ज्युनियर डेव्हलपर्सचा एक सामान्य प्रश्न असा असतो की वेब ट्रॅफिक (HTTP/HTTPS) नेटिव्ह लोड बॅलेंसिंग साध्य करण्यासाठी SRV रेकॉर्ड्स का वापरत नाही. याचे उत्तर पूर्णपणे ऐतिहासिक आहे. जेव्हा SRV रेकॉर्ड्स प्रमाणित केले गेले, तेव्हा HTTP ने पोर्ट 80 वर आणि HTTPS ने पोर्ट 443 वर काटेकोरपणे काम करण्याचे आर्किटेक्चरल कन्व्हेन्शन्स (Architectural conventions) आधीच प्रत्येक वेब ब्राउझरमध्ये युनिव्हर्सली हार्डकोड (hardcode) केले गेले होते. वेबला SRV लुकअप्सकडे शिफ्ट केल्याने किरकोळ फायद्यासाठी मोठ्या प्रमाणावर रिझोल्यूशन पेनल्टी (अतिरिक्त राऊंड-ट्रिप्सची आवश्यकता) ॲड झाली असती. त्याऐवजी, HTTP ॲप्लिकेशन-लेयर लोड बॅलेन्सर्स आणि Anycast IP राउटिंगवर अवलंबून आहे.