Je configure un réseau à double pile sur un serveur KVM à l'aide d'adresses IPv4 et IPv6 statiques fournies par mon fournisseur.
Je saisis toutes les adresses, les serveurs de noms et les passerelles nécessaires à l’installation d’Ubuntu. Après cela, j'ai vérifié le fichier /etc/network/interfaces
et remarqué que la strophe IPv6 était absente (une exécution de ifconfig
l'a confirmé), j'ai donc ajouté les lignes appropriées. Ceci est 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 restart
et constaté que, alors qu'IPv4 fonctionnait, la connectivité IPv6 sortante n'était pas disponible (je n'avais pas encore vérifié la connectivité entrante).
ifconfig
et ip -6 addr
indiquent 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, il n’existe pas de route par défaut 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
Essayer d’ajouter l’itinéraire manquant mène à l’erreur "Aucun itinéraire à héberger":
$ Sudo ip -6 route add default via 2001:b60:1000::1
RTNETLINK answers: No route to Host
Qu'est-ce qui pourrait ne pas être correct et comment puis-je corriger la configuration du réseau afin de pouvoir faire fonctionner la pile IPv6?
Il s'est avéré que la longueur du masque de réseau que le fournisseur m'avait donnée était incorrecte: celle de droite était 48
. Le changer a fait l'affaire.
Dans votre machine virtuelle, exécutez ce qui suit:
ping6 ff02::2%eth0
Ce ff02::2
est 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 dans l'adresse gateway
.
iface eth0 inet6 static
.....
gateway fe80::56e6:fcff:fef4:66f1
.....
Votre masque de réseau doit être 64. Avec IPv6, chaque réseau local 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.