Bagaimana cara melakukan ping localhost menggunakan IPv6?

22

Saya mencoba memahami IPv6 dengan lebih baik.

Pertama, saya mencoba ifconfig , dan saya mendapatkan yang berikut:

eth0      Link encap:Ethernet  HWaddr XXXXXXX
          inet addr:X.X.X.X  Bcast:X.X.X.X  Mask:XXXXXXXXX
          inet6 addr: XXXX::XXXX:XXX:XXXX:XXX/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:138752772 errors:0 dropped:0 overruns:0 frame:0
          TX packets:67894054 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:67347428211 (67.3 GB)  TX bytes:168368922639 (168.3 GB)
          Interrupt:43

Jadi dari atas saya dapat menganggap IPv6 diaktifkan (koreksi saya jika saya salah di sini).

Sekarang jika saya menggunakan ping localhostsaya mendapatkan:

64 bytes from localhost (127.0.0.1): icmp_req=1 ttl=64 time=0.026 ms
64 bytes from localhost (127.0.0.1): icmp_req=2 ttl=64 time=0.019 ms
64 bytes from localhost (127.0.0.1): icmp_req=3 ttl=64 time=0.025 ms
...

Tetapi ketika saya menggunakan ping6 localhostsaya mendapatkan:

unknown host

Bagaimana saya menggunakan ping6? Atau lebih khusus lagi, perubahan apa yang perlu dilakukan untuk membuat ping6 localhostpekerjaan (jika mungkin sama sekali)?

nafas
sumber
3
Jika Anda menggunakan Linux, Anda umumnya harus menghindari ifconfigdan route- lebih suka ip addrdan ip route, yang mendukung lebih banyak fitur jaringan dan memiliki output yang lebih konsisten.
grawity
@ kegembiraan thx untuk tip mate, sangat berguna
nafas

Jawaban:

15

Jawaban singkat [ rcf4291 ]

ping6 ip6-localhost    # Or the alias you have in /etc/hosts file (See below)
ping6 0:0:0:0:0:0:0:1  # Similar to `ping 127.0.0.1` with 7 `:` instead of 4 `.`
ping6 ::1              # The used analogous of `ping 127.0.0.1`

Perubahan untuk membuatnya berfungsi ping6 localhost

Jika Anda ingin menetapkan localhostsebagai alias untuk keduanya pingdanping6 dan itu belum ada di komputer Anda, cukup menulis /etc/hostsfile di kedua baris:

127.0.0.1       localhost
# ... and below
::1             localhost ipv6-localhost ipv6-loopback

Untuk apa itu menyangkut alias saat ini digunakan pada sistem Anda Anda dapat memeriksa file host, /etc/hosts [ 1 ] atau berbeda tempat jika pada sistem yang berbeda [ 2 ] .
Anda mungkin menemukan ip6-localhost, ip6-loopback, ipv6-localhost, ipv6-loopbackatau localhostsendiri ...


Beberapa kata lagi

Saya mengerti kebingungan Anda memang untuk apa yang saya baca dari rfc6761 tentang "Nama Domain Penggunaan Khusus" 6.3 [ 3 ] , tentang nama localhost ,

Pengguna dapat berasumsi bahwa permintaan alamat IPv4 dan IPv6 untuk nama host lokal akan selalu diselesaikan ke alamat loopback IP masing-masing .

jadi harusnya diharapkan sebagai default tetapi:

  • Pada Ubuntu 14.04.3 LTS yang diperbarui dan tidak tersentuh /etc/hostssaya menemukan bagian berikut ini dengan ip6-localhost,ip6-loopback

    # The following lines are desirable for IPv6 capable hosts
    ::1     ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
    
  • Pada Suse Enterprise 10 sistem yang saya temukan localhost, ipv6-localhost,ipv6-loopback

    # special IPv6 addresses
    ::1             localhost ipv6-localhost ipv6-loopback
    
  • Pada tua Debian GNU / Linux 8.2 sistem localhost, ip6-localhost,ip6-loopback

    # The following lines are desirable for IPv6 capable hosts
    ::1     localhost ip6-localhost ip6-loopback
    

Itu berarti bahwa, dalam pengalaman saya yang terbatas, Anda harus melihat dalam /etc/hostfile Anda dan memodifikasinya atau menggunakan apa yang akan Anda temukan lakukan, misalnya,

