Sertakan nama domain atau tidak di / etc / hosts?

15

Saya mengatur cluster VMWare dari node CentOS. Apakah praktik terbaik untuk memasukkan nama domain setelah mesin? Apa potensi masalah meninggalkannya? Apakah domain mempersulit konfigurasi atau menyederhanakannya?

Misalnya, jika simpul saya di 192.168.1.93, saya harus mengubah /etc/hostsdari

127.0.0.1 localhost.localdomain localhost

untuk

127.0.0.1 localhost.cluster localhost
192.168.1.93 computernode1.cluster computenode1

atau

127.0.0.1 localhost
192.168.1.93 computenode1

atau

#127.0.0.1 localhost
192.168.1.93 computenode1

atau

192.168.1.93 localhost
192.168.1.93 computenode1
T. Webster
sumber

Jawaban:

24

Memasukkan nama domain /etc/hostsadalah opsional, dan Anda dapat menjalankan sistem tanpa efek buruk sama sekali.

Satu-satunya downside meninggalkannya adalah bahwa nama host yang memenuhi syarat sistem tidak akan muncul dengan benar. Sebagai contoh hostname -f,.

Cara deteksi nama host berkualifikasi lengkap bekerja:

  1. Pertama mendapat nama host, atau 'nama pendek'. Ini adalah output dari uname -natau hostname.
  2. Kemudian mendapat alamat IP untuk hostname itu dengan berkonsultasi /etc/hosts(atau apa pun yang Anda miliki /etc/resolv.conf, dan kembali ke sumber yang terakhir jika tidak ditemukan di /etc/hosts).
  3. Setelah memiliki IP itu kemudian melakukan pencarian terbalik dengan berkonsultasi lagi /etc/hosts.
  4. Setelah memiliki catatan /etc/hosts, entri pertama digunakan sebagai nama host yang sepenuhnya memenuhi syarat.

Singkatnya, jika Anda ingin nama host yang memenuhi syarat untuk bekerja, Anda harus melakukan salah satu dari ini:

127.0.0.1 fully.qualified.hostname hostname localhost.localdomain localhost

atau

127.0.0.1 localhost.localdomain localhost
1.2.3.4 fully.qualified.hostname hostname
Patrick
sumber
1
Saya tidak mempertimbangkan hal itu. Memiliki nama host yang benar-benar memenuhi syarat tidak berguna untuk PC desktop, dan dapat menjadi masalah untuk laptop (karena laptop kemungkinan akan dibawa dalam jaringan yang berbeda) tetapi berguna untuk server. Apache2, misalnya, mengeluh ketika tidak dapat menentukan FQDN-nya.
lgeorget
@ lgeorget Anda juga bisa menggunakan libnss-myhostnameyang menangani menyelesaikan FQDN Anda tetapi tidak perlu masuk/etc/hsots
Ulrich Dangel
Konfigurasi di atas dapat menyebabkan masalah, lihat diskusi ini tentang praktik Debian saat mengatur hostsfile, dan ini pada penggunaan (atau ketiadaan) dari localhost.localdomainentri.
Joó Ádám
1
sudojuga mengeluh jika nama host tidak ada di /etc/hosts:sudo: unable to resolve host <hostname>
x-yuri
3

Selama tuan rumah Anda setuju dengan nama domain Anda, menyebutkannya atau tidak di /etc/hoststidak akan mengubah apa pun. Praktik lain adalah menetapkannya sebagai domainparameter di /etc/resolv.conf. Tidak menentukan itu dapat menyederhanakan hidup Anda jika, suatu hari, administrator jaringan Anda mengubahnya. Menentukannya tidak mengubah apa pun, sejauh yang saya tahu.

Anda harus pergi 127.0.0.1 localhostatau 127.0.0.1 localhost localhost.localdomainmasuk /etc/hosts. Beberapa aplikasi dapat mulai memiliki perilaku yang benar-benar aneh localhostterikat pada apa pun selain alamat loopback Anda karena ini adalah pengaturan yang benar-benar, benar-benar tak terduga.

lororget
sumber
2

Anda harus menentukan nama domain yang sepenuhnya memenuhi syarat di posisi pertama setelah alamat IP.

Seperti yang kita baca di man 5 hosts:

Untuk setiap host satu baris harus hadir dengan informasi berikut:

IP_address canonical_hostname [alias ...]

Jika tidak mengikuti aturan, maka beberapa perangkat lunak mungkin rusak. Misalnya, sistem manajemen konfigurasi Wayang dapat mulai mengubah nama host Anda bolak-balik pada setiap proses hanya karena Anda tidak menentukan bagian domain atau karena Anda meletakkan alias tanpa domain pada baris sebelum FQDN.

sinaps
sumber
0

Saya tidak yakin ini benar-benar "opsional" (seperti yang ditunjukkan Patrick di atas). Saya baru saja akhirnya melacak masalah dengan izin nfs kembali ke siapa pun: tidak ada. Sepertinya izin untuk berfungsi dengan benar dengan nfs mounts (menggunakan idmapd), nama domain server harus sama persis dengan nama domain klien. Dari beberapa dokumen yang saya temukan - hostname -fminus nama host yang sebenarnya harus identik antara klien dan server ATAU Anda harus menentukan nama domain untuk klien di /etc/idmapd.conf, yang berarti setiap klien.

Apakah ada aturan resmi tentang di mana menentukan nama domain? The domainnameperintah tampaknya tidak mengambilnya dari / etc / hosts .. sehingga menempatkan di / etc / hosts mengganggu saya, karena itu berarti itu disimpan di beberapa lokasi di filesystem ..

tyto
sumber