Activer l'IPv6 sur un RPS OVH

IPv6 Linux
En plein essai d'un RPS (Real Private Server) de chez OVH, je vous fourni un petit Howto pour activer l'IPv6 sur ce RPS.

Pour information, le RPS est un serveur dédié qui n'a pas de disque dur interne, mais, un espace disque sur un SAN via ISCSI. Donc, pas forcement intéressant pour les serveurs de téléchargement, mais, pour un petit serveur ou un service sans trop d'accès disque...

Activation de l'IPv6 dans l'OS (Linux sur RPS)

Par défaut, un RPS n'a pas l'IPv6 d'activé par défaut. Donc, il faut aller choisir un noyau avec l'IPv6 d'activer.

Si vous utilisez le netboot (très simple et très pratique), il vous suffit juste de choisir un noyau IPv6 dans la liste de noyau disponible.


La fonction NETBOOT se trouve dans les services associés à votre RPS., accessible via le Manager OVH.

Ensuite, il faut rebooter votre RPS.

Configuration de l'IPv6 dans l'OS

Dans, un premier temps, il faut connaître le sous réseau associé à votre RPS. Pour cela, il faut aller dans le récapitulatif de votre RPS, accessible vie la Manager OVH.

Il faut trouver dans ce récapitulatif, dans la partie Interface, votre plage réseau (/64) qui vous est assignée, comme le montre l'image.



Donc, maintenant, vous connaissez votre plage IPv6. Il faut savoir que pour chaque RPS, vous avez un /64. Ce qui correspond à 2^64 adresses possibles. Pour vous faire une idée, vous avez plus d'adresses dans cette plage IPv6 que d'adresses IPv4 possible sur Internet. Donc, vous n'en manquerez pas !

Donc, maintenant, pour configurer une IPv6 sur votre RPS avec netboot sur une Debian ou une Ubuntu, il faut faire quelque chose de pas habituelle. Car, la configuration de la carte eth0 est dans l'initrd avec le netboot.

Vous devez ajouter la ligne suivante dans le fichier de configuration /etc/network/interfaces :

Pour les utilisateurs de la commande iproute (commande ultra puissante ;-)) :

post-up /sbin/ip -6 addr add 2001:41D0:2:XXXX::1/64 dev eth0
pre-down /sbin/ip -6 addr delete 2001:41D0:2:XXXX::1/64 dev eth0


Pour les autres :

post-up /sbin/ifconfig eth0 inet6 add 2001:41D0:1:XXXX::1/64
pre-down /sbin/ifconfig eth0 inet6 del 2001:41D0:1:XXXX::1/64


Si vous souhaitez en ajouter d'autre, il vous suffit d'ajouter autant fois cette commande que d'adresse IPv6.

Si vous n'êtes pas en configuration netboot et que vous avez votre prope noyau, vous pouvez la configurer normalement dans le fichier /etc/network/interfaces, comme cela :

iface eth0 inet6 static
address 2001:41D0:1:XXXX::1
netmask 64


Si vous souhaitez ajouter plusieurs IPv6, il vous suffira de faire comme cela :

iface eth0 inet6 static
address 2001:41D0:1:XXXX::1
netmask 64
up ip addr add 2001:41D0:1:XXXX::2/64 dev eth0


Maintenant, il vous suffit de rebooter et normalement, l'IPv6 au niveau OS sera activé !!

NB: N'oubliez pas de mettre en place du filtrage IPv6, si vous en avez déjà mis au niveau IPv4. L'équivalent d'iptables est ip6tables, mais, je vous conseille la dernière version de shorewall6, très simple et rapide à utiliser

Rétroliens

    Pas de rétroliens

Commentaires

