ubuntu सर्वर LAN होस्टनाम का समाधान नहीं कर रहा है


14

बिट यहाँ अटक गया।

मेरे पास 2 मशीनें हैं जो LAN होस्टनामों को हल नहीं कर सकती हैं, जब तक कि / आदि / मेजबानों में विशिष्ट प्रविष्टियां नहीं हैं

लेकिन लैन पर अन्य मशीनें होस्टनाम का समाधान कर सकती हैं

मेरा लैन:

  • DNSMasq सक्षम के साथ DD-WRT v24-sp2 रनिंग 1 एक्स सिस्को राउटर। मैंने अपने LAN पर होस्टनाम और IP के साथ इसे कॉन्फ़िगर किया है।
  • 1 एक्स कुबंटू 12.10 (जब तक वे राउटर पर DNSMasq में प्रवेश कर जाते हैं, सभी होस्टनामों को सही ढंग से हल करता है)
  • 2 एक्स एनएएस (सभी नामों को भी सही ढंग से हल करें)

  • 1 एक्स उबंटू सर्वर 12.04 (यह स्थानीय होस्टनामों को हल नहीं करता है जब तक कि उन्हें / etc / मेजबानों में प्रवेश नहीं किया जाता है)

  • 1 x XBMCLive (धर्म) (वही - जब तक प्रविष्टियाँ / आदि / होस्ट में नहीं हैं) हल नहीं होती हैं

मुझे राउटर पर DNSMasq प्रविष्टियों का उपयोग करने के लिए अंतिम 2 कैसे मिलेगा? प्रत्येक मशीन राउटर को नेमसेवर के रूप में उपयोग करने के लिए सेट है, और सभी इकाइयाँ बाहरी पतों को सही ढंग से हल करती हैं।

धन्यवाद।

कुछ और जानकारी:

सर्वर पर रहते हुए, अगर मैं एक और पीसी (wstation) पिंग करूं

$ ping wstation
PING wstation.local.domain (x.x.x.x) 

अगर मैं तो .local

$ ping wstation.local
PING wstation.local.local.domain (x.x.x.x)

और सीधे

$ ping 10.0.0.4
PING 10.0.0.4 (10.0.0.4) 56(84) bytes of data.
64 bytes from 10.0.0.4: icmp_req=1 ttl=64 time=0.387 ms
64 bytes from 10.0.0.4: icmp_req=2 ttl=64 time=0.316 ms
64 bytes from 10.0.0.4: icmp_req=3 ttl=64 time=0.312 ms
64 bytes from 10.0.0.4: icmp_req=4 ttl=64 time=0.280 ms
64 bytes from 10.0.0.4: icmp_req=5 ttl=64 time=0.322 ms
^C
--- 10.0.0.4 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 3998ms
rtt min/avg/max/mdev = 0.280/0.323/0.387/0.038 ms                                                                       

मुझे जवाब नहीं पता है, और मुझे नहीं पता कि यह मददगार होगा, लेकिन अगर आप नहीं जानते तो ... मुझे पता चला कि अगर मशीन के नाम के बाद ".local" को जोड़ा जाता है, तो यह किसी तरह मिल जाएगा। किसी भी विन्यास की आवश्यकता के बिना। यह वास्तव में मेरी मदद करता था क्योंकि मैं पतों को निर्दिष्ट कर रहा था, लेकिन जब मैं किसी परीक्षण के लिए उपयोग किए जाने वाले ओएस को जोड़ूंगा या हटाऊंगा तो प्रविष्टियों को बदलते रहने की आवश्यकता थी, लेकिन, machinename.local को निर्दिष्ट करके, मुझे अब चिंता करने की आवश्यकता नहीं है। यदि आप जानते हैं कि यह कहाँ से आता है, तो मुझे बताने में संकोच न करें। :)
मार्टी फ्राइड

1
हाय मार्टी, आपके उत्तर के लिए धन्यवाद। मैंने समस्या के बारे में कुछ और जानकारी जोड़ी है जिसमें दिखाया गया है कि .local
teracow

जवाबों:


15

अपने वर्तमान उत्पादन के बारे में

ping wstation
PING wstation.local.domain

स्पष्ट रूप से इंगित करता है कि आपका पीसी .local.domainगैर-एफक्यूडीएन प्रश्नों से जुड़ रहा है। यह आपके सेट अप में अनुचित या कम से कम गलत तरीके से कॉन्फ़िगर किया गया कुछ है। (जब तक आप वास्तव में .local.domainउद्देश्य पर प्रत्यय का उपयोग नहीं करते हैं )

नाम समाधान और अवधि

