
DNS मापन, समस्या निवारण और सुरक्षा ऑडिटिंग टूलसेट
क्या आपने कभी सोचा है कि आपका ISP आपके DNS ट्रैफ़िक को इंटरसेप्ट कर रहा है)? क्या आपने अपने DNS प्रतिक्रियाओं में कोई असामान्य व्यवहार देखा है, या क्या आपको गलत पते पर रिडायरेक्ट किया गया है और संदेह है कि आपके DNS में कुछ गड़बड़ हो सकती है? हम आपके DNS अनुरोधों और प्रतिक्रियाओं पर बुनियादी ऑडिट करने के लिए उपकरणों का एक सूट प्रदान करते हैं, जो आपको यह सुनिश्चित करने में मदद करता है कि आपका DNS वैसे ही काम कर रहा है जैसा अपेक्षित है।
dnsping से, आप किसी भी DNS सर्वर के प्रतिक्रिया समय को मनमाने क्वेरी के लिए माप सकते हैं।
नियमित पिंग उपयोगिता के समान, dnsping DNS अनुरोधों के लिए समान कार्यक्षमता प्रदान करता है,
जिससे आप सर्वर की प्रतिक्रियाशीलता की निगरानी कर सकते हैं।
आप dnstraceroute का उपयोग करके अपने DNS अनुरोध के गंतव्य तक के मार्ग का पता लगा सकते हैं,
यह सत्यापित करते हुए कि इसे रिडायरेक्ट या इंटरसेप्ट नहीं किया जा रहा है।
एक ही सर्वर पर भेजे गए DNS क्वेरी की तुलना करके, dnstraceroute आपको लिए गए मार्गों में किसी भी अंतर को देखने की अनुमति देता है,
जो संभावित समस्याओं के प्रति आपको सचेत करता है।
dnseval आपके नेटवर्क के लिए सर्वश्रेष्ठ DNS रिज़ॉल्वर चुनने में सहायता के लिए कई DNS रिज़ॉल्वर का मूल्यांकन करता है।
जबकि अपने स्वयं के DNS रिज़ॉल्वर का उपयोग करने की अनुशंसा की जाती है ताकि तीसरे पक्ष के DNS रिज़ॉल्वर पर निर्भरता से बचा जा सके,
dnseval आवश्यकता पड़ने पर इष्टतम DNS रिज़ॉल्वर चुनने में सहायता कर सकता है। यह आपको प्रदर्शन (विलंबता) और विश्वसनीयता
(पैकेट हानि) के आधार पर DNS सर्वरों की तुलना करने की अनुमति देता है, जो सूचित निर्णय लेने के लिए एक व्यापक दृश्य प्रदान करता है।
इस टूलसेट का उपयोग करने के कई तरीके हैं, हालांकि हम इष्टतम लचीलापन और नियंत्रण के लिए इसे सीधे स्रोत कोड से चलाने की अनुशंसा करते हैं।
git clone https://github.com/farrokhi/dnsdiag.git
cd dnsdiag
pip3 install -r requirements.txt
pip3 install dnsdiag
uv एक तेज़ पायथन पैकेज मैनेजर है जो बिना स्थापना के उपकरणों को सीधे चला सकता है:
# बिना स्थापना के dnsping को सीधे चलाएँ
uvx --from dnsdiag dnsping google.com
# विशिष्ट विकल्पों के साथ चलाएँ
uvx --from dnsdiag dnsping -c 5 --tls -s 8.8.8.8 example.com
# dnstraceroute चलाएँ
uvx --from dnsdiag dnstraceroute cloudflare.com
# dnseval चलाएँ
uvx --from dnsdiag dnseval -f public-servers.txt github.com
dnsdiag को स्थायी रूप से स्थापित करने के लिए:
# dnsdiag उपकरण स्थापित करें
uv tool install dnsdiag
# नवीनतम संस्करण में अपग्रेड करें
uv tool upgrade dnsdiag
समय-समय पर, विंडोज, मैक ओएस एक्स और लिनक्स के लिए बाइनरी पैकेज जारी किए जाएंगे। आप रिलीज़ पेज से नवीनतम रिलीज़ प्राप्त कर सकते हैं।
प्री-बिल्ट बाइनरी निम्नलिखित के लिए उपलब्ध हैं:
विंडोज ARM64 वर्तमान में समर्थित नहीं है क्योंकि बिल्ड निर्भरताओं को देशी संकलन टूलचेन की आवश्यकता होती है जो आसानी से उपलब्ध नहीं हैं। यदि आप ARM पर विंडोज का उपयोग कर रहे हैं, तो आप विंडोज सबसिस्टम फॉर लिनक्स (WSL2) का उपयोग करके या स्रोत से सीधे स्थापित करके dnsdiag चला सकते हैं।
यदि आप अपनी स्थानीय मशीन पर dnsdiag स्थापित नहीं करना चाहते हैं, तो आप उपकरणों को कंटेनरीकृत वातावरण में चलाने के लिए डॉकर इमेज का उपयोग कर सकते हैं। उदाहरण के लिए:
docker run --network host -it --rm farrokhi/dnsdiag dnsping.py
dnsping आपको एक DNS रिज़ॉल्वर को "पिंग" करने की अनुमति देता है, जिसमें मनमाने DNS क्वेरी को कई बार भेजा जाता है। समर्थित कमांड-लाइन विकल्पों की पूरी सूची के लिए --help का उपयोग करें। यहाँ कुछ प्रमुख फ़्लैग दिए गए हैं:
--tcp, --tls, --doh, --quic या --http3 का उपयोग करें (डिफ़ॉल्ट UDP है)। ये विकल्प परस्पर अनन्य हैं; प्रति कमांड केवल एक प्रोटोकॉल निर्दिष्ट किया जा सकता है।--flags का उपयोग करें, जिसमें EDNS फ़्लैग शामिल हैं।--dnssec का उपयोग करें।--nsid का उपयोग करें (RFC 5001)।--ecs का उपयोग करें।--cookie का उपयोग करें (RFC 7873)../dnsping.py -c 5 --dnssec --flags --tls -t AAAA -s 8.8.8.8 brokendnssec.net
dnsping.py DNS: 8.8.8.8:853, hostname: brokendnssec.net, proto: TLS, class: IN, type: AAAA, flags: [RD]
75 bytes from 8.8.8.8: seq=1 time=73.703 ms SERVFAIL [QR RD RA -- DO] [EDE:10("For brokendnssec.net/soa")]
75 bytes from 8.8.8.8: seq=2 time=69.523 ms SERVFAIL [QR RD RA -- DO] [EDE:10("For brokendnssec.net/soa")]
75 bytes from 8.8.8.8: seq=3 time=58.058 ms SERVFAIL [QR RD RA -- DO] [EDE:10("For brokendnssec.net/soa")]
75 bytes from 8.8.8.8: seq=4 time=54.235 ms SERVFAIL [QR RD RA -- DO] [EDE:10("For brokendnssec.net/soa")]
75 bytes from 8.8.8.8: seq=5 time=57.806 ms SERVFAIL [QR RD RA -- DO] [EDE:10("For brokendnssec.net/soa")]
--- 8.8.8.8 dnsping statistics ---
5 requests transmitted, 5 responses received, 0% lost
min=54.235 ms, avg=22.665 ms, max=69.523 ms, stddev=38.202 ms
dnsping न्यूनतम, अधिकतम और औसत प्रतिक्रिया समय के साथ-साथ जिटर (मानक विचलन) और पैकेट हानि जैसे आँकड़े भी प्रदान करता है।
यहाँ dnsping के कुछ दिलचस्प उपयोग के मामले दिए गए हैं:
--dnssec फ़्लैग का उपयोग करके DNSSEC सक्षम होने पर प्रतिक्रिया समय मापना।./dnsping.py -c 3 --ecs 203.0.113.0/24 -s 94.140.14.14 google.com
dnsping.py DNS: 94.140.14.14:53, hostname: google.com, proto: UDP, class: IN, type: A, flags: [RD]
66 bytes from 94.140.14.14: seq=1 time=31.407 ms NOERROR [ECS:203.0.113.0/24/24]
66 bytes from 94.140.14.14: seq=2 time=29.156 ms NOERROR [ECS:203.0.113.0/24/24]
66 bytes from 94.140.14.14: seq=3 time=30.892 ms NOERROR [ECS:203.0.113.0/24/24]
--- 94.140.14.14 dnsping statistics ---
3 requests transmitted, 3 responses received, 0% lost
min=29.156 ms, avg=30.485 ms, max=31.407 ms, stddev=1.176 ms
./dnsping.py -c 2 --nsid -s 8.8.8.8 google.com