systemd-resolution स्थानीय डोमेन के लिए dns सर्वर को क्वेरी नहीं करता है


12

17.04 में अपग्रेड करने के बाद से मैं अपने स्थानीय नेटवर्क के पते (silvesternet.local) को हल नहीं कर सकता। मुझे निम्नलिखित प्रतिक्रिया मिली:

$ systemd-resolve edgerouter
edgerouter: resolve call failed: No appropriate name servers or networks for name found

जर्नल में इस लुकअप से संबंधित लेन-देन के लिए केवल टाइमआउट की रिपोर्टें हैं।

मैंने नेटवर्क ट्रैफ़िक को सूँघने के लिए Wireshark का उपयोग किया, और ऐसा लगता है कि यह नाम देखने की कोशिश भी नहीं करता है। कोई भी ट्रैफ़िक डीएनएस नहीं है। एक और बाहरी डोमेन को देखना ठीक काम करता है।

एक ही विषय के आसपास कई समस्याएँ बदलते nsswitch.conf का उल्लेख करती हैं, लेकिन यह कुछ भी हल नहीं करता है। मेरी वर्तमान सेटिंग्स हैं:

hosts:          files mdns4_minimal dns [NOTFOUND=return] resolve [!UNAVAIL=return] mdns4

1
क्या आपने चलाया है sudo apt update && sudo apt full-upgrade? रिलीज की इमेज में कीड़े लग गए ...
Zanna

यदि आप systemd-networkdइंटरफेस को कॉन्फ़िगर करने के लिए उपयोग कर रहे हैं , तो आपको अपनी फ़ाइलों UseDomains=trueके [DHCP]अनुभाग में जोड़ने की आवश्यकता हो सकती है .network: wiki.archlinux.org/index.php/systemd-networkd#.5BDHCP.5D
quixotic

वास्तव में, डोमेन के साथ बंद करें। यह वास्तव में edgerouter फर्मवेयर में बग था जिसने डोमेन को dhcp प्रतिक्रिया में सेट नहीं किया था।
रोब वैन डेर सबसे अधिक

जवाबों:


10

मेरा मानना ​​है कि यह डिजाइन द्वारा है।

उबंटू 17.04 ने नाम रिज़ॉल्यूशन के लिए सिस्टमड-हल किया गया है और यह एकल-लेबल नाम रिज़ॉल्यूशन के लिए केवल एलएलएमएनआर (मल्टीकास्ट नाम लुकअप) का उपयोग करता है। विवरण के लिए इस लिंक को देखें: https://www.freedesktop.org/software/systemd/man/systemd-resolved.sl.html

इस निर्णय के पीछे के तर्क के लिए इस बग रिपोर्ट में पॉटरिंग का जवाब देखें : https://github.com/systemd/systemd/issues/2514

UPD: स्थानीय नेटवर्क के लिए डोमेन का उपयोग करके इस समस्या को हल किया जा सकता है। यदि खोज इंटरफ़ेस का उपयोग करने के लिए नेटवर्क इंटरफ़ेस (या तो मैन्युअल रूप से या डीएचसीपी द्वारा) कॉन्फ़िगर किया गया है, तो सिस्टमड-सॉल्वड इस डोमेन को सिंगल-लेबल नामों में जोड़ देगा और फिर यूनिकस्ट डीएनएस के माध्यम से उन्हें देखेगा।

जाहिर है इन डोमेन को पहचानने के लिए स्थानीय DNS सर्वर को फिर से जोड़ा जाना चाहिए। Dnsmasq के मामले में, जो स्थानीय होस्ट-से-IP जोड़े / / / मेजबानों को पढ़ता है, इसे dnsmasq.conf में निम्नलिखित निर्देशों को जोड़कर पूरा किया जा सकता है:

domain=mydomain.net
local=/mydomain.net/
expand-hosts

UPD2: या आप केवल dnsmasq पर वापस लौट सकते हैं जैसा कि यहाँ वर्णित /ubuntu//a/911432/692094


