Systemd के 127.0.0.53 पर DNS कुछ लुकअप को अनदेखा कर रहा है


14

जब मैं नाम से स्थानीय मशीनों के लिए क्वेरी करता हूं, तो सिस्टम का DNS 127.0.0.53 पर प्यार करता था। लेकिन अगर मैं उनके लिए क्वेरी करता हूं और विशेष रूप से स्थानीय DNS सर्वर (मेरे राउटर) को निर्दिष्ट करता हूं तो मुझे उचित उत्तर मिलता है। लेकिन कॉन्फ़िगरेशन फ़ाइल का कहना है कि यह खोज पते के रूप में राउटर का उपयोग भी कर रहा है। कोई विचार?

मैं अपने डेल लैपटॉप पर Ubuntu 18.04 चला रहा हूं।

गलत परिणाम:

$ nslookup web1

Server:     127.0.0.53
Address:    127.0.0.53#53

** server can't find web1: SERVFAIL

इसके अलावा विफल रहता है

$ nslookup -i wlp3s0 web1
nslookup: couldn't get address for 'web1': not found

सही परिणाम:

$ nslookup web1 192.168.1.1

Server:     192.168.1.1
Address:    192.168.1.1#53

Name:   web1
Address: 192.168.1.107

कॉन्फ़िगरेशन जानकारी systemd- हल

$ systemd-resolve --status

Global
          DNSSEC NTA: 10.in-addr.arpa
                      16.172.in-addr.arpa
                      168.192.in-addr.arpa
                      17.172.in-addr.arpa
                      18.172.in-addr.arpa
                      19.172.in-addr.arpa
                      20.172.in-addr.arpa
                      21.172.in-addr.arpa
                      22.172.in-addr.arpa
                      23.172.in-addr.arpa
                      24.172.in-addr.arpa
                      25.172.in-addr.arpa
                      26.172.in-addr.arpa
                      27.172.in-addr.arpa
                      28.172.in-addr.arpa
                      29.172.in-addr.arpa
                      30.172.in-addr.arpa
                      31.172.in-addr.arpa
                      corp
                      d.f.ip6.arpa
                      home
                      internal
                      intranet
                      lan
                      local
                      private
                      test

Link 3 (wlp3s0)
      Current Scopes: DNS
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 192.168.1.1
          DNS Domain: wp.comcast.net

Link 2 (enp2s0)
      Current Scopes: none
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no

कॉन्फ़िगरेशन जानकारी NetworkManager

$ cat /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifupdown,keyfile

[ifupdown]
managed=false

[device]
wifi.scan-rand-mac-address=no

तो मैं सही उत्तर देने के लिए nslookup कैसे प्राप्त करूं? लिंक 3 सही जानकारी (मेरा वाईफाई कनेक्शन) प्रतीत होता है और राउटर पर मेरा DNS सही उत्तर दे रहा है लेकिन स्थानीय कैश कभी भी पता (या ऐसा लगता है) देखने की कोशिश नहीं करता है।


इस पोस्ट को देखें और देखें कि क्या इससे आपकी समस्या हल होती है: askubuntu.com/questions/1034064/…

मेरी config फ़ाइल में dns = dnsmasq नहीं है। मैं इसे दिखाने के लिए अपने प्रश्न को अपडेट कर रहा हूं।
श्वेतार्क

उबंटू का कौन सा संस्करण आप चला रहे हैं और क्या आप आईपी विन्यास के साथ अपनी पोस्ट को भी अपडेट कर सकते हैं?

मैं एक Dell लैपटॉप पर Ubuntu 18.04 चला रहा हूं।
श्वेतार्क

क्या आप कोशिश कर सकते हैंnslookup -i wlp3s0 web1
cmak.fr

जवाबों:


9

- अपने resolv.conf फ़ाइल गलत जगह की ओर इशारा करते नहीं किया गया ../run/systemd/resolve/stub-resolv.conf है , जहां यह डिफ़ॉल्ट रूप से पर बात करने के लिए चाहिए था।

समस्या यह है कि systemd-resolvedDNS पर गैर-डॉटेड नामों को पारित नहीं किया जाता है। जाहिरा तौर पर यह "जैसा डिज़ाइन किया गया" काम कर रहा है। इस github मुद्दे को देखें जिसमें कहा गया है कि "सुलझाया गया सिंगल-लेबल लुकअप को यूनिकैस्ट DNS पर लीक नहीं होने देगा"।

चाहे आप उस गितुब मुद्दे में तर्क से सहमत हों या न हों, इसे ठीक करने का एक तरीका है। इसे आपके उबंटू मशीन पर डिफ़ॉल्ट सेटअप में कोई भी बदलाव करने की आवश्यकता नहीं है:

  1. सबसे पहले, आपके LAN के DNS में एक डोमेन नाम होना चाहिए।

    यदि आप dnsmasq का उपयोग कर रहे हैं, तो /etc/dnsmasq.confअपने DNS सर्वर पर निम्नलिखित जोड़ें :

    expand-hosts
    domain=your-domain # replace "your-domain" with domain of your choice
    

    यदि आप डोमेन जोड़ते हैं तो अब आपको LAN होस्टनामों को हल करने में सक्षम होना चाहिए:

    nslookup web1.your-domain
    
  2. दूसरा, सुनिश्चित करें कि यदि आपके DNS सर्वर से भिन्न है, तो आपके LAN डोमेन का नाम भी आपके DHCP सर्वर में सेट है। मेरे डीएचसीपी सर्वर (मेरे राउटर) पर, इस सेटिंग को केवल "डोमेन नाम" कहा जाता है।

    यदि आप अपने Ubuntu बॉक्स पर अपने DHCP पट्टे को नवीनीकृत करते हैं, तो आपको एक खोज निर्देश दिखाई देना चाहिए /run/systemd/resolve/stub-resolv.conf:

    nameserver 127.0.0.53
    search your-domain
    

