हल करने में असमर्थ .foo.local डोमेन नाम


15

मेरे कार्यस्थल की तरह डोमेन नाम के साथ एक इंट्रानेट है server01.foo.local, server02.foo.localआदि मैं हाल ही में इसे बाहर का परीक्षण करने के फेडोरा 16 लाइव वातावरण हटा दिया गया और पता चला कि इन डोमेन नाम का समाधान नहीं होता।

उदाहरण के लिए:

$ ping server01.foo.local
पिंग: अज्ञात होस्ट server01.foo.local
$ ping server01
पिंग server01.foo.local (XXXX) ...

क्यों server01हल करेंगे (और नाम को प्रिंट करें server01.foo.local), लेकिन server01.foo.localनहीं करेंगे?


वीएमबीओक्स में चलने वाले उबंटू के साथ बिल्कुल यही समस्या थी। @ adam820 के समाधान ने मेरे लिए भी काम किया।
जिम्बो

जवाबों:


22

हालांकि मैं उम्मीद के मुताबिक काम नहीं कर रहा हूं, इसके पीछे 100% ऊपर नहीं है, क्योंकि mDNS सेवा (लिनक्स में Avahi, मैक / विंडोज में बोनजोर / Zeroconf) और विंडोज नेटवर्क के साथ एक बहुत बड़ा संघर्ष प्रतीत होता है डोमेन के लिए आंतरिक रूटिंग नाम के रूप में .local का उपयोग करें। क्या प्रतीत होता है कि सर्वर 01 को पिंग करते समय, यह रिज़ॉल्यूशन के लिए mDNS का उपयोग करने पर फिर से स्किप हो रहा है और फिर अनुरोध के लिए खोज डोमेन (foo.local) को जोड़ रहा है, सफलतापूर्वक DNS सर्वर को सर्वर01.foo.local के लिए क्वेरी कर रहा है। हालाँकि, जब आप mDNS का उपयोग करते हैं (जो डिफ़ॉल्ट मशीन नाम एक्सटेंशन के रूप में उपयोग करता है), जब आप सर्वर01.foo.local को पिंग करने का प्रयास करते हैं, तो यह वास्तव में "सर्वर01 .foo" के नाम से मशीन की तलाश में mDNS पर प्रसारित होता है; जब यह विफल हो जाता है, तो यह किसी भी कारण से DNS को सीधे-अप करने के लिए आगे नहीं बढ़ता है। इसके लिए एक बड़ा समाधान आपके डोमेन .local का नामकरण नहीं है, जो संभवतः डोमेन संरचना के लिए अधिकांश विंडोज एडिंस के प्रशिक्षण के खिलाफ जाता है। ऐसा कहे जाने के बाद:

यदि आपके नेटवर्क में mDNS का कोई परिणाम नहीं है (जैसा कि उद्यम में आम है, जो समर्पित DNS सर्वर बनाम होम नेटवर्क, जहां mDNS का उपयोग कभी-कभी किया जाता है) को चलाने के लिए होता है, तो खोज क्रम को बदलना सबसे आसान समाधान है।

यह /etc/nsswitch.conf में पाया जा सकता है। मेजबानों के लिए अनुभाग ऑर्डर को सूचीबद्ध करेगा, जो फेडोरा के लिए 16 डिफ़ॉल्ट है:

hosts:      files mdns4_minimal [NOTFOUND=return] dns myhostname

यदि आप इसे बदलते हैं:

hosts:      files dns mdns4_minimal [NOTFOUND=return] myhostname

जहां आप खोज क्रम में आगे बढ़ रहे हैं, वहीं अब के लिए चीजों को ठीक करना चाहिए। वैकल्पिक रूप से, यदि आप जानते हैं कि आपको mDNS की आवश्यकता नहीं है, तो बस "mdns4_minimal [NOTFOUND = return]" भाग को हटा दें।

रेड हैट ट्रैकर पर इस बग को देखते हुए , ऐसा लगता है कि यह एक लंबे समय से चली आ रही समस्या है, जिसका फिलहाल कोई स्पष्ट समाधान नहीं है। हालांकि, अगर कोई इस तरह से अधिक जानकारी प्रदान कर सकता है तो यह इस तरह से होगा, इसकी सराहना की जाएगी।


mdns अनुभाग को हटाने से समस्या हल हो गई
rhollencamp

