Mar 212013
 

Après avoir un peu bataillé pour mettre en place le protocole IpV6 sur mon serveur dédié OVH, j’ai décidé de faire un petit récapitulatif des étapes importantes nécessaires à la configuration IPv6…
Pour quelques informations de bases sur l’IpV6, je vous invite à relire cet ancien article qui présente brièvement les fondements de ce protocole. Quelques mots sur l’IPv6

Vérification du noyau

Si le titre stipule un serveur OVH, n’importe quel serveur booté sur un kernel IpV6 devrait faire l’affaire. Je ne m’attarderais donc pas ici sur la compilation d’un noyau supportant l’IpV6. Pour le reste, les étapes seront similaires sur la plupart des systèmes Debian de base.

Dans la plupart des cas, le noyau peut vous renseigner sur la potentielle prise en charge. la commande suivante vous permet de récupérer le nom du noyau booté:

devrait retourner une réponse de la forme suivante:
Linux ns.domain.com 3.2.13-grsec-xxxx-grs-ipv6-64 #1 SMP Thu Mar 29 09:48:59 UTC 2012 x86_64 GNU/Linux

Dans ce cas, on devine bien que le Kernel supporte l’IpV6…

Récupération du préfixe IpV6

Il vous est alors nécessaire de connaître le bloc d’adresse qui vous est attribué par votre hébergeur. Si votre serveur est hébergé chez OVH, vous trouverez celle-ci dans le manager rubrique « Récapitulatif »

OVH (tout comme la plupart des autres hébergeur) vous fourni un bloc du type 2001:41d0:xxxx:xxxx::/64
Les informations ci-dessous sont à décrypter de la façon suivante:

la première partie (4 fois 4 chiffres) est votre préfixe Ipv6. Le /64 correspond à la longueur du préfixe soit, dans notre cas 64 bits. Une adresse IpV6 étant codée sur 128 bits, il vous reste donc 64 bits disponibles pour votre sous-réseau soit 2^64 combinaisons. Si l’on se rappelle qu’une adresse IpV4 se code sur 32 bits et n’offre donc (au total) que 2^32 combinaisons, vous devez commencer à saisir la force de l’Ipv6…

 Choix d’une adresse et configuration

Vous pouvez maintenant choisir une ou plusieurs adresses à configurer pour votre serveur. On peut par exemple choisir l’adresse suivante:

La partie en rouge est la partie fixée par votre hébergeur (que vous ne pouvez donc pas changer.) Vous êtes ensuite libre de faire ce que vous souhaitez.
Un petit rappel, les notations suivantes sont équivalentes:

L’ajout de votre première adresse se fait en insérant les lignes suivantes dans le fichier /etc/network/interfaces

Pour chaque IP supplémentaire, ajouter les lignes suivantes à la fin du même fichier

Après cette opération, un simple redémarrage du réseau fera l’affaire.

Attention, si vous êtes connecté en ssh sur votre serveur, effectuez bien un restart et non un stop suivi d’un start. Vous risqueriez alors de perdre votre connexion réseau donc votre seul accès au serveur…

Et voilà, à ce stade vous devriez avoir une connectivité IpV6. Pour le vérifier, vous pouvez soit effectuer un test de ping vers votre serveur ou bien l’inverse. Par exemple:

Problèmes de Gateway

Dans certains cas, il est possible que vous n’arriviez pas à vous connecter en IpV6 ou que la connectivité se coupe après un certain temps. Il peut s’agir d’un problème de gateway mal configurée. Il vous faut alors manuellement reconfigurer la porte par défaut à l’aide de la commande suivante:

Si votre serveur est hébergé chez OVH, la gateway est toujours de la forme suivante:

2001:41d0:xxxx:xxFF:FF:FF:FF:FF (soit le début du préfixe IpV6 + 5 fois FF)

Ainsi, le préfixe 2001:41d0:3a:96a::/64 aura pour gateway 2001:41d0:3a:9FF:FF:FF:FF:FF

 N’hésitez pas à demander de l’aide…

Voici donc qui conclu ce post. J’espère avoir été clair pour la plupart. Si malgré tout, vous n’arrivez toujours pas à configurer votre IpV6, n’hésitez pas à laisser un commentaire, je pourrais peut-être préciser certains points et si nécessaire mettre ce post à jour.

