DNS कैशिंग सेट करने का सबसे अच्छा तरीका?


28

DNS लुकअप को गति देने के लिए, मैं DNS कैश या प्रॉक्सी इंस्टॉल करना चाहता हूं।

मैं कम से कम तीन कार्यक्रमों को देख सकता हूं जो मुझे लगता है कि काम करेंगे: bind9, pdnsd, या dnsmasq।

मैं यह सुनिश्चित करना चाहूंगा कि यदि मैं किसी एक को स्थापित करता हूं, तो इसे प्रदर्शन या सुरक्षा के दृष्टिकोण से खराब तरीके से कॉन्फ़िगर नहीं किया जाता है। तो, लोग क्या सिफारिश करेंगे, और क्या कोई कॉन्फ़िगरेशन परिवर्तन हैं जिन्हें मुझे तुरंत स्थापित करने के बाद करना चाहिए?


एक कार्य केंद्र के लिए, सही? या हम LAN / ISP की बात कर रहे हैं?

हां, यह एक लैन के लिए नहीं बल्कि व्यक्तिगत वर्कस्टेशन को गति देने के लिए है।

जवाबों:


15
  1. बाइंड 9 स्थापित करें
  2. बिंदु resolv.conf से 127.0.0.1

ऐसा करने के लिए इस चरणों का पालन करें:

Bind9 स्थापित करने के लिए

  1. "Ubuntu सॉफ्टवेयर सेंटर" खोलें (एप्लीकेशन-> Ubuntu Software Center)
  2. बाइंड 9 के लिए खोजें
  3. "तकनीकी आइटम" प्रदर्शित करने के लिए जांचें
  4. Bind9 को चिह्नित करें और इसे स्थापित करें

अपडेट /etc/resolv.conf

  1. ओपन नेटवर्क मैनेजर (सिस्टम-> प्राथमिकताएं-> नेटवर्क मैनेजर)
  2. अपना कनेक्शन ढूंढें और उसे संपादित करें (वायर्ड या वायरलेस)
  3. "IPV4 कॉन्फ़िगरेशन" टैब टॉगल करें
  4. "DNS सर्वर" फ़ील्ड पर 127.0.0.1 लिखें

हॊ गया!

परीक्षा करना

ओपन गनोम-टर्मिनल (एप्लिकेशन> एक्सेसरीज़> टर्मिनल) और टाइप करें

dig ubuntu.com 

(यदि आपके पास यह नहीं है, तो bind9 को बताए अनुसार dnsutils पैकेज स्थापित करें)

उदाहरण के रूप में अंतिम उत्तरों की जाँच करें:

Ubuntu.com पर मेरी पहली क्वेरी

;; Query time: **209 msec**
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Jan 22 12:20:12 2011
;; MSG SIZE  rcvd: 196

मेरी दूसरी क्वेरी:

;; Query time: **0 msec**
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Jan 22 12:18:23 2011
;; MSG SIZE  rcvd: 156

सर्वर 127.0.0.1 का मतलब है कि आप स्थानीय स्तर पर हल कर रहे हैं। क्वेरी समय (** से घिरा हुआ) पर एक नज़र डालें, दूसरा एक कैश्ड है।


धन्यवाद, इगोर। मैंने इस दृष्टिकोण की कोशिश की और यह नाम लुकअप के लिए अच्छी तरह से काम करता है, लेकिन यह आईपी एड्रेस लुकअप को रिवर्स करने के लिए कैश नहीं लगता है। मैं इसे bind9 का उपयोग कैसे करूँगा?

यह मेरे सेटअप पर कुछ भी नहीं किया। क्वेरी समय अभी भी है ~ 100ms
Ashfame

आप दोनों: यदि यह काम नहीं कर रहा है, तो जांच लें कि सर्वर क्या कहता है कि उसे इसका जवाब मिल गया है। यदि यह 127.0.0.1 नहीं कहता है, तो आपने इसे ठीक से सेट नहीं किया है। नोट: Ubuntu के विभिन्न संस्करणों के लिए resolv.conf को सेट करने के निर्देश अलग-अलग हो सकते हैं।
थोमसट्रेटर

तो आप गुई बॉक्स पर कैशिंग नेमसेवर चला रहे हैं? हां, यह निश्चित रूप से संभव है .. अधिक से अधिक पीपीएल पढ़ने की संभावना से एक सर्वर स्थापित होगा - और जीयूआई वैकल्पिक है। एक सरल sudo apt install bind9और sudo nano /etc/resolv.confविकल्प के रूप में आपके उत्तर में जोड़ा जाना चाहिए।
bshea

