Saya baru-baru ini "dipaksa" untuk melakukan beberapa pekerjaan sysadmin, sementara ini bukan sesuatu yang saya benar-benar suka lakukan, saya sudah membaca, bereksperimen dan belajar banyak.
Ada satu aspek mendasar dari konfigurasi server yang belum dapat saya pahami - nama host .
Di Ubuntu misalnya, seseorang harus menetapkan nama host seperti ini (sesuai dengan Linode Library ):
echo "plato" > /etc/hostname
hostname -F /etc/hostname
File: / etc / hosts
127.0.0.1 localhost.localdomain localhost
12.34.56.78 plato.example.com plato
Saya berasumsi itu plato
adalah nama yang arbitrer dan itu plato.example.com
adalah FQDN.
Sekarang pertanyaan saya adalah:
- Apakah ini wajib?
- Untuk tujuan apa?
- Di mana itu dibutuhkan / digunakan?
- Mengapa saya tidak dapat mendefinisikan "localhost" sebagai nama host untuk setiap mesin?
- Apakah saya harus mengatur entri DNS untuk
plato.example.com
FQDN? - Haruskah
plato.example.com
digunakan sebagai entri DNS terbalik untuk IP saya?
Juga, apakah ada "praktik terbaik" untuk memilih nama host? Saya pernah melihat orang menggunakan huruf Yunani, nama planet, dan bahkan tokoh mitologis ... Apa yang terjadi ketika kita kehabisan huruf / planet?
Maaf jika ini pertanyaan bodoh, tapi saya tidak pernah terlalu antusias dengan konfigurasi jaringan.
sumber
Jawaban:
Saat ini, sebuah sistem mungkin memiliki banyak antarmuka, masing-masing dengan beberapa alamat, dan setiap alamat bahkan mungkin memiliki beberapa entri DNS yang terkait dengannya. Jadi, apa arti "hostname sistem"?
Banyak aplikasi akan menggunakan nama host sistem sebagai pengidentifikasi default saat berkomunikasi di tempat lain. Misalnya, jika Anda mengumpulkan pesan syslog di server pusat, semua pesan akan ditandai dengan nama host dari sistem asal. Di dunia yang ideal Anda mungkin akan mengabaikan ini (karena Anda tidak selalu ingin mempercayai klien), tetapi perilaku default - jika Anda menyebut semua sistem Anda "localhost" - akan menghasilkan banyak pesan log yang Anda tidak akan dapat dikaitkan dengan sistem tertentu.
Seperti yang ditunjukkan orang lain, nama host sistem juga merupakan pengidentifikasi yang berguna jika Anda menemukan diri Anda dari jauh mengakses sejumlah sistem. Jika Anda memiliki lima jendela yang terpasang pada sistem bernama "localhost" maka Anda akan mengalami kesulitan menjaga mereka tetap lurus.
Dalam nada yang sama, kami mencoba untuk membuat nama host sistem cocok dengan nama host yang kami gunakan untuk akses administratif ke suatu sistem. Ini membantu menghindari kebingungan ketika merujuk ke sistem (dalam email, percakapan, dokumentasi, dll).
Mengenai DNS:
Anda ingin memiliki entri DNS maju dan mundur yang tepat untuk aplikasi Anda untuk menghindari kebingungan. Anda memerlukan beberapa entri maju (nama -> alamat ip) agar orang dapat mengakses aplikasi Anda dengan nyaman. Memiliki pencocokan entri terbalik berguna untuk sejumlah alasan - misalnya, ini membantu Anda mengidentifikasi aplikasi dengan benar jika Anda menemukan alamat ip yang sesuai dalam log.
Perhatikan bahwa di sini saya berbicara tentang "aplikasi" dan bukan "sistem", karena - terutama dengan server web - adalah umum untuk memiliki beberapa alamat ip pada suatu sistem, yang terkait dengan nama host dan layanan yang berbeda.
Mencoba mempertahankan pemetaan nama ke ip dalam
/etc/hosts
file Anda dengan cepat menjadi sulit saat Anda mengelola semakin banyak sistem. Sangat mudah bagi file host lokal untuk tidak sinkron sehubungan dengan DNS, berpotensi menyebabkan kebingungan dan dalam beberapa kasus kegagalan fungsi (karena sesuatu mencoba mengikat ke alamat ip yang tidak lagi ada pada sistem, misalnya).sumber
/etc/hosts
mendukung DNS. Ini mengurangi jumlah tempat yang saya butuhkan untuk menyimpan informasi tentang nama -> pemetaan alamat. Pada sebagian besar sistem yang saya pertahankan,/etc/hosts
hanya berisi satu entri untuklocalhost
.Anda bisa mengatur setiap nama host menjadi "localhost", tetapi sangat praktis untuk ada
alix@plato ~ $
di command prompt Anda ketika Anda mengelola mesin lebih dari ssh. Mengelola server dari jarak jauh bisa menjadi sangat membingungkan jika Anda tidak melakukannya.Memiliki FQDN yang benar adalah penting ketika Anda meng-host server web, atau server email. Aplikasi server semacam ini ingin mengetahui "siapa" yang mereka jalankan.
Untuk memilih skema penamaan yang baik, saya merujuk Anda ke pertanyaan yang sangat populer ini .
FQDN menjadi berguna hanya jika bermakna bagi komputer lain. Ada tiga level untuk ini:
Saat mengirim email atau melayani halaman web ke dunia luar, yang ketiga adalah yang Anda inginkan. Untuk sebagian besar kasus lain, Anda dapat melakukannya dengan DNS lokal atau bahkan mengedit file host.
Dalam hal ini, Anda bisa membuat nama domain (plato.alixnetwork bisa menjadi FQDN) untuk digunakan dalam jaringan lokal Anda. Satu-satunya nilai tambah dari memiliki bagian "alixnetwork" (nama domain) adalah kenyamanan ketika Anda memiliki jaringan lokal lain yang ingin Anda bedakan.
sumber
Ikhtisar dasar. Hostname hanya petunjuk; Anda mungkin menetapkan satu yang spesifik untuk menjadi nama host yang dirujuk oleh mesin, tetapi bisa memiliki beberapa. Beberapa layanan, surat penting dan HTTP bergantung pada nama domain untuk mengetahui di mana layanan harus ditemukan dan bagaimana menuju ke sana.
Dahulu kala, semua nama ini (yang lagi-lagi, hanya petunjuk ke alamat IP) dicatat dalam sebuah file bernama
hosts
. Ketika sistem tumbuh, mereka tidak dapat menjaga file disinkronkan di semua komputer yang relevan yang berpartisipasi dalam berbagai jaringan yang saling berhubungan. Jadi sistem DNS diciptakan. Ketika Anda melakukan pencarian nama, masih memeriksa file host terlebih dahulu, kemudian sistem DNS. Windows juga dapat memeriksa sistem lain seperti WINS atau NetBIOS.Saat Anda memasukkan entri dalam
hosts
file, Anda tidak akan menugaskannya ke komputer. Menetapkan nama host sebagai yang digunakan oleh komputer dilakukan dalam file konfigurasi (pada sistem * nix) dan Properti Sistem dalam sistem Windows (sistem Windows juga dapat memiliki akhiran spesifik NIC).Entri dalam
hosts
file, seperti sistem DNS, hanyalah pemetaan dari nama host ke alamat IP. Untuk menggunakan nama host 'localhost' (tidak ada yang istimewa tentang itu, ini adalah nama host seperti yang lainnya) harus dipetakan ke antarmuka loopback (jadi itu akan selalu mengarah ke komputer lokal). Untuk memastikan ini berfungsi, semua komputer dilengkapi dengan pemetaan default ini dalamhosts
file mereka , tetapi ini dapat berpotensi dihapus, jika Anda tidak ingin dapat menggunakan nama host itu.Lebih jauh, seperti yang telah dicatat orang lain, sangat berguna untuk menetapkan nama host ke komputer. Saat terhubung ke komputer, Anda dapat menampilkan nama hostnya saat login, atau sebagai prompt, atau sejumlah tempat lain. Ini membuat mengidentifikasi komputer yang terhubung dengan Anda menjadi lebih mudah. Jika Anda mengatur nama host itu di DNS atau memasukkannya ke dalam semua
hosts
file, Anda akan dapat terhubung ke komputer dengan mereferensikan nama hostnya daripada harus mengetahui alamat IP-nya setiap saat. (Bahkan lebih berguna jika komputer menggunakan DHCP, karena alamat bisa berubah. Jika komputer memperbarui DNS maka catatan DNS akan menunjuk ke alamat IP baru; Anda masih bisa terhubung tanpa mengetahui alamat IP baru karena Anda tahu nama DNS ).Ada banyak kegunaan lain dari keduanya
hosts
dan DNS, tetapi saya kira Anda memiliki lebih banyak pertanyaan daripada jawaban jika Anda membaca semua ini.sumber
/etc/hosts
tidak diperlukan, memiliki nama host di entri DNS akan mencapai hasil yang sama, kan?hosts
file akan menjadi berlebihan. Entri dalamhosts
file akan menimpa DNS (berguna untuk pengujian kadang-kadang, menjengkelkan ketika Anda melupakannya). Perhatikan bahwa ini semua berkaitan dengan catatan A dan AAAA, ada jenis catatan lain untuk nama host, tetapi saya meninggalkannya untuk kejelasan.Pernah tuan rumah harus diberi nama yang bermakna. Nama host dapat melayani banyak tujuan:
1- Ini membantu Anda mengenali di mana Anda saat ini bekerja.
2- Menggunakan nama yang dikonfigurasi dalam
/etc/hosts
dan / atau catatan DNS lebih mudah daripada menghafal banyak alamat IP.3- Localhost adalah nama yang disediakan untuk merujuk ke mesin saat ini (alamat 127.0.0.1).
4- Catatan DNS berguna untuk membuat server Anda dapat diakses publik.
Memilih nama yang cocok untuk setiap server sangat membantu Anda dalam administrasi Anda. Juga, ini membantu klien Anda mengakses server Anda.
sumber
Sama seperti catatan tambahan: Bekerja dengan benar dan membalikkan resolusi DNS adalah landasan mutlak dari setiap instalasi TI di planet ini. Jangan pernah meremehkan perlunya DNS yang terpelihara dengan baik dan resolusi nama host yang tepat!
sumber
Penafian: pertanyaan utama adalah tentang sistem Linux, jadi silakan abaikan jawaban ini jika Anda tidak tertarik dengan masalah Windows.
Bagaimanapun, dalam sistem Windows, terlepas dari semua poin yang disebutkan dalam jawaban lain, nama host sebenarnya digunakan oleh OS itu sendiri, untuk tujuan jaringan dan otentikasi; secara khusus:
LocalSystem
danNetworkService
akun pengguna, yang dapat mengautentikasi ke sistem lain menggunakan kredensial sistem yang mereka jalankan; ini memungkinkan proses yang berjalan sepertiNetworkService
pada SystemA untuk mengakses folder bersama pada SystemB dengan memberikan izin pada folder tersebut ke akun pengguna SystemA.sumber
Banyak situs dan / atau yang seharusnya 'admin' sekarang menyatakan bahwa atribut 'hostname' mengandung FQDN dari instance OS, yang 'memecah' resolusi apa pun yang menambahkan 'domainname' di dalamnya:
sumber