Apa IPV6 untuk localhost dan 0.0.0.0?

104

Seperti kita ketahui alamat IPv4 untuk localhostis 127.0.0.1(alamat loopback). Untuk apa alamat IPv6 localhostdan untuk 0.0.0.0apa saya perlu memblokir beberapa host iklan.

Killerbeans
sumber

Jawaban:

124

Seperti kita ketahui bahwa alamat IPv4 untuk localhostadalah 127.0.0.1(alamat loopback).

Sebenarnya, semua alamat IPv4 di 127.0.0.0/8adalah alamat loopback.

Di IPv6, analog langsung dari rentang loopback adalah ::1/128. Jadi ::1(bentuk panjang 0:0:0:0:0:0:0:1) adalah satu-satunya alamat loopback IPv6.


Sementara nama host localhostbiasanya akan menyelesaikan ke 127.0.0.1atau ::1, saya telah melihat kasus di mana seseorang telah mengikatnya ke alamat IP yang bukan alamat loopback. Ini agak gila ... tapi terkadang orang melakukannya.

Saya mengatakan "ini gila" karena Anda bertanggung jawab untuk merusak asumsi aplikasi dengan melakukan ini; misalnya, aplikasi mungkin mencoba melakukan pencarian terbalik pada IP loopback dan tidak mendapatkan hasil yang diharapkan. Dalam kasus terburuk, aplikasi mungkin akhirnya mengirimkan lalu lintas sensitif melalui jaringan yang tidak aman secara tidak sengaja ... meskipun Anda mungkin perlu membuat kesalahan lain juga untuk "mencapai" itu.


Memblokir 0.0.0.0tidak masuk akal. Di IPv4 itu tidak pernah dirutekan. Setara di IPv6 adalah ::alamat (bentuk panjang 0:0:0:0:0:0:0:0) ... yang juga tidak pernah dirutekan.

The 0.0.0.0dan ::alamat dicadangkan berarti "alamat". Jadi, misalnya program yang menyediakan layanan web dapat mengikat ke 0.0.0.0port 80 untuk menerima koneksi HTTP melalui salah satu alamat IPv4 host. Alamat ini tidak valid sebagai alamat sumber atau tujuan untuk paket IP.


Akhirnya, beberapa komentar menanyakan tentang ::/128versus ::/0versus ::.

Apa perbedaan ini?

Sebenarnya, dua yang pertama adalah notasi CIDR bukan alamat IPv6. Mereka sebenarnya menentukan rentang alamat IP. CIDR terdiri dari alamat IP dan nomor tambahan yang menentukan jumlah bit dalam netmask. Keduanya bersama-sama menentukan kisaran alamat; yaitu kumpulan alamat yang dibentuk dengan mengabaikan bit-bit yang ditutup dari alamat yang diberikan.

Begitu:

  • :: berarti hanya alamat IPv6 0:0:0:0:0:0:0:0
  • ::/128artinya 0:0:0:0:0:0:0:0dengan netmask yang terdiri dari 128 bit. Ini memberikan jangkauan jaringan dengan tepat satu alamat di dalamnya.
  • ::/0artinya 0:0:0:0:0:0:0:0dengan netmask yang terdiri dari 0 bit. Ini memberikan jangkauan jaringan dengan 2 128 alamat di dalamnya .; yaitu seluruh ruang alamat IPv6!

Untuk informasi lebih lanjut, baca halaman Wikipedia tentang alamat IPv4 & IPv6, dan notasi CIDR:

Stephen C
sumber
68

IPv6 localhost

::1adalah loopback alamat di IPv6.

Di dalam URL

Di dalam URL, gunakan tanda kurung siku []:

  • http://[::1]/
    Defaultnya adalah port 80.
  • http://[::1]:80/
    Tentukan port.

Melampirkan literal IPv6 dalam tanda kurung siku untuk digunakan di URL didefinisikan dalam RFC 2732 - Format untuk Alamat IPv6 Literal di URL .

Tomachi
sumber
42

IPv6 localhost adalah ::1. Alamat yang tidak ditentukan adalah ::. Ini didefinisikan dalam RFC 4291 bagian 2.5 .

programmerq
sumber
4

Hanya demi kelengkapan: ada alamat IPv6 yang dipetakan IPv4 , tempat Anda dapat menyematkan alamat IPv4 di alamat IPv6 (mungkin tidak didukung oleh setiap peralatan IPv6).

Contoh: Saya menjalankan server di komputer saya, yang dapat diakses melalui http://127.0.0.1:19983/solr. Jika saya mengaksesnya melalui alamat IPv6 yang dipetakan IPv4, maka saya mengaksesnya melalui http://[::ffff:127.0.0.1]:19983/solr(yang akan diubah menjadi http://[::ffff:7f00:1]:19983/solr)

Stefan Rother-Stübs
sumber
2

Untuk digunakan di a /etc/hostsfile sebagai teknik pemblokiran iklan sederhana yang menyebabkan domain gagal diselesaikan, alamat 0.0.0.0 telah banyak digunakan karena menyebabkan permintaan langsung gagal bahkan tanpa mencoba, karena ini bukan alamat yang valid atau dapat dirutekan. Ini dibandingkan dengan menggunakan 127.0.0.1 di tempat itu, di mana setidaknya akan memeriksa untuk melihat apakah komputer Anda mendengarkan pada port yang diminta 80 sebelum gagal dengan 'koneksi ditolak.' Salah satu dari alamat tersebut yang digunakan di file host untuk domain tersebut akan menghentikan permintaan apa pun untuk dicoba melalui jaringan yang sebenarnya, tetapi 0.0.0.0 telah disukai karena lebih 'optimal' untuk alasan di atas. "127" IP akan mencoba untuk mengakses komputer Anda sendiri, dan IP lain akan menyebabkan permintaan dikirim ke router untuk mencoba merutekannya, tetapi untuk 0.0.0.0 di sana '

Semua yang dikatakan, memiliki IP apa pun yang terdaftar di file host Anda untuk domain yang akan diblokir sudah cukup, dan Anda tidak perlu atau ingin juga meletakkan alamat ipv6 di file host Anda kecuali - mungkin - Anda tidak melakukannya telah mengaktifkan ipv4 sama sekali. Saya akan sangat terkejut jika itu masalahnya. Dan tetap saja, saya pikir memiliki host yang muncul di / etc / hosts dengan alamat ipv4 yang buruk ketika Anda tidak mengaktifkan ipv4 akan tetap memberi Anda hasil yang Anda cari yang gagal, daripada mencari DNS nyata misalnya, adserver-example.com dan mendapatkan kembali IP v4 atau v6.

XP84
sumber