¿Cómo hago ping localhost usando IPv6?

22

Estoy tratando de entender mejor IPv6 .

En primer lugar, intento ifconfig y obtengo lo siguiente:

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

Entonces, de lo anterior, puedo suponer que IPv6 está habilitado (corrígeme si me equivoco aquí).

Ahora si uso ping localhostobtengo:

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

Pero cuando uso ping6 localhostobtengo:

unknown host

¿Cómo lo uso ping6? O más específicamente, ¿qué cambios hay que hacer para hacer el ping6 localhosttrabajo (si es posible)?

nafas
fuente
3
Si está en Linux, generalmente debe evitar ifconfigy route, preferir ip addry ip route, que admiten más funciones de red y tienen una salida más consistente.
Grawity
@grawity thx para el compañero de propinas, muy útil
nafas

Respuestas:

15

Respuesta corta [ 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`

Cambios para hacer trabajar ping6 localhost

Si desea establecer localhostcomo alias para ambos pingyping6 aún no lo está en su máquina, es suficiente escribir en el /etc/hostsarchivo ambas líneas:

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

Por lo que se refiere al alias actualmente utilizado en su sistema, puede verificar su archivo de hosts, /etc/hosts [ 1 ] o en un lugar diferente si está en un sistema diferente [ 2 ] .
Usted puede encontrar ip6-localhost, ip6-loopback, ipv6-localhost, ipv6-loopbacko localhostsí ...


Algunas palabras mas

Comprendo su confusión por lo que leí en el rfc6761 sobre "Nombres de dominio de uso especial" 6.3 [ 3 ] , sobre el nombre localhost ,

Los usuarios pueden suponer que las consultas de direcciones IPv4 e IPv6 para nombres de host locales siempre se resolverán en la dirección de bucle de retorno IP correspondiente .

por lo que debe esperarse como predeterminado pero:

  • En el actual Ubuntu 14.04.3 LTS actualizado e intacto /etc/hosts, encontré la siguiente sección 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
    
  • En un Suse Enterprise 10 sistema que encontré localhost, ipv6-localhost,ipv6-loopback

    # special IPv6 addresses
    ::1             localhost ipv6-localhost ipv6-loopback
    
  • En un viejo 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
    

Eso significa que, en mi experiencia limitada, debe buscar en su /etc/hostarchivo y modificarlo o usar lo que encontrará haciendo, por ejemplo,

ping6 ipv6-localhost   # On some systems (maybe on Suse) 
ping6 ip6-localhost    # On some systems (maybe on Debian/*buntu)
Hastur
fuente
respuesta muy detallada gracias, lo que me preocupa atm, seremos obligados a usar ipv6 muy pronto y, sin embargo, hay muchos obstáculos (realmente no podría ser más simple que localhost) y no hay estandarizaciones. Supongo que no haremos nada al respecto hasta que cause tantos problemas ...
nafas
Como ha visto, ::1funciona en cada una de esas máquinas ... "Lo bueno de los estándares es que tiene tantos para elegir". ASTanenbaum [ 1 ] :-) Se encontrará una solución ... ¡quizás la equivocada! ;)
Hastur
, Lo entiendo totalmente amigo. ::1es la ip (v6), donde como localhostes la hostname. totalmente mi opinión, pero creo que si no mantenemos el estándar como está, enfrentaremos muchos problemas en un futuro próximo. Realmente espero que una vez que ipv6 adelanta que no tenemos que escribir por ejemplo, ipv6.google.comen lugar degoogle.com
nafas
1
Estaba claro que lo entendiste :-) ... BTW RFC 6761 (Nombres de dominio de uso especial) alcanzó el nivel de madurez estándar propuesto en febrero de 2013. ... así que todavía hay tiempo para esperar verlo como estándar antes Será demasiado tarde.
Hastur
1
@nafas Han agregado IPv6 a google.com.
Matt Nordhoff el
24

Tratar:

ping6 ::1

El resultado se vería así:

# 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 mismo para ping6 -V)

Archemar
fuente
66
Las versiones más recientes de iputilsno tienen una ping6utilidad separada , se fusionó con ping. Para esas versiones, use ping -6 ::1o (ya ::1que no es una dirección IPv4) ping ::1.
Lekensteyn
1
@Lekensteyn ¿Cuál? La última versión, -6ni siquiera es reconocida.
edmz
@black: ¿Qué versión consideras "más reciente"? ping y ping6 se fusionaron en iputils-s20150815 (consultar ping -V). Es posible que tu distribución aún no se haya actualizado. (Y los BSD tienen su propio software y no usan iputils)
Grawity
@grawity: Tengo la última versión, aunque no es la última versión real y de hecho es OOD, incluso en Arch Linux (20140519).
edmz
@black: "Último pero no el último"? ... De todos modos, Arch ha tenido iputils-20150815 en [pruebas] durante más de un mes, aunque no tengo idea de cuándo se va a mover a estable.
Grawity
9

localhostes el nombre de host que se resuelve en la 127.0.0.1dirección. Su /etc/hostsarchivo debe tener una entrada separada para ::1, probablemente localhost6. Entonces prueba estos:

ping6 ::1
ping6 localhost6
gogators
fuente
77
Un nombre de host puede resolverse en varias direcciones a la vez, especialmente si provienen de protocolos diferentes. La mayoría de los sistemas alias localhosta ambos 127.0.0.1 y ::1.
Grawity
1
@grawity Ninguno de los sistemas que verifiqué usa localhostpara IPv6. Los nombres que encontré utilicé para ::1eran ip6-localhost, ip6-loopback, localhost6, y localhost6.localdomain6.
kasperd
3
@kasperd, de un Gentoo /etc/hosts: 127.0.0.1 localhost, ::1 localhost; Windows Vista es idéntico (excepto para poner el archivo C:\Windows\System32\drivers\etc). MacOSX 10.9.5 agrega fe80::1%lo0 localhostcomo un tercer nombre para ello.
Mark
3
@kasperd: No has usado muchos sistemas entonces. Windows, Arch, CentOS, Ubuntu todos se asignan localhosta ::1. (Creo que esto va a ser aún más común a medida distribuciones adoptan SystemD y permiten nss_myhostname.)
grawity
2
CentOS 6 tiene :: 1 como localhost6, aunque CentOS 7 tiene localhost para ambos. OpenWRT, Xenserver y Solaris carecen de entradas IPv6.
qasdfdsaq