केवल कुछ निर्दिष्ट डोमेन नामों के लिए अपस्ट्रीम डीएनएस सर्वर का उपयोग करने के लिए dnsmasq कैसे लागू करें?


16

अभी मुझे dnsmasq.conf में निम्न पंक्ति मिली है, जो सभी अनुरोधों को अच्छी तरह से संभालती है ( /#/किसी भी डोमेन से मेल खाती है; यह आवश्यक है):

address=/#/127.0.0.1

फिर भी, कुछ डोमेन हैं जिन्हें आईपी पते के अलावा हल करने की आवश्यकता है 127.0.0.1

अस्थायी समाधान के रूप में उन्हें इसमें जोड़ा गया है /etc/hosts:

209.85.148.95   ajax.googleapis.com
207.97.227.245  underscorejs.org
72.21.194.31    s3.amazonaws.com

दुर्भाग्य से यह एक बहुत ही अस्थायी समाधान है: यह किसी भी लक्ष्य डोमेन परिवर्तनों के आईपी पते के रूप में जल्द ही काम करना बंद कर देगा।

मेरा सवाल है: कुछ (निर्दिष्ट) डोमेन नाम के आईपी पते को हल करने के लिए एक अपस्ट्रीम डीएनएस सर्वर का उपयोग करने के लिए dnsmasq को कैसे लागू किया जाए?

जवाबों:


29

आप इसे server=निर्देश जैसे का उपयोग करके कर सकते हैं

server=/ajax.googleapis.com/8.8.8.8

इसी तरह ajax.googleapis.com डोमेन के लिए Google सार्वजनिक DNS सर्वर को क्वेरी करेगा

server=/amazonaws.com/209.244.0.3

amazonaws.com डोमेन के लिए Level3 के सार्वजनिक DNS सर्वर को क्वेरी करेगा।

आप एक साथ कई डोमेन समूहित कर सकते हैं

server=/co.uk/com/8.8.4.4

8.8.4.4 पर DNS सर्वर पर .co.uk और .com डोमेन भेजेंगे

आपके पास कई server=निर्देश भी हो सकते हैं

−S, --server = [/ [<domain>] / [डोमेन /]] [<ipaddr> [# <port>] [@ <source> [# <port>]]

सीधे अपस्ट्रीम सेवर के आईपी पते को निर्दिष्ट करें। इस ध्वज को सेट करने से /etc/resolv.conf का उपयोग नहीं होता है, ऐसा करने के लिए -R का उपयोग करें। यदि एक या अधिक वैकल्पिक डोमेन दिए जाते हैं, तो उस सर्वर का उपयोग केवल उन्हीं डोमेन के लिए किया जाता है और उन्हें केवल निर्दिष्ट सर्वर का उपयोग करके क्वेरी की जाती है। यह निजी नेमसर्विर्स के लिए अभिप्रेत है: यदि आपके पास अपने नेटवर्क पर एक नामवर है, जो 19.in.168.1.1 पर xxx.internal.thekelleys.org.uk के नामों से संबंधित है, तो फ्लैग -S /internal.thekelleys.org.uk/ दे। 192.168.1.1 आंतरिक मशीनों के लिए सभी प्रश्नों को उस नेमसर्वर को भेज देगा, बाकी सब /etc/resolv.conf में सर्वर पर चला जाएगा। एक खाली डोमेन विनिर्देश, // का विशेष अर्थ है "अयोग्य नाम केवल" अर्थात बिना किसी बिंदु के नाम। एक गैर-मानक पोर्ट # वर्ण का उपयोग करके आईपी पते के हिस्से के रूप में निर्दिष्ट किया जा सकता है।

अनुमत भी एक -S ध्वज है जो एक डोमेन देता है लेकिन कोई IP पता नहीं; यह dnsmasq को बताता है कि एक डोमेन स्थानीय है और यह / etc / host या DHCP से प्रश्नों का उत्तर दे सकता है लेकिन किसी भी अपस्ट्रीम सर्वर पर उस डोमेन पर कभी भी प्रश्नों को अग्रेषित नहीं करना चाहिए। स्थानीय सर्वर के लिए इस मामले में विन्यास फाइल को स्पष्ट करने के लिए एक पर्याय है।

@ वर्ण के बाद वैकल्पिक दूसरा IP पता dnsmasq बताता है कि इस नेमसर्वर को प्रश्नों का स्रोत पता कैसे सेट करें। यह उस मशीन से संबंधित पता होना चाहिए जिस पर dnsmasq चल रहा है अन्यथा यह सर्वर लाइन लॉग हो जाएगी और फिर अनदेखा कर दिया जाएगा। क्वेरी-पोर्ट फ़्लैग को किसी भी सर्वर के लिए अनदेखा किया जाता है, जिसमें एक स्रोत पता निर्दिष्ट होता है, लेकिन पोर्ट सीधे स्रोत पते के भाग के रूप में निर्दिष्ट किया जा सकता है।


मुझे नहीं लगता कि उसे कई serverलाइनों की आवश्यकता है : जो भी पते वह हल करना चाहता है (127.0.0.1), वह उन्हें addressलाइनों के साथ जोड़ सकता है ; कुछ और, DNSMasq क्वेरी करेगा server। बहुत यकीन है कि मेरा सेटअप कैसे है।
ग्रेवीफेस

1
@gravyace: मैं प्रश्न को 127.0.0.1 के लिए कुछ अपवादों के साथ हल करने के इच्छुक के रूप में पढ़ता हूं, जिसे वह पता बदलने के लिए DNS का उपयोग करना चाहता है, क्योंकि वे पते को बदलते हैं।
user9517

ओह शायद। कौन जाने। किसी भी तरह से, उसे जाना चाहिए।
ग्रेवीफेस

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