एक महत्वपूर्ण बात जो बहुत से लोग नहीं जानते हैं, वह यह है कि एक पूर्ण नाम हमेशा एक अवधि ( .) के साथ समाप्त होना चाहिए । यदि आप इसे छोड़ देते हैं, तो मशीन इसे स्थानीय खोज डोमेन (जैसे mydomain.tld) ​​के भीतर हल करने का प्रयास करेगी। तो उस स्थिति में, एक प्रश्न mypc.localबन जाएगा mypc.local.mydomain.tld। इसे रोकने के लिए, अवधि के साथ क्वेरी करें

रिज़ॉल्वर कॉन्फ़िगरेशन

रिज़ॉल्वर कॉन्फ़िगरेशन का यहाँ बहुत महत्व है। उबंटू (और डेबियन) में इसे फ़ाइल में कॉन्फ़िगर किया गया /etc/network/interfaces(यह मानते हुए कि आप NetworkManager नहीं चला रहे हैं):

iface eth0 inet static
   address 192.168.3.3
   netmask 255.255.255.0
   gateway 192.168.3.1
   dns-nameservers 192.168.3.45 192.168.8.10
   dns-search foo.org bar.com                      # <-- these are the search domains

लिनक्स में हल करने वाले नाम को अन्य तरीकों से भी पूरा किया जा सकता है। यह सिर्फ इतना नहीं है कि स्थानीय DNS सर्वर को इस सब के लिए समझा जा रहा है। समाधान /etc/nsswitch.confके hostsविन्यास के लिए अपनी फ़ाइल पर एक नज़र डालें :

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4

इसका मतलब है कि फ़ाइलों को पहले आज़माया जाता है (यह /etc/hostsफ़ाइल है), फिर mDNS और केवल बाद में असली DNS सर्वर को क्वेर किया जाता है। mDNS को लिनक्स में अवही का उपयोग करके लागू किया गया है और इसे Apple उपकरणों पर बोनजोर कहा जाता है। यह .localडिफ़ॉल्ट रूप से प्रत्यय का उपयोग कर रहा है और प्रसारण संदेशों के माध्यम से काम करता है। बहुत एआरपी काम करता है, लेकिन फिर डीएनएस के लिए।

ये सभी प्रणालियाँ .localmDNS उपकरणों के साथ मिश्रित नियमित DNS सेटअप में उपयोग करते समय बहुत भ्रामक और उससे भी अधिक हो सकती हैं । मुझे लगता है यही कारण है कि आप अब उलझन में हैं कि एक उपकरण क्यों काम करता है और दूसरा नहीं करता है: वे सभी एक ही संकल्प पद्धति का उपयोग नहीं कर रहे हैं।

चीजों को छाँटने के लिए

  • .localजब तक आप mDNS पर पूरी तरह से भरोसा नहीं करना चाहते हैं, तब तक उपयोग से बचें । आपके प्रश्न से मैं समझता हूं कि आप अपने आप को एक केंद्रीय स्थान पर कॉन्फ़िगर करना चाहते हैं, इसलिए मेरा दृष्टिकोण यहां से बचने के लिए है।
  • एक विशेष डोमेन नाम, उदाहरण के लिए, अपने स्थानीय DNS सर्वर (आपके मामले में DD-WRT डिवाइस) को कॉन्फ़िगर करें my.home। Dnsmasq के लिए यह एक एकल सेटिंग है, लेकिन नियमित सेटअप में इसे DNS सर्वर और साथ ही DHCP सर्वर (जैसा कि DHCP के माध्यम से घोषित किया जा रहा है) दोनों पर कॉन्फ़िगर किया जाना चाहिए।
  • एक सरल और अद्वितीय होस्ट नाम रखने के लिए सभी पीसी को कॉन्फ़िगर करें। वे डीएचसीपी के लिए अपने अनुरोध में इसका उपयोग करते हैं और इसका उपयोग उन्हें हल करने के लिए आपके राउटर पर चल रहे dnsmasq में किया जाता है। वैकल्पिक रूप से, उन्हें डीएचसीपी पर निर्भर न होने के लिए मैन्युअल रूप से कॉन्फ़िगर करें।
  • /etc/resolv.confयदि आप अतीत में इसके साथ जुड़े थे, तो किसी भी बचे हुए कॉन्फ़िगरेशन को निकालें ।
  • my.homeस्थानीय खोज डोमेन के रूप में उपयोग करने के लिए अपने नेटवर्क में पीसी को कॉन्फ़िगर करें । यह स्वचालित रूप से डीएचसीपी के माध्यम से किया जा सकता है, या यदि /etc/network/interfacesफ़ाइल के माध्यम से या नेटवर्क मैनेजर में स्थैतिक पते का उपयोग किया जा सकता है :

    यहां छवि विवरण दर्ज करें

  • अब दोनों सरल नाम हल ( ping hostname) के साथ-साथ पूर्ण नाम ( ping hostname.my.home) काम करना चाहिए।