ping6 ipv6-localhost   # On some systems (maybe on Suse) 
ping6 ip6-localhost    # On some systems (maybe on Debian/*buntu)
Cepat
sumber
jawaban yang sangat terperinci terima kasih, apa yang membuat saya khawatir, kita akan diminta untuk menggunakan ipv6 segera dan belum, ada begitu banyak kendala (tidak bisa lebih sederhana daripada localhost) dan tidak ada standarisasi. Saya kira kita tidak akan melakukan apa-apa sampai itu menyebabkan begitu banyak masalah ...
nafas
Seperti yang Anda lihat ::1bekerja pada masing-masing mesin itu ... "Yang menyenangkan tentang standar adalah Anda memiliki begitu banyak pilihan." ASTanenbaum [ 1 ] :-) Sebuah solusi akan ditemukan ... mungkin yang salah! ;)
Hastur
, Aku benar-benar mengerti. ::1adalah ip (v6), dimana as localhostadalah hostname. sepenuhnya pendapat saya tapi saya percaya jika kita tidak menjaga standar seperti apa adanya, kita akan menghadapi banyak masalah dalam waktu dekat. Saya sangat berharap bahwa setelah ipv6 mengambil alih kita tidak perlu mengetik mis. ipv6.google.comBukannyagoogle.com
nafas
1
Sudah jelas bahwa Anda mendapatkannya :-) ... BTW RFC 6761 (Nama Domain Penggunaan Khusus) mencapai tingkat kematangan Standar yang Diusulkan pada Februari 2013. ... jadi masih ada waktu untuk berharap melihatnya sebagai standar sebelum ini sudah terlambat.
Hastur
1
@nafas Mereka telah menambahkan IPv6 ke google.com.
Matt Nordhoff
24

Mencoba:

ping6 ::1

Hasilnya akan terlihat seperti:

# ping6 ::1
PING ::1(::1) 56 data bytes
64 bytes from ::1: icmp_seq=1 ttl=64 time=0.040 ms
(...)
64 bytes from ::1: icmp_seq=9 ttl=64 time=0.037 ms
^C
--- ::1 ping statistics ---
9 packets transmitted, 9 received, 0% packet loss, time 7998ms
rtt min/avg/max/mdev = 0.035/0.042/0.055/0.011 ms

Ubuntu 14.04.1 LTS (Trusty Tahr):

# ping ::1
ping: unknown host ::1
# ping -6 ::1
ping: invalid option -- '6'
Usage: ping [-aAbBdDfhLnOqrRUvV] [-c count] [-i interval] [-I interface]
        [-m mark] [-M pmtudisc_option] [-l preload] [-p pattern] [-Q tos]
        [-s packetsize] [-S sndbuf] [-t ttl] [-T timestamp_option]
        [-w deadline] [-W timeout] [hop1 ...] destination
# ping -V
ping utility, iputils-s20121221

(Sama untuk ping6 -V.)

Archemar
sumber
6
Versi yang lebih baru iputilstidak memiliki ping6utilitas terpisah , dapat digabung dengan ping. Untuk versi tersebut, gunakan ping -6 ::1atau (karena ::1bukan alamat IPv4) ping ::1.
Lekensteyn
1
@Lekensteyn Yang mana? Versi terbaru, -6bahkan tidak dikenali.
edmz
@black: Versi mana yang Anda anggap "terbaru"? ping dan ping6 digabung dalam iputils-s20150815 (centang ping -V). Distro Anda mungkin belum ditingkatkan. (Dan BSD memiliki perangkat lunak mereka sendiri dan tidak menggunakan iputils.)
grawity
@grawity: Saya punya versi terbaru, meskipun itu bukan versi terbaru sebenarnya dan itu memang OOD, bahkan di Arch Linux (20140519).
edmz
@black: "Terbaru tapi bukan yang terbaru yang terbaru"? ... Bagaimanapun, Arch telah memiliki iputils-20150815 dalam [pengujian] selama lebih dari sebulan, meskipun saya tidak tahu kapan itu akan dipindahkan ke stabil.
grawity
9

localhostadalah nama host yang memutuskan ke 127.0.0.1alamat. Kemungkinan /etc/hostsfile Anda memiliki entri terpisah . Jadi coba ini:::1localhost6

ping6 ::1
ping6 localhost6
gogator
sumber
7
Nama host dapat menyelesaikan ke beberapa alamat sekaligus - terutama jika berasal dari protokol yang berbeda. Sebagian besar sistem alias localhostuntuk keduanya 127.0.0.1 dan ::1.
grawity
1
@grawity Tidak ada sistem yang saya periksa gunakan localhostuntuk IPv6. Nama-nama saya menemukan digunakan untuk ::1berada ip6-localhost, ip6-loopback, localhost6, dan localhost6.localdomain6.
kasperd
3
@kasperd, dari Gentoo /etc/hosts: 127.0.0.1 localhost, ::1 localhost; Windows Vista identik (kecuali untuk memasukkan file C:\Windows\System32\drivers\etc). MacOSX 10.9.5 menambahkan fe80::1%lo0 localhostsebagai nama ketiga untuknya.
Tandai
3
@kasperd: Anda belum menggunakan banyak sistem saat itu. Windows, Arch, CentOS, Ubuntu semua peta localhostuntuk ::1. (Saya pikir ini akan menjadi lebih umum karena distro mengadopsi systemd dan mengaktifkan nss_myhostname.)
grawity
2
CentOS 6 memiliki :: 1 sebagai localhost6, meskipun CentOS 7 memiliki localhost untuk keduanya. OpenWRT, Xenserver, dan Solaris tidak memiliki entri IPv6 sama sekali.
qasdfdsaq