Ubuntu 18.04 .local domain dns araması çalışmıyor


19

Ubuntu 18.04 ile Raspberry Pi 3 kullanıyorum. Şirketimde bir DNS sunucumuz ve ".local" içeren birkaç alan var. Teknik olarak bunun doğru olmadığını ve bunun yerine ".lan" olması gerektiğini biliyorum, çünkü .local çok noktaya yayın dns için ayrılmıştır. Ama bu böyledir ve kolayca değiştirilemez. Windows makinemde bu alan adlarına ping gönderebilir ve göz atabilirim. Benim Ubuntu üzerinde ancak yapamam.

IP'leri kullanamıyorum çünkü bazı etki alanları aynı makinede ve IIS web sunucusu nereye gittiğini hallediyor.

Aradım ve oldukça sık ortaya çıkıyor:

Ancak /etc/nsswitch.conf dosyasını değiştirmek benim için hile yapmaz. denedim

  • hosts: dosyalar mdns4_minimal [NOTFOUND = return] dns myhostname # varsayılan
  • hosts: dosyalar dns
  • hosts: dosyalar mdns4_minimal [NOTFOUND = devam] dns myhostname
  • hosts: dosyalar mdns4 [NOTFOUND = return] dns myhostname
  • hosts: dosyalar mdns4 [NOTFOUND = devam] dns myhostname
  • hosts: files dns mdsn4_minimal myhostname
  • ana bilgisayarlar: dns
  • birkaç tane daha

Hiçbiri işe yaramadı. Bir değişiklikten sonra da yeniden başlatmayı denedim. Avahi'ye /etc/avahi/avahi-daemon.conf etki alanı-adı = alocal, hizmetin yeniden başlamasından sonra çalışmadığını, yeniden başlattıktan sonra çalışmadığını söylemeye çalıştım. Bu çalışmadan sonra avahi-daemon servisini tamamen devre dışı bırakmaya çalıştım.

sudo systemctl disable avahi-daemon

Yeniden başlattıktan sonra, /etc/nsswitch.conf dosyasında birkaç etki yapmadan tekrar etmeyi denedim.

mevcut ayarları ile ana bilgisayarlarda (dosyalar dns) bu yanıtı alıyorum:

dig login.name.local # not the actual name

; <<>> Dig 9.11.3-1ubuntu1.1-Ubuntu <<>> login.name.local
;; global options: +cmd
;; Got answer:
;; WARNING .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33538
;; flags: qr rd ra; QUERY: 1, ANSWER:0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;login.name.local. 0     IN     A

;; Query time: 2msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Thu Aug 23 10:51:50 CEST 2018
;; MSG SIZE  rcvd: 56

Ancak ben doğrudan sunucu sorgulamak için kazmak talimat doğru cevabı almak:

dig @dnsIP login.name.local
; <<>> Dig 9.11.3-1ubuntu1.1-Ubuntu <<>> login.name.local
; (1 server found)
;; global options: +cmd
;; Got answer:
;; WARNING .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57866
;; flags: qr aa rd ra; QUERY: 1, ANSWER:1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;login.name.local. 0     IN     A

;; ANSWER SECTION:
login.name.local. 3600 IN    A        serverIP

;; Query time: 2msec
;; SERVER: dnsIP#53(dnsIP)
;; WHEN: Thu Aug 23 10:51:50 CEST 2018
;; MSG SIZE  rcvd: 56

