server nama kedua di /etc/resolv.conf tidak diambil oleh wget

14

Resolv.conf saya terlihat seperti ini:

; generated by /sbin/dhclient-script
search mcdc
nameserver 10.0.4.48
nameserver 8.8.8.8

jika saya lakukan nslookup www.google.comitu berhasil

nslookup www.google.com
;; Got SERVFAIL reply from 10.0.4.48, trying next server
Server:     8.8.8.8
Address:    8.8.8.8#53

Non-authoritative answer:
www.google.com  canonical name = www.l.google.com.

tetapi ketika saya meringkuk www.google.com, itu tidak dapat menyelesaikan host.

Saya mencoba menjalankan curl di bawah strace, dan menemukan curl hanya menggunakan nameserver pertama di resolv.conf, bukan yang kedua. Jika saya mengganti dua baris server nama, www.google.com mengatasinya, tetapi nama DNS internal tidak, jadi itu bukan solusi yang baik.

Bagaimana saya bisa memperbaiki resolv.conf untuk menggunakan kedua server nama?

benhsu
sumber

Jawaban:

24

Perilaku default untuk resolv.conf dan resolver adalah mencoba server dalam urutan yang tercantum. Penyelesai hanya akan mencoba server nama berikutnya jika server nama pertama kali habis. The resolv.conf manualnya mengatakan:

nameserver Name server IP address

Alamat Internet (dalam notasi titik) dari server nama yang harus dicari oleh resolver. Hingga MAXNS (saat ini 3, lihat) server nama mungkin terdaftar, satu per kata kunci. Jika ada beberapa server, pustaka resolver menanyakannya dalam urutan yang tercantum.

Dan:

(Algoritma yang digunakan adalah untuk mencoba server nama, dan jika kueri habis waktu, coba yang berikutnya, sampai keluar dari server nama, kemudian ulangi coba semua server nama sampai jumlah percobaan ulang yang dilakukan.)

Lihat juga halaman manual resolver (5) untuk informasi lebih lanjut.

Anda bisa mengubah perilaku resolver menggunakan rotate, yang akan meminta server Names dalam urutan round-robin:

rotate set RES_ROTATE di _res.options, yang menyebabkan pemilihan nameserver round robin dari antara yang terdaftar. Ini memiliki efek menyebarkan beban kueri di antara semua server yang terdaftar, daripada meminta semua klien mencoba server yang terdaftar pertama kali setiap kali.

Namun, nslookup akan menggunakan server nama kedua jika menerima SERVFAILdari server nama pertama. Dari halaman nslookup :

[tidak] gagal Coba server nama berikutnya jika server nama merespons dengan SERVFAIL atau rujukan (nofail) atau mengakhiri kueri (gagal) pada respons semacam itu.

(Default = nofail)

Stefan Lasiewski
sumber
2

ya Anda bisa menggunakan pengaturan "rotate" dan batas waktu untuk meningkatkan pencarian DNS, di bawah ini adalah contohnya,

Ex:

[root@centos-xxxxxx ~]# cat /etc/resolv.conf
options rotate
options timeout:1
search xyz.abc.local
nameserver 192.168.56.3
nameserver 10.0.2.4
Harry
sumber
1

Apakah 10.0.4.48 server dns rekursif alias resolver?

Atau hanya server otoritatif untuk zona internal Anda?

Anda harus mengatur resolver internal yang mungkin juga memegang data otoritatif Anda.

Michuelnik
sumber
0

Jadi untuk membuatnya berfungsi seperti yang diharapkan, instal dnsmasq atau repeater DNS ringan lainnya (atau server DNS lengkap). Lihat Perbandingan perangkat lunak server DNS .

Untuk konfigurasi dnsmasq semudah:

server=10.0.4.48
server=8.8.8.8

Anda juga dapat menentukan domain mana yang beberapa DNS harus digunakan. Misalnya:

server=/mcdc/10.0.4.48
server=8.8.8.8

Ini akan membuat dnsmasq mencari *.mcdcdi 10.0.4.48server DNS dan yang lainnya di 8.8.8.8.

Di dalamnya /etc/resolv.confAnda hanya menggunakan DNS lokal Anda:

nameserver 127.0.0.1

Untuk detail lebih lanjut tentang pengaturan dnsmasq lihat jawaban saya di sini: /unix/55090/change-default-dns-on-openvpn-connect/545591#545591 .

Nux
sumber
-3

Jika Anda bisa, saya akan mengkonfigurasinya dengan cara ini.

search mcdc
nameserver 127.0.0.1
nameserver 8.8.8.8

Blake
sumber
6
Bagian mana dari pertanyaan yang menunjukkan mereka menjalankan server DNS pada mesin mereka, atau mau?
Jay
1
Blake: Perhatikan bahwa 127.0.0.1 biasanya hanya digunakan untuk sistem yang memiliki daemon caching server nama pada host lokal. Lihat tldp.org/HOWTO/DNS-HOWTO-3.html
Stefan Lasiewski