¿Cómo obtengo la dirección IPv6 pingable de mi máquina?

14

cuando intento: $ ip -6 addr obtengo algo como:

inet6 fe80::d773:9cf0:b0fd:572d/64 scope link

si trato de hacer ping desde la máquina en sí:

$ ping6 fe80::d773:9cf0:b0fd:572d/64
unknown host

$ ping6 fe80::d773:9cf0:b0fd:572d
connect: Invalid argument

¿Qué estoy haciendo mal?

maratón
fuente

Respuestas:

24

Cualquier dirección IPv6 que comience fe80:es el equivalente de la 169.254.*.*dirección IPv4 , es decir, es una dirección local de enlace, accesible solo en el segmento de red al que está directamente conectado, utilizando la NIC que se conecta específicamente a ese segmento. Sin embargo, a diferencia de IPv4, es perfectamente normal que una NIC tenga la dirección IPv6 local de enlace y una o más direcciones IPv6 globales simultáneamente.

Como una fe80:dirección IPv6 es local de enlace, debe especificar la interfaz de red que desea usar al hacer ping.

Ejemplo:

$ ping6 fe80::beae:c5ff:febe:a742
connect: Invalid argument

$ ping6 -I eth0 fe80::beae:c5ff:febe:a742
PING fe80::beae:c5ff:febe:a742(fe80::beae:c5ff:febe:a742) from fe80::beae:c5ff:febe:a742%eth0 eth0: 56 data bytes
64 bytes from fe80::beae:c5ff:febe:a742%eth0: icmp_seq=1 ttl=64 time=0.182 ms
64 bytes from fe80::beae:c5ff:febe:a742%eth0: icmp_seq=2 ttl=64 time=0.167 ms
...

También puede añadir la interfaz al final de la dirección mediante el uso de la %señal: ping6 fe80::beae:c5ff:febe:a742%eth0.

Este requisito es solo para direcciones IPv6 de enlace local: puede hacer ping a direcciones IPv6 enrutables globalmente sin especificar la interfaz.

$ ping6 2a00:1450:400f:80a::200e  # that's ipv6.google.com
PING 2a00:1450:400f:80a::200e(2a00:1450:400f:80a::200e) 56 data bytes
64 bytes from 2a00:1450:400f:80a::200e: icmp_seq=1 ttl=55 time=17.6 ms
64 bytes from 2a00:1450:400f:80a::200e: icmp_seq=2 ttl=55 time=19.6 ms
...
telcoM
fuente
También dice scope linkjusto en la salida :)
hobbs
44
Solo como un apéndice a la respuesta: también puede especificar la interfaz al final de la dirección:ping6 fe80::beae:c5ff:febe:a742%eth0
Ferrybig
@Ferrybig: gracias por recordarme, actualicé mi respuesta.
telcoM
1
Tenga en cuenta que si desea hacer ping a una dirección IPv6 remota, su enrutador doméstico también debe ser compatible con IPv6. Los enrutadores más antiguos no siempre tienen la actualización de software / firmware para admitir una conexión a través de ipv6. Lo más probable es que reciba el siguiente mensaje:ping6: UDP connect: No route to host
Daniel Gelling
4

Desde man ping6, debe indicarle a ping qué interfaz está utilizando:

-I dirección de interfaz

Establecer la dirección de origen a la dirección de interfaz especificada. El argumento puede ser una dirección IP numérica o el nombre del dispositivo. Al hacer ping a la dirección local de enlace IPv6, se requiere esta opción.

Por ejemplo, si su interfaz es eth0:

ping6 -I eth0 fe80::xxxxxx

o, sin la -Iopción:

ping6 fe80:xxxxxx%eth0
garethTheRed
fuente