Ubuntu'nun bu sürümü ağ yöneticisi ile netplan kullanıyor. Doğru DNS IP'si kesinlikle listede. (aslında birincil DNS'dir.) Ayrıca dnsIp, serverIP ile aynıdır, ancak bu bir sorun olmamalıdır.

Tarayıcı üzerinden ping veya bağlantı ve tabii ki çalışmıyor. Hiçbiri dns sorgusunu kullanmaz.

Ne yapacağımı bilemiyorum. Elbette farklı bir alan adına geçemeyiz. Sunucuadı / etc / hosts içine koydum ama bu sadece geçici bir çözüm.


jeremfg'nin önerdiği gibi resolv.conf'u değiştirmek, kuyruğumu birkaç saat boyunca kovaladıktan sonra benim için çalıştı. Tnx.
user3529828

Yanıtlar:


15

Linux Mint 19'da (Tara) çok benzer bir sorunla (tam olarak aynı değilse de) karşılaştım. 3 farklı bilgiyi birleştirerek çözmeyi başardım. Sistemd ile çözülen son değişikliklerle ilgili gibi görünüyor.

İlk olarak, evet /etc/nsswitch.conf dosyasını yaptığınız ve beklediğiniz gibi yapılandırmanız gerekiyordu . Dns mdns'den önce geldiği sürece iyi olmalısın. Ben basitçe sona erdi:

hosts:          files dns myhostname

ref: /unix//a/457172/271210

Mint'in bu sürümüne geçmeden önce, yapmam gereken tek şey bu. Şimdi de çalışmasını sağlamak için aşağıdaki iki değişikliği yaptım ...


Bundan sonra arama alanımı sistemd çözümlemesi istediğim gibi çalışacak şekilde yapılandırdım. Bu nedenle , [çözüm] bölümünün altındaki Domains ayarı olan /etc/systemd/resolved.conf dosyasını düzenledim . Benim durumumda şöyle görünüyordu:

[Resolve]
#DNS=
#FallbackDNS=
Domains=trilliant.local
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#Cache=yes
#DNSStubListener=yes

ref: /ubuntu//a/1031271/872881

Ayrıca avahi yapılandırmasını başka bir şeye değiştirdim (doğru hatırlıyorsam "mdns", ama önemli değil). Ancak benim anlayışımdan bu gerekli olmamalı. Sadece bütünlük için ekliyoruz.


Ama aşağıdakileri arayana kadar hiçbiri işe yaramadı:

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

ref: /ubuntu//a/938703/872881

Bunu aradıktan sonra, her şey mükemmel ve beklendiği gibi çalışmaya başladı!

Bu nedenle, /etc/systemd/resolved.conf dosyasını gerçekten değiştirmem gerekmedi, ancak bu değişikliği korudum, çünkü bu mantıklıydı ve DNS çözümlemesinin çalışması için yalnızca tam bir FQDN olmadan bir makinenin adını yazmama izin veriyor .


Son satırı en başa koyabilirdiniz ve sanırım bunu yaparak daha fazla oy alırsınız.
HongboZhu

@HongboZhu Yerel etki alanlarının çalışması için gereken tek değişiklik olduğunu bilseydim isterim. Çözücü yapılandırmasında dns'i mdns yerine tercih etmeniz gerektiğine eminim. Yorumunuzun ortadaki alan adı yapılandırmasıyla ilgili olduğunu varsayıyorum? Eğer öyleyse, evet, bunu isteğe bağlı bir değişiklik olarak sonuna koyabilirim. Ancak diğer iki parça IMHO'ya ihtiyaç duyuyor.
jeremfg

1
Yeni 18.04.2 kurulumumda, nsswitch.conf dosyasındaki "hosts" sırasını zaten değiştirin.
Tomofumi

17

Kabul edilen cevap sorunumu çözmedi. Avahi ile hiçbir ilgisi yoktu - Avahi servisi yüklü değildi. Sistemimi DHCP'den IP VE DNS sunucu ayarlarını almaya ayarladım. Ancak, dhcp tarafından sağlanan DNS, .local kullanan sorgular için denetlenmiyordu

Asıl sorun, Ubuntu 18.4'ün, resolv.conf sym'sinin ad çözümlemesi için localhost'a işaret eden bir saplama dosyasına bağlı olmasıdır. Localhost dns ad çözümlemesi, sistemin sağlanan DNS sunucusunda .local adlarını denetlemeyi reddettiğini ve bu adların geçersiz olduğuna inanarak (yanlış) anlamına gelir. Bu, /etc/resolv.conf dosyasının varsayılan kurulumudur:

ls -la /etc/resolv.conf
lrwxrwxrwx 1 root root 39 Jan 22 13:26 /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf

saplama dosyasının içeriği (yorumlar kaldırıldı):

 cat /run/systemd/resolve/stub-resolv.conf
 .. removed comments..  
nameserver 127.0.0.53
    search reddog.microsoft.com

'real' resol conf 'doğru' dns ayarına sahiptir (dhcp'den):

cat /run/systemd/resolve/resolv.conf

..removed comments..
nameserver 10.168.200.250 # This is my server that can resolve .local
nameserver 208.67.220.220 # these are optional, fallback dns servers
nameserver 208.67.222.222
# Too many DNS servers configured, the following entries may be ignored.
nameserver 8.8.8.8
search reddog.microsoft.com

Sistemin localhost yerine tercih ettiğiniz DNS çözümleyicisini kullanmasını sağlamak için, sembolik bağlantıyı /run/systemd/resolve/stub-resolv.conf yerine /run/systemd/resolve/resolv.conf şeklinde olacak şekilde değiştirirsiniz:

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

Bundan hemen sonra .local çözümü çalışmaya başladı. herhangi bir hizmeti yeniden başlatmanıza veya yeniden başlatmanıza gerek yoktur.


Avahi'yi kaldırdım ve ardından adımlarınızı takip ettim. Bu benim için yaptı. Teşekkürler bayım. (Ubuntu 18.04 Masaüstü'nü kullanma).
José L. Patiño

Teşekkür ederim. Benim için cevap buydu. Neden sadece kutudan çıkmıyor?
adampski

çözümünüz ile kabul edilen cevap arasındaki fark nedir? Her ikisi için de, cevabın ilk 2/3'ü atlanabilir - bu bile aynı :-)
HongboZhu

Şimdiye kadar gördüğüm tek yanıt, Ubuntu'nun (ve diğer linux'ların) önceki sürümlerindeki davranışı çoğaltır, yani DNS sunucularının listesi DHCP tarafından sağlanır ve adres çözünürlüğü hiçbir zaman yerel olarak önbelleğe alınmaz.
Slicedpan

