Premières mises en œuvre d'IPv6
Objectifs du chapitre
L’objectif de ce chapitre est d’aborder un aspect plus pratique en présentant une mise en œuvre d’IPv6 dans différents contextes matériels : routeurs, systèmes Windows, systèmes MAC, firewalls...
Nous allons uniquement examiner ici la façon de mettre en place la couche IPv6 sur différents matériels ou systèmes d’exploitation. Nous mentionnerons les matériels et les systèmes avec lesquels nous travaillons couramment. Cela ne veut pas dire que les autres matériels sont à dédaigner quand il s’agit d’implémenter IPv6, mais nous ne pouvons pas traiter la totalité des marques et des modèles dans cet ouvrage. Par contre, cela peut inspirer le lecteur détenteur d’autres matériels.
Nous ne nous intéresserons quasiment qu’à la configuration manuelle des adresses, routes et passerelles.
Nous n’avons pas non plus la prétention d’être exhaustifs dans les méthodes de paramétrage. Il existe souvent plusieurs manières, notamment sous Windows et Linux, de parvenir à une même configuration IPv6 et nous ne les avons pas toutes citées ici. Par contre, le lecteur trouvera en fin de chapitre des liens permettant de couvrir un plus large panel d’OS et de méthodes.
Systèmes Linux
IPv6 a été introduit dans le noyau Linux assez tôt puisque les premières traces semblent remonter à 1996 (2.1.8). Des fonctionnalités de plus en plus étendues sont incorporées au fil des versions. Il est recommandé d’utiliser des versions au moins égales à une 2.6.x pour profiter des mises à jour effectuées, les versions 2.2.x et 2.4.x ne bénéficiant plus des améliorations. Dans les versions les plus récentes, IPv6 est même activé par défaut.
Nous allons donner quelques exemples, tout en laissant au lecteur le soin de vérifier s’ils peuvent s’appliquer à son cas puisqu’il existe plusieurs variantes dans les fichiers de configuration du réseau, mais aussi dans certaines commandes de gestion d’IPv6.
1. Debian 8.6 Jessie (noyau 3.16.x) ou Ubuntu
Si IPv6 est bien activé, un simple ifconfig devrait permettre d’afficher une adresse IPv6 comme dans l’exemple ci-dessous :
root@deb100A:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0c:29:7a:f0:f1
inet addr:10.10.100.50 Bcast:10.10.100.255 Mask:255.255.255.0
#
# Nous avons ici uniquement une adresse de type Link-Local
# générée par l'autoconfiguration
#
inet6 addr: fe80::20c:29ff:fe7a:f0f1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1191 errors:0 dropped:0 overruns:0 frame:0
TX packets:1019 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:619856 (605.3 KiB) TX bytes:91968 (89.8 KiB)
ainsi que des adresses de loopback aussi bien en IPv4 qu'en IPv6
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:123 errors:0 dropped:0 overruns:0...
Systèmes Windows
1. Windows 7, 8 et 10
IPv6 est présent de base sur Windows 7, 8 et 10. Il est par défaut en autoconfiguration mais il est possible via la fenêtre de propriétés des cartes réseau de le désactiver ou de modifier manuellement les paramètres.
Et voici l’écran de paramétrage de l’adresse IPv6 :
Les outils présents en ligne de commande dans ces versions sont listés un peu plus loin.
2. Windows Server 2008 et 2012
IPv6 est présent de base sur Windows Server 2008 et 2012. Il est par défaut en autoconfiguration mais il est possible par le panneau de configuration de le désactiver ou de modifier manuellement les paramètres.
3. Les commandes IPv6 disponibles sous Windows (sauf XP)
Les commandes de paramétrage IPv6 sont disponibles sous deux formes : des commandes globales netsh accessibles depuis la fenêtre de commande et des commandes PowerShell. Ce sont ces dernières qui sont normalement destinées à perdurer mais nous présenterons quand même les commandes basées sur netsh car elles sont souvent plus simples à retenir et fonctionnent encore.
a. Commandes basées sur netsh
Voici les principales possibilités offertes par cette commande :
C:\Users\root>netsh interface ipv6
Les commandes suivantes sont disponibles :
Commandes dans ce contexte :
6to4 - Modifications pour le contexte `netsh interface
ipv6 6to4'.
? - Affiche une liste de commandes.
Add - Ajoute une entrée de configuration à une table.
Delete - Supprime une entrée de configuration d'une table.
Dump - Affiche un script de configuration.
Help - Affiche une liste de commandes.
Isatap - Modifications pour le contexte `netsh interface
ipv6 isatap'.
Reset - Réinitialiser les configurations IP.
Set - Définit les informations...
Système Mac OS
La configuration d’IPv6 sur Mac OS est minimale.
Dans la fenêtre de paramétrage réseau, nous disposons sur la gauche de la liste des interfaces présentes sur le système. Deux interfaces Ethernet (Ethernet et Ethernet 2) sont ici présentes : car nous souhaitons pouvoir attribuer deux adresses IPv4 ou IPv6 différentes à notre carte réseau physique.
Nous pouvons simplement cliquer sur le bouton Avancé.
Ce qui nous amène à l’écran suivant dans lequel nous pouvons nous contenter de régler l’adressage IPv6 en automatique (noter en haut à gauche le nom de l’interface sur laquelle nous travaillons : Ethernet) :
Dans ce cas, l’autoparamétrage permet de définir une adresse de type link-local, comme le montre la sortie suivante en ligne de commande :
MacMini:~ jpa$ ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
inet 127.0.0.1 netmask 0xff000000
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 10:9a:dd:57:90:e7
inet6 fe80::129a:ddff:fe57:90e7%en0 prefixlen 64 scopeid 0x4
inet 192.168.89.1 netmask 0xffffff00...
Routeurs et switchs de niveau 3
Nous allons simplement illustrer ici l’activation et le paramétrage d’IPv6 sur les routeurs Cisco afin de montrer la méthode de configuration de tels éléments.
Nous pouvons également retrouver ces commandes ou des commandes analogues sur les switchs de niveau 3 et plus, puisqu’ils interviennent alors en tant que routeurs plus spécialement destinés à l’interconnexion de VLAN.
Nous ne donnons ici que quelques exemples car la diversité des modèles et des marques rend impossible l’exhaustivité en la matière.
Nous privilégions l’interface en ligne de commande car c’est elle, plus que l’interface graphique, qui permet une certaine ressemblance des paramétrages entre modèles différents.
1. Routeurs Cisco (exemples sur des 881 et 1921)
Pour activer IPv6 sur l’ensemble d’un routeur, il suffit de passer la commande ipv6 unicast-routing, ce qui permet le routage des paquets IPv6 entre les différentes interfaces du routeur.
Ensuite, la commande ipv6 enable au niveau d’une interface permet de passer celle-ci en mode autoconfiguration avec donc une attribution automatique d’une adresse de type link-local.
Si nous souhaitons affecter une adresse précise (locale ou non) il faudra utiliser la commande ipv6 address.
Voyons donc un exemple d’une telle mise en œuvre :
Passage en mode configuration
R100# conf t
Activation d'IPv6 au niveau global
R100(config)#ipv6 unicast-routing
Passage en mode configuration de l'interface Fastethernet 0/0
R100(config)#int fa0/0 ...
Firewalls
De plus en plus de firewalls prennent en charge IPv6 au moins en partie. Nous allons examiner le paramétrage de quelques-uns d’entre eux soit en interface graphique, soit en interface ligne de commande (CLI pour Command Line Interface).
1. Cisco ASA
Cette appliance est une des plus complètes en IPv6 puisque de nombreux paramétrages sont disponibles aussi bien en interface graphique (ASDM) qu’en ligne de commande.
a. Interface CLI
Les boîtiers ASA peuvent fonctionner en IPv6. Toutes les fonctionnalités de l’IPv6 ne sont pas forcément disponibles mais il est possible de mettre en place des adressages IPv6 et de les utiliser dans la configuration, notamment pour définir des routes et des ACL.
Les commandes suivantes supportent des adresses en IPv6 :
-
capture
-
configure
-
copy
-
http
-
name
-
object-group
-
ping
-
show conn
-
show local-host
-
show tcpstat
-
ssh
-
telnet
-
tftp-server
-
who
-
write
Nous allons présenter ici les principales commandes ayant un rapport avec l’implémentation d’un réseau IPv6. Nous allons retrouver des commandes très voisines de celles présentées pour les routeurs avec néanmoins quelques petites différences dans les options disponibles :
-
Autoconfigurer l’adressage IPv6 à partir de l’adresse MAC en utilisant la méthode EUI-64 :
portail(config-if)# int vlan99
portail(config-if)# ipv6 address auto
portail(config-if)# sh ipv6 int
# Nous vérifions les résultats
# ainsi que les paramètres nd (neighbor discovery)
LAN99 is up, line protocol is up
IPv6 is enabled, link-local address is fe80::226:99ff:fe0e:b63d
No global unicast address is configured
Joined group address(es):
ff02::1
ff02::2
ff02::1:ff0e:b63d
ICMP error messages limited to one every 100 milliseconds
ICMP redirects are enabled
ND DAD is enabled, number of DAD attempts: 1
ND reachable time is 30000 milliseconds
ND advertised reachable time is 0 milliseconds
ND advertised retransmit interval is 1000 milliseconds
ND router advertisements are sent every 200 seconds
ND router advertisements live for 1800 seconds
Hosts use stateless autoconfig for addresses.
portail(config-if)#...
Pour aller plus loin
Voici quelques liens, parmi des centaines, permettant d’obtenir plus d’informations sur le paramétrage IPv6 de certains systèmes d’exploitation ou de certains matériels. Bien d’autres pourraient être cités, les moteurs de recherche vous aideront à les trouver.
-
http://guide.ovh.com/Ipv4Ipv6 qui balaie de nombreuses versions de Linux.
-
http://www.freebsd.org/doc/fr/books/handbook/network-ipv6.html pour FreeBSD.
-
http://www.cisco.com/en/US/docs/ios/ipv6/configuration/guide/12_4/ipv6_12_4_book.html
et http://www.cisco.com/en/US/docs/ios/ipv6/command/reference/ipv6_book.html pour les routeurs Cisco (pour une des dernières versions).
-
http://www.centos.org/docs/5/ pour Centos.
-
http://wiki.debian.org/DebianIPv6 pour Debian.