Projet

Général

Profil

IPv6 » Historique » Version 10

« Précédent - Version 10/318 (diff) - Suivant » - Version actuelle
Bernard Urban, 29/09/2011 20:27


IPv6

Information about IPv6

Issue #35

Links

General

Linux

How to enable routing for /56 ?

Currently each IPv4 delivered by tetaneutral.net is matched by a /56 IPv6 (mapping /24 = 256 IPv4 <=> /48 = 256 /56 IPv6).

As tetaneutral.net is a simple flat ethernet network, all machines are on the same broadcast domain. In order to route /56s we must :
- Assign interconexion subnets. Current recommendation is to provide /112s matched to (but outside) of the corresponding /56
- Add a local static route for this subnet to h3 and gw (admin required)

Discussions

J'ai fait quelques essais: VM configuré en routeur, openvpn entre la VM
et ma machine, histoire de simuler des interfaces. J'ai essayé radvd
comme des définitions manuelles des adresses IPv6.

Bon, ça marche depuis la VM mais pas depuis chez moi (wget
http://ipv6.google.com), même si les paquets IPv6 (vu avec tcpdump)
partent bien de la VM vers l'internet. Mais il n'y a pas de retour.

Après quelques cogitations et la lecture de ceci:
http://www.fdn.fr/IPv6-a-la-maison.html j'en arrive à ces
réflexions:

1) Dans le blog FDN ci-dessus l'adresse IPv6 affectée au ppp0 n'est pas
dans son /48; ce qui voudrait dire qu'il n'y a pas de raison d'affecter
une IPv6 du /56 au eth0 des VM tetaneutral.

2) Pour faire marcher une telle config à FDN, le routeur FDN en amont du
modem/routeur de l'abonné devrait avoir une route du type:
ip -6 route add range/48 dev ppp-abonné via link-local-ppp-abonné
soit chez nous:
ip -6 route add range/56 dev eth0-vm via link-local-eth0-vm

du /56 via une interconnection explicite entre le routeur de
tetaneutral.net et un routeur chez le membre ?

Un lien openvpn?

Bonsoir,

On peut rajouter une regle de routage comme tu le suggere,
reste a choisir les details pratiques.

Pour la link-local coté routeur on a choisi fe80::31 en statique il
reste a choisir une regle pour attribuer le link local coté client.

Une regle automatique basée sur l'IPv4 est en place pour
l'attribution du subnet IPv6 :

http://wiki.tetaneutral.net/index.php/Architecture

Une regle similaire pour le routage donnerait par exemple fe80::81:XY
ou XY est le dernier octet de l'IPv4 ecrit en hexadecimal
pour la link local coté client.

L'avantage d'une regle statique vs le SLAAC c'est que c'est un peu plus
flexible coté client sur le choix de l'equipement routeur.

L'avantage du routé est bien sur la flexibilité et la sécurisation
potentielle, l'inconvenient est qu'avec nos equipements actuels peu
puissant on perdra un peu en debit mais ça se corrigera avec
de nouveaux equipements.

Je suis vraiment curieux de savoir comment font les autres hebergeurs
dans le monde IPv6, ceux auxquels j'ai acces ne proposent pas de
routage, simplement ce que propose tetaneutral.net actuellement.

Suggestions ?

Connectivité IPv6 complète depuis chez vous en quelques étapes simples (en cours d'édition)

Connectivité complète signifie que toutes vos machines pouvant fonctionner en IPv6 peuvent accéder des sites IPv6 externes mais surtout être joignables de l'extérieur sur une adresse IPv6 propre. Pas de NAT ou autre bidouille de ce genre. Implications en terme d'autohébergement et sécurité laissées en exercice.

Pour bien comprendre ce qui suit, il est recommandé
d'avoir un peu potassé les hyperliens plus haut et mieux encore d'avoir joué avec l'IPv6 sur votre réseau local maison en utilisant par exemple des adresses ULA.

Etape 1: obtenir une machine virtuelle Tetaneutral.

Celle-ci (on l'appellera VM dans la suite) sera configurée par défaut comme suit dans /etc/network/interfaces du point de vue IPv6:

iface eth0 inet6 static
   address 2a01:6600:80XX:YY00::1
   netmask 56
   gateway fe80::31

où XX et YY sont les versions hexadécimales des xx et yy décimaux de votre (unique!) adresse IPv4 de la forme 91.224.xx.yy.

Voyons ce qu'implique la prise en compte par le système
de ce fragment de /etc/network/interfaces. Il dit que:
  1. l'adresse 2a01:6600:80XX:YY00::1 est affectée à eth0, ce qui signifie que votre VM est accessible à cette adresse depuis l'intérieur de la VM comme depuis l'extérieur par toutes les machines du même segment réseau que eth0
  2. les paquets passant par votre VM peuvent atteindre les adresses de la plage 2a01:6600:80XX:YY00::/56 en étant envoyés en sortie de l'interface eth0

La plage 2a01:6600:80XX:YY00::/56 a été allouée par tetaneutral à votre VM. Notre problème est d'allouer une partie de ces adresses à des machines de notre domicile en utilisant l'accès que nous avons (en IPv4!) à la VM.

Avec cette configuration, vous pouvez héberger sur la VM des milliards de serveurs avec des adresses IPv6 différentes, il suffit de les ajouter à eth0 par une commande du type:

ip -6 address add une-adresse-ipv6-de votre-plage/56 dev eth0

(le /56 n'est pas absolument nécessaire, il évite juste de rajouter une route plus spécifique pour atteindre votre nouvelle adresse IPv6 depuis votre VM, route qui s'avère redondante)

Le lecteur attentif aura noté que cette configuration déclare que toutes les adresses de votre plage sont situées derrière eth0, en dehors de la partie contrôlée par votre VM, et il semble impossible alors d'en distraire une partie. Il y a au moins deux solutions à ce problème:
  1. S'arranger pour que les segments réseau de votre domicile fassent partie de celui partant de eth0 sur la VM. Celà revient techniquement à bridger ces segments réseaux. Cette solution a cependant des inconvénients en terme de configurabilité et de sécurité.
  2. Réduire la plage IPv6 allouée derrière l'eth0 de la VM et réallouer le solde à votre réseau local maison, par des techniques de routage. C'est ce qu'on va décrire dans la suite. Mais d'abord, on a besoin d'un peu de collaboration de tetaneutral.

Etape 2: faire router votre /56 par Tetaneutral

Etape 3: simuler un lien ethernet entre une machine à la maison et cette VM.

Je vais décrire la méthode openvpn, mais il semble qu'on puisse le faire aussi avec un ssh pas trop ancien.

Etape 4: passer la VM en mode routeur et annoncer des routes pour votre réseau à la maison avec radvd

Etape 5: bridger l'"ethernet" entre votre machine à la maison et la VM, avec celui de votre domicile

FAQ

  • How to ping the link-local gateway?

Using scoped addresses:

ping6 fe80::31%eth0