मैंने सब कुछ किया लेकिन सेटअप काम नहीं कर रहा है। मैंने आखिर resolv.confमें 127.0.0.1 किया। क्या यह इसे विफल कर सकता है? dig ubunut.comकहते हैं, "कनेक्शन का समय समाप्त हो गया; कोई सर्वर नहीं पहुंच सका"
सत्य प्रकाश

9

मैं dnsmasq की सिफारिश करेंगे,

यहाँ एक अच्छा ट्यूटोरियल देखें; http://embraceubuntu.com/2006/08/02/local-dns-cache-for-faster-browsing/

आप यहां एक तुलना पढ़ना चाह सकते हैं;

http://en.wikipedia.org/wiki/Comparison_of_DNS_server_software


मैं DNS कैशिंग के लिए dnsmasq का उपयोग करता हूं। साथ ही / etc /
host

मैंने dnsmasq की कोशिश की और यह नाम लुक्स को कैशिंग करने के साथ-साथ bind9 के लिए भी काम करता है, लेकिन यह IP एड्रेस लुक्स को कैश नहीं करता है। क्या यह dnsmasq का उपयोग करना संभव है?

1
हर बार शुरू होने वाले समय में अपने Resolv.conf को ओवरराइट करने वाले नेटवर्क मैनेजर को।
daithib8

6

"DNS लुकअप को गति देने के लिए, मैं DNS कैश या प्रॉक्सी इंस्टॉल करना चाहता हूं।"

ठीक है। लेकिन एक आसान तरीका भी है। OpenDNS / और Google नाम सर्वर का उपयोग उन नामों के लिए आपके स्वयं के स्थानीय कैश से अधिक तेज़ होगा जो पहले से ही OpenDNS / Google कैश में मौजूद हैं। 208.67.222.222, 208.67.220.220, और / या 8.8.8.8 का उपयोग करना, जैसा कि नाम से पता चलता है, लगभग सभी समय तेजी से होगा। आप Google, या अपने स्थानीय कैश पर time nslookup www.google.com 208.67.222.222OpenDNS नाम सर्वर में से किसी एक पर परीक्षण गति के साथ इसका परीक्षण कर सकते हैं । जब मैं तेजी से कहता हूं, मेरा मतलब तकनीकी रूप से तेज है और इतना तेज नहीं है कि कोई व्यक्ति आसानी से अंतर देख सके।time nslookup www.google.com 8.8.8.8time nslookup www.google.com 127.0.0.1

"मैं कम से कम तीन कार्यक्रमों को देख सकता हूं जो मुझे लगता है कि काम करेंगे: bind9, pdnsd, या dnsmasq।"

क्या आप djbdns के dnscache भाग के लिए खुले हैं? नीचे दिए गए निर्देश। हालांकि, यह पैच के बिना कैश को नहीं बचाता है ...

sudo apt-get remove bind9 dnsmasq-base
sudo apt-get install djbdns dnscache-run
sudo killall -9 dnsmasq
sudo update-rc.d -f bind9 remove

फिर हमें अपने कैश का उपयोग करने के लिए सिस्टम को बताना होगा।

sudo gedit /etc/resolv.conf

इस उदाहरण को देखने के लिए फ़ाइल को संपादित करें। यह फ़ाइल परिभाषित करती है कि किस सर्वर का उपयोग करना है, डिफ़ॉल्ट डोमेन और खोज प्रत्यय। खोज प्रत्यय पूरी तरह से योग्य डोमेन नाम के केवल होस्टनाम भाग का उपयोग करके प्रश्नों को चलाना संभव बनाता है। उदाहरण के लिए, "nslookup www 'स्वचालित रूप से' nslookup www.example.com 'बन जाता है जब example.com" खोज "पैरामीटर का मान होता है।

nameserver 127.0.0.1      # Use the local resolver first.
nameserver 208.67.222.222 # OpenDNS
nameserver 8.8.8.8        # Google
domain example.com
search example.com

यह थोड़ा फैंसी है, लेकिन हमें नवीनतम रूट नाम सर्वर प्राप्त करने की आवश्यकता है।

sudo dnsip $(dnsqr ns . | sed -e '/answer/!d;s/\(.*\)NS \(.*\)/\2/') | sudo tee /etc/dnscache/root/servers/@

मुझे लगता है कि जब हम DHCP का उपयोग करते हैं, तो resolv.conf फ़ाइल अधिलेखित हो जाती है। मैं अपने आप को एक स्थिर आईपी पता देने के लिए चुनता हूं और उस सॉफ्टवेयर को हटा देता हूं, जो स्थैतिक आईपी पते को स्थापित करने के लिए इंटरफेस फाइल को संपादित करता है। लेकिन आप नेटवर्क प्रबंधक के साथ काम करने की कोशिश कर सकते हैं यदि आप इतने इच्छुक हैं।