और कुछ स्पष्टीकरण के साथ एक और बग पेज: github.com/systemd/systemd/issues/4821
ish-west

डोमेन-नाम यहाँ मुद्दा था। यह वास्तव में edgerouter फर्मवेयर में बग के कारण होता था। कॉन्फ़िगरेशन से डोमेन-नाम विकल्प को ठीक से dhcp कॉन्फ़िगरेशन में संग्रहीत नहीं किया गया था। इसलिए ग्राहकों को खोज करने के लिए एक डोमेन नहीं मिला।
रॉब वैन डेर मोस्ट

8

मुझे उबंटू 18.04 पर वही समस्या मिली, जो डीएनएस के लिए सिस्टमड-सॉल्वड का भी उपयोग करती है। इसका डिफ़ॉल्ट कॉन्फ़िगरेशन एकल-लेबल होस्टनाम या DNS द्वारा होस्ट डोमेन नाम का समाधान नहीं करता है, लेकिन क्रमशः LLMNR या mDNS द्वारा।

DNS द्वारा हल किए गए स्थानीय एकल-लेबल होस्टनाम या .Local डोमेन होस्टनाम बनाने के लिए, मैंने systemd-Solve.service के मैन पेज में वर्णित "हैंडलिंग /etc/resolv.conf" के चार मोडों में से 3 को सक्षम किया :

sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

इसी तरह का जवाब यहां दिया गया था । और फिर, डिफ़ॉल्ट के पीछे तर्क के लिए, इस बग रिपोर्ट में पॉटरिंग का जवाब देखें ।


2

18.04 तक अपग्रेड करने के बाद मेरे लिए जो काम किया गया, वह डोमेन / डोमेन को डोमेन (स्थानीय या मेरे मामले में mydomain.local) में बदलने के लिए फ़ाइल /etc/systemd/resolve.conf को कॉन्फ़िगर करने के लिए था। मैंने DNS पैरामीटर को भी बदल दिया, लेकिन ऐसा लगा कि यह प्रासंगिक नहीं है, लेकिन मैं इसका उल्लेख सिर्फ उस मामले में करता हूं जो सच नहीं है। अधिक जानकारी के लिए https://www.freedesktop.org/software/systemd/man/systemd-resolved.service.html पर जाएं

इसके अतिरिक्त, मैंने अवहि कॉन्फ़िगरेशन (/etc/avahi/avahi-daemon.conf) को स्थानीय से सर्वर खंड के अंदर डोमेन पैरामीटर को बदलने के लिए (डिफ़ॉल्ट) कुछ और के रूप में कुछ लोगों ने इस मंच में बताया।

उल्लिखित परिवर्तनों के साथ, मैं मशीनों पर डॉटलेस नामों का उपयोग करके पहुंच सकता हूं, उदाहरण के लिए, mycomputer को पिंग करने पर मशीन से सफलतापूर्वक संपर्क किया जाता है। हालाँकि, अगर मैं mycomputer.mydomain.local को पिंग करता हूं तो यह काम नहीं करता है, FQDN को उम्मीद के मुताबिक हल नहीं किया गया है।

यह उम्मीद करना कुछ मामलों के लिए मदद करता है या एक अधिक सामान्य समाधान का नेतृत्व करता है।


0

मुझे ग़लतफ़हमी के कारण इस समस्या का सामना करना पड़ा nsswitch.conf। चूंकि 12.04निम्नलिखित स्ट्रिंग ने उम्मीद के मुताबिक काम किया। बिना डोमेन के होस्टनाम सक्सेसफुल होते हैं।

लेकिन 17.04nss सिस्टम को कॉन्फ़िगर करने के लिए पुराने टेम्पलेट के साथ ubuntu का नया संस्करण (साथ ही संस्करण 16.10) पहले की तरह काम नहीं करता है।

hostsपुराने ubuntu संस्करणों से, का गलत संस्करण : hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

hostsउदाहरण के लिए, 17.04 से सफल वर्किंग संस्करण : hosts: files mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns

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