Routage IPv6 : Différence entre versions

De Wiki NCad
Aller à : navigation, rechercher
(Configuration d'une machine)
(Présentation)
 
(38 révisions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
 +
{{Box Construction | type=Article }}
 +
 
== Présentation ==
 
== Présentation ==
 +
 +
=== Avant tout ===
 +
 +
[[Configurer_reseau_ubuntu#En_ligne_de_commande|Se familiariser avec la commande ifconfig]]
 +
 +
==== Adressage ====
 +
 +
Avant d'aborder les lignes qui suivent, il est nécessaire d'assimiler quelques notions de base sur IPv6 :
 +
* '''adresse de lien :''' on peut l'assimiler à une adresse privée IPv4. Cependant, cette adresse à une portée limitée : uniquement sur un même lien.
 +
* '''adresse globale :''' on peut l'assimiler à une adresse public IPv4. Cette adresse est routée et peut être accessible depuis n'importe quel machine du réseau y compris depuis Internet.
 +
 +
{{ Box Remarque | objet=Lorsqu'on doit indiquer une adresse de passerelle aux machines du réseau, on devra utiliser l'adresse de lien de l'interface à laquelle est connectée la machine sur le routeur.}}
 +
 +
==== Équipements ====
 +
 +
* Les systèmes d'exploitation Windows XP/2000/Vista/7 supportent IPv6;
 +
* Les systèmes d'exploitation Linux supportent IPv6;
 +
* Les équipements réseau de niveau 2 du modèle OSI supportent '''tous''' IPv6.
 +
 +
Pour les équipements non compatibles comme :
 +
* les point d'accès sans fil;
 +
* les box/modem ADSL;
 +
il faudra les configurer en tant que '''pont'''. Il se comporteront comme des équipements de niveau 2.
  
 
=== Objectifs ===
 
=== Objectifs ===
  
Déploiement du protocole IPv6 sur un petit réseau local. L'opérateur(OVH) fournit un bloc IPv6 /64. C'est-à-dire qui peut adresser toutes machines appartenant à un même réseau.
+
Déploiement du protocole '''IPv6''' sur un petit réseau local. L'opérateur ''(OVH)'' fournit un bloc '''IPv6 /64'''. C'est-à-dire qui peut adresser toutes machines appartenant à un même réseau.
  
 
=== Matériel ===
 
=== Matériel ===
Ligne 25 : Ligne 50 :
  
 
== Configuration ==
 
== Configuration ==
 +
 +
=== Régler le routeur/modem ADSL en mode "bridge" ===
 +
 +
Pour que le routeur puisse établir la session '''PPP''' et récupérer les paramètres '''IP''', cette fonction doit être au préalable désactivée sur le '''modem ADSL''' / box de l'opérateur ''( c.f. : [[Linksys_AM200#Mode_.22bridge.22_ou_mode_.22pont.22|Exemple pour le modem Linksys AM200]])''.
  
 
=== Connexion PPP ===
 
=== Connexion PPP ===
  
Le modem étant configuré en mode "bridge", le routeur devra de ce fait initialiser la session PPP. Pour cela, il sera nécessaire d'avoir les identifiants d'accès fournis par le fournisseur d'accès à Internet.
+
* Le modem étant configuré en mode '''''"bridge"''''', le routeur devra de ce fait initialiser la session '''PPP'''. Pour cela, il sera nécessaire d'avoir les identifiants d'accès fournis par le fournisseur d'accès à Internet.
 +
 
 +
* Dans un premier temps, il faut lancer l'utilitaire '''pppoeconf''' dans un terminal et de se laisser guider par l'assistant.
  
Dans un premier temps, il faut lancer l'utilitaire '''pppoeconf''' dans un terminal et de se laisser guider par l'assistant.
 
 
{{ Box Console | objet=sudo pppoeconf }}
 
{{ Box Console | objet=sudo pppoeconf }}
  
Une fois l'assistant terminé, il est possible de voir si la session ppp a été correctement initialisée en vérifiant l'état des interfaces :
+
* Une fois l'assistant terminé, il est possible de voir si la session '''ppp''' a été correctement initialisée en vérifiant l'état des interfaces :
{{ Box Console | objet=ipconfig }}
+
 
 +
{{ Box Console | objet=ifconfig }}
 +
 
 +
* Il doit en résulter l'apparition d'une interface nommée '''ppp0''', comme ceci par exemple :
  
Il doit en résulter l'apparition d'une interface nommée '''ppp0''', comme ceci par exemple :<br />
 
 
[[Image:IPV6_IFCONFIG_PPP.JPG]]
 
[[Image:IPV6_IFCONFIG_PPP.JPG]]
  
Afin de récupérer l'IPv6 affecté par le FAI depuis la session PPP, il faudra éditer le fichier de configuration '''/etc/ppp/peers/dsl-provider''' et d'y ajouter à la fin la ligne suivante :
+
* Afin de récupérer l''''IPv6''' affecté par le '''FAI''' depuis la session '''PPP''', il faudra éditer le fichier de configuration '''/etc/ppp/peers/dsl-provider''' et d'y ajouter à la fin la ligne suivante :
 +
 
 
  +ipv6 ipv6cp-use-ipaddr
 
  +ipv6 ipv6cp-use-ipaddr
  
Puis de réinitialiser la session avec les commandes suivantes :
+
* Puis de '''réinitialiser''' la session avec les commandes suivantes :
{{ Box Console | objet=poff dsl-provider
+
 
 +
{{ Box Console | objet=poff dsl-provider<br />
 
pon dsl-provider }}
 
pon dsl-provider }}
  
En vérifiant avec la commande '''ifconfig''', on observe l'apparition de l'adresse globale IPv6 affectée à l'interface ppp :<br />
+
* En vérifiant avec la commande '''ifconfig''', on observe l'apparition de l''''adresse globale''' IPv6 affectée à l'interface '''ppp''' :
 +
 
 
[[Image:IPV6_IFCONFIG6_PPP.JPG]]
 
[[Image:IPV6_IFCONFIG6_PPP.JPG]]
 +
 +
{{ Box Remarque | objet=Il est possible d'affecter une IP manuellement grâce à la commande ifconfig ppp0 add 2000:a:b:c::1/64 par exemple.}}
  
 
=== Activation du routage IPv6 ===
 
=== Activation du routage IPv6 ===
  
Pour activer le routage IPv6, il suffit de saisir la commande suivante dans le terminal :
+
* Pour activer le '''routage IPv6''', il suffit de saisir la commande suivante dans le terminal :
 +
 
 
{{ Box_Console | objet=sudo sysctl -w net.ipv6.conf.all.forwarding=1 }}
 
{{ Box_Console | objet=sudo sysctl -w net.ipv6.conf.all.forwarding=1 }}
  
Il faut également vérifier la route par défaut sur le routeur. Par défaut, tout doit sortir sur l'interface '''ppp0'''. Pour vérifier la table de routage il suffit de lancer cette commande :
+
* Il faut également vérifier la route par défaut sur le routeur. Par défaut, tout doit sortir sur l'interface '''ppp0'''. Pour vérifier la table de routage il suffit de lancer cette commande :
 +
 
 
{{ Box Console | objet=ip -6 route}}
 
{{ Box Console | objet=ip -6 route}}
  
Si la route par défaut ne sort pas sur l'interface '''ppp0''' ou si elle n'existe pas, il faut l'ajouter. Dans le cas d'une route erronée, supprimons d'abord la route par défaut :
+
* Si la route par défaut ne sort pas sur l'interface '''ppp0''' ou si elle n'existe pas, il faut l'ajouter. Dans le cas d'une route erronée, supprimons d'abord la route par défaut :
 +
 
 
{{ Box Console | objet=ip -6 route del ::/0}}
 
{{ Box Console | objet=ip -6 route del ::/0}}
Maintenant ajoutons la route par défaut sur l'interface '''ppp0''' :
+
 
 +
* Maintenant ajoutons la route par défaut sur l'interface '''ppp0''' :
 +
 
 
{{ Box Console | objet=ip -6 route add ::/0 dev eth0}}
 
{{ Box Console | objet=ip -6 route add ::/0 dev eth0}}
Pour tester la validité du routage il suffit d'effectuer un ping vers ipv6.google.com par exemple :
+
 
 +
* Pour tester la validité du routage il suffit d'effectuer un ping vers ipv6.google.com par exemple :
 +
 
 
{{ Box Console | objet=ping6 ipv6.google.com}}
 
{{ Box Console | objet=ping6 ipv6.google.com}}
  
 
=== Configuration d'une machine ===
 
=== Configuration d'une machine ===
  
==== Sur la station de travail ====
+
==== Sur la station de travail Linux ====
 +
 
 +
* Procédons à la configuration d'une machine sous '''Ubuntu'''. Affectons l'adresse IPv6 '''2001:a:b:c::1''' à l'interface eth0 qui est connectée au routeur :
  
Procédons à la configuration d'une machine sous Ubuntu. Affectons l'adresse IPv6 2001:a:b:c::1 à l'interface eth0 qui est connectée au routeur :
 
 
{{Box Console | objet=sudo ifconfig eth0 add 2001:a:b:c::1}}
 
{{Box Console | objet=sudo ifconfig eth0 add 2001:a:b:c::1}}
Renseignons également la route par défaut, ici l'adresse de passerelle utilisée sera l'adresse IPv6 de lien local de l'interface d'entrée du routeur. Cette adresse est ici '''fe80::10:20:30:40''' :
+
 
 +
* Renseignons également la route par défaut, ici l'adresse de passerelle utilisée sera l'adresse '''IPv6''' de '''lien local''' de l'interface d'entrée du routeur. Cette adresse est ici '''fe80::10:20:30:40''' :
 +
 
 
{{Box Console | objet=ip -6 route add ::/0 via fe80::10:20:30:40 dev eth0}}
 
{{Box Console | objet=ip -6 route add ::/0 via fe80::10:20:30:40 dev eth0}}
 +
 +
* Il faut également veiller à ce que la valeur du '''MTU''' soit égale à celle du routeur sur l'interface '''ppp0''' :
 +
 +
{{Box Console | objet=sudo ifconfig eth0 mtu 1492}}
 +
<br />
 +
{{Box Remarque | objet=Cette étape est optionnelle si l'[[Routage_IPv6#Autoconfiguration|auto-configuration]] est activée sur le routeur.}}
 +
 +
==== Sur la station de travail Windows ====
 +
 +
* Voir [[Configurer_reseau_Windows#Activer_IPv6_pour_Windows_XP|Activer IPv6 pour Windows XP]]
 +
 +
{{Box Remarque | objet=Ne fonctionne qu'avec l'[[Routage_IPv6#Autoconfiguration|auto-configuration]] d'activée sur le routeur.}}
  
 
==== Sur le routeur ====
 
==== Sur le routeur ====
  
Il faut également ajouter la route de retour sur le routeur :
+
* Il faut également ajouter la route de retour sur le routeur. Soit on créée une route propre à chaque machine du réseau :
 +
 
 
{{Box Console | objet=ip -6 route add 2001:a:b:c::1/128 dev eth0}}
 
{{Box Console | objet=ip -6 route add 2001:a:b:c::1/128 dev eth0}}
  
=== Fichier /etc/network/interfaces ===
+
* Cependant, ceci peut devenir ingérable si on dispose de plusieurs machines, alors on crée une règle plus générique :
  
auto lo eth0 eth1 dsl-provider
+
{{Box Console | objet=ip -6 route add 2001:a:b:c::/64 dev eth0}}
iface lo inet loopback
+
        post-up iptables-restore < /etc/iptables.up.rules
+
+
iface eth1 inet dhcp
+
        post-up iptables-restore < /etc/iptables.up.rules
+
iface dsl-provider inet manual
+
+
iface dsl-provider inet6 manual
+
        pre-up /sbin/modprobe -q ipv6 ; /bin/true
+
  
=== Fichier /etc/ppp/peers/dsl-provider ===
+
* Ici on indique que toute machine dont l'adresse de réseau est '''2001:a:b:c''' se trouve derrière l'interface '''eth0'''.
  
# Minimalistic default options file for DSL/PPPoE connections
+
== Autoconfiguration avec RADVD ==
noipdefault
+
defaultroute
+
replacedefaultroute
+
hide-password
+
#lcp-echo-interval 30
+
#lcp-echo-failure 4
+
noauth
+
persist
+
#mtu 1492
+
#persist
+
#maxfail 0
+
#holdoff 20
+
plugin rp-pppoe.so eth1
+
usepeerdns
+
user "0565400437@ovh.ipadsl"
+
+ipv6 ipv6cp-use-ipaddr
+
  
=== Activer routage IPv6 ===
+
* L'auto-configuration permet aux machines sur le réseau de récupérer certaines informations relatives au réseau comme '''l'adresse de réseau IPv6''' pour construire leur adresse globale automatiquement. Pour cela, il faudra installer le daemon '''radvd''' ''('''R'''outer '''ADV'''ertissement '''D'''aemon)''.
  
{{ Box_Console | objet=sudo sysctl -w net.ipv6.conf.all.forwarding=1 }}
+
{{Box_Console | objet=sudo apt-get install radvd}}
<br />
+
 
{{ Box_Attention | objet=vérifier route par défaut sur le routeur ! }}
+
* La configuration du daemon est simple. Elle s'effectue depuis le fichier '''/etc/radvd.conf'''. Si ce dernier n'existe pas, il faudra le créer et le compléter comme dans l'exemple ci-dessous :
 +
 
 +
interface eth0
 +
{
 +
        AdvSendAdvert on;
 +
        prefix 2001:a:b:c::/64
 +
        {
 +
                AdvOnLink on;
 +
                AdvAutonomous on;
 +
                AdvRouterAddr on;
 +
        };
 +
        RDNSS 2001:4860:4860::8888 2001:4860:4860::8844 {
 +
        };
 +
};
  
Ajouter une route statique pour chaque machine du réseau...
+
* A noter que ces instructions sont uniquement valable pour l'interface '''eth0'''. On indique ici le '''prefix''' à partir duquel seront construites les adresses IPs. On indique également l'adresse de deux serveurs de résolution DNS grâce à la ligne '''RDNSS'''.
  
{{ Box_Console | objet=ip -6 route add <ipv6Machine>/128 dev <int_sortie>}}
+
* Ensuite, il ne manque plus qu'à démarrer le daemon, puis d'effectuer un test avec une machine :
  
C'est trop la merde... OSPF ?
+
{{Box Console | objet=sudo /etc/init.d/radvd start}}

Version actuelle en date du 15 mars 2015 à 20:02

ICON Build.png
Article en construction

Cette Article doit être complétée.

Présentation

Avant tout

Se familiariser avec la commande ifconfig

Adressage

Avant d'aborder les lignes qui suivent, il est nécessaire d'assimiler quelques notions de base sur IPv6 :

  • adresse de lien : on peut l'assimiler à une adresse privée IPv4. Cependant, cette adresse à une portée limitée : uniquement sur un même lien.
  • adresse globale : on peut l'assimiler à une adresse public IPv4. Cette adresse est routée et peut être accessible depuis n'importe quel machine du réseau y compris depuis Internet.
ICON Light.png
Lorsqu'on doit indiquer une adresse de passerelle aux machines du réseau, on devra utiliser l'adresse de lien de l'interface à laquelle est connectée la machine sur le routeur.

Équipements

  • Les systèmes d'exploitation Windows XP/2000/Vista/7 supportent IPv6;
  • Les systèmes d'exploitation Linux supportent IPv6;
  • Les équipements réseau de niveau 2 du modèle OSI supportent tous IPv6.

Pour les équipements non compatibles comme :

  • les point d'accès sans fil;
  • les box/modem ADSL;

il faudra les configurer en tant que pont. Il se comporteront comme des équipements de niveau 2.

Objectifs

Déploiement du protocole IPv6 sur un petit réseau local. L'opérateur (OVH) fournit un bloc IPv6 /64. C'est-à-dire qui peut adresser toutes machines appartenant à un même réseau.

Matériel

  • Un modem ADSL, configuré en mode bridge;
  • Une machine fonctionnant sous Linux Debian/Ubuntu/CentOS faisant office de routeur;
  • Des périphériques compatibles IPv6.

Déroulement

IPV6 Maquette.jpg

Nous considérons la "machine routeur" opérationnelle pour le routage IPv4. Les rôles de cette machine seront les suivants :

  • établir la session PPP sur les équipements distants de l'opérateur;
  • récupérer l'adresse IPv4 et le bloc IPv6 affecté par l'opérateur;
  • établir les routes par défaut pour le trafic sortant;
  • établir les routes internes pour les périphériques du réseau.

Le routeur est câblé comme ceci :

  • l'interface eth0 est connectée à la station de travail, elle a une IP fixe 192.168.1.1;
  • l'interface eth1 est connectée au modem, sans IP.

Configuration

Régler le routeur/modem ADSL en mode "bridge"

Pour que le routeur puisse établir la session PPP et récupérer les paramètres IP, cette fonction doit être au préalable désactivée sur le modem ADSL / box de l'opérateur ( c.f. : Exemple pour le modem Linksys AM200).

Connexion PPP

  • Le modem étant configuré en mode "bridge", le routeur devra de ce fait initialiser la session PPP. Pour cela, il sera nécessaire d'avoir les identifiants d'accès fournis par le fournisseur d'accès à Internet.
  • Dans un premier temps, il faut lancer l'utilitaire pppoeconf dans un terminal et de se laisser guider par l'assistant.
ICON Terminal.png

sudo pppoeconf

  • Une fois l'assistant terminé, il est possible de voir si la session ppp a été correctement initialisée en vérifiant l'état des interfaces :
ICON Terminal.png

ifconfig

  • Il doit en résulter l'apparition d'une interface nommée ppp0, comme ceci par exemple :

IPV6 IFCONFIG PPP.JPG

  • Afin de récupérer l'IPv6 affecté par le FAI depuis la session PPP, il faudra éditer le fichier de configuration /etc/ppp/peers/dsl-provider et d'y ajouter à la fin la ligne suivante :
+ipv6 ipv6cp-use-ipaddr
  • Puis de réinitialiser la session avec les commandes suivantes :
ICON Terminal.png

poff dsl-provider
pon dsl-provider

  • En vérifiant avec la commande ifconfig, on observe l'apparition de l'adresse globale IPv6 affectée à l'interface ppp :

IPV6 IFCONFIG6 PPP.JPG

ICON Light.png
Il est possible d'affecter une IP manuellement grâce à la commande ifconfig ppp0 add 2000:a:b:c::1/64 par exemple.

Activation du routage IPv6

  • Pour activer le routage IPv6, il suffit de saisir la commande suivante dans le terminal :
ICON Terminal.png

sudo sysctl -w net.ipv6.conf.all.forwarding=1

  • Il faut également vérifier la route par défaut sur le routeur. Par défaut, tout doit sortir sur l'interface ppp0. Pour vérifier la table de routage il suffit de lancer cette commande :
ICON Terminal.png

ip -6 route

  • Si la route par défaut ne sort pas sur l'interface ppp0 ou si elle n'existe pas, il faut l'ajouter. Dans le cas d'une route erronée, supprimons d'abord la route par défaut :
ICON Terminal.png

ip -6 route del ::/0

  • Maintenant ajoutons la route par défaut sur l'interface ppp0 :
ICON Terminal.png

ip -6 route add ::/0 dev eth0

  • Pour tester la validité du routage il suffit d'effectuer un ping vers ipv6.google.com par exemple :
ICON Terminal.png

ping6 ipv6.google.com

Configuration d'une machine

Sur la station de travail Linux

  • Procédons à la configuration d'une machine sous Ubuntu. Affectons l'adresse IPv6 2001:a:b:c::1 à l'interface eth0 qui est connectée au routeur :
ICON Terminal.png

sudo ifconfig eth0 add 2001:a:b:c::1

  • Renseignons également la route par défaut, ici l'adresse de passerelle utilisée sera l'adresse IPv6 de lien local de l'interface d'entrée du routeur. Cette adresse est ici fe80::10:20:30:40 :
ICON Terminal.png

ip -6 route add ::/0 via fe80::10:20:30:40 dev eth0

  • Il faut également veiller à ce que la valeur du MTU soit égale à celle du routeur sur l'interface ppp0 :
ICON Terminal.png

sudo ifconfig eth0 mtu 1492


ICON Light.png
Cette étape est optionnelle si l'auto-configuration est activée sur le routeur.

Sur la station de travail Windows

ICON Light.png
Ne fonctionne qu'avec l'auto-configuration d'activée sur le routeur.

Sur le routeur

  • Il faut également ajouter la route de retour sur le routeur. Soit on créée une route propre à chaque machine du réseau :
ICON Terminal.png

ip -6 route add 2001:a:b:c::1/128 dev eth0

  • Cependant, ceci peut devenir ingérable si on dispose de plusieurs machines, alors on crée une règle plus générique :
ICON Terminal.png

ip -6 route add 2001:a:b:c::/64 dev eth0

  • Ici on indique que toute machine dont l'adresse de réseau est 2001:a:b:c se trouve derrière l'interface eth0.

Autoconfiguration avec RADVD

  • L'auto-configuration permet aux machines sur le réseau de récupérer certaines informations relatives au réseau comme l'adresse de réseau IPv6 pour construire leur adresse globale automatiquement. Pour cela, il faudra installer le daemon radvd (Router ADVertissement Daemon).
ICON Terminal.png

sudo apt-get install radvd

  • La configuration du daemon est simple. Elle s'effectue depuis le fichier /etc/radvd.conf. Si ce dernier n'existe pas, il faudra le créer et le compléter comme dans l'exemple ci-dessous :
interface eth0
{
       AdvSendAdvert on;
       prefix 2001:a:b:c::/64
       {
               AdvOnLink on;
               AdvAutonomous on;
               AdvRouterAddr on;
       };
       RDNSS 2001:4860:4860::8888 2001:4860:4860::8844 {
       };
};
  • A noter que ces instructions sont uniquement valable pour l'interface eth0. On indique ici le prefix à partir duquel seront construites les adresses IPs. On indique également l'adresse de deux serveurs de résolution DNS grâce à la ligne RDNSS.
  • Ensuite, il ne manque plus qu'à démarrer le daemon, puis d'effectuer un test avec une machine :
ICON Terminal.png

sudo /etc/init.d/radvd start