Pour aller plus loin :

Pour quelques informations supplémentaires à propos du protocole IPv6 et de sa configuration, n’hésitez pas à vous rendre sur les sites suivants:

http://fr.wikipedia.org/wiki/IPv6

http://wiki.debian.org/DebianIPv6

http://guides.ovh.com/Ipv4Ipv6

 

  8 commentaires à “Configuration IPV6 sur un serveur Debian OVH”

  1. Bonjour

    Impossible d’avoir une connexion IPV6

    Fichier INTERFACES

    # 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

    auto eth2
    iface eth2 inet static
    address 51.255.64.111
    netmask 255.255.255.0
    network 51.255.64.0
    broadcast 51.255.64.255
    gateway 51.255.64.254

    iface eth2 inet6 static
    address 2001:41d0:1008:0c6f::2
    netmask 64
    post-up /sbin/ip -f inet6 route add 2001:41d0:1008:0c6f::1 dev eth2
    post-up /sbin/ip -f inet6 route add default via 2001:41d0:1008:0c6f::1
    pre-down /sbin/ip -f inet6 route del 2001:41d0:1008:0c6f::1 dev eth2
    pre-down /sbin/ip -f inet6 route del default via 2001:41d0:1008:0c6f::1
    # post-up /sbin/ip -f inet6 route add 2001:41d0:1008:0cff:ff:ff:ff:ff dev eth2
    # post-up /sbin/ip -f inet6 route add default via 2001:41d0:1008:0cff:ff:ff:ff:ff
    # pre-down /sbin/ip -f inet6 route del 2001:41d0:1008:0cff:ff:ff:ff:ff dev eth2
    # pre-down /sbin/ip -f inet6 route del default via 2001:41d0:1008:0cff:ff:ff:ff:ff
    # post-up /sbin/ip -family inet6 route add 2001:41d0:0c33:0cff:ff:ff:ff:ff dev eth2
    # post-up /sbin/ip -family inet6 route add default via 2001:41d0:0c33:0cff:ff:ff:ff:ff
    # pre-down /sbin/ip -family inet6 route del default via 2001:41d0:0c33:0cff:ff:ff:ff:ff
    # pre-down /sbin/ip -family inet6 route del 2001:41d0:0c33:0cff:ff:ff:ff:ff dev eth2
    # post-up /sbin/ip -6 addr add 2001:41d0:0c33:0c33::1/64 dev eth2
    # pre-down /sbin/ip -6 addr del 2001:41d0:0c33:0c33::1/64 dev eth2

    ————————————————————–

    print-on-plexi.be
    ns3024854.ip-51-255-64.eu
    Ip : 51.255.64.111 Gérer
    Ipv6 : 2001:41d0:1008:0c6f::/64

    ————————————————————–

    root@print-on-plexi:/etc# ping6 -c 4 2001:41d0:1008:0c6f::2
    PING 2001:41d0:1008:0c6f::2(2001:41d0:1008:c6f::2) 56 data bytes
    From 2001:41d0:1008:c6f:: icmp_seq=1 Destination unreachable: Address unreachable
    From 2001:41d0:1008:c6f:: icmp_seq=2 Destination unreachable: Address unreachable
    From 2001:41d0:1008:c6f:: icmp_seq=3 Destination unreachable: Address unreachable
    From 2001:41d0:1008:c6f:: icmp_seq=4 Destination unreachable: Address unreachable

    — 2001:41d0:1008:0c6f::2 ping statistics —
    4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 3016ms

    root@print-on-plexi:/etc# ping6 -c 4 2001:41d0:1008:0c6f::1
    PING 2001:41d0:1008:0c6f::1(2001:41d0:1008:c6f::1) 56 data bytes
    From 2001:41d0:1008:c6f:: icmp_seq=1 Destination unreachable: Address unreachable
    From 2001:41d0:1008:c6f:: icmp_seq=2 Destination unreachable: Address unreachable
    From 2001:41d0:1008:c6f:: icmp_seq=3 Destination unreachable: Address unreachable
    From 2001:41d0:1008:c6f:: icmp_seq=4 Destination unreachable: Address unreachable

    — 2001:41d0:1008:0c6f::1 ping statistics —
    4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 3015ms

    INTERFACE OVH

    Adresse IP Pays Reverse MAC virtuelle Mitigation Firewall Firewall Game Alertes
    2001:41d0:1008:c6f::/64 –
    2001:41d0:1008:c6f::2 – print-on-plexi.be.

    Ceci est peut etre utile aussi

    root@print-on-plexi:/etc# ip -6 addr show eth2
    8: eth2: mtu 1500 qlen 1000
    inet6 2001:41d0:1008:c6f::/64 scope global
    valid_lft forever preferred_lft forever
    inet6 fe80::ec4:7aff:fe7b:5eca/64 scope link
    valid_lft forever preferred_lft forever

    root@print-on-plexi:/etc#

    root@print-on-plexi:/etc# dig print-on-plexi.be AAAA

    ; <> DiG 9.9.5-9+deb8u12-Debian <> print-on-plexi.be AAAA
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43024
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4096
    ;; QUESTION SECTION:
    ;print-on-plexi.be. IN AAAA

    ;; ANSWER SECTION:
    print-on-plexi.be. 86400 IN AAAA 2001:41d0:1008:c6f::2

    ;; AUTHORITY SECTION:
    print-on-plexi.be. 3600 IN NS ns1.print-on-plexi.be.
    print-on-plexi.be. 3600 IN NS sdns2.ovh.net.

    ;; ADDITIONAL SECTION:
    sdns2.ovh.net. 28 IN A 213.251.188.141

    ;; Query time: 2 msec
    ;; SERVER: 127.0.0.1#53(127.0.0.1)
    ;; WHEN: Mon Jul 10 20:55:31 CEST 2017
    ;; MSG SIZE rcvd: 135

    root@print-on-plexi:/etc#

    root@print-on-plexi:/etc# dig -x 2001:41d0:1008:c6f:: ANY

    ; <> DiG 9.9.5-9+deb8u12-Debian <> -x 2001:41d0:1008:c6f:: ANY
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 39419
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4096
    ;; QUESTION SECTION:
    ;0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.f.6.c.0.8.0.0.1.0.d.1.4.1.0.0.2.ip6.arpa. IN ANY

    ;; Query time: 4002 msec
    ;; SERVER: 127.0.0.1#53(127.0.0.1)
    ;; WHEN: Mon Jul 10 20:58:28 CEST 2017
    ;; MSG SIZE rcvd: 101

    root@print-on-plexi:/etc#

    root@print-on-plexi:/etc# netstat -lnptu |grep "named\W*$"
    tcp 0 0 178.32.102.179:53 0.0.0.0 LISTEN 1052/named
    tcp 0 0 10.8.0.1:53 0.0.0.0 LISTEN 1052/named
    tcp 0 0 178.32.42.185:53 0.0.0.0 LISTEN 1052/named
    tcp 0 0 51.255.64.111:53 0.0.0.0 LISTEN 1052/named
    tcp 0 0 127.0.0.1:53 0.0.0.0 LISTEN 1052/named
    tcp 0 0 127.0.0.1:953 0.0.0.0 LISTEN 1052/named
    tcp6 0 0 :::53 :: LISTEN 1052/named
    tcp6 0 0 ::1:953 :: LISTEN 1052/named
    udp 0 0 178.32.102.179:53 0.0.0.0 1052/named
    udp 0 0 10.8.0.1:53 0.0.0.0 1052/named
    udp 0 0 178.32.42.185:53 0.0.0.0 1052/named
    udp 0 0 51.255.64.111:53 0.0.0.0 1052/named
    udp 0 0 127.0.0.1:53 0.0.0.0 1052/named
    udp6 0 0 :::53 :: 1052/named
    root@print-on-plexi:/etc#

    root@print-on-plexi:/etc/bind# route -6
    Kernel IPv6 routing table
    Destination Next Hop Flag Met Ref Use If
    ::1/128 :: U 256 0 0 lo
    2001:41d0:c33:cff:ff:ff:ff:ff/128 :: U 1024 0 1 eth2
    2001:41d0:1008:c6f::/64 :: U 256 1 0 eth2
    2001:41d0:1008:cff:ff:ff:ff:ff/128 :: U 1024 0 20 eth2
    fe80::/64 :: U 256 0 0 eth2
    ::/0 2001:41d0:1008:cff:ff:ff:ff:ff UG 1024 11 0 eth2
    ::/0 :: !n -1 1 24834 lo
    ::1/128 :: Un 0 1 5949 lo
    2001:41d0:1008:c6f::/128 :: Un 0 1 72523 lo
    fe80::ec4:7aff:fe7b:5eca/128 :: Un 0 1 728 lo
    ff00::/8 :: U 256 1 0 eth2
    ::/0 :: !n -1 1 24834 lo
    root@print-on-plexi:/etc/bind#

    Fichier /etc/host

    # Do not remove the following line, or various programs
    # that require network functionality will fail.
    127.0.0.1 localhost.localdomain localhost
    51.255.64.111 print-on-plexi.be print-on-plexi.be
    51.255.64.111 print-on-plexi.be print-on-plexi
    51.255.64.111 Server1 Server1
    2001:41d0:1008:0c6f::2 print-on-plexi.be print-on-plexi.be
    2001:41d0:1008:0c6f::2 print-on-plexi.be print-on-plexi

    # The following lines are desirable for IPv6 capable hosts
    #(added automatically by netbase upgrade)

    ::1 ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
    ff02::3 ip6-allhosts

    Merci de votre aide car cela est un casse tete ce truc d'IPV6.

  2. j’ai suivi la procedure indique mais apres un certain delay je perd l ipv6 je doit a chaque fois ajouter la route

    • Bonjour,
      Avez vous bien effectué la dernière étape? Quel est le délai à partir duquel l’IpV6 est perdue? (Est-ce que cela se passe après un redémarrage du serveur?)
      Cordialement,

  3. Bonjour,

    J’ai suivi ta procédure et je ne vois pas ma nouvelle adresse ipv6 avec ifconfig et elle ne répond pas au ping6
    Ci-dessius mon interfaces je suis chez so you start:

    # 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

    auto eth0
    iface eth0 inet static
    address 188.165.226.65
    netmask 255.255.255.0
    network 188.165.226.0
    broadcast 188.165.226.255
    gateway 188.165.226.254

    iface eth0 inet6 static
    address 2001:41D0:2:AD41::1
    netmask 64
    route -A inet6 add default gw 2001:41D0:2:ADff:ff:ff:ff:ff dev eth0
    post-up /sbin/ip -family inet6 route add 2001:41D0:2:ADff:ff:ff:ff:ff dev eth0
    post-up /sbin/ip -family inet6 route add default via 2001:41D0:2:ADff:ff:ff:ff:ff
    pre-down /sbin/ip -family inet6 route del default via 2001:41D0:2:ADff:ff:ff:ff:ff
    pre-down /sbin/ip -family inet6 route del 2001:41D0:2:ADff:ff:ff:ff:ff dev eth0
    post-up /sbin/ifconfig eth0 inet6 add 2001:41D0:2:AD41::2/64
    pre-down /sbin/ifconfig eth0 inet6 del 2001:41D0:2:AD41::2/64

    As-tu une idée, une piste ça fait 3 jours que je cherche.
    Merci d’avance

    Patrick

    • Bonjour, sur quelle adresse essayez vous le ping? Avez vous tester d’accéder a la page de Google en ipv6?

      • Merci pour votre réponse.
        En fait si je tape dans la console la ligne de commande :
        /sbin/ifconfig eth0 inet6 del 2001:41D0:2:AD41::2/64
        Ca fonctionne et je trouve mon adresse ipv6 dans ifconfig. Mais si je mets la ligne de commande dans le fichier interfaces, ça ne fonctionne pas.j’ai pouratnt fait un /etc/init.d/networking restart

        ci dessous la ligne dans le fichier interfqces
        post-up /sbin/ip -6 addr add 2001:41D0:2:AD41::2/64 dev eth0
        pre-down /sbin/ip -6 addr del 2001:41D0:2:AD41::2/64 dev eth0

  4. Merci pour ton tutorial un peu plus explicite que celui d’OVH 😉

Désolé, les commentaire sont désactivés pour l'instant.