sudo apt-get purge network-manager network-manager-gnome
sudo gedit /etc/network/interfaces

मेरी इंटरफेस फ़ाइल निम्नानुसार है, लेकिन आपको आपके कॉन्फ़िगरेशन में संशोधित करती है।

# Loopback
#
auto lo
iface lo inet loopback

# First network card (attached to NAT router, attached to cable internet)
#
auto eth0
iface eth0 inet static
address 192.168.1.254
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

अब बस फिर से शुरू करते हैं।

sudo reboot

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


धन्यवाद क्रिस्टोफर। क्या आप बता सकते हैं कि Google DNS मेरे स्थानीय कैश से अधिक तेज़ क्यों है? मेरा मानना ​​है कि इसका उपवास है, लेकिन यह कैसे तेजी से हो सकता है कि मेरे स्थानीय कैश जाने की तुलना में उनके सर्वर पर सभी तरह से जा सकें?
एरिक जॉनसन

क्योंकि संभावना बहुत अच्छी है कि यह पहले से ही जवाब है बिना इसे फिर से देखने के लिए।

@ क्रिस्टोफर: लेकिन एक बार आपके स्थानीय कैश के पास होने के बाद, लुकअप तुरंत हो जाते हैं। यदि आप Google DNS का उपयोग करते हैं, तो आपको हर बार क्वेरी करते समय 80 ms प्रतीक्षा करनी होगी।
ज़ैन लिंक्स

@Zan Lynx Yes .. तो अपने स्थानीय कैश को Google से पूछें। वू हू!

6
हालांकि @ user8290 में एक बिंदु है, मैं यह नहीं कहूंगा कि GoogleDNS का उपयोग करना स्थानीय की तुलना में तेज़ है। हाँ, Google के परिणाम समाप्त हो गए हैं, लेकिन आते हैं - यदि आपकी अंतर्राष्ट्रीय गति बेकार है, तो भी कोई फर्क नहीं पड़ता कि Google के पास दुनिया के सभी DNS परिणाम थे। स्थानीय नेटवर्क में आमतौर पर 100mbps + होता है, इसलिए आपके स्थानीय नेटवर्क dns सर्वर से एक उत्तर के लिए 8.8.8.8/8.8.4.4 (आपकी अंतर्राष्ट्रीय गति के आधार पर) पूछने से कम से कम 10 गुना तेज होगा। बेशक यह आपके DNS सर्वर पर कैश्ड परिणाम के संदर्भ में है।
tftd

3

मैं " dnscache " ( पैकेज "dnscache-run" ) का उपयोग कर रहा हूं और यह बहुत सरल है। कुछ भी कॉन्फ़िगर करने की आवश्यकता नहीं है।
यह DNS याचिकाओं ( पोर्ट 53 ) को कैप्चर करता है और यह प्रतिक्रियाओं को कैश करता है, अगली बार जब लिनक्स उस डोमेन के लिए पूछता है, तो dnscache आईपी को तुरंत वापस कर देता है।
हालांकि इस कार्यक्रम को बेहतर बनाने के लिए दो पैरामीटर हैं जिन्हें बदला जा सकता है:

echo 16000000 > /etc/sv/dnscache/env/CACHESIZE
echo 16777216 > /etc/sv/dnscache/env/DATALIMIT

0

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

DNSMasq सेटअप करना आसान है, और अच्छी तरह से प्रलेखित है। यदि आप इसे फ़ायरवॉल पर स्थापित करते हैं, तो इंटरनेट इंटरफ़ेस को छोड़कर बाइंड करने के लिए इंटरफ़ेस निर्दिष्ट करें।

बाइंड को कॉन्फ़िगर करना अधिक कठिन है और एक छोटे नेटवर्क के लिए कैश के रूप में ओवरकिल हो सकता है। मेरा मानना ​​है कि डिफ़ॉल्ट कॉन्फ़िगरेशन केवल कैशिंग है। आप प्रतिबंधित कर सकते हैं कि कौन सा पते आपके सर्वर का उपयोग कर सकते हैं एक एसीएल जोड़ना चाहते हैं।


0

Dnscache- रन पैकेज में libvirt जैसे अन्य पैकेजों के साथ कम से कम संघर्ष हुआ है, जो ब्रिज नेटवर्किंग और dasmasq का उपयोग करते हैं।

sudo apt-get install dnscache-run

यह पैकेज resolvconf (/etc/resolv.conf) को निकालता है, और आपको अपने कॉन्फ़िगरेशन को देखने के लिए / etc / network / interfaces या network manager का उपयोग करने की आवश्यकता होगी।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.