16.10 DNS'yi çözemedi


34

16.04 kurulumumu 16.10'a yükselttikten sonra DNS ile ilgili sorun yaşıyorum.

İlk önce Ethernet'e bağlıyken WiFi'ye bağlandığımda birkaç kez sorun yaşadım. Şimdi de WiFi üzerinde çalışmak gibi görünüyor. Neden olduğundan emin değilim ve sorunla ilgili herhangi bir şekilde ise şu an karşı karşıyayım:

Cisco Anyconnect VPN ile bir VPN sunucusuna bağlanırken , '/etc/resolv.conf' içine bir satır ekler . Ubuntu'nun şu anda sistem çözümlemesi kullandığını ve man sayfasının /etc/resolv.conf dosyasını kullanmanın üç farklı modu olduğunu söylüyor. /Etc/resolv.conf, bir link değildir ve 127.0.0.53'ü bir DNS sunucusu olarak listelemez, böylece sistemd çözümlemeli "DNS yapılandırma verileri için okumalısınız" dese de. Ancak, bunu umursamıyor.

kazmak

Garip olan şey (benim için), dig host.customer.tldistenen ana bilgisayarın ipini gösteren CEVAP BÖLÜMÜ ile güzel bir cevap döndürmesi ve vetn istemcisi tarafından SUNUCU olarak /etc/resolv.conf'a eklenen dns sunucusuna atıfta bulunması. Vpn bağlantısı devre dışı bırakıldığında cevap alamıyorum. Yani kazmak /etc/resolv.conf okur .

ping

Diğer tarafta bulunan tarayıcı /etc/resolv.conf dosyasına ulaşamıyor ve ana bilgisayar adını çözemiyor. Bu arada, ping / curl da değil.

nmcli

İlgili bir yazı buldum ve yayınlanmayı denedim

nmcli device show <interfacename> | grep IP4.DNS

ancak cscotun0 cihazı için dns listelenmiyor. (Yine de 16.04'te yok.) Ayrıca, nmcli dhcp sunucumu (yönlendiricim) eth / wlan bağlantılarım için IP4.DNS ana bilgisayarı olarak listeler. dig @192.168.0.1 xxxHerhangi bir kamu malı için kullanmak gayet iyi çalışıyor.

yapılandırma

/Run/systemd/resolve/resolv.conf’da listelenen bazı diğer DNS sunucuları var:

nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 2001:4860:4860::8888
# Too many DNS servers configured, the following entries may be ignored.
nameserver 2001:4860:4860::8844

Bunlar DHCP sunucum tarafından sunulmuyor. /etc/systemd/resolved.conf dosyası, bölüm başlığı dışında yalnızca yorumlanmış satırları içerir:

[Resolve]
#DNS=
#FallbackDNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844

Man sayfası resolved.conf söylüyor

DNS = Sistem DNS sunucusu olarak kullanılacak IPv4 ve IPv6 adreslerinin boşluklarla ayrılmış listesi. ... Uyumluluk nedeniyle, bu ayar belirtilmezse, /etc/resolv.conf içinde listelenen DNS sunucuları yerine, eğer bu dosya varsa ve içinde herhangi bir sunucu yapılandırılmışsa kullanılır. Bu ayar varsayılan olarak boş listeye aittir.

FallbackDNS = Geri dönüş DNS sunucusu olarak kullanılacak IPv4 ve IPv6 adreslerinin boşlukla ayrılmış bir listesi. Systemd-networkd.service (8) 'den (8) alınan bağlantı başına DNS sunucuları, DNS = ile veya /etc/resolv.conf ile ayarlanan sunucularda olduğu gibi, bu ayardan önceliklidir. Bu ayar yalnızca başka bir DNS sunucusu bilgisi bilinmiyorsa kullanılır. Bu seçenek belirtilmezse, derlenmiş bir DNS sunucuları listesi kullanılır.

Geri dönüş, benim durumumda /run/systemd/resolve/resolv.conf içinde sona eriyor.

EDIT: Sorunun ne olduğundan emin değildim ve dürüst olmak gerekirse, bunun nasıl çalıştığını hala tam olarak bilmiyorum, ama en azından benim durumumdaki çözümünsystemd-resolved hizmeti devre dışı bırakmak olduğu ortaya çıktı . Hizmetin gerekli olduğunu, bunun tüm yerel uygulamalara DNS hizmeti sağlayan bileşen olduğunu düşündüm, ancak görünüşe göre bu işi yapan başka bir şey var.


VPN'i kullanmıyorsanız, DNS ile ilgili bir sorununuz mu var?
Mark Stosberg,


3
Sadece 16.10'da Anyconnect ile aynı sorunları yaşadığımı not etmek istedim. Birden çok kez VPN servisine bağlanmak geçici olarak çözülmüş gibi görünüyor, ancak bir noktada dns artık tekrar çalışmıyor.
jmartinez

2
16.04'te bulunmayan benzer DNS çözme sorunlarım var. Benim önerim (backup) /etc/resolv.conf; resolvconf paketini kaldırın; yeniden; ve neyin işe yarayıp yaramadığını görmek için VPN olan ve olmayan kazıyın, sistem çözümleyin
philcolbourn,

1
Bu hata raporunu karşılaştırın: bugs.launchpad.net/ubuntu/+source/systemd/+bug/1624317
jdthood

Yanıtlar:


15

Benzer bir problem yaşadım, örneğin ekstra bir USB wifi dongle'ı eklerken. İlk önce ağ yöneticisinde dnsmasq'ı yukarıda açıklandığı şekilde devre dışı bıraktım ve dnsmasq'ı durdurdum (service dnsmasq stop)

VPN bağlantım sırasında sorun çözüldüğünde, yönlendirme tablosunun biraz farklı göründüğünü fark ettim (rota komutunun çıktısı). Ağ Geçidi adı çalışmadığı durumda DD-WRT ve çalıştığı zaman sadece 'ağ geçidi' olur. Bunun çıktısı değişmedi:

nmcli device show wlp1s0 | grep IP4.DNS

Yönelticimin IP adresini göstermeye devam etti. Bir süre çalışmasını sağlamak için bir geçici çözüm systemd-resolvd yeniden başlatmaktır:

sudo service systemd-resolved restart

Dnsmasq denklemin dışında olduğu için, sorunun nedeni sistemd çözümlemesi ya da yönlendirme tablosunu değiştiren herhangi bir şeydir.

Demek gördüğüm tek fark bu.

ubuntu@ubuntu-Lenovo-Yoga-2-11:~$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    601    0        0 

hangi çalışır. Ve bu işe yaramazsa, bu:

ubuntu@ubuntu-Lenovo-Yoga-2-11:~$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         DD-WRT          0.0.0.0         UG    601    0        0 wlp1s0

Ve VPN hattında aynı isim farkı:

vpn-dns.name gateway         255.255.255.255 UGH   0      0        0 wlp1s0

Yönlendirme masasını neyin etkileyebileceğini kim bilebilir? Bunu tespit edebilmemiz harika olurdu, böylelikle bir hata raporu açılabilir. Tüm bu hataları takip etmekten ciddi bir şekilde hastalandım ve yoruldum, ancak onları düzeltmek istiyorum, böylece gelecekteki kullanıcılar ve bizler mutlu olacağız :).

