Haruskah / etc / hosts memuat entri seperti '127.0.0.1 localhost myhost.example.org myhost'?

16

Ketika melihat berbagai sistem Linux dan FreeBSD, saya perhatikan bahwa pada beberapa sistem /etc/hostsberisi entri untuk nama host publik dari tuan rumah, tetapi tidak pada sistem lainnya.

Apa praktik terbaik di sini? Apakah file / etc / hosts saya berisi entri untuk host FQDN (mis. Myhost.example.org) dan untuk nama host pendek (mis. Myhost)? Haruskah catatan untuk FQDN menunjuk ke localhost atau haruskah menunjuk ke IP eksternal kotak?

Sebagai contoh, konfigurasi default pada banyak kotak RHEL / EL tidak memasukkan nama host publik ke /etc/hosts:

myhost # cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
myhost #

Varian lainnya adalah bahwa hostname pendek dan FQDN juga menunjuk ke 127.0.0.1. Saya telah diberitahu bahwa ini adalah praktik yang lebih tua yang disukai saat ini, tetapi banyak admin masih melakukan ini.

myhost # cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 myhost myhost.example.org
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
myhost #    

Varian ketiga adalah bahwa host FQDN dan nama host pendek diberikan alamat IP eksternal dari host. Varian ketiga ini tampaknya optimal bagi saya karena mengurangi pencarian terhadap server DNS.

myhost # cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
74.125.239.xxx myhost myhost.example.org
myhost #  

Apa praktik terbaik di sini?

Stefan Lasiewski
sumber
2
itu bermuara pada apa alias program menggunakan (untuk mantan Mysql suka / perlu memiliki alias 'localhost'), 127.0.0.1 localhost myhostharus cukup dan 74.125.239.xxx myhost myhost.example.orgseperti yang Anda katakan menyimpan DNS mencari. "Praktik terbaik" kecuali ada standar itu adalah "apa yang digunakan orang berpengetahuan".
LinuxDevOps

Jawaban:

12

Apakah Anda bersedia menerima DNS yang berfungsi sebagai titik kegagalan di lingkungan Anda atau tidak. Beberapa layanan / aplikasi akan gagal dalam konfigurasi tertentu jika sistem tidak dapat menyelesaikan nama mesin lokal.

Jika Anda memiliki layanan yang benar-benar kritis yang harus berjalan dalam semua situasi, bukan hal yang aneh untuk menambahkan entri dalam file host sehingga layanan dapat terus beroperasi dalam situasi di mana resolusi DNS gagal.

Jika Anda dapat menerima DNS Anda sebagai titik kegagalan, atau jika layanan Anda tidak gagal dalam hal resolusi yang rusak, entri konfigurasi dalam file host dapat dihindari.

Saya sangat menyarankan Anda membuat server DNS Anda sekokoh mungkin, dan jika Anda harus mengkonfigurasi file host Anda, gunakan sistem manajemen konfigurasi untuk melakukannya. Anda harus benar-benar menghindari secara manual menghindari menyentuh file host.

Sakit kepala
sumber
13
Hanya untuk menambah ini, dalam banyak kasus /etc/hostsakan menggantikan DNS, tidak digunakan sebagai mundur jika terjadi kegagalan DNS. Ini adalah perbedaan yang saya pikir harus dibuat. (Tidak mencoba melakukan nit-pick.) Semuanya tergantung pada urutan yang ditentukan dalam /etc/nsswitch.conf.
Aaron Copley
4
Masalah lainnya adalah bahwa permintaan server DNS jauh lebih lambat daripada berkonsultasi /etc/hostsfile. Banyak aplikasi menanyakan nama host mereka berulang kali, beberapa kali per detik. Menambahkan nama host ke /etc/hostsakan mengurangi latensi dan harus mempercepat aplikasi.
Stefan Lasiewski