5
वाह! बहुत बढ़िया उत्तर gertvdijk! बहुत व्यापक है। इतना कुछ, कि मुझे यह समझने के लिए कुछ समय चाहिए होगा कि आपने क्या कहा है। मैं कह सकता हूं कि मैंने होस्टनाम के बाद एक डॉट के साथ पिंग का परीक्षण किया और यह सही ढंग से काम किया। मैं स्थायी मशीनों के लिए इस LAN पर DHCP का उपयोग नहीं करता। मैंने कभी भी किसी भी मशीन पर .local सेटिंग्स को कॉन्फ़िगर नहीं किया है क्योंकि मुझे समझ नहीं आया कि यह सब क्या था। मैं आपके निर्देशों के अनुसार इसकी जांच करूंगा और आपके पास वापस जाऊंगा।
टेराको

इस व्यापक जवाब के लिए थैंक्यू। मैंने अपना /etc/nsswitch.conf बदल दिया ताकि DNS को mDNS से ​​पहले प्रयास किया जाए files mdns4_minimal [NOTFOUND=return] dns mdns4। अब सब कुछ अधिक व्यवहार करता है जैसे मैं अपने (खराब नाम वाले) host.foo.local संबोधित मशीनों के साथ उम्मीद कर रहा हूं। इससे पहले कि यह बदलाव ping hostnameकाम करेगा लेकिन ping hostname.foo.localविफल हो रहा था। मैं वास्तव में भ्रमित हो रहा था जब dig hostnameअसफल हो रहा था और dig hostname.foo.localएक परिणाम वापस कर रहा था, जो मुझे उम्मीद थी उसके विपरीत। अब मैं FQDNs को पिंग कर सकता हूं जैसा कि मुझे उम्मीद थी। वहाँ इस तरह से आदेश सेट करने के लिए एक नकारात्मक पहलू है?
TafT


0

मुझे TAB का उपयोग करने के बजाय IP और hostname के बीच कई रिक्त स्थान वाले / a / etc / होस्ट्स के साथ समान समस्याएं मिलीं। TAB में बदलने के बाद होस्टनाम को पिंग द्वारा हल किया जा सकता है।

127.0.0.1        test.local
         ^^^^^^^^ → Should be a TAB not multiple spaces.

/superuser//a/938366/467479 पर भी देखें


3
मुझे खेद है, यह सही नहीं है। मेजबान फ़ाइल रिक्त स्थान या टैब के साथ काम करेगी। इसके अलावा, 127.0.0.1 में पहले लोकलहोस्ट होना चाहिए, उसके बाद लोकलहोस्ट.लोकलोमैन - और आपके सेटअप, आपके मशीन होस्टनाम के आधार पर। (कुछ सेटअप, उबंटू / डेबियन ने आपने अपना होस्टनाम 127.0.1.1 लाइन पर रखा है) मैं होस्ट फ़ाइल में कोई भी .local पते स्थापित करने की सलाह नहीं दूंगा, हालाँकि, जब वे mDNS / Avahi के साथ संघर्ष करते हैं
Dude

1
यदि आपके पास अपने डोमेन पर विंडोज मशीनें हैं, तो जाहिर तौर पर इसमें यूनिकैस्ट डीएनएस का उपयोग किया गया है, जो कि अवही या जीरोकोनफ एमडीएनएस कार्यान्वयन के साथ संगत नहीं है। इसके अलावा, यह देखने के लिए कि क्या यह mdns4_minimal [NOTFOUND = रिटर्न] या पूर्ण mdns4 लुकअप कर रहा है (इसे वापस ले जाएं) करने के बाद अपने /etc/nsswitch.conf को देखें। इसके अलावा, .local डोमेन का उपयोग करने के लिए किसी भी DNS सर्वर को कॉन्फ़िगर न करें, क्योंकि mDNS / sd-DNS रिसोल्वर उस डोमेन को लुकअप को मास्क कर देगा। अपने आंतरिक DNS TLD के लिए, .lan, .work, .home, आदि का उपयोग करें (लेकिन कोई नया Tss की तरह नहीं है, जैसे .biz, .xyz, .web, आदि ...)। सौभाग्य, और डीएनएस संकल्प की मजेदार दुनिया में आपका स्वागत है।
ड्यूड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.