Come si esegue il ping di localhost utilizzando IPv6?


22

Sto cercando di capire meglio IPv6 .

In primo luogo, provo ifconfig e ottengo quanto segue:

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

Quindi da quanto sopra posso supporre che IPv6 sia abilitato (correggimi se sbaglio qui).

Ora se uso ping localhostottengo:

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
...

Ma quando uso ping6 localhostottengo:

unknown host

Come si usa ping6? O più specificamente, quali cambiamenti devono essere fatti per rendere il ping6 localhostlavoro (se possibile del tutto)?


3
Se sei su Linux, dovresti generalmente evitare ifconfige route- preferire ip addre ip route, che supportano più funzionalità di rete e hanno un output più coerente.
Grawity

@grawity thx per il compagno di punta, molto utile
nafas,

Risposte:


15

Risposta breve [ 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`

Modifiche per far funzionare ping6 localhost

Se si desidera impostare localhostcome alias per entrambi pingeping6 non è già così sul proprio computer, è sufficiente scrivere nel /etc/hostsfile entrambe le righe:

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

Per quanto riguarda l' alias attualmente utilizzato sul tuo sistema puoi controllare il tuo file hosts, /etc/hosts [ 1 ] o in un posto diverso se su un sistema diverso [ 2 ] .
Si possono trovare ip6-localhost, ip6-loopback, ipv6-localhost, ipv6-loopbacko localhostper sé ...


Qualche parola in più

Comprendo davvero la tua confusione per quello che ho letto dall'rfc6761 su "Nomi di dominio per uso speciale" 6.3 [ 3 ] , sul nome localhost ,

Gli utenti possono presumere che le query di indirizzi IPv4 e IPv6 per i nomi di host locale verranno sempre risolte nel rispettivo indirizzo di loopback IP .

quindi dovrebbe essere previsto come predefinito ma:

  • Nell'attuale Ubuntu 14.04.3 LTS aggiornato e intatto /etc/hostsho trovato la sezione seguente con 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
    
  • Su una Suse Enterprise 10 del sistema che ho trovato localhost, ipv6-localhost,ipv6-loopback

    # special IPv6 addresses
    ::1             localhost ipv6-localhost ipv6-loopback
    
  • Su una vecchia di Debian GNU / Linux 8.2 del sistema localhost, ip6-localhost,ip6-loopback

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

Ciò significa che, nella mia esperienza limitata, dovresti cercare nel tuo /etc/hostfile e modificarlo o utilizzare ciò che troverai facendo, ad esempio,

ping6 ipv6-localhost   # On some systems (maybe on Suse) 
ping6 ip6-localhost    # On some systems (maybe on Debian/*buntu)

risposta molto dettagliata grazie, ciò che mi preoccupa atm, ci verrà richiesto di usare ipv6 molto presto e tuttavia, ci sono così tanti ostacoli (in realtà non potrebbe essere più semplice di localhost) e non ci sono standardizzazioni. Immagino che non faremo nulla fino a quando, causerà così tanti problemi ...
nafas,

Come hai visto ::1lavori su ognuna di quelle macchine ... "La cosa bella degli standard è che hai così tanti tra cui scegliere." ASTanenbaum [ 1 ] :-) Una soluzione sarà trovata ... forse quella sbagliata! ;)
Hastur,

, Capisco perfettamente amico. ::1è l'ip (v6), dove localhostè il hostname. completamente la mia opinione ma credo che se non manteniamo gli standard così come sono, affronteremo molti problemi nel prossimo futuro. Spero davvero che una volta superato ipv6 non dovremo digitare ad es. ipv6.google.comInvece digoogle.com
nafas,

1
Era chiaro che hai capito :-) ... BTW RFC 6761 (nomi di dominio per uso speciale) ha raggiunto il livello di maturità standard proposto nel febbraio 2013. ... quindi c'è ancora tempo per sperare di vederlo come standard prima sarà troppo tardi.
Hastur,

1
@nafas Hanno aggiunto IPv6 a google.com.
Matt Nordhoff,

24

Provare:

ping6 ::1

Il risultato sarebbe simile a:

# 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

(Lo stesso per ping6 -V.)


6
Le versioni più recenti di iputilsnon hanno ping6utilità separate , con cui sono state unite ping. Per tali versioni, utilizzare ping -6 ::1o (poiché ::1non è un indirizzo IPv4) ping ::1.
Lekensteyn,

1
@Lekensteyn Quale? Ultima versione, -6non è nemmeno riconosciuta.
edmz,

@black: quale versione consideri "più recente"? ping e ping6 sono stati uniti in iputils-s20150815 (controllo ping -V). La tua distribuzione potrebbe non essere ancora stata aggiornata. (E i BSD hanno il loro software e non usano iputils.)
Grawity

@grawity: ho l'ultima versione, anche se non è l'ultima versione attuale ed è davvero OOD, anche su Arch Linux (20140519).
Edmz,

@black: "Ultimi ma non gli ultimi"? ... Comunque, Arch ha avuto iputils-20150815 in [test] per oltre un mese, anche se non ho idea di quando verrà spostato su stabile.
Grawity,

9

localhostè il nome host che si risolve 127.0.0.1nell'indirizzo. Il tuo /etc/hostsfile dovrebbe avere una voce separata per ::1, probabilmente localhost6. Quindi prova questi:

ping6 ::1
ping6 localhost6

7
Un nome host può risolvere più indirizzi contemporaneamente, soprattutto se provengono da protocolli diversi. La maggior parte dei sistemi alias localhostper entrambi 127.0.0.1 e ::1.
Grawity

1
@grawity Nessuno dei sistemi che ho controllato usa localhostper IPv6. I nomi ho trovato usato per ::1erano ip6-localhost, ip6-loopback, localhost6, e localhost6.localdomain6.
Kasperd,

3
@kasperd, from a Gentoo /etc/hosts: 127.0.0.1 localhost, ::1 localhost; Windows Vista è identico (tranne che per l'inserimento del file C:\Windows\System32\drivers\etc). MacOSX 10.9.5 aggiunge fe80::1%lo0 localhostun terzo nome per questo.
Segna il

3
@kasperd: allora non hai usato molti sistemi. Windows, Arch, CentOS, Ubuntu tutta mappa localhosta ::1. (Penso che questo sarà ancora più comune poiché le distribuzioni adottano systemd e abilitano nss_myhostname.)
Grawity

2
CentOS 6 ha :: 1 come localhost6, sebbene CentOS 7 abbia localhost per entrambi. OpenWRT, Xenserver e Solaris non hanno alcuna voce IPv6.
qasdfdsaq,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.