Saya menggunakan Raspberry Pi 3 dengan Ubuntu 18.04. Di perusahaan saya, kami memiliki server DNS dan beberapa domain dengan ".local". Saya tahu secara teknis ini tidak benar dan seharusnya ".lan" sebagai gantinya, karena .local dicadangkan untuk multicast dns. Tapi begitulah adanya dan tidak mudah diubah. Jadi pada mesin windows saya, saya dapat melakukan ping dan browse ke nama-nama domain tersebut tanpa kesulitan. Namun pada Ubuntu saya tidak bisa.
Saya tidak dapat menggunakan IP karena beberapa domain berada di mesin yang sama dan server web IIS memilah-milah apa yang terjadi di mana.
Saya telah mencari dan muncul cukup sering:
- https://smallbusiness.chron.com/resolving-local-ubuntu-38861.html
- Mengapa tidak ada server lokal saya yang menyelesaikan?
- server ubuntu tidak menyelesaikan nama host LAN
Namun mengubah /etc/nsswitch.conf tidak membantu saya. Saya mencoba
- hosts: file mdns4_minimal [NOTFOUND = return] dns myhostname # default
- host: file dns
- host: file mdns4_minimal [NOTFOUND = lanjutkan] dns myhostname
- hosts: files mdns4 [NOTFOUND = return] dns myhostname
- host: file mdns4 [NOTFOUND = lanjutkan] dns myhostname
- host: file dns mdsn4_minimal myhostname
- host: dns
- beberapa lainnya
Tidak ada yang berhasil. Saya mencoba me-reboot setelah perubahan juga. Saya mencoba memberi tahu avahi bahwa nama domain = alocal di /etc/avahi/avahi-daemon.conf, tidak berfungsi setelah restart layanan, tidak berfungsi setelah reboot. Setelah ini tidak berfungsi, saya mencoba menonaktifkan layanan avahi-daemon sepenuhnya.
sudo systemctl disable avahi-daemon
Setelah reboot saya mencoba beberapa permutasi di /etc/nsswitch.conf lagi, tanpa efek.
dengan pengaturan saya saat ini di host (file dns) saya mendapatkan respons ini:
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
Namun ketika saya menginstruksikan menggali untuk meminta server secara langsung, saya mendapatkan jawaban yang benar:
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
Versi Ubuntu ini menggunakan netplan dengan manajer jaringan. IP DNS yang benar pasti ada dalam daftar. (sebenarnya ini DNS primer.) Juga dnsIp sama dengan serverIP, tapi itu seharusnya tidak menjadi masalah.
Mem-ping atau menghubungkan melalui peramban dan hal semacam itu tentu saja tidak berhasil. Tidak ada yang menggunakan kueri dns.
Saya bingung apa yang harus dilakukan. Tentu saja kami tidak dapat beralih ke nama domain yang berbeda. Saya memasukkan nama server ke / etc / hosts tapi itu hanya solusi sementara.
sumber
Jawaban:
Saya menghadapi masalah yang sangat mirip (jika tidak persis sama) di Linux Mint 19 (Tara). Saya sudah berhasil menyelesaikannya dengan menggabungkan 3 informasi berbeda. Tampaknya semua terkait dengan perubahan terbaru dengan systemd-diselesaikan.
Pertama, ya saya harus mengkonfigurasi /etc/nsswitch.conf seperti yang Anda lakukan dan harapkan. Selama dns datang sebelum mdns Anda harus baik. Saya mengakhiri dengan sederhana:
ref: /unix//a/457172/271210
Sebelum meningkatkan ke versi Mint ini, ini adalah satu-satunya hal yang perlu saya lakukan. Sekarang saya juga akhirnya membuat dua perubahan di bawah ini untuk membuatnya berfungsi ...
Setelah itu saya mengkonfigurasi domain pencarian saya sehingga systemd-resolved akan berfungsi seperti yang saya inginkan. Jadi saya telah mengedit file /etc/systemd/resolved.conf , pengaturan Domain di bagian [resol] . Dalam kasus saya itu akhirnya tampak seperti:
ref: /ubuntu//a/1031271/872881
Saya juga mengubah konfigurasi avahi menjadi sesuatu yang lain ("mdns" jika saya ingat dengan benar, tetapi tidak masalah). Seharusnya tidak diperlukan dari pemahaman saya. Hanya menambahkan untuk kelengkapan.
Tapi tidak ada yang berfungsi sampai saya menelepon yang berikut:
ref: /ubuntu//a/938703/872881
Setelah memanggil ini, semuanya mulai bekerja dengan sempurna dan seperti yang diharapkan!
Jadi mungkin saya tidak benar-benar perlu mengubah file /etc/systemd/resolved.conf tapi saya menyimpan perubahan ini karena itu masuk akal dan memungkinkan saya untuk hanya mengetik nama mesin, tanpa FQDN lengkap, agar resolusi DNS berfungsi. .
sumber
Jawaban yang diterima tidak menyelesaikan masalah saya. Itu tidak ada hubungannya dengan avahi - saya tidak menginstal layanan avahi. Saya mengatur sistem saya untuk mendapatkan ip DAN pengaturan server dns dari DHCP. Namun, DNS yang disediakan dhcp tidak diperiksa untuk pertanyaan menggunakan .local
Masalah sebenarnya adalah bahwa Ubuntu 18.4 memiliki resolv.conf sym-linked ke file rintisan yang menunjuk ke localhost untuk resolusi nama. Resolusi nama localhost dns berarti bahwa sistem menolak untuk memeriksa server DNS yang disediakan untuk nama lokal, percaya (salah) bahwa nama-nama tersebut tidak valid. Ini adalah pengaturan default dari /etc/resolv.conf:
isi dari file rintisan adalah (komentar dihapus):
conf resolus 'nyata' memiliki pengaturan dns 'benar' (dari dhcp):
Untuk membuat sistem menggunakan resolver DNS pilihan Anda, bukan localhost, Anda mengubah symlink untuk menunjuk ke /run/systemd/resolve/resolv.conf alih-alih /run/systemd/resolve/stub-resolv.conf:
Segera setelah ini, resolusi .local mulai berfungsi. tidak perlu reboot atau memulai kembali layanan apa pun.
sumber
Bagi saya cara kerja untuk Ubuntu 18.04 adalah:
Edit avahi conf:
dan ubah .local ke .alocal:
lalu, buka resolved.conf:
dan batalkan komentar dan edit Domain:
dan akhirnya restart layanan:
sumber
Domains
di/etc/systemd/resolved.conf
(dan restart layanan).Apa yang berhasil bagi saya adalah menambahkan DNS lokal sebagai server nama
/etc/resolvconf/resolv.conf.d/head
(seperti dijelaskan di sini ).Instal paket resolvconf.
Edit
/etc/resolvconf/resolv.conf.d/head
dan tambahkan berikut ini:Mulai ulang layanan resolvconf.
Perbaikannya harus permanen.
sumber
head
File adalah sumber yang digunakan untuk menghasilkan/run/resolvconf/resolv.conf
. Namun, saya tidak akan mengedit file ini juga.Situasi saya mirip tetapi agak berbeda: Kami menggunakan nama server seperti
myserver
pada Windows tetapi ini tidak berfungsi pada Ubuntu 16.04 dan saya harus menggunakannyamyserver.mycompany.local
. Setelah memutakhirkan ke 18,04, saya mendapatkan perilaku berikut:Saya hanya harus mengganti
myserver.mycompany.local
denganmyserver
dalam aplikasi saya.sumber