इसको जोड़ने के लिए soooooooo का बहुत-बहुत धन्यवाद। वास्तव में एक ही समस्या थी और डीएनएस प्रविष्टि को आगे बढ़ाते हुए इसे हल किया। मेरे मामले में, मैं नवीनतम उबंटू का उपयोग कर रहा हूं, फेडोरा नहीं, लेकिन समाधान बिल्कुल वैसा ही था।
जिम्बो 25'12

कुछ भी नहीं, मैंने बस यह कोशिश की और पाया कि सिस्को वीपीएन का उपयोग लाइन में vpncउन प्रविष्टियों को हटाने के बाद कनेक्ट नहीं कर सकता hosts: .*है /etc/nsswitch.conf। इन सेटिंग्स को बदलने से समस्या ठीक हो गई।
जुब

"जब यह विफल हो जाता है, तो यह किसी भी कारण से DNS को सीधे-अप करने के लिए आगे नहीं बढ़ता है।" । कारण काफी स्पष्ट है। [NOTFOUND=return]इसका मतलब है कि "अगर mDNS आपको बताता है कि एक .local नाम नहीं मिला है, तो वह आधिकारिक है, और आगे पूछने का कोई मतलब नहीं है"। MDNS से ​​पहले DNS चलाना एक काम के आसपास है, लेकिन केवल mDNS को गैर-आधिकारिक बनाने से पहले ही पर्याप्त है।
MSALERS

हां, यह एक मान्य टिप्पणी है; यह 7 साल पहले था और मुझे उस समय पता नहीं था। लेकिन हां, इसे हटाने, नीचे दिए गए पैकेज को हटाने या आदेश को बदलने के लिए सभी मान्य समाधान / समाधान हैं।
adam820

2

यदि आप .localडोमेन का उपयोग कर रहे हैं तो मैं एक और उपाय सुझाता हूँ । पहले यह एक अच्छा विचार नहीं है क्योंकि यह .localकुछ मल्टीकास्ट गतिशील खोज के लिए उपयोग करने के लिए एक मानक / सम्मेलन लगता है ।

लेकिन अगर आप जोर देते हैं, तो अपने डिस्ट्रो के आधार पर सिर्फ nss-mdnsपैकेज या libnss-mdnsपैकेज को निकालना भी आसान है और आपको समस्या हल हो जाएगी। यदि आपको उस कार्यक्षमता की आवश्यकता नहीं है, तो यह वहां क्यों है?

यहाँ है yum info nss-mdns:

Summary     : glibc plugin for .local name resolution
URL         : http://0pointer.de/lennart/projects/nss-mdns/
License     : LGPLv2+
Description : nss-mdns is a plugin for the GNU Name Service Switch (NSS)
            : functionality of the GNU C Library (glibc) providing host name
            : resolution via Multicast DNS (aka Zeroconf, aka Apple Rendezvous,
            : aka Apple Bonjour), effectively allowing name resolution by common
            : Unix/Linux programs in the ad-hoc mDNS domain .local.
            : 
            : nss-mdns provides client functionality only, which means that you
            : have to run a mDNS responder daemon separately from nss-mdns if
            : you want to register the local host name via mDNS (e.g. Avahi).

1

कुछ चीजें जिन्हें आप देख सकते हैं:

  • क्या /etc/host.conf में कोई आदेश है, जो DNS को क्वेरी करने से पहले चेक / आदि / मेजबानों को निर्दिष्ट करता है?

  • server01 / etc / मेजबानों में है?

  • वहाँ एक search foo.local/ आदि / resolv, है? यह आपके द्वारा देखे जा रहे किसी भी होस्टनाम के लिए foo.local को जोड़ देगा

मुझे आश्चर्य है कि क्या आपका नेमसेवर सही तरीके से सेट है। यदि आपके पास अभी भी nslookup है, तो यह किसके लिए लौटा है server01, server01.foo.localऔर आईपी-एड्रेस (रिवर्स लुकअप)?


* host.conf के पास ऑर्डर के बारे में कुछ भी नहीं है। मैंने इसे लिखने के बाद राइट-प्रोटेक्टिंग /etc/resolv.conf की कोशिश की, ताकि NM ओवरराइट न कर सके और रीबूट न ​​कर सके; कोई पासा नहीं
rhollencamp

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