Apa Itu /etc/hosts Dan Mengapa Digunakan?
Untuk mengirim lalu lintas jaringan ke host, alamat Internet Protocol (IP) numerik untuk host tersebut harus diketahui. Alamat IP secara tradisional ditulis sebagai xxx.xxx.xxx.xxx di mana setiap xxx mewakili nilai dari 0 hingga 255, untuk alamat jaringan IPv4. Komputer memerlukan alamat ini tetapi manusia sulit mengingat nilai numerik. Domain Name Service (DNS) menyediakan mekanisme untuk mengaitkan satu atau lebih nama alfanumerik dengan alamat IP numerik. Pada sistem Linux, nama-nama yang dapat dibaca ini diubah menjadi ekuivalen IP numeriknya oleh Resolver Library, yang terdapat dalam file libresolve.so yang disediakan sebagai bagian dari paket glibc RPM. Program yang perlu mencari alamat IP numerik untuk masalah nama panggilan ke perpustakaan ini.
Nama host dan alamat IP mereka dapat ditemukan di berbagai tempat:file lokal, server DNS jarak jauh, atau server NIS+, untuk beberapa nama. Urutan pencarian sumber daya ini bergantung pada host:entri di /etc/nsswitch.conf mengajukan. Baris ini biasanya terlihat seperti ini:
# vi /etc/nsswitch.conf hosts: files dns
Ini menyebabkan pustaka resolver berkonsultasi dengan file /etc/hosts lokal terlebih dahulu; jika nama host tidak ditemukan di sana, hubungi server nama DNS jarak jauh yang diidentifikasi oleh /etc/resolv.conf berkas.
Linux memang menyediakan bind Paket RPM memungkinkan domain administratif untuk mengonfigurasi dan memelihara layanan DNS-nya sendiri, tetapi seringkali ukuran jaringan lokal hanya beberapa host dan membuat upaya pemeliharaan layanan DNS menjadi tidak beralasan.
Format File /etc/hosts
File /etc/hosts adalah file teks biasa. Dua jenis garis diizinkan:
- Baris Kosong
- Definisi nama host
Garis dapat bercampur sesuai kebutuhan. Komentar dimulai dengan simbol hash (# ) dan lanjutkan ke akhir baris.
Mengaitkan Nama Host dan Alamat IP
Untuk setiap host, satu baris harus ada dengan informasi berikut:
IP_address canonical_hostname [aliases ...]
Bidang entri dipisahkan oleh spasi putih (spasi atau tab). Bidang pertama adalah alamat IP numerik yang akan digunakan untuk semua nama host pada entri ini. Alamat IPv4 (10.1.2.3), alamat IPv6 (2001:0db8:0000:0000:0000:0000:1428:57ab), atau singkatan IPv6 (::1) dapat digunakan, tergantung kebutuhan Anda.
Setelah alamat IP, token yang tersisa menentukan nama host yang dikenal secara lokal yang terkait dengan alamat IP tersebut. Menurut konvensi, nama depan setelah alamat IP adalah nama domain kanonik atau sepenuhnya memenuhi syarat. Contoh nama kanonik adalah server.example.com; ini adalah nama resmi tuan rumah.
Setiap nama yang tersisa yang ditentukan untuk alamat IP adalah alias atau nama alternatif untuk nama host resmi. Misalnya, salah satu tugas yang ditetapkan ke server.example.com adalah menjadi situs FTP perusahaan. Alias yang cocok kemudian mungkin myftp.example.com dan nama ini dapat ditambahkan ke entri /etc/hosts setelah nama kanonik. Sering kali, alias hanyalah nama host, tanpa akhiran domain apa pun. Misalnya:
192.168.10.12 server.example.com myftp.example.com myhost myftp
Keuntungan mencantumkan nama host kanonik sebagai definisi pertama pada baris adalah bahwa konversi IP-ke-nama host (mirip dengan pencarian DNS terbalik) biasanya hanya menampilkan nama depan yang ditemukan; konvensi menggunakan nama kanonik untuk ini. Dalam contoh kita, perintah:
$ ping myftp PING myhost.example.com (192.168.10.12) 56(84) bytes of data. 64 bytes from myhost.example.com (192.168.10.12): icmp_seq=1 ttl=64 time=0.023 ms 64 bytes from myhost.example.com (192.168.10.12): icmp_seq=2 ttl=64 time=0.028 ms 64 bytes from myhost.example.com (192.168.10.12): icmp_seq=3 ttl=64 time=0.028 ms
Perhatikan bahwa kami melakukan ping ke myftp tetapi hasilnya berasal dari host myhost:ini adalah petunjuk yang dapat diandalkan bahwa Anda sedang menangani alias, bukan host yang sebenarnya.