Internet DSL Teksavvy IPv6, PPPoE et Debian GNU/Linux

Après avoir joué avec les tunnels IPv6 gratuits de Hurricane Electric et m'être rendu compte que l'IPv6 c'est amusant, j'ai adopté Teksavvy (TSI) comme fournisseur Internet chez moi (VDSL avec 25/10mbps).

Les instructions suivantes devraient pouvoir s'appliquer aux autres fournisseurs DSL qui supportent nativement IPv6 par PPPoEv6.

  • Faire une demande pour adhérer au service beta d'IPv6 en suivant les instructions sur la page IPv6 de TekSavvy.

  • Un technicien de TSI répondra avec un nouveau login IPv6 (même nom d'utilisateur, différent nom de domaine), ainsi que deux plages d'adresses IP, un bloc /64 et un bloc /56 (plus d'info sur ça dans la section 'routage'). Si vous avez une adresse statique IPv4, il faut demander à ce que les deux comptes soient fusionnés.

La méthode suggérée par TSI de configurer l'IPv6 est en utilisant leur "firmware" pour routeur Linksys. Il simplifie la configuration et c'est la seule méthode pour laquelle ils peuvent offrir du support.

Personnellement, j'ai un routeur avec Debian, donc :

Configuration du PPPoE IPv6 dans Debian

  • changer le login PPPoE, ajouter le mot de passe dans les 'secrets'.

  • ajouter l'option "+ipv6" dans le fichier du "peer" (ex: /etc/pppoe/peers/dsl-provider).

Puis redémarrer la connexion PPPoE (poff dsl-provider; pon dsl-provider).

Exemple de connexion:

Connect: ppp0 <--> eth0
PAP authentication succeeded
peer from calling number AA:BB:CC:DD:EE:FF authorized
local  IP address 206.248.123.123
remote IP address 206.248.101.101
local  LL address fe80::0438:1234:1234:1234
remote LL address fe80::0090:1a00:1234:1234

Bref, on obtient une adresse "link-local" (spécifique au lien, non-routable) pour communiquer avec la machine distante avec qui le lien PPP a été établit.

Routage d'une seule machine avec le /64

Si on avait une seule machine connectée sur le lien PPPoE, et donc on n'aurait pas à faire de routage, la machine recevra automatiquement une adresse dans le bloc /64 fourni par TSI.

Autrement dit, TSI "annonce" un préfixe /64 sur l'interface ppp pour permettre à notre machine de s'auto-configurer en utilisant le « stateless address autoconfiguration » (SLAAC).

Bref, c'est tout, mais ce n'est pas très utile, puisque c'est pour juste une machine.

La majorité des systèmes désactivent le « stateless address autoconfiguration » quand le « IP forwarding » est actif. Donc ce /64 est, à mon avis, inutile. C'est juste là pour dépanner si jamais le routeur crash et on veut connecter un ordinateur portable directement (avec PPPoE). Le laptop obtiendra automatiquement une adresse routable.

Routage de plusieurs machines avec le /56

Si la machine qui se connecte à Internet est un routeur (comme c'est le cas pour la majorité des gens, parce qu'on a plusieurs ordinateurs à la maison, du wifi, etc), le routeur fait du « IP forwarding », et donc ne fera pas d'auto-configuration (ça pourrait.. mais .. autre débat). Il faut donc configurer la route manuellement.

Un réseau /56 permet d'allouer 256 réseaux de /64 (le minimum recommandé pour faire de l'auto-configuration sur le réseau local). Jadis en IPv4, avoir des sous-réseaux impliquait souvent d'avoir du NAT sur du NAT, donc c'était à éviter. En IPv6, c'est pratique d'assigner un sous-réseau à chaque routeur wifi, par exemple (j'en ai deux).

Minimalement, il faut utiliser les commandes suivantes pour que le routeur ait accès à Internet:

ip -6 addr add 2607:f2c0:f00f:exemple::1 dev eth0
ip -6 route add ::/0 dev ppp0

Voici mes configurations sous Debian GNU/Linux:

Fichier: /etc/network/if-up.d/chezmoi

#!/bin/sh
# adresse principale du routeur (le /56 permet d'annoncer le réseau sur le mesh avec babel)
# dans votre cas,  "[...] 2607:f2c0:f00f:2900::1 dev eth0" serait suffisant
ip -f inet6 addr add 2607:f2c0:f00f:2900::1/56 dev eth0

# Route pour mon principal réseau local (où sont mes postes de travail)
ip route add 2607:f2c0:f00f:2910::/64 dev eth1

# Adresse IP supplémentaire pour www.bidon.ca
ip -f inet6 addr add 2607:f2c0:f00f:2901::10 dev eth0

Fichier: /etc/pppoe/ipv6-up.d/chezmoi-network-route

#!/bin/sh
ip -6 route add ::/0 dev ppp0

IP forwarding et radvd

Ensuite il faut configurer radvd et le «forwarding» pour diffuser les IPs à travers les réseaux.

Éditer le fichier /etc/sysctl.conf et décommenter la ligne si ce n'est pas déjà fait :

net.ipv6.conf.all.forwarding=1

Puis appliquer le changement en exécutant la commande:

# sysctl -p

Radvd permet d'annoncer un préfixe réseau pour que les machines sur le réseau local puissent s'auto-configurer par « stateless auto-configuration » (SLAAC). Dans ma configuration réseau de la section précédente, on peut voir que j'ai réservé le sous-réseau 2607:f2c0:f00f:2910::/64 pour mon réseau local câblé.

Installer radvd:

# apt-get install radvd

Éditer son fichier de configuration /etc/radvd.conf :

interface eth1
{
  AdvSendAdvert on;
  MaxRtrAdvInterval 30;

  prefix 2607:f2c0:f00f:2910::1/64
  {
  AdvOnLink on;
  AdvAutonomous on;
  AdvRouterAddr off;
  AdvValidLifetime 300;
  AdvPreferredLifetime 120;
  };
};

À noter que mon interface réseau vers mon réseau local câblé (connecté dans ma switch) est eth1.

Ensuite redémarrer radvd :

# radvd restart

C'est tout. Les machines connectées au réseau local devraient se configurer automatiquement quelques secondes plus tard.

S'il y a des problèmes, tcpdump peut aider:

tcpdump -i eth1 ip6

Voir aussi: un réseau local en IPv6 avec un fournisseur d'accès Internet IPv4 avec Debian GNU/linux.

Références

https://secure.dslreports.com/forum/r26474399-whois-info-for-Teksavvy-IPv6-addresses

Tag: