AAAA (IPv6) लुक्स से पहले A (IPv4) DNS लुकअप को प्राथमिकता दें


44

नोटिस में मेरे नए स्थापित उबंटू 10.10 हमेशा एएएए डीएनएस लुकअप से पहले ए रिकॉर्ड लुकअप करते हैं। क्या कोई तरीका है जिससे मैं सिस्टम को पहले एक लुकअप करने के लिए कॉन्फ़िगर कर सकता हूं?

(जबकि विभिन्न ब्राउज़रों और अन्य अनुप्रयोगों में अपने स्वयं के रिज़ॉल्वर हो सकते हैं, मैं glibc में लोगों के बारे में बात कर रहा हूँ)


स्पष्ट करने के लिए, आप IPv4 और IPv6 दोनों को प्रस्तुत करना चाहते हैं?
बेलाक्वा

अधिमानतः हाँ। लेकिन जैसा कि मैंने केवल स्थानीय IPv6 को लिंक किया है, यह हर बार google.com के AAAA रिकॉर्ड के लिए पूछने के लिए काफी बेकार है, और फिर बाद में ए रिकॉर्ड के लिए पूछें।
नाक

जवाबों:


53

यह IPv4 पर IPv6 को प्राथमिकता देने के लिए मानक है अगली पीढ़ी के IP को लेने की अनुमति देने के लिए :)

आप इसे पूर्ववर्ती ब्लॉकों को संपादित करके बदल सकते हैं /etc/gai.conf(gai का अर्थ है getaddrinfo, होस्ट नामों को हल करने के लिए मानक सिस्टम कॉल)। फ़ाइल में बताई गई लाइन पर टिप्पणी करें:

# उन साइटों के लिए जो IPv4 कनेक्शन पसंद करते हैं, अंतिम पंक्ति को बदल देते हैं

# उक्ति :: ffff: 0: 0/96 100

एक विस्तृत विवरण gai.confमैन पेज में पाया जा सकता है।


धन्यवाद, यू ने मेरा दिन बचाया! मेरे सर्वर में से एक dv सर्वर से ipv6 परिणाम प्राप्त करता रहता है, लेकिन मेरा सर्वर ठीक से काम नहीं कर सका w / ipv6
Boon

नमस्ते, क्या इस सेटिंग को प्रभावी करने के लिए किसी sysctl या किसी सर्विस रीलोड या रिबूट की आवश्यकता है? मुझे आपका उत्तर उपयोगी लगा, लेकिन आप इस तरह के संदेह को ठीक करने के लिए इसे संपादित कर सकते हैं।
मार्को

सही संशोधित व्यवहार प्राप्त करने के लिए gai.confकहने के लिए मैन पेज को आपको सभी पंक्तियों को अन-कमेंट करना है, न कि केवल IPv4 को। से gai.conf(5): "एक बार फिर, कॉन्फ़िगरेशन फ़ाइल में एक एकल पूर्ववर्ती पंक्ति की उपस्थिति डिफ़ॉल्ट तालिका का उपयोग नहीं करने का कारण बनती है।" यदि आप चाहते हैं कि दूसरी डिफॉल्ट टेबल लाइन्स काम करती रहें, तो आपको उन्हें भी अन-कमेंट करना होगा।
इयान डी। एलन

10

मेरी समस्या वही थी, मेरे पास IPV4 से पहले IPV6 के प्रश्न थे और उन्होंने संसाधनों को बर्बाद किया, इसलिए मैंने अपनी /etc/gai.conf फाइल को freddyb के रूप में बदल दिया, लेकिन मेरा परिदृश्य थोड़ा अलग है, मेरा सर्वर नामांकित है, इसलिए IPv4 की उस लाइन के साथ IPv6 पर पूर्वता नहीं होगी। समाधान भी gai.conf पर अन्य पंक्तियों की टिप्पणी कर रहा है, इसलिए यह इस तरह दिखेगा

#For sites which prefer IPv4 connections change the last line to
precedence ::ffff:0:0/96 100
...
#    For sites which use site-local IPv4 addresses behind NAT there is
#    the problem that even if IPv4 addresses are preferred they do not
#    have the same scope and are therefore not sorted first.  To change
#    this use only these rules:
#
scopev4 ::ffff:169.254.0.0/112  2
scopev4 ::ffff:127.0.0.0/104    2
scopev4 ::ffff:0.0.0.0/96       14

तो अगर आप Natted हैं तो भी आपका सर्वर पहले ipv4 की कोशिश करेगा!


2
/etc/gai.confउबंटू 15.04 में फ़ाइल "ज्वलंत" कहते हैं उन तीन scopev4लाइनों आप ऊपर का सुझाव पहले से ही डिफ़ॉल्ट हैं। मैंने केवल एक-पंक्ति में precedence ::ffff:0:0/96 100परिवर्तन किया और यह NAT के पीछे भी काम किया।
इयान डी। एलन

1

यदि आप IPv6 को सक्षम नहीं करना चाहते हैं, तो आप इसे पूरा करने के लिए IPv6 को अक्षम कर सकते हैं। http://www.webupd8.org/2010/05/how-to-disable-ipv6-in-ubuntu-1004.html

यदि नहीं, तो आप जोड़ने का प्रयास कर सकते हैं

options single-request

आपकी /etc/resolv.conf फ़ाइल में। ( gory details के लिए http://udrepper.livejournal.com/20948.html देखें)


1
Resolv.conf के लिए मैनुअल पेज इंगित करता है कि आपके द्वारा सुझाया गया विकल्प बिल्कुल "इस विकल्प [...] को IPv6 और IPv4 अनुरोधों को क्रमिक रूप से (रिज़ॉल्यूशन प्रक्रिया की कुछ मंदी की कीमत पर) करता है।" - man7.org/linux/man-pages/man5/resolver.5.html
ndemou

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