3

Benim için Ubuntu 18.04 için çalışma yolu:

Düzenleme avahi conf:

sudo vim /etc/avahi/avahi-daemon.conf

ve .local dosyasını .alocal olarak değiştirin:

[server]
domain-name=.alocal

sonra resolved.conf dosyasını açın:

sudo vim /etc/systemd/resolved.conf

ve Alan Adlarını kaldırın ve düzenleyin:

[Resolve]
...
Domains=yourdomain.local
...

ve son olarak hizmetleri yeniden başlatın:

sudo service systemd-resolved restart
sudo service avahi-daemon restart

Benim durumumda ben sadece değiştirmek için gereken Domainsde /etc/systemd/resolved.conf(ve hizmetini yeniden başlatın).
tokosh

2
Bu benim için yapmadı. hala hiçbir şey
FalcoGer

Ubuntu'nun aynı sürümü. Openvpn kullanma. Bu çözüm ekibimdeki birçok makinede VPN ile iyi çalışıyor.
razvanone

2

Benim için işe yarayan, yerel DNS'yi ad sunucusu olarak eklemekti /etc/resolvconf/resolv.conf.d/head( burada açıklandığı gibi ).

  1. Resolvconf paketini yükleyin.

    sudo apt install resolvconf
    
  2. Düzen /etc/resolvconf/resolv.conf.d/headve şunları ekleyin:

    nameserver 8.8.4.4  
    nameserver 8.8.8.8  
    
  3. Resolvconf hizmetini yeniden başlatın.

    sudo service resolvconf restart
    

Düzeltme kalıcı olmalıdır.


Headv dosya, editvconf?
John Mee

@JohnMee headDosya, oluşturmak için kullanılan kaynaktır/run/resolvconf/resolv.conf . Ancak, bu dosyayı da düzenlemezdim.
Melebius

0

Durumum benzerdi ama biraz farklıydı: myserverWindows gibi sunucu isimlerini kullanıyoruz ama bu Ubuntu 16.04 üzerinde çalışmadı ve kullanmak zorunda kaldım myserver.mycompany.local. 18.04'e yükselttikten sonra şu davranışı aldım:

$ ping myserver.mycompany.local
ping: myserver.mycompany.local: Name or service not known

$ ping myserver
PING myserver.mycompany.local (192.168.x.y) 56(84) bytes of data.
64 bytes from myserver.mycompany.local (192.168.x.y): icmp_seq=1 ttl=62 time=3.05 ms
...

Ben sadece değiştirmek zorunda myserver.mycompany.localolan myserverbenim uygulamalarda.

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.