Systemd's 127.0.0.53'teki DNS bazı aramaları yok sayıyor


14

127.0.0.53'te sevilen systemd'nin DNS'si, yerel makineleri adıyla sorguladığım durumlar dışında çalışıyor gibi görünüyor. Ama ben onları sorgulamak ve özellikle yerel DNS sunucusunu (yönlendiricim) belirtirseniz, doğru cevabı alırım. Ancak yapılandırma dosyası, yönlendiriciyi arama adresi olarak da kullandığını söylüyor. Düşüncesi olan var mı?

Dell dizüstü bilgisayarımda Ubuntu 18.04 kullanıyorum.

Yanlış Sonuçlar:

$ nslookup web1

Server:     127.0.0.53
Address:    127.0.0.53#53

** server can't find web1: SERVFAIL

Ayrıca Başarısız

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

Doğru Sonuçlar:

$ nslookup web1 192.168.1.1

Server:     192.168.1.1
Address:    192.168.1.1#53

Name:   web1
Address: 192.168.1.107

Yapılandırma Bilgisi systemd-resol

$ 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

Yapılandırma Bilgisi NetworkManager

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

[ifupdown]
managed=false

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

Peki doğru cevabı döndürmek için nasıl nslookup edinebilirim? Bağlantı 3 doğru bilgi (wifi bağlantım) gibi görünüyor ve yönlendiricideki DNS'im doğru cevabı döndürüyor, ancak yerel önbellek asla adresi aramaya çalışmıyor (ya da öyle görünüyor).



Yapılandırma dosyamda dns = dnsmasq yok. Bunu göstermek için sorumu güncelliyorum.
schworak

Hangi Ubuntu sürümünü kullanıyorsunuz ve yayınınızı IP yapılandırmasıyla da güncelleyebilir misiniz?

Dell dizüstü bilgisayarda Ubuntu 18.04 kullanıyorum.
schworak

plz deneyebilir misiniznslookup -i wlp3s0 web1
cmak.fr

Yanıtlar:


9

Kişisel resolv.conf dosyası yanlış yere işaret değildi - ../run/systemd/resolve/stub-resolv.conf edilmektedir varsayılan olarak noktaya gerektiği yerde.

Sorun, systemd-resolvednoktalı olmayan adları DNS'ye geçirmemesidir. Görünüşe göre bu "tasarlandığı gibi" çalışıyor. "Çözüldü, tek etiketli aramaların tek noktaya yayın DNS'sine sızmasına asla izin vermeyeceğini" belirten bu github sorununa bakın .

O github sayısında akıl ile kabul olsun ya da olmasın, orada olup bunu düzeltmek için bir yol. Ubuntu makinenizdeki varsayılan kurulumda herhangi bir değişiklik yapmanız bile gerekmez:

  1. İlk olarak, LAN'ınızın DNS'sinin bir alan adı olmalıdır.

    Dnsmasq kullanıyorsanız, /etc/dnsmasq.confDNS sunucunuza aşağıdakileri ekleyin :

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

    Etki alanını eklerseniz artık LAN ana bilgisayar adlarını çözümleyebilmeniz gerekir:

    nslookup web1.your-domain
    
  2. İkinci olarak, DNS sunucunuzdan farklıysa LAN etki alanınızın adının DHCP sunucunuzda da ayarlandığından emin olun. DHCP sunucumda (yönlendiricim), bu ayara "Etki Alanı Adı" denir.

    Daha sonra Ubuntu kutunuzda DHCP kiranızı yenilediyseniz, bir arama yönergesinin göründüğünü görmelisiniz /run/systemd/resolve/stub-resolv.conf:

    nameserver 127.0.0.53
    search your-domain
    

Şimdi aramak web1onu genişletecek ve bu da web1.your-domainDNS kullanarak çözülecektir.

$ 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

Kullanmak eğer Not digyerine nslookup, digonun kullanmak - varsayılan olarak arama yolunu kullanmaz +searcho etkinleştirme seçeneğini.


Yeniden başlatmadan önce web1.alan_adim.com.tr iyi görünüyordu. Ama elbette sadece web1'e bakmak işe yaramadı. Bu yüzden yeniden başlattım ve benim hayatım için nerede Comcast etki alanı almak hakkında hiçbir fikrim yok ama şimdi web1 ararsanız doğru IP ile cevap ama benim etki alanı yerine comcast etki alanı gösterir. Bu yüzden çok endişeli değilim ama ne halt giderir ????
schworak

@schworak Tuhaf! DHCP sunucunuz ayrıca Comcast modeminiz mi? Eğer bu etki alanı gösterilmesini görüyor musunuz /etc/resolv.confya çıkışında veya nmcli -g allveya systemd-resolve --status? Belki DHCP kiranızda neler olduğuna bakmayı deneyin ?
Laurence Gonsalves

Comcast modem değildir. DDWRT çalışan bir SysLink yönlendiricim var. Comcast ayarları tamamen değiştirilir. Comcast adı, önyükleme sırasında otomatik olarak oluşturulan resolv.conf dosyasında görünür. Bu konuda çok endişeli değilim ama garip.
schworak

@LaurenceGonsalves Github sorunu bağlantısı için bir ton teşekkürler. Soruna geçici çözümler bulmuştum ama bu aslında kök sorununu anlamama yardımcı oldu.
Gregory Arenius

19

Benim için işe yarayan düzeltmeyi buldum.

resolv.conf dosyam yanlış yere işaret ediyordu. Dizüstü bilgisayarımda (bu sorunu ilk fark ettiğim makine) ve Ubuntu 18.04 Server'ın yeni yüklemesinde olduğu gibi bu Ubuntu'da bir hata gibi görünüyor.

Varsayılan

$ ls -l /etc/resolv.conf

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

Bunu sildim ve doğru dosyayı gösterdim. Yeniden başlattıktan sonra bu sorunumu çözdü. Hatta dizüstü bilgisayarımdaki ağları değiştirebildim ve DNS doğru bir şekilde değişti. Tabii ki harici ağlarda hiçbir yerel makinemi çözemiyorum ama bu bekleniyor. Yerel ağıma geri döner dönmez, yönlendiricim DNS olduğu için tüm yerel makineler doğru şekilde çözülür.

Çözüm

$ 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

Bundan sonra, her şey beklediğim gibi çalıştı ve 127.0.0.53 artık kullanılmıyor.

Doğru Sonuçlar

$ 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

Lütfen bu hatayı kullanarak bildirin ubuntu-bug resolvconf.
Chai T. Rex

Göndermeye başladığımda resolvconf (kurulu değil) diyor. Resolvconf ve systemd-resolut aynı şey midir?
schworak

systemd-resolvesystemdpaket tarafından sağlanır , lütfen ubuntu-bug systemdbunun yerine deneyin .
Chai T. Rex

Teşekkürler! Bu hata raporlama özelliğini daha önce hiç kullanmamıştım. Çok hoş.
schworak

1
Vay canına, bu çılgınca. Teşekkür ederim. Bu hata giderildi mi? Docker'a özgü bir hata mı? resolv.confDocker köprü ağı DNS için bu şekilde ayarlanmış olduğunu düşünüyorum değil mi?
void.pointer
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.