Localhost adalah nama host yang mengacu pada komputer saat ini yang digunakan untuk mengaksesnya. Ini digunakan untuk mengakses layanan jaringan yang berjalan di host melalui antarmuka jaringan loopback. Menggunakan antarmuka loopback mem-bypass perangkat keras antarmuka jaringan lokal apa pun.

Loopback

sunting

Mekanisme loopback lokal dapat digunakan untuk menjalankan layanan jaringan pada host tanpa memerlukan antarmuka jaringan fisik, atau tanpa membuat layanan dapat diakses dari jaringan yang terhubung dengan komputer. Misalnya, situs web yang diinstal secara lokal dapat diakses dari browser Web dengan URL http://localhost untuk menampilkan berandanya.

Nama localhost biasanya ditetapkan ke IPv4 loopback alamat 127.0.0.1, dan ke alamat loopback IPv6 : :1.[1]

Resolusi nama

sunting

IPv4 standar jaringan cadangan seluruh blok alamat 127.0.0.0/8 (lebih dari 16 juta alamat) untuk tujuan loopback.[2] Itu berarti setiap paket yang dikirim ke salah satu alamat tersebut akan diulang kembali. Alamat 127.0.0.1 adalah alamat standar untuk lalu lintas loopback IPv4; sisanya tidak didukung oleh semua sistem operasi. Namun, mereka dapat digunakan untuk menyiapkan beberapa aplikasi server di host, semuanya mendengarkan pada nomor port yang sama. Standar IPv6 hanya menetapkan satu alamat untuk loopback: ::1.

Resolusi nama localhost ke satu atau lebih alamat IP biasanya dikonfigurasi oleh baris berikut di file host sistem operasi:

127.0.0.1    localhost
::1          localhost

Nama juga dapat diselesaikan oleh server Sistem Nama Domain (DNS), tetapi kueri untuk nama ini harus diselesaikan secara lokal, dan tidak boleh diteruskan ke server nama jarak jauh.

Selain pemetaan localhost ke alamat loopback (127.0.0.1 dan ::1), localhost juga dapat dipetakan ke IPv4 lain (loopback) dan juga memungkinkan untuk menetapkan nama lain, atau tambahan, ke alamat loopback apa pun. Pemetaan localhost ke alamat selain rentang alamat loopback yang ditunjuk di file host atau di DNS tidak dijamin memiliki efek yang diinginkan, karena aplikasi dapat memetakan nama secara internal.

Dalam Sistem Nama Domain, nama localhost dicadangkan sebagai tingkat atas nama domain, awalnya disisihkan untuk menghindari kebingungan dengan nama host yang digunakan untuk tujuan loopback.[3] Standar IETF melarang pendaftar nama domain menetapkan nama localhost.

Standar IETF

sunting

Nama localhost dicadangkan untuk tujuan loopback oleh RFC 6761 (Nama Domain Penggunaan Khusus),[4] yang mencapai tingkat kematangan Proposed Standard pada bulan Februari 2013. Standar menetapkan sebagainya sejumlah pertimbangan khusus yang mengatur penggunaan nama di Sistem Nama Domain:

  • Kueri alamat IPv4 atau IPv6 untuk nama localhost harus selalu diselesaikan ke alamat loopback masing-masing, yang ditentukan dalam standar terpisah.
  • Aplikasi dapat menyelesaikan sendiri nama ke alamat loopback, atau meneruskannya ke mekanisme penyelesai nama lokal.
  • Ketika penyelesai nama menerima kueri alamat (A atau AAAA) untuk localhost, itu harus mengembalikan alamat loopback yang sesuai, dan respons negatif untuk jenis rekaman lain yang diminta. Permintaan untuk 'localhost tidak boleh dikirim ke server nama caching.
  • Untuk menghindari membebani root server Sistem Nama Domain dengan lalu lintas, server nama caching tidak boleh meminta catatan server nama untuk localhost, atau meneruskan resolusi ke server nama otoritatif.
  • Pencatat DNS dilarang mendelegasikan nama domain di domain tingkat atas localhost.
  • Ketika server nama otoritatif menerima kueri untuk 'localhost' terlepas dari ketentuan yang disebutkan di atas, mereka harus menyelesaikannya dengan tepat.

Alamat loopback IPv4 dicadangkan dalam ruang alamat IPv4 oleh standar IETF "Alamat IPv4 Penggunaan Khusus" (RFC 5735).[5] Reservasi dapat ditelusuri kembali ke standar "Asigned Numbers" November 1986 (RFC 990).

Sebaliknya, standar IETF "IP Version 6 Addressing Architecture" (RFC 4291) mencadangkan satu alamat loopback IPv6 ::1 dalam ruang alamat IPv6. Standar tersebut menghalangi penugasan alamat itu ke antarmuka fisik apa pun, serta penggunaannya sebagai sumber atau alamat tujuan dalam paket apa pun yang dikirim ke host jarak jauh. Paket apa pun yang ditransmisikan secara keliru tidak seharusnya dirutekan, dan harus dibuang oleh semua router atau host yang menerimanya.

Pemrosesan paket

sunting

Pemrosesan paket apa pun yang dikirim ke alamat loopback, diimplementasikan di lapisan tautan tumpukan TCP/IP. Paket tersebut tidak pernah diteruskan ke pengontrol antarmuka jaringan (NIC) atau driver perangkat keras apa pun dan tidak boleh muncul di luar sistem komputasi, atau dirutekan oleh router mana pun. Ini memungkinkan pengujian perangkat lunak dan layanan lokal tanpa adanya antarmuka jaringan perangkat keras.

Paket looped-back dibedakan dari paket lain yang melintasi tumpukan TCP/IP hanya dengan alamat IP khusus yang dituju. Dengan demikian, layanan yang pada akhirnya menerimanya merespons sesuai dengan tujuan yang ditentukan. Misalnya, layanan HTTP dapat merutekan paket yang dialamatkan ke 127.0.0.99:80 dan 127.0.0.100:80 ke server Web yang berbeda, atau ke satu server yang mengembalikan halaman web yang berbeda. Untuk menyederhanakan pengujian tersebut, file host dapat dikonfigurasi untuk memberikan nama yang sesuai untuk setiap alamat.

Paket yang diterima pada antarmuka non-loopback dengan sumber loopback atau alamat tujuan harus dibuang. Paket semacam itu terkadang disebut sebagai paket Marss.[6] Seperti halnya paket palsu lainnya, paket tersebut mungkin berbahaya dan masalah apa pun yang mungkin ditimbulkannya dapat dihindari dengan menerapkan pemfilteran bogon.

Kasus khusus

sunting

Rilis basis data MySQL membedakan antara penggunaan nama host localhost dan penggunaan alamat 127.0.0.1 dan ::1.[7] Saat menggunakan localhost sebagai tujuan dalam antarmuka konektor klien dari suatu aplikasi, antarmuka pemrograman aplikasi MySQL terhubung ke database menggunakan soket domain Unix, sementara koneksi TCP melalui antarmuka loopback membutuhkan penggunaan langsung dari alamat eksplisit.

Satu pengecualian penting untuk penggunaan alamat 127.0.0.0/8 adalah penggunaannya dalam deteksi kesalahan traceroute Multiprotocol Label Switching (MPLS), di mana propertinya yang tidak dapat dirutekan menyediakan cara yang nyaman untuk menghindari pengiriman paket yang salah ke pengguna akhir.

Lihat juga

sunting

Referensi

sunting