Afficher les commentaires en (Vue non groupée | Vue groupée)

  1. Alexandre says:

    Bonjour,
    Je m'amuse moi aussi avec IPv6 sur mon RPS chez OVH sous Ubuntu utilisant le netboot IPv6.
    En utilisant iproute comme vous le décrivez, mes adresses IPv6 apparaissent bien dans un ifconfig. Par contre, le routage ne semble pas se faire automatiquement...
    Il faut en effet que j'ajoute manuellement les règles

    CODE:
    ip -6 route add 2001:41D0:2:XXXX::/56 dev eth0<br /> ip -6 route add default via 2001:41D0:2:XXFF:FF:FF:FF:FF dev eth0

    Mais cela ne semble pas fonctionner plus d'une journée...

    Question : est-ce que votre configuration fonctionne toujours comme prévu, avec seulement les règles que vous mentionnez ?

    Cordialement,
    Alexandre

  2. Worx says:

    Bonjour,

    Normalement, pas besoin d'ajouter une route par défaut. Elle est communiqué via les messages RADVD (Router Advert).

    OVH a une manière particulière de ce point, car, la passerelle par défaut en IPv6 est l'ip local du routeur. Mais, car ce n'est pas génant.

    Donc, normalement, si tu enleves ta route par défaut via 2001 , ca devrait être OK. Laisse le temps à ton serveur de prendre en compte les messages RADVD.

    Si ca ne marche toujours pas n'hésite pas !

  3. Alexandre says:

    Merci pour la réponse rapide :-)
    Je viens de réinstaller un Ubuntu server 9.04 tout frais, avec un netboot IPv6, et même problème.

    J'ai bien attendu plus d'une demi-heure avant d'ajouter une route manuelle, puis à nouveau une demi-heure avant la seconde règle.

    Si vous avez une idée...

    CODE:
    <br /> # nano /etc/network/interfaces<br /> auto eth0:0<br /> iface eth0:0 inet static<br />         address 87.98.181.57<br />         netmask 255.255.255.255<br />         post-up /sbin/ip -6 addr add 2001:41D0:2:3C14::1/64 dev eth0<br />         pre-down /sbin/ip -6 addr delete 2001:41D0:2:3C14::1/64 dev eth0<br /> <br /> # ifconfig<br /> eth0      Link encap:Ethernet  HWaddr 00:1c:c0:aa:00:d9<br />           inet addr:94.23.59.20  Bcast:94.23.59.255  Mask:255.255.255.0<br />           inet6 addr: 2001:41d0:2:3c14::1/64 Scope:Global<br />           inet6 addr: fe80::21c:c0ff:feaa:d9/64 Scope:Link<br />           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1<br />           RX packets:66328 errors:0 dropped:54821954 overruns:0 frame:0<br />           TX packets:44748 errors:0 dropped:0 overruns:0 carrier:0<br />           collisions:0 txqueuelen:1000<br />           RX bytes:80181645 (80.1 MB)  TX bytes:19015450 (19.0 MB)<br />           Interrupt:252 Base address:0x6000<br /> <br /> # ping6 2001:41D0:2:3CFF:FF:FF:FF:FF<br /> connect: Network is unreachable<br /> # ping6 ipv6.google.com<br /> connect: Network is unreachable<br /> <br /> # ip -6 route add 2001:41D0:2:3C14::/56 dev eth0<br /> <br /> # ping6 2001:41D0:2:3CFF:FF:FF:FF:FF<br /> PING 2001:41D0:2:3CFF:FF:FF:FF:FF(2001:41d0:2:3cff:ff:ff:ff:ff) 56 data bytes<br /> 64 bytes from 2001:41d0:2:3cff:ff:ff:ff:ff: icmp_seq=1 ttl=64 time=5.96 ms<br /> # ping6 ipv6.google.com<br /> connect: Network is unreachable<br /> <br /> # ip -6 route add default via 2001:41D0:2:3CFF:FF:FF:FF:FF dev eth0<br /> <br /> # ping6 ipv6.google.com<br /> PING ipv6.google.com(tx-in-x68.google.com) 56 data bytes<br /> 64 bytes from tx-in-x68.google.com: icmp_seq=1 ttl=47 time=280 ms<br />


    Après les règles manuelles, cela marche (temporairement) depuis l'intérieur vers l'extérieur, mais pas dans l'autre sens (je ne peux pas pinguer mon serveur en IPv6) contrairement à mes essais avec la distribution OVH Release2 où cela marchait de base. Il doit falloir ajouter des règles...

    P.S. il semble y avoir un bug avec la balise code dans les commentaires de ce blog (des apparaissent de partout, et le texte suivant un code reste en gras), peut-être dû aux \r\n de Windows ?

  4. Alexandre Alapetite says:

    Bon, il y a du progrès : après avoir fait des manips dans tous les sens, j'utilise maintenant un kernel netboot sans GRSEC (le 2.6.28.4) et cela marche déjà mieux :-)
    Le ping marche entre autres depuis l'extérieur.
    Pourtant dans votre capture d'écran, il semble que vous utilisiez un kernel avec GRSEC, non ?
    Il me reste tout de même une route à ajouter à la main mais la première n'est plus nécessaire :

    CODE:
    ip -6 route add default via 2001:41D0:2:3CFF:FF:FF:FF:FF dev eth0

    Bon, j'arrête de spammer ce billet :-P

  5. Worx says:

    Pas de soucis...

    Mais, moi, je reçois par RADVD la route suivante :

    default via fe80::21e:79ff:fe1e:f000 dev eth0 proto kernel metric 1024 expires 0sec mtu 1500 advmss 1440 hoplimit 64

    Cette route qui se configure toute seule, me permet d'éviter d'avoir à ajouter la route manuellement.

    J'étais bien en grsec, mais, maintenant, je suis avec mon propre kernel.

    Quand tu fais un "ip -6 route" tu obtiens quoi ?

    Tu ne spammes pas le billet, il sert à çà !

  6. Alexandre says:

    En mettant donc seulement les deux lignes dans /etc/network/interfaces et après avoid redémarré et attendu un bon moment (kernel sans GRSEC), voilà ce que ça donne :

    CODE:
    # ip -6 route<br /> 2001:41d0:2:3c14::/64 dev eth0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 4294967295<br /> 2001:41d0:2:3c00::/56 dev eth0  proto kernel  metric 256  expires 0sec mtu 1500 advmss 1440 hoplimit 4294967295<br /> fe80::/64 dev eth0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 4294967295<br /> ff00::/8 dev eth0  metric 256  mtu 1500 advmss 1440 hoplimit 4294967295

    CODE:
    # ping6 2001:41D0:2:3CFF:FF:FF:FF:FF<br /> PING 2001:41D0:2:3CFF:FF:FF:FF:FF(2001:41d0:2:3cff:ff:ff:ff:ff) 56 data bytes<br /> 64 bytes from 2001:41d0:2:3cff:ff:ff:ff:ff: icmp_seq=1 ttl=64 time=5.04 ms

    CODE:
    # ping6 ipv6.google.com<br /> connect: Network is unreachable


    Voilà voilà :-P


Ajouter un commentaire


Les adresses Email ne sont pas affichées, et sont seulement utilisées pour la communication.
To leave a comment you must approve it via e-mail, which will be sent to your address after submission.
Marquer un texte en gras: *mot*, souligner un texte: _mot_.
Les smilies standard comme :-) et ;-) sont convertis en images.
Syntaxe BBCode autorisée
De quel couleur est le cheval blanc d'Henri 4 ?