Intentar habilitar IPv6 da como resultado el error "No hay ruta al host"

8

Estoy configurando una red de doble pila en un servidor KVM utilizando direcciones IPv4 e IPv6 estáticas proporcionadas por mi proveedor.

Ingresé todas las direcciones, servidores de nombres y puertas de enlace según sea necesario al instalar Ubuntu. Después de eso, verifiqué el /etc/network/interfacesarchivo y noté que la estrofa IPv6 estaba ausente (una ifconfigejecución confirmó esto), así que agregué las líneas relevantes. Este es el archivo final:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
        address 151.236.18.86
        netmask 255.255.255.0
        network 151.236.18.0
        broadcast 151.236.18.255
        gateway 151.236.18.1
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 91.227.204.227 91.227.205.227
        dns-search mydomainname.com
iface eth0 inet6 static
        pre-up modprobe ipv6
        address 2001:b60:1000:151:236:18:86:0
        netmask 112
        gateway 2001:b60:1000::1
        dns-nameservers 2001:4860:4860::8888 2001:4860:4860::8844
        dns-search mydomainname.com

Luego reinicié las redes a través de sudo /etc/init.d/networking stop && sudo /etc/init.d/networking restarty noté que, mientras IPv4 funcionaba, la conectividad IPv6 saliente no estaba disponible (todavía no verifiqué la conectividad entrante).

ifconfigy ip -6 addrmuestra que se reconoce la dirección IPv6:

eth0      Link encap:Ethernet  HWaddr 52:54:00:b1:27:87  
          inet addr:151.236.18.86  Bcast:151.236.18.255  Mask:255.255.255.0
          inet6 addr: fe80::5054:ff:feb1:2787/64 Scope:Link
          inet6 addr: 2001:b60:1000:151:236:18:86:0/112 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:16409 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1178 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1126656 (1.1 MB)  TX bytes:763658 (763.6 KB)

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
    inet6 2001:b60:1000:151:236:18:86:0/112 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:feb1:2787/64 scope link 
       valid_lft forever preferred_lft forever

Por el contrario, no existe una ruta predeterminada para la pila IPv6:

$ ip -6 route
2001:b60:1000:151:236:18:86:0/112 dev eth0  proto kernel  metric 256 
fe80::/64 dev eth0  proto kernel  metric 256 

Intentar agregar la ruta faltante conduce al error "No hay ruta al host":

$ sudo ip -6 route add default via 2001:b60:1000::1
RTNETLINK answers: No route to host

¿Qué podría estar mal y cómo puedo arreglar la configuración de red para que la pila de IPv6 funcione?

Alessandro Menti
fuente

Respuestas:

6

Dentro de su máquina virtual, ejecute lo siguiente:

ping6 ff02::2%eth0

Esta ff02::2es la dirección de multidifusión IPv6 "todos los enrutadores". El enrutador en enlace responderá al ping con su propia dirección. Por ejemplo:

64 bytes from fe80::56e6:fcff:fef4:66f1: icmp_seq=1 ttl=64 time=0.347 ms

Luego puede agregar esto como la gatewaydirección.

iface eth0 inet6 static
        .....
        gateway fe80::56e6:fcff:fef4:66f1
        .....
Michael Hampton
fuente
Lo hice, respondieron tres enrutadores (nadie coincidía con la dirección de la puerta de enlace que me dio mi proveedor); Elegí el que tenía la latencia más baja y cambié la configuración de la red. Ahora la resolución de nombres funciona, pero la conectividad IPv6 no (emití ping6 -c 3 ipv6.google.com, el DNS encontró la dirección pero hubo una pérdida de paquetes del 100%). ¿Algunas ideas?
Alessandro Menti
¿Tres enrutadores diferentes respondieron? Su proveedor tiene una configuración aún más extraña de lo que sospechábamos. En este punto, solo puedo sugerirle que pruebe cada uno de ellos y vea si uno de ellos funciona. Si ninguno de ellos funciona, deberá ponerse en contacto con el proveedor para pedirle que repare su red dañada. :)
Michael Hampton
3

Su máscara de red debe ser 64. Con IPv6, cada LAN suele ser un / 64. Supongo que su proveedor le permite usar un / 112 de ese / 64, pero debe configurar un / 64 en la interfaz.

Sander Steffann
fuente
Reconfiguré la pila IPv6 para usar un bloque de red / 64, desafortunadamente el problema persiste con los mismos síntomas.
Alessandro Menti
Lo siento, ahora veo que su host está en 2001: b60: 1000: 151 :: / 64 y su puerta de enlace en 2001: b60: 1000: 0 :: / 64. CDLAN debe haberle dado la información incorrecta, o su red IPv6 está en mal estado y / o se desvía de la práctica estándar ...
Sander Steffann
1
Desafortunadamente, esta extraña desviación es muy común entre los proveedores de VPS.
Michael Hampton
1

Resultó que la longitud de la máscara de red que me dio el proveedor era incorrecta: la correcta era la correcta 48. Cambiarlo hizo el truco.

Alessandro Menti
fuente