Sesi Tanya & Jawab Hari ini hadir untuk memberi kami SuperUser - subdivisi Stack Exchange, pengelompokan situs web Q & A berbasis komunitas.
Pertanyaan
Pembaca SuperUser Diogo ingin tahu mengapa perintah ping memperlakukan localhost dan alamat IP lokal secara berbeda ketika, di permukaan, mereka tampaknya menjadi hal yang sama:
Using cmd and ping on Windows gave me the following results:
Pinging “localhost”:
I mean, I’m pinging the same interface, the same machine and the same address. Why do I get such different results?
Jelas ada perbedaan dari beberapa macam, tetapi apa sebenarnya yang terjadi ketika Anda beralih di antara keduanya?
Jawabannya
Kontributor SuperUser Tom Wijsman menawarkan wawasan berikut ke perbedaan halus antara keduanya:
You are not pinging the same interface, without any physical interfaces you still have a “local host”.
Your
localhost
digunakan untuk merujuk ke komputer Anda dari IP "internal", bukan dari "eksternal" IP komputer Anda. Jadi, paket ping tidak melewati antarmuka jaringan fisik apa pun; hanya melalui antarmuka back loop virtual yang langsung mengirimkan paket-paket dari port ke port tanpa hop fisik.
Anda mungkin masih bertanya-tanya mengapa
localhost
sedang memutuskan untuk
::1
sementara secara tradisional kami mengharapkannya untuk menyelesaikan ke alamat IPv4
127.0.0.1
. Perhatikan itu
.localhost
secara tradisional TLD (lihat RFC 2606) yang menunjuk kembali ke alamat IP loop kembali (untuk IPv4, lihat RFC 3330, terutama 127.0.0.0/8).
Mencari
localhost
menggunakan
nslookup
memberi kita:
nslookup localhost
… Name: localhost Addresses:::1 127.0.0.1
Jadi Windows lebih suka menggunakan alamat IP kembali IPv6 loop
::1
(lihat RFC 2373) seperti yang terdaftar pertama.
Oke, dari mana asalnya, mari kita lihat file host.
type %WINDIR%System32DriversEtcHosts
… # localhost name resolution is handled within DNS itself. # 127.0.0.1 localhost #::1 localhost …
Hmm, kita harus melihat pengaturan DNS Windows.
Artikel KB ini memberi tahu kami tentang pengaturan yang memengaruhi apa yang disukai Windows, ditekankan dalam huruf tebal:
-
Di Peninjau Suntingan Registri, temukan dan kemudian klik subkunci registri berikut:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpip6Parameters
-
Klik dua kali DisabledComponents untuk memodifikasi entri DisabledComponents. Catatan: Jika entri DisabledComponents tidak tersedia, Anda harus membuatnya. Untuk melakukan ini, ikuti langkah-langkah berikut:
- Di menu Edit, arahkan ke Baru, lalu klik Nilai DWORD (32-bit).
- Ketik DisabledComponents, dan kemudian tekan ENTER.
- Klik dua kali DisabledComponents.
-
Ketik salah satu dari nilai berikut di bidang Data Nilai: untuk mengonfigurasi protokol IPv6 ke status yang diinginkan, dan kemudian klik OK:
-
Mengetik
0
untuk mengaktifkan semua komponen IPv6. (Pengaturan standar Windows)
-
Mengetik
0xffffffff
untuk menonaktifkan semua komponen IPv6, kecuali antarmuka loopback IPv6. Nilai ini juga mengkonfigurasi Windows agar lebih suka menggunakan Internet Protocol versi 4 (IPv4) melalui IPv6 dengan memodifikasi entri dalam tabel kebijakan awalan. Untuk informasi lebih lanjut, lihat Sumber dan Pilihan Alamat Tujuan.
-
Mengetik
0x20
untuk lebih memilih IPv4 daripada IPv6 dengan memodifikasi entri di tabel kebijakan awalan.
-
Mengetik
0x10
untuk menonaktifkan IPv6 pada semua antarmuka nontunnel (pada antarmuka LAN dan Point-to-Point Protocol [PPP]).
-
Mengetik
0x01
untuk menonaktifkan IPv6 pada semua antarmuka terowongan. Ini termasuk Intra-Site Automatic Tunnel Addressing Protocol (ISATAP), 6to4, dan Teredo.
-
Mengetik
0x11
untuk menonaktifkan semua antarmuka IPv6 kecuali antarmuka loopback IPv6.
- Restart komputer agar pengaturan ini diterapkan.
Apakah tabel kebijakan prefiks ini?
netsh interface ipv6 show prefixpolicies
(atau
prefixpolicy
pada versi sebelumnya)
Precedence Label Prefix ---------- ----- -------------------------------- 50 0::1/128 45 13 fc00::/7 40 1::/0 10 4::ffff:0:0/96 7 14 2002::/16 5 5 2001::/32 1 11 fec0::/10 1 12 3ffe::/16 1 10::/96
Tabel ini memutuskan prefiks apa yang didahulukan daripada prefiks lain selama DNS diselesaikan.
Ah, jadi dengan menggunakan KB itu kita dapat menambahkan entri di sini yang menunjukkan bahwa IPv4 memiliki prioritas yang lebih tinggi daripada IPv6.
catatan: Tidak ada alasan untuk mengesampingkan perilaku ini, kecuali Anda mengalami masalah yang sama. Mengubah pengaturan ini pada Windows Server kami merusak server email kami, jadi itu harus ditangani dengan hati-hati …
Tidak ada yang lebih kami sukai selain jawaban yang menyeluruh dan informatif dengan dokumen dukungan yang terhubung. Jelas localhost dan alamat IP lokal adalah entitas yang berbeda, melayani tujuan yang berbeda, dan sekarang kita semua tahu mengapa.
Memiliki sesuatu untuk ditambahkan ke penjelasan? Bicaralah di komentar. Ingin membaca lebih banyak jawaban dari pengguna Stack Exchange yang paham teknologi lainnya? Lihat diskusi lengkap di sini.