अब देखते हुए web1इसका विस्तार करेंगे web1.your-domain, जो तब DNS का उपयोग करके हल करेगा।

$ nslookup web1
Server:         127.0.0.53
Address:        127.0.0.53#53

Non-authoritative answer:
Name:   web1.your-domain
Address: 192.168.1.107

ध्यान दें कि यदि आप digइसके बजाय उपयोग करते हैं nslookup, digतो डिफ़ॉल्ट रूप से खोज पथ का उपयोग न करें - +searchइसे सक्षम करने के लिए इसके विकल्प का उपयोग करें।


रिबूट करने से पहले इसे web1.mydomain.com ने ठीक देखा। लेकिन निश्चित रूप से सिर्फ web1 की तलाश में काम नहीं किया। इसलिए मैंने रिबूट किया और मेरे जीवन के लिए मेरे पास कोई विचार नहीं है जहां यह कॉमकास्ट डोमेन उठा रहा है लेकिन अब अगर मैं वेब 1 देखता हूं तो यह सही आईपी के साथ प्रतिक्रिया करता है लेकिन मेरे डोमेन के बजाय कॉमकास्ट डोमेन दिखाता है। यह हल करता है इसलिए मैं बहुत चिंतित नहीं हूं लेकिन क्या बिल्ली ????
श्वेतार्क

@schworak अजीब! क्या आपका DHCP सर्वर भी आपका Comcast मॉडेम है? क्या आप उस डोमेन को /etc/resolv.confया तो nmcli -g allया आउटपुट में दिखा रहे हैं systemd-resolve --status? शायद यह देखने की कोशिश करें कि आपके डीएचसीपी पट्टे में क्या है?
लारेंस गोंसाल्विस

यह comcast मॉडेम नहीं है। मेरे पास DDLRT के साथ एक SysLink राउटर है। Comcast सेटिंग्स पूरी तरह से बदल रहे हैं। कॉमकास्ट नाम resolv.conf फ़ाइल में दिखाई देता है जो बूट अप में ऑटो-जेनरेट होता है। मैं इसके बारे में बहुत चिंतित नहीं हूं लेकिन यह अजीब है।
श्वेतार्क

@LaurenceGonsalves जीथब इश्यू लिंक के लिए एक टन धन्यवाद। मुझे समस्या का वर्कअराउंड मिल गया था लेकिन इससे मुझे मूल मुद्दे का पता लगाने में मदद मिली।
ग्रेगरी एरेनीस

19

मुझे जो ठीक लगा उसने मेरे लिए काम किया।

मेरी resolv.conf फ़ाइल गलत जगह की ओर इशारा कर रही थी। यह उबंटू के एक बग की तरह लगता है जैसा कि मेरे लैपटॉप पर हुआ (मशीन ने पहली बार इस मुद्दे पर ध्यान दिया) और उबंटू यूएई सर्वर की एक ताजा स्थापना पर।

डिफ़ॉल्ट

$ ls -l /etc/resolv.conf

lrwxrwxrwx 1 root root 39 Apr 26 12:07 /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf

मैंने इसे हटा दिया और सही फ़ाइल की ओर इशारा किया। रिबूट करने के बाद, इससे मेरी समस्या हल हो गई। और मैं अपने लैपटॉप पर भी नेटवर्क स्विच करने में सक्षम था और डीएनएस ने सही ढंग से स्विच किया। बेशक जब बाहरी नेटवर्क पर मैं अपनी किसी भी स्थानीय मशीन को हल नहीं कर सकता, लेकिन यह अपेक्षित है। जैसे ही मैं अपने स्थानीय नेटवर्क पर वापस जाता हूं, सभी स्थानीय मशीनें सही ढंग से हल हो जाती हैं क्योंकि मेरा राउटर डीएनएस है।

जोड़

$ sudo rm -f /etc/resolv.conf
$ sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
$ ls -l /etc/resolv.conf

lrwxrwxrwx 1 root root 32 May 29 08:48 /etc/resolv.conf -> /run/systemd/resolve/resolv.conf

$ sudo reboot

उसके बाद, सब कुछ जैसा कि मैंने उम्मीद किया था और 127.0.0.53 का अब उपयोग नहीं किया जा रहा है।

सही परिणाम

$ nslookup web1

Server:     192.168.1.1
Address:    192.168.1.1#53

Name:   web1
Address: 192.168.1.107

$ nslookup google.com

Server:     192.168.1.1
Address:    192.168.1.1#53

Non-authoritative answer:
Name:   google.com
Address: 172.217.7.174
Name:   google.com
Address: 2607:f8b0:4004:80e::200e

कृपया इस बग का उपयोग करके रिपोर्ट करें ubuntu-bug resolvconf
चाई टी। रेक्स

जब मैं इसे भेजना शुरू करता हूं तो resolvconf (स्थापित नहीं) कहता है। क्या resolvconf और systemd- एक ही चीज़ को हल करते हैं?
श्वेतार्क

systemd-resolvesystemdपैकेज द्वारा प्रदान किया गया है , इसलिए कृपया ubuntu-bug systemdइसके बजाय प्रयास करें ।
चाई टी। रेक्स

धन्यवाद! मैंने उस बग रिपोर्टिंग फीचर का इस्तेमाल पहले कभी नहीं किया था। बहुत अच्छा।
श्वेतार्क

1
वाह, यह पागल है। धन्यवाद। क्या यह बग कभी ठीक हुआ? क्या यह डॉकर-विशिष्ट बग है? मुझे लगता है कि resolv.confdocker Bridge नेटवर्क DNS के लिए इस तरह सेट अप सही है?
void.pointer
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.