[güncelleme] Sistem kararının durdurulmasının durdurulması bu sorunu giderebilir ve diğer şeyleri olumsuz yönde etkilemeyebilir. Bunu deneyebilir ve bir şeyleri kırarsa haber ver. Ben ayrıldığında systemd-resolvd hata ayıklama çalışırken çalıştırırken gördüm:

Removing scope on link wlp1s0, protocol llmnr, family AF_INET
Removing scope on link wlp1s0, protocol llmnr, family AF_INET6
Removing scope on link *, protocol dns, family *

Devre dışı bırakmak için:

sudo systemctl disable systemd-resolved.service

Ubuntu raporunu önerileriyle güncelledim. [/ update] Ekle: Not: hata raporu: https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1624317 , bazı sorunlar için 17.04 için bir düzeltme ekine sahip. Lütfen hata raporunu kontrol edin ve mümkünse yamayı test edin. Teşekkür ederim!

[güncelleştirme]

Lütfen yukarıda belirtilen hata raporunu kontrol edin, sorun 17.10 için çözülmüş görünüyor ve basit bir komutla DNS sızıntısı da devre dışı bırakılabilir.

[/güncelleştirme]


Ayrıntılı raporunuz için teşekkürler! Yönlendirme tablosunda sizden farklı değişiklikler görüyorum - VPN'im dinamik olarak kullanıldığı gibi birçok rota ekliyor gibi görünüyor, sanırım. Ancak, systemd-olayı devre dışı bırakmak benim sorunum için de çok işe yaradı!
aweibell

Sonunda yönlendirme tablosundaki adın önemli olmadığını düşünüyorum, DNS'nin bir şekilde çözülmesini engelleyen sistemsel olarak çözüldü. Ayrıca, başlatılmasını engellemek için dnsmasq hizmetini devre dışı bırakmak zorunda kaldım, ancak hepsi şimdi çalışıyor. Birinin hepsini düzgün çalışması için gereken paketler arasındaki uygun bağımlılık kümesini düzelteceğini umalım. Başa çıkmak can sıkıcı bir böcek.
Vincent Gerris

