Une tentative d'activation d'IPv6 entraîne une erreur «Pas de route vers l'hôte»

8

Je configure un réseau à double pile sur un serveur KVM à l'aide des adresses IPv4 et IPv6 statiques fournies par mon fournisseur.

J'entre toutes les adresses, serveurs de noms et passerelles comme requis lors de l'installation d'Ubuntu. Après cela, j'ai vérifié le /etc/network/interfacesfichier et j'ai remarqué que la strophe IPv6 était absente (une ifconfigexécution l'a confirmé), j'ai donc ajouté les lignes pertinentes. Voici le fichier 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

J'ai ensuite redémarré la mise en réseau via sudo /etc/init.d/networking stop && sudo /etc/init.d/networking restartet j'ai remarqué que, pendant que IPv4 fonctionnait, la connectivité IPv6 sortante n'était pas disponible (je n'ai pas encore vérifié la connectivité entrante).

ifconfiget ip -6 addrmontrer que l'adresse IPv6 est reconnue:

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

Au contraire, aucune route par défaut n'existe pour la pile 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 

La tentative d'ajout de l'itinéraire manquant entraîne l'erreur "Aucun itinéraire vers l'hôte":

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

Que pourrait-il y avoir de mal et comment puis-je corriger la configuration réseau pour que la pile IPv6 fonctionne?

Alessandro Menti
la source

Réponses:

6

Dans votre machine virtuelle, exécutez ce qui suit:

ping6 ff02::2%eth0

Il ff02::2s'agit de l'adresse de multidiffusion IPv6 «tous les routeurs». Le routeur en liaison répondra au ping avec sa propre adresse. Par exemple:

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

Vous pouvez ensuite l'ajouter comme gatewayadresse.

iface eth0 inet6 static
        .....
        gateway fe80::56e6:fcff:fef4:66f1
        .....
Michael Hampton
la source
Je l'ai fait, trois routeurs ont répondu (personne ne correspondait à l'adresse de passerelle que mon fournisseur m'a donnée); J'ai choisi celui avec la latence la plus faible et changé la configuration du réseau. Maintenant, la résolution de noms fonctionne, mais pas la connectivité IPv6 (j'ai émis ping6 -c 3 ipv6.google.com, le DNS a trouvé l'adresse mais il y a eu une perte de paquets de 100%). Des idées?
Alessandro Menti
Trois routeurs différents ont répondu? Votre fournisseur a une configuration encore plus bizarre que nous ne le pensions. À ce stade, je ne peux que vous suggérer d'essayer chacun d'eux et de voir si l'un d'eux fonctionne. Si aucun d'entre eux ne fonctionne, vous devrez contacter le fournisseur pour lui demander de bien vouloir réparer son réseau défectueux. :)
Michael Hampton
3

Votre masque de réseau doit être 64. Avec IPv6, chaque LAN est généralement un / 64. Je suppose que votre fournisseur vous permet d'utiliser un / 112 à partir de ce / 64, mais vous devez configurer un / 64 sur l'interface.

Sander Steffann
la source
J'ai reconfiguré la pile IPv6 pour utiliser un netblock / 64, malheureusement le problème persiste avec les mêmes symptômes.
Alessandro Menti
Je suis désolé, je vois maintenant que votre hôte est en 2001: b60: 1000: 151 :: / 64 et votre passerelle en 2001: b60: 1000: 0 :: / 64. CDLAN doit vous avoir donné des informations erronées, ou leur réseau IPv6 est foiré et / ou s'écarte de la pratique standard ...
Sander Steffann
1
Cette déviation étrange est malheureusement trop courante chez les fournisseurs de VPS.
Michael Hampton
1

Il s'est avéré que la longueur du masque de réseau qui m'a été donnée par le fournisseur était incorrecte: la bonne l'était 48. Le changer a fait l'affaire.

Alessandro Menti
la source