bu sorunla tam bir gün boyunca mücadele ettiğime dikkat çekmek gerekirse, sistem ve çözülmüş servisin yeniden başlatılması benim için hiçbir şey yapmadı;
fd8s0

Sadece yinelemek için, 16.0'dan 17.04'e yükselttiğimden beri birkaç gündür ağ sorunları yaşadım. Buradaki çoğu cevabı denedim, çoğu zaman bir süre çalıştı ve sonra sorun tekrar ortaya çıktı, sonunda neyin işe yaradığı dd'nin kullanımı sudo systemctl disable systemd-resolved.service ve ayarlanması devre dışı bırakıldı. /etc/resolv.conf 'da 8.8.8.8' e kadar
Japheth Ongeri - inkalimeva

Bu basit hat benim için çözüldü: sudo servis sistemi ve çözüldü yeniden başlatma, teşekkürler!
Sergio Abreu

36

OpenVPN bağlantısı sırasındaki DNS davranışı ubuntuforum'larda bir öneri izlediğimde hemen gelişti:

  1. /etc/NetworkManager/NetworkManager.confKök haklarına sahip bir düzenleyicide açın .
  2. Okuyan #satırı silin (ya da bir karma ile yorum yapın )dns=dnsmasq
  3. NetworkManager’ı ile yeniden başlatın sudo service NetworkManager restart

Teşekkürler. Bunu şimdi denedim, ama işe yaramadı. Aslında, /etc/resolve.conf işaretini düz metin dosyasıyla değiştiren Cisco VPN istemcisini başlattığım durumlar dışında, DNS iyi çalışıyor.
aweibell

1
Bu düzeltme benim için çalıştı, OpenVPN ile ilgili DNS sorunları vardı. Bu değişiklikten sonra, /etc/resolve.conf benim değişti. Dnsmasq yüklü bile olmadığım için çok garip.
post

Bu NM ve openvpn ile ilgili sorunlar için işe yarayabilir, ancak en azından bağlantıları yavaşlatır. Burada tahmin edildiği gibi .
BairDev

3

Aynı konuya rastladım. Her nasılsa, bir uygulamayla DNSmasq kurmuş olmalıyım. Sadece dnsmasq'ı kaldırmak sorunu benim için çözdü.

sudo apt-get remove dnsmasq 

O zamandan beri, artık bağlantı kesilmiyor veya bazı siteler artık yüklenemiyor (gmail yüklerken bir sorun yaşadım, yani diğer siteler çalışsa da aniden gmail'e bağlanamadı).


Dnsmasq-base paketini kaldırmaya çalışırken , yetenek bana ağ yöneticisi ve ubuntu-fan tarafından gerek duyulduğunu ve çıkarılmasının çok fazla ek paketin kaldırılmasıyla
sonuçlanacağını söyler

Hangi dağıtım ve sürüm? Ubuntu 16.10'dayım ve onu kaldırma konusunda sorun yaşamadım. Aksi takdirde ben göndermedim :)
Nitai

Ayrıca Ubuntu 16.10’dayım! Garip. apt remove dnsmasq-base...The following packages will be REMOVED: account-plugin-ubuntuone checkbox-converged checkbox-gui dnsmasq-base indicator-network network-manager network-manager-gnome network-manager-openconnect network-manager-openconnect-gnome network-manager-openvpn network-manager-openvpn-gnome network-manager-pptp network-manager-pptp-gnome network-manager-vpnc pay-service plainbox-provider-checkbox plainbox-provider-resource-generic ubuntu-desktop ubuntu-fan ubuntu-push-client ....
aweibell

Burada 16.10 ile aynı. Diğer tüm paketleri de kaldırmak istiyor.
Dave Kincaid

Geçen gün bir bağlantı koptu. Her nasılsa bir uygulama tekrar dnsmasq yeniden yüklenmiş olmalıdır. Her durumda, bu sefer sadece systemd ile devre dışı bıraktım. Şimdiye kadar artık çalışmıyor ve ben de bağlantı kesilmiyor.
Nitai

1

Düzenle /etc/nsswitch.confve değiştir

hosts:          files mdns4_minimal [NOTFOUND=return] dns

için

hosts:          files dns mdns4_minimal [NOTFOUND=return]

Düzenle:

Bir süredir aynı problemleri yaşadım. Etki alanı adlarını vpn'den çözümleyebildim, ancak bunları ping'leyemedim ya da bükebildim ya da başka uygulamalarda kullanamadım. Yukarıda açıklanan değişiklik benim için çözdü.

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.