Vous êtes sur la page 1sur 149

Julien VAUBOURG

julien@vaubourg.com
tudiant TELECOM Nancy
Lothaire Yarding
Yet Another Reference for Delivering IPv6 to the Next Generation
Version du 2 octobre 2012
Remerciements
quipe rseau Lothaire : Stphane FETTER (matre de stage), Luc DIDRY
1
(suivi rgulier),
Vincent DELOVE, Olivier LACROIX, Alexandre SIMON, Sbastien MOROSI, Annick FAUCOURT-
PERRUCHAUD, Karol PROCH, Pierre MERCIER, Benot DE LA FILOLIE, Olivier KRAPP, Nicolas
TEISSIER, Valrie PETITCOLAS.
Proposition de corrections/ajouts : Romain BOISSAT, Lucas NUSSBAUM, Faycal HADJ,
jcr83.
Dtection de typos : Julien GUPIN, Jonathan MICHALON, mickabouille.
Prt de matriel : Axians.
1. Auteur de la dpche LinuxFR IPv6 : des poules et des hommes : http://linuxfr.org/news/
ipv6-des-poules-et-des-hommes.
Table des matires
Prambule 1
1 Pourquoi lIPv6 3
1.1 puisement des adresses IPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Accs directs sans rcriture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Conits et collisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 Les solutions et nouveauts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.5 Des paquets plus cohrents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.6 tat du dploiement de lIPv6 en France . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.6.1 FAI publics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.6.2 Rseaux de recherche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.6.3 Sites web populaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.6.4 IPv6 day . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.7 Le risque des CGN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2 Adressage 13
2.1 Conventions dcriture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Adresses unicast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.1 Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.2 Link-local Unicast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.3 Unique Local Unicast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Yarding TABLE DES MATIRES quipe rseau Lothaire
2.2.4 Global Unicast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3 Adresses multicast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.1 Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.2 Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.3 Adresses utiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.4 Trame ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.5 Abonnements systmatiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.4 Adresses de broadcast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.5 Adresses anycast / rseaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.6 Adresses de boucles locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.7 Dterminer rapidement le type dune adresse . . . . . . . . . . . . . . . . . . . . . . . 22
2.8 Slectionner lIP de sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.9 Bonnes pratiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.10 Jouer avec IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3 Compatibilit des systmes 27
3.1 GNU/Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.1.1 Noyau Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.1.2 Debian / Ubuntu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.1.3 Fedora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2 Mac OS X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3 Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.3.1 Windows XP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.3.2 Windows Vista / 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.4 Cisco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4 Autoconguration et DNS 33
4.1 NDP et la rcupration des adresses MAC sans ARP . . . . . . . . . . . . . . . . . . . 33
4.1.1 Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.1.2 Avec changes de routes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
ii
Julien VAUBOURG
Yarding TABLE DES MATIRES quipe rseau Lothaire
4.1.3 Sans change de routes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.1.4 Sans change de routes avec proxies NDP . . . . . . . . . . . . . . . . . . . . 36
4.2 Autoconguration stateless (SLAAC) . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2.1 Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2.2 Construction automatique des adresses IP . . . . . . . . . . . . . . . . . . . . 38
4.2.3 Duplicate Address Detection (DAD) . . . . . . . . . . . . . . . . . . . . . . . . 38
4.2.4 Dures de vie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.2.5 Problme de vie prive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.2.6 Scurit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.2.7 Dsactiver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.3 Autoconguration stateful (DHCPv6) . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.3.1 Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.3.2 Protocole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.3.3 Compatibilit des clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.3.4 Conguration des serveurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.3.5 Adresses statiques (DUID) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.4 Rsolutions DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.4.1 Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.4.2 DHCPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.4.3 RDNSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.4.4 mDNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.4.5 Rsolutions inverses des adresses autocongures (DDNS) . . . . . . . . . . . . 51
5 IPv6 dans un monde IPv4 53
5.1 Cohabitation (double pile) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.2 Faire de lIPv6 sur un rseau IPv4 (protocole 41) . . . . . . . . . . . . . . . . . . . . . 54
5.2.1 Encapsulation IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.2.2 Tunnels statiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.2.3 Tunnels 6to4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
iii
Julien VAUBOURG
Yarding TABLE DES MATIRES quipe rseau Lothaire
5.2.4 Tunnels 6rd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.2.5 Tunnels ISATAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.3 Autres solutions pour faire de lIPv6 sur un rseau IPv4 . . . . . . . . . . . . . . . . . 62
5.3.1 Encapsulation UDP pour mieux passer les NAT (Teredo) . . . . . . . . . . . . . 62
5.3.2 Tunnels brokers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.3.3 Sans encapsulation avec le NAT64/DNS64 . . . . . . . . . . . . . . . . . . . . 66
5.3.4 Serveurs mandataires (proxies) . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.4 Faire de lIPv4 sur un rseau IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.4.1 Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.4.2 NAT-PT et NATPT-PT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.4.3 NAT64 / DNS64 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.5 Rcapitulatif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
6 Routage 73
6.1 Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
6.2 Statique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
6.3 Dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
6.3.1 Correction dynamique des chemins . . . . . . . . . . . . . . . . . . . . . . . . 74
6.3.2 Protocoles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
6.4 Prxe spcial DDoS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
7 Mobilit 79
7.1 Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
7.2 Sans optimisation du chemin (tunnel bidirectionnel) . . . . . . . . . . . . . . . . . . . 80
7.3 Avec optimisation des chemins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
7.4 Autres solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
7.5 Compatibilit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
iv
Julien VAUBOURG
Yarding TABLE DES MATIRES quipe rseau Lothaire
8 Exprimentations 85
8.1 Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
8.2 Autoconguration stateless (avec DNS) via un routeur GNU/Linux . . . . . . . . . . . 87
8.3 Tunnel statique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
8.4 Tunnel 6to4 avec un relais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
8.5 Tunnel 6rd avec relais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
8.6 Translations dadresses avec un NAT64/DNS64 . . . . . . . . . . . . . . . . . . . . . . 96
8.6.1 Stateless . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
8.6.2 Stateful . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
8.7 Mobilit IPv6, DHCPv6 statique et relais DHCPv6 . . . . . . . . . . . . . . . . . . . . 107
8.8 Ajout dynamique dadresse dans le DNS (DDNS) et pool DHCPv6 . . . . . . . . . . . 113
Conclusion 119
Est-il possible de migrer son rseau interne en IPv6 uniquement, tout en continuant bncier
des services rests en IPv4 ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Est-il possible de se passer totalement de lIPv4 ? . . . . . . . . . . . . . . . . . . . . . . . . 120
Bilan des recherches et exprimentations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
A Exemple de politique de scurit 123
B Rfrences 125
C Table des RFC 129
D Figures et tableaux 131
v
Julien VAUBOURG
Yarding TABLE DES MATIRES quipe rseau Lothaire
vi
Julien VAUBOURG
Prambule
Trainee. New recruit. It was either that or hairdressing.
2
- Tenth Doctor
Ce document a t ralis dans le cadre dun stage ingnieur
3
TELECOM Nancy de seconde anne,
sur une dure de trois mois.
Vous y trouverez un tat de lart probablement non-exhaustif mais susamment complet pour avoir
une bonne vue densemble de ce qui est possible actuellement en IPv6. partir de celui-ci, cette docu-
mentation tentera entre autres de rpondre aux questions :
Est-il possible de migrer son rseau interne en IPv6 uniquement, tout en continuant bncier
des services rests en IPv4 ?
Est-il possible de se passer totalement de lIPv4 ?
Le chapitre 8 (exprimentations) page 85 permet de retrouver un lot de tests raliss en laboratoire
clos, qui peuvent tre facilement reproduits, et qui ont pour objectif de dpasser la thorie en allant
vrier ce qui est exploitable ou non.
Ce contenu sadresse la fois aux personnes qui nont aucune connaissance en IPv6 et ceux qui
en ont dj une bonne matrise, mais qui nont pas une ide claire de ce qui est rellement utilisable
actuellement.
Des notions de rseaux sont un prrequis essentiel : bien que certains aspects soient rappels, ce
document na pas pour objectif daborder des notions qui existent dj en IPv4 et qui sont simplement
retranscrites en IPv6. Il sintresse particulirement aux expriences utilisateurs, et la migration des
parcs naux, sans sattarder prcisment sur des notions comme le routage dynamique. Le rseau Lothaire
pour lequel ce document a t conu propose dores et dj un routage et des plages dadresses IPv6
ses correspondants, mais constate un manque de motivation pour exploiter cette possibilit.
Pour ceux qui ne souhaitent pas perdre de temps et qui veulent directement savoir sil est possible ds
2012 de passer tout un rseau en IPv6 en dsactivant totalement la couche IPv4, se reporter
la section ddie au NAT64/DNS64 (section 5.4.3 page 67) et la conclusion (page 119).
2. http://en.wikiquote.org/wiki/Tenth_Doctor
3. propos de lauteur : http://julien.vaubourg.com
Yarding TABLE DES MATIRES quipe rseau Lothaire
2 / 137 Julien VAUBOURG
1
Pourquoi lIPv6
640K ought to be enough for anybody.
1
- Bill Gates (1981)
1.1 puisement des adresses IPv4
Jusqu 1985, les numros de tlphones franais comportaient sept chires. Avec les quelques indi-
catifs, cette numrotation permettait environ 50 millions de personnes de communiquer ensemble, pour
plus de 65 millions
2
de franais recenss actuellement (ajouts aux nombreuses lignes professionnelles).
Cest parce que les oprateurs nont pas vu arriver le succs de la tlphonie personnelle quils ont d
passer huit chires en 1985 puis dix en 1996, pour pouvoir accueillir plus de monde.
De la mme faon quun numro de tlphone doit tre propre chaque abonn, une adresse IP
ne peut pas tre duplique sur le rseau Internet. Ds 1981, lIPv4 (RFC 791) sur 32 bits que nous
utilisons encore aujourdhui apparat, permettant thoriquement plus de 4 milliards de machines de
communiquer entre elles, pour 7 milliards
3
dhumains.
Le rseau Internet se limitant lpoque aux grandes universits et aux armes, le nombre de possi-
bilits parait astronomique. Ainsi la mme anne, lIANA (Internet Assigned Numbers Authority) qui est
en charge de la distribution de ces adresses dans le monde entier, dcide de les rpartir par classes (RFC
791) en utilisant leurs quatre premiers bits comme discriminant. titre dexemple, attribuer une classe
A une seule universit ou entreprise revenait lui mettre disposition plus de 16 millions dadresses,
qui devenaient de ce fait indisponibles pour le reste du monde, quelles soient utilises ou non.
Cest cause de ce dcoupage grossier que le rseau Internet connut ds 1993 une premire mesure
pour enrayer lpuisement des adresses disponibles. La notation CIDR (Classless Inter-Domain Routing)
1. http://www.wired.com/politics/law/news/1997/01/1484
2. Recensement du mois de janvier 2012.
3. Chire du 31 octobre 2011, selon les Nations Unies.
Yarding CHAPITRE 1. POURQUOI LIPV6 quipe rseau Lothaire
et les notions de prxes rseaux avec le slash, que nous manipulons toujours aujourdhui, sont les
solutions qui ont t proposes par lIETF (Internet Engineering Task Force) pour rsoudre ce problme
(RFC 1338). En ayant la possibilit de proposer des blocs dadresses taille variable, lIANA peut ds
lors commencer conomiser les adresses IPv4 en nattribuant que le nombre ncessaire dadresses aux
demandeurs.
Lanne 1993 est marque par un autre vnement : lapparition du premier navigateur web graphique.
Les portes dInternet souvrent alors au grand public, qui linvestira avec plus dengouement que quiconque
aurait pu le prvoir. Il faut ds lors trouver une nouvelle solution pour prvoir un puisement qui recom-
mence inquiter.
Ainsi, en fvrier 1996, la RFC 1918 instaure le concept de NAT (Network Address Translation) et
dadresses prives. Ces dernires ne sont plus uniques et ne sont, par consquent, plus routables sur le
rseau Internet. Derrire une seule IP publique, des milliers de machines en adressage priv : lconomie
dadresses est faramineuse. Mais ds les annes 90, personne nest dupe, cest une renumrotation
lchelle mondiale qui sera ncessaire pour accueillir tous les besoins futurs, linstar de ce qui sest fait
dans la tlphonie.
la n de lanne 1998, lIETF propose les premires spcications nalises de lIPv6 (la version 5
tant exprimentale), en proposant des adresses quatre fois plus longues. Non seulement ce systme de
numrotation permet dadresser plus de machines par mtre carr quil nest physiquement possible den
placer, mais il apporte un lot tonnant de nouveauts en terme de conguration et de scurit, que nous
aborderons dans ce document.
Si les renumrotations dans la tlphonie franaise nont jamais pos de problme, cest principalement
parce que le nombre dacteurs commerciaux concerns par ce changement est particulirement rduit.
Changer de numrotation IP impose de mettre daccord des centaines de milliers dentreprises, qui devront
toutes faire les eorts ncessaires pour adapter les logiciels et les quipements, engageant ainsi des ux
nanciers importants qui nauront pourtant aucun impact direct sur leurs ventes. Sengager pour le futur
dun intrt commun, lheure o la bourse se ngocie la seconde pour des intrts privs, relve
encore du courage de quelques grosses entreprises. Stphane Bortzmeyer propose une autre approche de
la situation : Dployer IPv6 cote celui qui le dploie, ne pas le dployer cote quitablement tout
le monde. Dans un rgime capitaliste, le choix est vite fait.
4
.
Le blogger rput pousse lanalyse plus loin : Pourtant, ce nest pas une simple question dargent. La
non-migration vers IPv6 cote trs cher, notamment en temps pass faire fonctionner les applications
malgr le NAT, en complexit due lexistence de deux domaines dadressage, le priv et le public,
en temps pass remplir des papiers pour la bureaucratie des RIR, qui limite ainsi la consommation
dadresses IPv4, en lignes de code dans les applications SIP ou pair--pair pour arriver contourner
labsence dadresses globalement uniques. Le cot global de ces mesures est sans doute bien suprieur
celui dune migration vers IPv6. .
Le RIR (Regional Internet Registry) de lAsie-Pacique a dj attribu son dernier bloc IPv4, et
la pnurie mondiale est de plus en plus pesante avec lmergence de nouveaux supports comme les
ordiphones. La solution dun NAT lchelle dun oprateur comme elle est pratique dans ce secteur est
dautant plus inquitante quelle nuit fortement la neutralit du Net, en interdisant quiconque dtre
accessible depuis lextrieur. De faon plus gnrale, les NAT (et plus prcisment les NAPT) posent de
4. http://www.bortzmeyer.org/ipv6-et-l-echec-du-marche.html
4 / 137 Julien VAUBOURG
Yarding CHAPITRE 1. POURQUOI LIPV6 quipe rseau Lothaire
graves problmes de scurit
5
(accs restreints, transactions bancaires, etc.), en ne permettant plus aux
diteurs de contenus de direncier de faon able deux internautes qui partagent une mme adresse.
De la mme faon que nous navons pas eu le choix de changer de numro de tlphone, ladoption
massive de lIPv6 est invitable et doit concerner chaque acteur de linformatique quel niveau quil soit,
pour russir tous ensemble construire un Internet plus sain et plus performant.
6
Ajoutons enn que certains samusent rappeler quil reste encore des millions dIPv4 inutilises dans
le monde, et quil ne sagit que dun prtexte pour faire monter leurs prix et faire renouveler du matriel.
Il y a eectivement beaucoup dinstitutions qui conservent encore des plages normes dadresses IPv4,
mais si elles ne sont pas utilises, elles ne sont pas pour autant redistribuables. Dune faon gnrale, la
pnurie accroit toujours les ingalits, ce qui permet aux USA de ne pas encore voir la n de lIPv4 alors
que lAsie en est proche ou que de petits FAI narrivent plus se faire attribuer de blocs PI
7
(Provider
Independent).
La section suivante rappelle que le passage lIPv6 ne concerne pas seulement la pnurie dIP, mais
promet aussi terme un rseau plus rapide, plus performant et moins coteux.
1.2 Accs directs sans rcriture
Il existe un certain nombre de problmes engendrs par les rcritures des NAT :
Dicults pour la voix sur IP : les accs aux tlphones IP se font au prix dacrobaties avec le NAT,
qui empche dune faon gnrale le vrai pair--pair.
Dicults pour la visioconfrence : aux problmes similaires sus-voqus, nous pouvons rajouter
lengorgement des routeurs qui doivent traduire des milliards de paquets, ainsi que les problmes
rcurrents de ngociation de ports bilatraux.
Dicults daccs aux serveurs internes : bien que cet aspect ait tendance tre utilis pour ren-
forcer la scurit, il est trs souvent contraignant (citons lexemple de multiples serveurs HTTP
derrire une seule adresse IP publique, qui ncessitent un reverse-proxy coteux en performances
ou la mise en place de VPN administrer).
5. Voir cette confrence ce sujet : http://ipv6blog.cisco.fr/2012/06/09/793/.
6. http://xkcd.com/865
7. Voir ce sujet les conditions du RIPE concernant leur dernier /8 qui nest dcoup quen PA (Provider Aggregable)
et qui condamne donc les nouveaux petits FAI tre dpendants des LIR (Local Internet Registry) transitaires : http:
//www.ripe.net/ripe/docs/ripe-553#-----use-of-last-8-for-pa-allocations
5 / 137 Julien VAUBOURG
Yarding CHAPITRE 1. POURQUOI LIPV6 quipe rseau Lothaire
Chirement quasiment impossible : si une communication devait tre chire de bout en bout avec
un NAT, il faudrait alors que lquipement intermdiaire soit capable de le dchirer pour rcuprer
les informations des enttes.
Gestion des journaux systmes : utiliser une adresse publique unique pour un parc entier de ma-
chines ncessite dtre capable en permanence dassocier une date et une heure une machine de
ladressage priv, an dtre mme de rpondre aux requtes judiciaires.
Scurit des transactions : Dune faon plus gnrale, permettre plusieurs utilisateurs de naviguer
sur Internet derrire la mme adresse pose beaucoup de problmes de scurit aux fournisseurs de
services.
1.3 Conits et collisions
Utiliser des adresses prives signie utiliser une numrotation qui nest pas unique. Cette pratique
pose un certain nombre de problmes :
Mise en place dun VPN entre sites : si par malheur les deux socits qui souhaitent sorir des
accs VPN utilisent le mme prxe de rseau priv pour adresser leurs machines, lune des deux
devra renumroter son parc ou utiliser une technique de traduction dadresses bidirectionnelle
extrmement lourde.
Fusion de deux sites : le mme problme que prcdemment se pose, et la seule solution pour ne
pas renumroter toutes ses machines (ce qui est souvent de lordre de linenvisageable) consiste
utiliser un double NAT, qui deviendra rapidement une plaie au quotidien.
Broadcasts intempestifs : les paquets diuss lensemble du rseau sont devenus monnaie courante
en IPv4, ce qui entrane des surcharges du rseau, des collisions plus frquentes, et des boucles sur
les rseaux complexes.
Au del des conits logiciels craindre, la pnurie dadresses IPv4 promet des conits humains. Le
plus fort risque tant que certains oprateurs non-scrupuleux se permettent dannoncer des adresses non-
annonces qui ne leur appartiennent pas. Ou qui sont annonces, mais pas surveilles (RPKI / ROA). La
dsagrgation des blocs PA (Provider Aggregatable) pourrait aussi se gnraliser, en multipliant les blocs
doublement annoncs et la n du ltrage des gros prxes (qui elle-mme entranera potentiellement la
saturation de tables de routage).
1.4 Les solutions et nouveauts
Toutes ces problmatiques nont pas lieu dtre avec le modle initial du rseau Internet, qui consiste
adresser toutes les machines au mme rang, en leur donnant toutes la possibilit dtre un nud
supplmentaire sur le rseau mondial. Alors que la pnurie des adresses IPv4 nous a forc adapter notre
faon de concevoir Internet, un tel point que les nouvelles gnrations dinformaticiens ne connaissent
plus que celle-ci, lIPv6 nous permettra de revenir ces fondamentaux dhier qui sont une solution ecace
aux problmes daujourdhui et de demain.
Notons ds prsent que le NAT est direncier de la notion de pare-feu
8
: sabstraire de la
8. http://bortzmeyer.org/nat-et-securite.html
6 / 137 Julien VAUBOURG
Yarding CHAPITRE 1. POURQUOI LIPV6 quipe rseau Lothaire
notion dadresses prives ne signie en aucun cas permettre systmatiquement des accs non-contrls
aux machines dun rseau depuis lextrieur.
Outre labolition des NAT et le nombre quasi-illimit dadresses, lIPv6 ore dautres solutions qui en
dcoulent parfois :
Plusieurs adresses par interface : ctait dj possible en IPv4, mais a se gnralise avec lIPv6,
permettant ainsi de faciliter les migrations, daccrotre la scurit et de faciliter lhbergement de
multiples services.
Adresses de lien local uniques : grce des mcanismes qui seront dtaills plus tard dans ce docu-
ment, toutes les adresses dun rseau qui na pas pour vocation de se relier Internet se gnrent
entirement delles-mmes, de faon assurment uniques (quivalent du zroconf gnralis).
Suppression du broadcast : il est en ralit remplac par une adresse multicast laquelle on est libre
dtre inscrit ou non, et par une collection dautres adresses multicasts utilises en priorit pour
certains usages courants.
Prsence de IPsec systmatique : la fonctionnalit nest pas la nouveaut, mais plutt lassurance
quelle sera supporte par tout matriel ou logiciel supportant lIPv6.
Enttes IP simplis : non seulement le champ checksum a disparu (il dlgue le travail de vrication
aux couches suprieures) et na plus besoin dtre recalcul systmatiquement par les routeurs, mais
les enttes ont t rduites, allgeant ainsi dautant la charge des rseaux. Une autre consquence
de cette dlgation du calcul du checksum est quil sera calcul au niveau de TCP pour lensemble
du paquet plutt que pour lentte seul. Il devient galement obligatoire pour UDP.
Mobilit et renumrotation : les mcanismes mis en place par lIPv6 permettent facilement de dis-
tinguer les prxes rseau des identiants dinterface.
Multicast valoris : des groupes multicast gnriques permettent de contacter des machines par type,
en envoyant par exemple une requte de dcouverte du DHCP tous les routeurs en multicast,
plutt qu lensemble des machines du rseau en broadcast.
Autoconguration stateless : lIPv6 permet une machine de sinsrer dans un rseau sans aucune
conguration manuelle et sans DHCP grer.
1.5 Des paquets plus cohrents
Alors que la structure des paquets IPv4 a t conue une poque o personne nimaginait lampleur
quallait prendre le modle TCP/IP, la norme IPv6 est une occasion de corriger les erreurs qui ont t
commises. La gure 1.1 donne un aperu du nouveau format des paquets.
Les dirences importantes sont :
Disparition du champ IP Header Length (la taille des enttes est xe).
Le TTL (Time To Live) est renomm en Hop Limit puisque ctait dj son usage en IPv4.
9
Aucun champ checksum, qui ncessitait un nouveau calcul chaque routage en IPv4 cause du
TTL qui tait inclus dedans (la tche est dlgue la couche transport).
9. La RFC 791 indiquait initialement pour le TTL : This eld indicates the maximum the datagram is allowed to
remain in the internet system. [...] The time measured in units of seconds. .
7 / 137 Julien VAUBOURG
Yarding CHAPITRE 1. POURQUOI LIPV6 quipe rseau Lothaire
Version
(4b)
Type de trac (8
bits)
Label du ux (20 bits)
Taille des donnes (16 bits) Prochain entte (8b) Hop limit (8 bits)
Adresse source (128 bits)
Adresse de destination (128 bits)
Figure 1.1 Paquet IPv6.
La taille des donnes ninclut pas la taille des enttes.
Des enttes optionnels peuvent tre ajouts la suite de lentte, notamment pour le numro de
fragmentation.
Un algorithme de dcouverte du MTU de bout en bout (Path MTU Discovery, RFC 1191) est destin
tre dploy massivement, pour viter toute fragmentation, celle-ci rduisant considrablement le dbit
(si un seul paquet est perdu, tout doit tre retransmis). En cas de fragmentation, celle-ci nest plus du
ressort des routeurs intermdiaires, qui doivent se contenter de retourner un message ICMPv6 Packet Too
Big. Lmetteur aura alors pour charge de reproposer le paquet quil aura lui-mme dcoup, permettant
ainsi aux routeurs intermdiaires de ncessiter moins de puissance.
La MTU minimale est de 1280 octets (contre 68 en IPv4) et la taille maximale dun paquet est de
65535 octets, comme en IPv4 (avec loption jumbogram de la RFC 2675, qui permet de laugmenter
jusqu 4 Go).
1.6 tat du dploiement de lIPv6 en France
1.6.1 FAI publics
Loprateur Nerim semble tre le premier avoir propos de lIPv6, en proposant des /48 natifs
systmatiques ses abonns ds 2003
10
. Pour rsoudre les cas de gure o laccs natif est impossible,
il propose aussi des tunnels encapsulation sur de lIPv4.
Vient ensuite loprateur Free qui propose des adresses IPv6 trs attendues
11
ds 2007 pour les abon-
ns dgroups. Dans le communiqu de presse
12
, Iliad prcise quil est lun des premiers oprateurs
dans le monde faire voluer son rseau . Comme nous le verrons dans la partie ddie au 6rd, cette
armation nest pas tout faire vraie puisquils utilisent un mcanisme dencapsulation qui leur permet-
tent justement de ne pas faire voluer leur rseau ( lexception des connexions bres, qui reprsentent
encore une minorit de leurs lignes). Ils se limitent orir un /64, qui permet tout de mme bien plus
dadresses quun particulier ne pourra jamais avoir besoin. Toutefois, en considrant que les 64 derniers
10. http://www.nerim.fr/ipv6
11. http://ipv6pourtous.free.fr/rani/
12. http://www.iliad.fr/presse/2007/CP_IPv6_121207.pdf
8 / 137 Julien VAUBOURG
Yarding CHAPITRE 1. POURQUOI LIPV6 quipe rseau Lothaire
bits dune adresse doivent tre rservs pour lautoconguration stateless (aborde dans la suite de ce
document), ce prxe ne permet pas de faire des sous-rseaux depuis une ligne Free.
Le 26 mai 2011, cest une certaine Chlo qui annonce louverture dune priode de bta-tests du ct
de SFR-Neufbox
13
. On apprend dans une news Cisco
14
que SFR aurait utilis le CGv6
15
avec un ASR
1000 pour migrer son rseau. On peut donc en dduire que SFR se contente aussi dencapsuler de lIPv6
sur de lIPv4.
Prsent depuis 2009 sur le rseau MPLS
16
(groupe de lIETF charg de standardiser un certain
nombre de techniques de transport sur des trames de niveau 2), Orange ne propose toujours pas dIPv6
ses abonns. Malgr tout il ne lignore pas totalement sur ses infrastructures, puisquil propose des VPN
IPv6 destination des entreprises (voir la jolie vido
17
). Pour la suite, un projet plus large semble tre
dans les rails dans le cadre de Conqutes 2015 comme en tmoigne son communiqu de presse
18
.
Laccs aux particuliers serait prvu pour 2013 avec une nouvelle Livebox en 2012. Bien quil soit le plus
gros oprateur franais, l Internet by Orange lui vaut une fois de plus dtre la trane derrire ses
concurrents.
Du ct des FAI alternatifs, FDN
19
(French Data Network) propose des connexions nativement IPv6
depuis 2009. En Lorraine, le FAI participatif LDN
20
(Lorraine Data Network) les propose depuis sa
cration, comme la plupart des membres de la FFDN
21
(Fdration French Data Network).
1.6.2 Rseaux de recherche
Renater, le rseau franais pour lducation et la recherche, est aux coude--coude avec Nerim pour
linnovation en France, puisquil propose aussi ds 2003 de lIPv6 sur lensemble de son rseau
22
. Il prcise
que tous les routeurs sont en double pile, et quil utilise le rseau GANT pour communiquer en IPv6
avec le reste du monde. Environ 160 prxes /48 ont t allous en sa qualit de LIR (Local Internet
Registry). Il propose galement une carte de France publique de ltat de ses connexions IPv6 en temps
rel
23
.
Le rseau fdrateur GANT propose de lIPv6 depuis 2002, et dresse un bilan de la situation de
lIPv6 dans plusieurs pays du monde
24
. Le 6lab
25
de Cisco propose aussi un tat du dploiement de
lIPv6 dans le monde, de faon plus interactive.
13. http://atelier.sfr.fr/beta-tests/la-neufbox-sfr-passe-a-l-ipv6
14. http://newsroom.cisco.com/press-release-content?type=webcontent&articleId=358080
15. http://www.cisco.com/en/US/netsol/ns1017/networking_solutions_solution_category.html
16. http://datatracker.ietf.org/wg/mpls/charter/
17. http://ipv6.orange-business.com
18. http://mobile.orange.fr/content/ge/high/v2_a_propos_d_orange/cp/244685.pdf
19. http://fdn.fr
20. http://ldn-fai.net
21. http://ffdn.org
22. http://www.renater.fr/deploiement-ipv6-sur-le-reseau-renater?lang=fr
23. http://pasillo.renater.fr/weathermap/weathermap_france_ipv6.html
24. http://www.geant.net/Network/NetworkTopology/Pages/IPv6.aspx
25. http://6lab.cisco.com/stats/
9 / 137 Julien VAUBOURG
Yarding CHAPITRE 1. POURQUOI LIPV6 quipe rseau Lothaire
1.6.3 Sites web populaires
La gure 1.2 propose une analyse du top 100 des sites les plus visits par les franais en mai 2012
selon Alexa
26
, en colorisant en vert les sites accessibles en IPv6
27
.
1. google.fr
2. facebook.com
3. google.com
4. youtube.com
5. yahoo.fr
6. fr.wikipedia.org
7. live.fr
8. t.co
9. leboncoin.fr
10. www.orange.fr
11. www.free.fr
12. fr.linkedin.com
13. ebay.fr
14. twitter.com
15. commentcamarche.net
16. viadeo.com
17. amazon.fr
18. lemonde.fr
19. dailymotion.com
20. over-blog.com
21. blogger.com
22. garo.fr
23. msn.fr
24. pagesjaunes.fr
25. wordpress.com
26. lequipe.fr
27. blogger.fr
28. sfr.fr
29. programme-tv.net
30. allocine.fr
31. linternaute.com
32. laredoute.fr
33. www.googleusercontent.com
34. apple.com
35. vente-privee.com
36. microsoft.com
37. pole-emploi.fr
38. ovh.net
39. tumblr.com
40. adcash.com
41. leparisien.fr
42. seloger.com
43. tf1.fr
44. xhamster.com
45. voyages-sncf.com
46. ovh.com
47. paypal.com
48. 20minutes.fr
49. jeuxvideo.com
50. bing.fr
51. priceminister.com
52. skyrock.fm
53. www.doctissimo.fr
54. deezer.com
55. cdiscount.fr
56. pinterest.com
57. journaldunet.com
58. boursorama.fr
59. badoo.com
60. societe.com
61. lexpress.fr
62. aufeminin.com
63. nouvelobs.com
64. ickr.fr
65. youporn.com
66. becoquin.com
67. meteofrance.com
68. fnac.com
69. credit-agricole.com
70. liberation.fr
71. bnpparibas.com
72. clubic.com
73. babylon.com
74. advertstream.com
75. laposte.net
76. caisse-epargne.fr
77. 01net.com
78. canalplus.fr
79. ad6media.fr
80. voila.fr
81. canalblog.com
82. webrankinfo.com
83. new.livejasmin.com
84. rueducommerce.fr
85. pornhub.com
86. xvideos.com
87. lepoint.fr
88. societegenerale.fr
89. vivastreet.co.uk
90. reverso.net
91. wordreference.com
92. adserverpub.com
93. labanquepostale.fr
94. conduit.com
95. mobile.free.fr
96. adobe.com
97. banquepopulaire.fr
98. pixmania.com
99. groupon.com
100. amazon.com
Figure 1.2 Les 100 sites les plus visits par les franais et lIPv6 (sites compatibles en vert).
Seuls 10% des sites populaires sont accessibles en IPv6, dont 50% provient des serveurs de Google.
Certains sites comme ovh.com sont accessibles en IPv6 via une adresse spcique (ipv6.ovh.com), ce qui
ne rend leur site web accessible que pour les initis.
Le constat nest pas trs encourageant, mais migrer un site web en IPv6 nest pas techniquement
compliqu. Il tient donc probablement plus de la fainantise des diteurs que de lincomptence tech-
nique ou du cot nancier de la migration. Si tous les internautes disposaient de lIPv6 et que tous les
datacenters le mettaient aussi disposition, il y a fort parier que le tableau changerait trs rapidement.
Cette liste elle-seule justie limportance de la ncessit de faire cohabiter lIPv4 avec lIPv6.
26. http://www.alexa.com/topsites/countries/FR
27. while read site; do (dig AAAA +short +tcp $site | grep -v \\. > /dev/null) && echo "\\item
{\\color{green} $site}" || echo "\\item {\\color{red} $site}"; done < sites.txt >> sites_ip6.txt
10 / 137 Julien VAUBOURG
Yarding CHAPITRE 1. POURQUOI LIPV6 quipe rseau Lothaire
1.6.4 IPv6 day
En 2011 a eu lieu la premire journe mondiale de lIPv6, organise par lInternet Society. Alors quelle
tait destine encourager les acteurs du monde entier tester leurs infrastructures en IPv6 sur une
journe, la version du 6 juin 2012 (le World IPv6 Launch, dont le logo est en gure 1.3 page 11) avait
pour objectif de les encourager proposer leurs services en IPv6 de faon durable.
Figure 1.3 Logo de la journe mondiale pour le lancement de lIPv6.
En France, des FAI comme Orange ou SFR ont particip cette journe mondiale aux cts dacteurs
mondiaux comme Cisco
28
, Google
29
, et bien dautres
30
.
La gure 1.4 page 11 semble prouver quau niveau mondial, que ce soit grce cette initiative
populaire ou non, lutilisation dIPv6 dans le monde explose depuis ces dernires annes (mesures ralises
par Google
31
).
Figure 1.4 Utilisation de lIPv6 au travers du temps, mesure par Google.
28. http://www.cisco.com/web/solutions/trends/ipv6/world_day.html
29. http://www.google.com/intl/en/ipv6
30. http://www.worldipv6launch.org/infographic/
31. http://www.google.com/ipv6/statistics.html
11 / 137 Julien VAUBOURG
Yarding CHAPITRE 1. POURQUOI LIPV6 quipe rseau Lothaire
1.7 Le risque des CGN
La pnurie dadresses ntant plus de lordre de la ction, les oprateurs devront trouver une solution
si le monde narrive pas passer srieusement IPv6. La seule vraie solution qui pourrait alors tre
retenue, est de faire un NAT lchelle dun FAI. Ce sont les CGN (Carrier Grade NAT), qui sont dj
massivement utiliss pour lInternet mobile. La succession du NAT particulier avec le NAT du fournisseur
est parfois appele NAT444.
Les CGN consistent utiliser des plages dadresses prives du rseau du FAI pour relier les clients
Internet, ce qui pose quelques inconvnients majeurs
32
:
Chevauchements : Le nombre de rseaux privs prvus par la RFC 1918 est limit, il y aura donc
obligatoirement des conits entre les adresses utilises par le FAI et le rseau local des utilisateurs
(voir la RFC 5684 ce sujet).
Connexions P2P : Le vrai P2P nexistait dj plus avec les NAT des particuliers, mais il deviendra
probablement totalement impossible avec les CGN.
Rseaux limits : La plus grande plage prive tant le rseau 10.0.0.0/8 qui peut numroter de 10
16 millions de passerelles, certains gros oprateurs peuvent se retrouver court dadresses pour
leurs clients y compris avec ce systme.
Golocalisation : Il nest plus possible du tout de dterminer lemplacement gographique dun inter-
naute.
Protocoles limits : Les applications qui nutilisent pas les protocoles classiques tels que TCP, UDP
ou ICMP seront bloques (cf. RFC 6269). Ce sera notamment le cas des tunnels IPv6 qui utilisent
le protocole 41, qui sont abords dans la suite de ce document. Cette situation aura pour eet
dinterdire toutes nouvelles innovations sur le rseau.
Ports limits : Il ny a pas de consensus actuellement sur le nombre minimal de ports attribuer
pour chacun des clients. Un nombre trop faible empcherait certaines applications de fonctionner
(comme Google Maps
33
).
Journaux systme : Les gros oprateurs ne pourront pas garder la trace obligatoire avec un NAT
de tous les ux de leurs clients, sans faire subir leur rseau dnormes ralentissements.
Scurit : Le premier aspect concernant la scurit est limpossibilit pour les fournisseurs de services de
direncier deux visiteurs, et donc de les discriminer pour des tches sensibles comme les oprations
bancaires. Le second aspect concerne la lutte contre la cybercriminalit, qui a parfois lgitimement
besoin didentier un internaute, et qui aura des dicults avec les oprateurs qui narriveront pas
retracer les connexions (cf. point prcdent).
Autohbergement : Ne plus avoir une adresse publique signie ne plus tre visible sur Internet ; il
devient ds lors impossible dhberger des services Internet domicile. Cette privation remet en
cause le modle dInternet, qui consiste relier des nuds sans distinction, et nuit la neutralit
du Net en ne permettant plus quiconque de proposer ses propres services
34
.
32. Arguments principalement tirs de la page Wikipdia : http://fr.wikipedia.org/wiki/Carrier_Grade_NAT.
33. http://www6.ietf.org/proceedings/78/slides/natTUT-0.pdf
34. Voir la confrence Minitel 2.0 : http://www.fdn.fr/internet-libre-ou-minitel-2.html.
12 / 137 Julien VAUBOURG
2
Adressage
I dont know if its what you want, but its what you get.
1
- Larry Wall (1990)
2.1 Conventions dcriture
Les nouvelles adresses IP comporteront 128 bits, soit 16 octets. Pour faciliter leur lecture, celles-ci
sont dcoupes en blocs de 16 bits spars par le symbole deux-points :
1 2001:0db8:0000:0000:0000:abcd:def0:1234
Tous les zros en tte de bloc peuvent tre supprims, et les quadruplets de zros rduits un seul
nibble :
1 2001:db8:0:0:0:abcd:def0:1234
Plus simple encore, une suite (de 1 7) de blocs de zros peut tre induite par un double deux-points :
1 2001:db8::abcd:def0:1234
Cette notation indique aux interprteurs de remplacer ce double symbole par autant de zros quil
nen faut pour arriver aux 128 bits ncessaires, sur la totalit de ladresse donne. Par souci dunicit des
possibilits dextension, le double deux-points ne peut tre utilis qu un seul endroit dans ladresse.
La notion historique de classes a totalement disparu, au prot de lutilisation exclusive des prxes et
de la notation CIDR avec le slash et le masque, dj utiliss en IPv4. Les masques canoniques disparaissent
donc, au grand bonheur des administrateurs.
Ainsi, pour un prxe sur 60 bits tel que 2001:0db8:0000:ba3 :
1. http://groups.google.com/groups?selm=10502@jpl-devvax.JPL.NASA.GOV&hl=en
Yarding CHAPITRE 2. ADRESSAGE quipe rseau Lothaire
1 2001:0db8::ba30:0:0:0:0/60
2 ou
3 2001:db8:0:ba30::/60
4 ou encore
5 2001:0db8:0000:ba30:0000:0000:0000:0000/60
Comme en IPv4, une adresse dinterface peut tre suivie de son masque de rseau grce la notation
CIDR.
Dans un contexte de requte HTTP, ladresse IPv6 doit obligatoirement tre entre crochets pour
direncier le port du reste de ladresse (ainsi que dans dautres cas dambigut, comme avec SCP) :
1 HTTP : [2001:db8::abcd:def0:1234]:8080
2 SCP : [2001:db8::abcd:def0:1234]:/etc/passwd
Concernant le calcul des sous-rseaux IPv6, loutil sipcalc apporte une prcieuse aide :
1 $ sipcalc -6 2001:db8::/48 -S /56
2 -[ipv6 : 2001:db8::/48] - 0
3
4 [Split network]
5 Network - 2001:0db8:0000:0000:0000:0000:0000:0000 -
6 2001:0db8:0000:00ff:ffff:ffff:ffff:ffff
7 Network - 2001:0db8:0000:0100:0000:0000:0000:0000 -
8 2001:0db8:0000:01ff:ffff:ffff:ffff:ffff
9 Network - 2001:0db8:0000:0200:0000:0000:0000:0000 -
10 2001:0db8:0000:02ff:ffff:ffff:ffff:ffff
11 Network - 2001:0db8:0000:0300:0000:0000:0000:0000 -
12 ...
Loutil Map Simulation Tool
2
propos par Cisco permet aussi de concevoir son plan dadressage IPv6,
dune manire interactive (un tutoriel vido
3
est mis disposition).
La section 2.9 page 24, concernant les bonnes pratiques, apporte des informations complmentaires
sur lutilisation de ces adresses.
2.2 Adresses unicast
2.2.1 Gnralits
Il sagit du mme type dadresse (RFC 4291, section 2.5) que son homologue IPv4. Cest donc le
type dadresse le plus classique, compos dun prxe rseau longueur variable suivi dun identiant
dinterface (parfois driv des adresses MAC, sur 64 bits).
La gure 2.1 illustre le mode de diusion.
2. http://6lab.cisco.com/map/MAP.php
3. http://www.youtube.com/watch?v=dxvJTB2Ymlg
14 / 137 Julien VAUBOURG
Yarding CHAPITRE 2. ADRESSAGE quipe rseau Lothaire
Figure 2.1 Reprsentation schmatique dune diusion unicast.
On distingue plusieurs sous-catgories.
2.2.2 Link-local Unicast
Adresses de lien local, non-routables en local comme sur Internet. Cest un peu lquivalent des
adresses 169.254/16 du zroconf de lIPv4.
Elles utilisent toutes le prxe fe80::/10, elles sont donc souvent directement reconnaissables par
leur premier bloc. Elles sont systmatiquement gnres lors de lutilisation de lautoconguration state-
less.
2.2.3 Unique Local Unicast
Ces adresses peuvent tre utilises sur un lien local comme les prcdentes, mais qui pourra tre
partag entre plusieurs sites par un tunnel. Elles ne sont pas non plus routables sur Internet, et cest la
catgorie qui se rapproche le plus des adresses prives IPv4 (RFC 1918).
Leur dirence par rapport au type tudi ci-avant dpend de lutilisation dun algorithme cens
assurer leur unicit en cas de branchement avec un autre site, dtaill dans la RFC 4193.
Elles utilisent toutes le prxe fc00::/7, mais avec le huitime bit en partant de la gauche positionn
1 si le prxe est dni localement. Puisque la valeur 0 nest pas possible actuellement (usage futur),
elles sont reconnaissables par leur premier bloc qui commence systmatiquement par fd.
Des outils comme UltraTools
4
permettent de les gnrer sans se soucier du fonctionnement de
lalgorithme dtaill dans la RFC.
Ce type dadresse remplace le type site-local unicast, rendu obsolte.
2.2.4 Global Unicast
Tout ce qui ne correspond ni lune des autres catgories dadresses unicast, ni une adresse multicast
ou anycast, est une adresse globale. Il sagit des adresses qui sont uniques dans le monde, et qui sont
4. http://ultratools.com > UltraTools > IPv6 Tools > Local IPv6 Range Generator
15 / 137 Julien VAUBOURG
Yarding CHAPITRE 2. ADRESSAGE quipe rseau Lothaire
par consquent routables sur Internet.
Elles se composent dun prxe de routage global, suivi du prxe de sous-rseau et de lidentiant
dinterface. LIANA fournit la liste des prxes
5
aects aux dirents RIR, qui permettent donc de
classer les IP rencontres sur le rseau mondial par rgion du monde.
Si le prxe 2001:db8::/32 semble appartenir lAPNIC (Asie-Pacique), il nest en ralit pas
routable sur Internet puisquil sagit des adresses utiliser pour les exemples des documentations (RFC
3849).
2.3 Adresses multicast
2.3.1 Gnralits
Ce type dadresse (RFC 4291, section 2.7) correspond prcisment son homologue IPv4. Il sagit
dadresses virtuelles gres par les routeurs, qui redistribuent des paquets tous les membres inscrits
dans un groupe, linstar du fonctionnement dune liste de diusion de courriels.
La gure 2.2 illustre le mode de diusion.
Figure 2.2 Reprsentation schmatique dune diusion multicast.
Elles utilisent toutes le prxe ff00::/8
6
. Elles sont donc reconnaissables par leur premier bloc qui
commence systmatiquement par ff.
2.3.2 Structure
Le format dune IP multicast est donn en gure 2.3.
8 bits 4 bits 4 bits 112 bits
1111 1111 Drapeaux : 0RPT Porte Identiant de groupe
Figure 2.3 Format dune IP multicast.
Les quatre bits qui suivent le prxe dsignent les drapeaux (ags) :
5. http://iana.org/assignments/ipv6-address-space/ipv6-address-space.xml
6. Liste complte : http://en.wikipedia.org/wiki/Multicast_address#IPv6
16 / 137 Julien VAUBOURG
Yarding CHAPITRE 2. ADRESSAGE quipe rseau Lothaire
0 (zro !) : Il sagit dun zro immuable.
T (Temporaire ?) : Il doit tre 0 lorsque cest une adresse aecte de faon permanente (well-known
address) par lIANA, sinon il est 1.
P (issue du Prxe ?) : Il doit tre 0 si ladresse multicast ne correspond pas au prxe dius sur
le rseau, ce qui est obligatoirement le cas si le drapeau T est lui-mme 0, sinon il sera 1 (RFC
3306).
R (utilise un Rendez-vous ?) : Il sera 1 si ladresse multicast utilise un point de rendez-vous
7
(auquel cas P est obligatoirement 1, ce qui signie que T aussi), et sera donc la plupart du
temps 0.
Les quatre bits qui suivent les drapeaux correspondent la porte de ladresse (scope), qui peuvent
limiter son rayonnement linterface (1) pour les tests, au lien local (2), au site correspondant au rseau
local (5), Internet (e) ou des zones plus varies dcrites dans la RFC 4291
8
.
Cette faon de faire permet de contacter des services ecacement en ajustant le type daccs. Ainsi,
en dnissant lidentiant 123 pour tous les serveurs NTP, on aura la possibilit de contacter dirents
niveaux de serveurs selon le prxe associ (tableau 2.1).
Adresse Serveurs NTP contacts
ff01::123 Ceux qui sont sur la mme interface
ff02::123 Ceux du mme lien
ff05::123 Ceux du LAN
ff0e::123 Tous y compris sur Internet
Table 2.1 Exemple dutilisation de la porte des adresses multicast avec NTP.
2.3.3 Adresses utiles
Un certain nombre dadresses multicast sont normalises par lIETF (drapeau T positionn 0), et
sont documentes dans la RFC 2461
9
.
Les plus utilises (porte de lien local) sont rfrences dans le tableau 2.2.
Les systmes Debian (par exemple) associent par dfaut un domaine ces adresses (/etc/hosts) :
1 # The following lines are desirable for IPv6 capable hosts
2 ::1 ip6-localhost ip6-loopback
3 fe00::0 ip6-localnet
4 ff00::0 ip6-mcastprefix
5 ff02::1 ip6-allnodes
6 ff02::2 ip6-allrouters
7. http://www.cisco.com/en/US/prod/collateral/iosswrel/ps6537/ps6552/whitepaper_c11-508498.
html
8. Ou sur http://www.iana.org/assignments/ipv6-multicast-addresses/ipv6-multicast-addresses.xml.
9. Ou sur http://en.wikipedia.org/wiki/Multicast_address#IPv6.
17 / 137 Julien VAUBOURG
Yarding CHAPITRE 2. ADRESSAGE quipe rseau Lothaire
Nom Adresse quivalent IPv4 Fonction
all-nodes ff02::1 224.0.0.1
Tous les nuds et routeurs du lien local (util-
ise par exemple pour les interfaces qui nont
pas encore dadresse mais qui veulent recevoir
une rponse, notamment pour savoir sil y a du-
plication dans lalgorithme DAD, abord par la
suite)
all-routers ff02::2 224.0.0.2
Tous les routeurs du lien local (utilise par ex-
emple pour solliciter une annonce de prxe sur
le rseau)
solicited-node ff02::1:ff* Aucun
Permet de contacter un nombre restreint de ma-
chines, notamment pour faire une association
MAC-IP (protocole NDP) plutt que de broad-
caster comme le faisait lARP
Table 2.2 Adresses multicast couramment utilises (porte locale).
2.3.4 Trame ethernet
Ladresse ethernet (MAC) dune trame destination dun groupe multicast est drive de ladresse
IP du groupe (RFC 5342 et 2464), comme dcrit dans la gure 2.4.
16 bits 32 bits
ff02::1:ff00:0 32 derniers bits de ladresse IPv6 de linterface
Figure 2.4 Format dune adresse ethernet multicast.
La gure 2.5 illustre cette conversion.
10
Figure 2.5 Conversion dune adresse IP multicast en adresse ethernet multicast (adresse all-nodes).
18 / 137 Julien VAUBOURG
Yarding CHAPITRE 2. ADRESSAGE quipe rseau Lothaire
2.3.5 Abonnements systmatiques
tant donnes les notions tudies ci-avant, les groupes multicasts utiliss dans les dirents algo-
rithmes ncessitent que les machines rejoignent des groupes automatiquement, parfois en fonction de la
nature de leur rle sur le rseau.
Exemple de groupes multicast IPv6 automatiquement rejoints par une Debian en autoconguration
stateless (par dfaut) :
1 # Adresse MAC qui a servie pour lautoconfiguration des adresses IPv6
2 $ ip link show dev eth0
3 2: eth0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state
UP mode DEFAULT qlen 1000
4 link/ether 00:21:70:ec:b4:9b brd ff:ff:ff:ff:ff:ff
5
6 # Adresses IPv6
7 $ ip -6 addr show dev eth0
8 2: eth0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qlen 1000
9 inet6 2001:660:4503:105:221:70ff:feec:b49b/64 scope global dynamic
10 valid_lft 2591946sec preferred_lft 604746sec
11 inet6 fe80::221:70ff:feec:b49b/64 scope link
12 valid_lft forever preferred_lft forever
13
14 # Abonnements multicast
15 $ ip -6 maddress show dev eth0
16 2: eth0
17 inet6 ff02::fb
18 inet6 ff02::202
19 inet6 ff02::1:ffec:b49b users 2
20 inet6 ff02::1
La signication des inscriptions pour un poste utilisateur est renseigne dans le tableau 2.3 page 20.
Exemple de groupes multicast IPv6 automatiquement rejoints par un routeur Cisco en autocongu-
ration stateless (par dfaut) :
1 # Adresses IPv6 et groupes multicast rejoints
2 Router# show ipv6 interface fa 0/1
3
4 IPv6 is enabled, link-local address is FE80::217:59FF:FE02:8DB9
5 No Virtual link-local address(es):
6 Global unicast address(es):
7 2001:660:4503:105::2, subnet is 2001:660:4503:105::/64
8 Joined group address(es):
9 FF02::1
10 FF02::2
11 FF02::1:FF00:2
12 FF02::1:FF02:8DB9
19 / 137 Julien VAUBOURG
Yarding CHAPITRE 2. ADRESSAGE quipe rseau Lothaire
La signication des inscriptions pour un routeur est renseigne dans le tableau 2.4 page 20.
Groupe multicast quivalent IPv4 Signication
ff02::fb 224.0.0.251
coute des trames mDNS (rsolutions DNS sans
conguration de serveur DNS)
ff02::202 Via ladresse de broadcast
coute des trames de broadcast RPC (Remote
Procedure Calls)
ff02::1:ffec:b49b Aucun
Adresse solicited-node correspondant la fois
son adresse IP de lien local en fe80: et son adresse
globale en 2001:, puisque les 24 derniers bits de
chacune sont identiques (il sagit aussi des 24
derniers bits de ladresse MAC) - le users 2 signie
que deux processus coutent sur la socket corre-
spondante
ff02::1 224.0.0.1
Adresse all-nodes, qui remplace plus ou moins le
broadcast (en beaucoup moins sollicite, et de
laquelle on pourrait ventuellement se dsinscrire
bien que a ne soit pas du tout conseill)
Table 2.3 Groupes multicast automatiquement rejoints par une Debian.
Groupe multicast quivalent IPv4 Signication
ff02::1 224.0.0.1 Les routeurs coutent aussi ladresse all-nodes
ff02::2 224.0.0.2
Adresse all-routers, jointe automatiquement ds lors que
le unicast-routing global est activ
a
pour lIPv6
a. https://supportforums.cisco.com/thread/2155384?
tstart=0
ff02::1:ff00:2 Aucun
Adresse solicited-node correspondant ladresse unicast
globale en 2001:
ff02::1:ff00:8db9 Aucun
Adresse solicited-node correspondant ladresse de lien
local en fe80:, dirente de celle utilise pour ladresse
globale puisque cette dernire na pas utilis lautocong-
uration mais a t xe manuellement
Table 2.4 Groupes multicast automatiquement rejoints par un routeur Cisco.
Toutes ces adresses multicast sont de type lien local (ff02:) : contrairement aux adresses de porte
suprieure, elles ne donnent pas lieu une inscription sur les routeurs, qui ne connaissent donc pas la
composition des groupes. Lorsquune trame est destination dune adresse multicast de ce type (donc
adresse une MAC en 33:33:), elle est transmise par les switchs sur lensemble des interfaces, de la
mme faon que du broadcast IPv4. Si cette faon de faire ne rduit pas les charges rseau et nvite pas
les problmes de boucle de niveau 2, elle rduit tout de mme la charge des cartes rseaux, puisquelles
peuvent rejeter le paquet simplement en comparant ladresse MAC de destination avec leurs tables
multicast locales, sans ncessiter de dsencapsulation.
20 / 137 Julien VAUBOURG
Yarding CHAPITRE 2. ADRESSAGE quipe rseau Lothaire
2.4 Adresses de broadcast
Le broadcast a t supprim et ne doit plus tre pris en considration dans les plans dadressage, au
prot de lutilisation massive du multicast. Le groupe multicast qui se rapproche le plus du fonctionnement
du broadcast traditionnel correspond au groupe all-nodes donn en exemple et cens correspondre tous
les nuds (mais dont linscription est la discrtion de la machine).
La gure 2.6 illustre le mode de diusion.
Figure 2.6 Reprsentation schmatique dune diusion broadcast.
Avec cette nouvelle approche, lIPv6 tente de rsoudre les problmes de temptes de broadcast,
frquemment rencontrs en version 4. Les groupes prdnis permettent de contacter les machines par
type de service, en vitant ainsi de charger des machines qui nont aucune chance dtre concernes par
le message.
2.5 Adresses anycast / rseaux
Les adresses anycast (RFC 4291, section 2.6) ne sont pas direnciables des adresses unicast (seule
les interfaces qui les utilisent savent quelles sont anycast).
Elles permettent de contacter une machine parmi un lot sans en avoir conscience. Ainsi, ce sera la
premire qui rpondra (souvent la plus proche topologiquement parlant) qui sera utilise, et les autres
ne recevront aucun des paquets transmis. Ce type dadresse peut donc tre aect plusieurs interfaces
sur un rseau.
La gure 2.7 illustre le mode de diusion.
Figure 2.7 Reprsentation schmatique dune diusion anycast.
21 / 137 Julien VAUBOURG
Yarding CHAPITRE 2. ADRESSAGE quipe rseau Lothaire
Lune des principales utilisations de cette opportunit concerne les routeurs, en donnant la possibilit
de contacter automatiquement le routeur le plus proche dun sous-rseau donn. Il a t standardis
quil sut de contacter en unicast ladresse correspondant au prxe de rseau suivi de zros (ce quon
appelait autrefois ladresse du rseau) pour contacter le routeur qui sera en capacit de nous rpondre le
plus rapidement possible. Cest une solution pour la redondance des routeurs qui nest pas obligatoire,
mais qui est plus simple mettre en uvre que lutilisation du HSRP. Sur un routeur Cisco, lIOS
ne respecte pas cette norme par dfaut, et se contente uniquement de prvenir du caractre unicast de
ladresse si lutilisateur tente de lattribuer une interface.
2.6 Adresses de boucles locales
Les administrateurs qui ne voient pas beaucoup le soleil et qui ont 127.0.0.1 crit sur leur paillasson,
devront le troquer pour une version plus rcente avec ::1 inscrit dessus.
Ladresse :: correspond logiquement ladresse IPv4 0.0.0.0 et ne sera donc utilise que pour
dnir les passerelles par dfaut, ou comme adresse source des paquets de dcouverte de son IP.
2.7 Dterminer rapidement le type dune adresse
Outre les dbuts de blocs souvent reconnaissables, des outils permettent de lever toute ambigut sur
un type dadresse.
Le logiciel ipcalc prsent dans la plupart des distributions GNU/Linux orait un couteau suisse pr-
cieux pour tous les administrateurs rseaux fainants (et par consquent comptents). Ils seront heureux
de savoir quil existe un quivalent pour ces nouvelles adresses angoissantes, qui sappelle logiquement
ipv6calc.
Le fonctionnement est un peu moins optimal que son prdcesseur, mais ore beaucoup plus de
possibilits de conversion.
Plutt que de copier le man bien fourni, voici simplement un exemple :
1 $ ipv6calc -qi fe80::216:3eff:fed6:2ba0
2 Address type: unicast, link-local
3 Error getting registry string for IPv6 address: reserved(RFC4291#2.5.6)
4 Interface identifier: 0216:3eff:fed6:2ba0
5 EUI-48/MAC address: 00:16:3e:d6:2b:a0
6 MAC is a global unique one
7 MAC is an unicast one
8 OUI is: Xensource, Inc.
Lanalyse dune adresse de lien local permet ici de dterminer du mme coup le type dinterface
physique, en passant par ladresse MAC (EUI-48). Dans ce cas prcis, cette dernire est incluse dans
ladresse IPv6, ce point tant dtaill dans la section 4.2 page 37, ddie lautoconguration stateless.
Loption -i permet de demander un achage de tout ce que peut dduire le logiciel de cette adresse,
22 / 137 Julien VAUBOURG
Yarding CHAPITRE 2. ADRESSAGE quipe rseau Lothaire
dont il dtermine aussi le type automatiquement. Loption -q permet quant elle de supprimer les lignes
qui ne servent qu dcrire le fonctionnement de loutil.
Des options -in et -out permettent de faire un certain nombre de conversions (dont certaines ne
semblent pas possibles actuellement), en prcisant les types adquats lists par les commandes :
1 $ ipv6calc --in -h
2 [...]
3 $ ipv6calc --out -h
4 [...]
Les tests permettront peut-tre de rvler dautres types dadresses qui nont pas t rfrencs ci-
dessus. Soit ils seront abords dans les sections qui correspondent leur utilit (principalement pour la
cohabitation IPv4-IPv6), soit ils sont obsoltes (comme les adresses site-local unicast), soit ils font partie
de solutions qui nont pas t retenues pour ce document.
2.8 Slectionner lIP de sortie
Ctait dj possible en version 4, mais avoir plusieurs adresses IP pour une mme interface devient
quelque chose de classique (voire systmatique, dans le cas de lautoconguration stateless avec les
adresses de liens locaux, par exemple) en version 6.
Quelques commandes systmes demandent de rajouter le nom de linterface utiliser lorsquelles
demandent une adresse IP. Pour ce faire, il faut ajouter son nom la n de celle-ci, en le sparant par
un symbole pourcent. Par exemple, pour une interface Unix :
1 2001:db8::abcd:def1:1234%eth0
Cette technique permet de forcer linterface par laquelle sortiront les paquets, mais pas de slectionner
prcisment ladresse source qui sera utilise. Il ne semble pas y avoir dquivalent au pourcentage pour
a, et ce serait donc plutt la discrtion de la commande de fournir un paramtre pour la prciser
(comme le ping de Windows, ou le ping tendu de Cisco).
Si ladresse source nest pas force, la RFC 3484 prvoit cet algorithme, qui sera appliqu par le
systme :
1. Si la destination est une adresse locale, il utilise celle-ci pour sortir.
2. Sinon il slectionne ladresse de plus petite porte, partage avec celle de destination.
3. En cas dgalit, il vite les adresses au format dprci (dont la dure de vie conseille est dpasse,
mais pas la dure de validit).
4. Puis il privilgie les adresses de type home
11
.
5. Il prfre ensuite une adresse de linterface utilise pour sortir.
6. Il continue en privilgiant le label correspondant
12
.
7. Les adresses publiques sont utilises en priorit sur celles restantes.
11. Cf. la section 3.5. Mobility Addresses de la RFC 3484.
12. Cf. la rgle 6 de la section 5. Source Address Selection de la RFC 3484
23 / 137 Julien VAUBOURG
Yarding CHAPITRE 2. ADRESSAGE quipe rseau Lothaire
8. Enn, il choisit le plus long prxe qui correspond.
Si, la suite de toutes ces rgles, il na pas encore trouv de gagnant, il considre la dernire adresse
utilise.
Une solution pour inciter le systme mettre en retrait certaines adresses est de jouer sur la troisime
rgle. On notiera donc quune adresse est dprcie en forant sa dure limite de validit zro (exemple
pour GNU/Linux) :
1 # En lajoutant
2 # ip -6 addr add 2001:db8::abcd:def1:1234 dev eth0 preferred_lft 0
3 # En la modifiant
4 # ip -6 addr change 2001:db8::abcd:def1:1234/64 dev eth0 preferred_lft 0
2.9 Bonnes pratiques
Les bonnes pratiques (best practices) rfrences dans cette liste sinspirent des conseils rpertoris
par Chris Grundemann
13
, ARIN
14
(depuis la liste du NANOG) et mpreath
15
:
Prxes de 64 bits pour les rseaux : Conformment la RFC 4291, toutes les adresses unicast qui
ne sont pas des liens dinterconnexion devraient utiliser un prxe de 64 bits.
Utilisation du EUI-64 : Ces adresses devraient galement utiliser lidentiant dinterface (EUI-64 form
depuis lEUI-48 correspondant ladresse MAC) pour former les 64 derniers bits, avec lautocon-
guration stateless.
Prxes /48 pour les sites : Un site (un btiment, un tage, campus, AS, interco, etc.) devrait utiliser
systmatiquement un /48.
Un /48 pour les adresses de linfrastructure : Le premier ou le dernier /48 devrait tre rserv pour
linfrastructure (boucles locales, interconnexions, etc.).
Adresses de loopback : Les adresses de boucle locale devraient utiliser un prxe /128
16
, provenant
du premier /64 du /48 rserv pour linfrastructure.
Liens dinterconnexion : Malgr la recommandation dutiliser les identiants dinterface, un autre /64
du prxe rserv linfrastructure devrait servir pour tailler des /127 destins aux liens dinter-
connexion. Comme dcrit dans la section 5 de la RFC 6164, cette faon de faire vite le problme
du ping-pong entre deux routeurs qui tentent de se renvoyer un paquet destination dune adresse
de leur rseau mais qui ne correspond aucune des deux adresses
17
. La seconde raison concerne le
cache des neighbors, qui risque de se faire polluer par des adresses qui restent en cours de rsolu-
tion, jusqu ce que la mmoire soit pleine (cette attaque nest pas spcique aux interconnexions,
13. http://www.ipbcop.org/wp-content/uploads/2012/02/BCOP-IPv6_Subnetting.pdf
14. http://www.getipv6.info/index.php/IPv6_Addressing_Plans
15. http://mattreath.com/2011/07/17/ipv6-best-practices
16. La RFC 4291 propose dutiliser directement un /64 pour les liens dinterconnexion, puisque le /48 rserv pour
linfrastructure permet de toutes faons dadresser 65536 /64.
17. La RFC 4443 sur lICMPv6 impose dsormais aux routeurs de ne jamais faire suivre une route qui fait repartir un
paquet par le lien par lequel il est arriv. Ce problme existait dj en IPv4, mais la raret des adresses encourageait
toujours les administrateurs utiliser des /30 ou /31.
24 / 137 Julien VAUBOURG
Yarding CHAPITRE 2. ADRESSAGE quipe rseau Lothaire
mais elles y sont particulirement sensibles cause du volume de leurs tracs). Enn, certains
prfrent utiliser un /64 pour obtenir des adresses courtes x:x:x:x::1 et x:x:x:x::2.
Taille des prxes gales par niveau : Chaque niveau de la hirarchie de ladressage devrait avoir le
mme prxe. Cette recommandation semblait aussi naturelle en IPv4, mais tait souvent con-
tourne pour dcouper un maximum les prxes an dadresser des sites plus petits que dautres
dans le but de faire des conomies.
Numro de VLAN dans les prxes : Ajouter le numro de VLAN dans ladresse semble tre une
pratique courante
18
: pour un site qui a le prxe 2001:db8:42::/48, une machine dans le VLAN
201 aura pour prxe 2001:db8:42:201.
Adresses de lien local pour les routeurs : La RFC 4861 impose aux interfaces des routeurs de pro-
poser une adresse de lien local, et celle-ci devrait toujours tre utilise pour les dsigner lors de la
cration des routes sur le lien local (elles sont utilises automatiquement lorsque cest lautocon-
guration stateless qui dcouvre la passerelle).
Adresse anycast des routeurs : Les interfaces des routeurs devraient utiliser ladresse anycast corre-
spondant au prxe du rseau (lancienne adresse du rseau , par exemple 2001:db8:201::/64)
pour permettre de les retrouver facilement.
Sous-rseaux par nibble : Les caractres hexadcimaux (nibbles) ne devraient jamais tre linter-
section entre les bits de rseau et dhte. En dautres termes, le prxe devrait toujours tre un
multiple de quatre, et les sous-rseaux devraient varier en fonction dun seul caractre :
1 2001:db8:1000::/36
2 2001:db8:2000::/36
3 2001:db8:3000::/36
Plutt que :
1 2001:db8:800::/37
2 2001:db8:1000::/37
3 2001:db8:1800::/37
Le RIPE met galement disposition un document
19
destin guider la conception dun plan dadres-
sage IPv6.
Concernant la scurit, un exemple de politique de scurit pour un routeur GNU/Linux est donn
en annexe A page 123. Elle vise verrouiller un maximum les changes, tout en respectant au maximum
les direntes contraintes des RFC.
2.10 Jouer avec IPv6
Au del des bonnes pratiques et du bon sens, la communaut des informaticiens a gard son sem-
piternel sens de lhumour avec lIPv6, qui permet de faire passer des messages base dun alphabet
limit dans ses nouvelles adresses.
18. Le rseau Lothaire procde de cette faon.
19. http://www.ripe.net/lir-services/training/material/IPv6-for-LIRs-Training-Course/IPv6_addr_
plan4.pdf/view
25 / 137 Julien VAUBOURG
Yarding CHAPITRE 2. ADRESSAGE quipe rseau Lothaire
Le blog Coding Relic
20
propose une liste de mots anglais qui peuvent se glisser dans une adresse
IPv6, la plupart utilisant les chires pour ajouter des lettres, la faon du leet speak
21
.
Citons les plus connus et intelligibles en anglais :
1 dead beef babe f00d caca b00b bad bed d00d
En franais, le plus classique tant probablement cafe:deca, la liste des possibilits est moins in-
tressante (liste des mots de 1 8 lettres, de A F plus les O remplacs par des zros
22
) :
1 0de 0ff abbe acce:da acce:de acce:dee aede b0a b0b b0b0 b0f ba0b:ab baff:a baff:e
2 baff:ee bea bebe bec bee c0be:a c0c0 c0ca c0da c0de c0de:e c0fa:ce c0fa:cee ca
3 caca caca:0 caca:ba caca:be cade cafe ceda cede cede:e d0d0 dec dec0:da dec0:de
4 dec0:dee deca deca:de dece:da dece:de dece:dee ecaf:fa ecaf:fe ecaf:fee effa:ca
5 effa:ce effa:cee f0c faca:de fad0 fada fade fade:e fc0 fee
Certaines entreprises en protent pour intgrer leur marque aux adresses de leurs serveurs :
1 $ dig AAAA +short facebook.com
2 2a03:2880:10:1f02:face:b00c:0:25
3 2a03:2880:10:8f01:face:b00c:0:25
4 2a03:2880:2110:3f01:face:b00c::
Enn, on peut aussi y trouver des rfrences culturelles
23
:
1 2001:db8::face:0f:b0e
Pour vrier si une connexion utilise IPv6, le projet KAME
24
met disposition sa clbre tortue,
accessible en HTTP et qui ne dansera que si elle est interroge via une adresse en 128 bits. Un autre
moyen encore plus sympa est de regarder Star Wars en telnet
25
: sil y a de la couleur, cest que la
connexion est en IPv6.
20. http://codingrelic.geekhold.com/2011/04/ipv6-addresses-for-fun-and-profit.html
21. http://en.wikipedia.org/wiki/Leet
22. for i in {1..8}/{a..f} {1..8}/o; do curl http://www.liste-de-mots.com/mots-nombre-lettre/$i/
| sed -n /liste-mots/{n;s|</p>$||;:b;h;s|.*, ||;/^[a-fo0-9]\+$/{s|o|0|g;s|....|&:|;s|:$||;p};x;
s|,[^,]\+$||;tb}; done | unaccent UTF-8 | sort -u
23. http://en.wikipedia.org/wiki/Face_of_Boe
24. http://www.kame.net
25. $ telnet towel.blinkenlights.nl
26 / 137 Julien VAUBOURG
3
Compatibilit des systmes
The Web does not just connect machines, it connects people.
1
- Tim Berners-Lee (2008)
3.1 GNU/Linux
3.1.1 Noyau Linux
Premire apparition de lIPv6 en 1996, pour le noyau 2.1.8, et disparition du statut dexprimental
en 2005 dans le noyau 2.6.12.
Les versions les plus rcentes (2.6.x) supportent pleinement lIPv6.
3.1.2 Debian / Ubuntu
LIPv6 est activ par dfaut et semble parfaitement fonctionnel pour un poste client, ds la version
4.0 (etch) de Debian en 2007. Ct Ubuntu, cest la version 7.10 (Gutsy Gibbon) sortie la mme anne,
qui active IPv6 par dfaut. Dans les deux cas, le client NDP et DHCPv6 semble disponible.
Pour le support dIPv6 au niveau des logiciels empaquets, lintgration complte de IPv6 tant
un objectif (release goal
2
) de la version Squeeze de Debian, cest la version minimale conseille. Pour
Ubuntu, la version 10.10 (Maverick Meerkat) semble tre la premire particulirement sinquiter de
cet aspect.
IPv6 peut tre dsactiv en ajoutant la ligne suivante au chier /etc/sysctl.conf :
1. http://www.webfoundation.org/donations/knight2008/tbl-speech
2. http://wiki.debian.org/ReleaseGoals/FullIPv6Support
Yarding CHAPITRE 3. COMPATIBILIT DES SYSTMES quipe rseau Lothaire
1 $ grep disable_ipv6 /etc/sysctl.conf
2 net.ipv6.conf.all.disable_ipv6 = 1
Il faut donc vrier son absence, et contrler lactivation dIPv6 en cherchant une ventuelle adresse
locale :
1 $ ip a | grep inet6
2 inet6~::1/128 scope host
3 inet6 fe80::221:70ff:feec:b49b/64 scope link
Un ping6 sur ladresse locale peut aussi permettre de tester la bonne activation (sinon connect :
Network is unreachable) :
1 $ ping6 ::1
2 PING ::1(::1) 56 data bytes
3 64 bytes from ::1: icmp_seq=1 ttl=64 time=0.044 ms
3.1.3 Fedora
LIPv6 au niveau client semble parfaitement support partir de la version 6 (Zod) de 2006, avec un
client NDP et DHCPv6. Au niveau des paquets, la version 13 (Goddard) semble un minimum pour ne
pas avoir de problmes.
La vrication de la bonne activation de IPv6 peut se faire de la mme faon que sous Debian. Pour
lactiver, si a nest pas dj fait, il faut modier le principal chier de paramtres du rseau, ainsi que
celui concernant linterface.
Pour /etc/syscong/network, on peut ajouter (le IPV6_DEFAULTGW, avec une adresse relle, est
facultatif) :
1 NETWORKING_IPV6=Yes
2 IPV6_DEFAULTGW=2001:db8:2:657d:0:25:2:1234/64
Et pour /etc/syscong/network-scripts/ifcfg-eth0 (en adaptant le nom du chier selon linterface) :
1 IPV6INIT=yes
2 IPV6ADDR=2001:41D0:2:657d:0:25:2:1234
De la mme faon que Debian, la plupart des outils dadministration rseau disposent de loption -6.
3.2 Mac OS X
La premire version qui semble supporter IPv6 correspond la 10.2 (Jaguar) en 2002. Par contre, le
NDP nest disponible qu partir de la 10.3 (Panther) et le client DHCPv6 qu partir de la version 10.7
28 / 137 Julien VAUBOURG
Yarding CHAPITRE 3. COMPATIBILIT DES SYSTMES quipe rseau Lothaire
(Lion) - contrairement aux rumeurs
3
. Au niveau logiciels, cest nalement la version 10.7 (Lion) quil
faudra privilgier.
La conguration du rseau peut se faire graphiquement, aux mmes emplacements que la congura-
tion IPv4, avec la possibilit de passer la conguration IPv6 en manuelle ou automatique.
Pour dsactiver lIPv6, les versions avant Lion possdent loption teint . Sinon, la commande
suivante est ncessaire :
1 # networksetup -setv6off Ethernet
2 # ou bien
3 # ip6 -x
3.3 Windows
3.3.1 Windows XP
Windows XP avec le service pack 2 (n 2004) est la premire version
4
supporter
5
une version
incomplte de lIPv6 (notamment au niveau des tunnels, sur lesquels nous reviendrons), avec le support
de NDP. Par contre il nest pas activ par dfaut, et il ny a pas de client DHCPv6
6
.
Pour activer lIPv6 :
1 C:\> ipv6 install
2 Installation en cours...
3 Operation reussie.
Un simple ipconfig permet de valider la prsence dune adresse IPv6, et donc la bonne activation
du protocole. Un ping ::1 permet galement cette vrication. Pour pinguer une machine du rseau,
linstar de GNU/Linux, il est ncessaire de prciser linterface laide du symbole pourcent (ping
ipv6_distante%5) si plusieurs cartes possdent une adresse du mme prxe que lIP tester.
Pour acher la liste des voisins connus, la commande ipv6 nc est disponible.
Pour ajouter une adresse linterface 5 :
1 C:\> ipv6 adu 5/fded:2092:eade:9f07:0:ffff:c0a8:5908
3. Cf. http://seclists.org/nanog/2011/Jul/417. La plupart des sites prviennent que Lion ne propose pas de
DHCPv6 parce que ce choix ne fait pas partie des modes de conguration rseau proposs, comme il lest en IPv4. Pour
avoir conrmation quil est disponible, il sut de choisir le mode automatique et de brancher un routeur qui stipule dans
ses Router Advertisements quil faut utiliser un DHCP. Lexprimentation du DDNS section 8.8 page 113, utilise cette
astuce.
4. http://ipv6int.net/systems/windows_xp-ipv6.html noter que Trumpet Winsock 5.0 (limplmentation
la plus connue lpoque, de lAPI TCP/IP standardise) supportait dj lIPv6 alors quelle est apparue sous Windows
95.
5. http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/sag_ip_
v6checklist.mspx?mfr=true
6. Il existe Dibbler, un client DHCPv6 libre qui peut tre install sous XP.
29 / 137 Julien VAUBOURG
Yarding CHAPITRE 3. COMPATIBILIT DES SYSTMES quipe rseau Lothaire
Pour pinguer une adresse de mme prxe, il faudra prciser ladresse source pour indiquer linterface
utiliser :
1 C:\> ping6 -s fded:2092:eade:9f07:0:ffff:c0a8:5908 fded:2092:eade:9f07:0:ffff:
c0a8:593d
Une ligne Microsoft TCP/IP version 6 est visible dans la fentre des Proprits de Connexion au
rseau local, mais ne permet pas de congurer les interfaces graphiquement (pas de bouton Proprits).
3.3.2 Windows Vista / 7
Ds sa sortie en 2006 (pour les entreprises, il faudra attendre un an de plus pour les particuliers),
Vista propose lIPv6 activ par dfaut, qui peut tre congur (ou dsactiv) facilement depuis la fentre
des paramtres rseaux. Par dfaut, cest lautoconguration stateless avec NDP qui est active, mais un
client DHCPv6 est disponible.
Concernant la conguration en ligne de commande, le commande ipv6 de XP a t remplace par
netsh interface ipv6.
Par exemple, pour acher les voisins connus :
1 C:\> netsh interface ipv6 show neighbors
3.4 Cisco
Un routeur Cisco active automatiquement le support de lIPv6 ds lors quon lui indique une adresse.
La commande ipv6 unicast-routing permet dautoriser le routage IPv6 entre les interfaces (quiv-
alente la commande ip routing de lIPv4). La conguration minimale dun routeur Cisco sorti dusine
ressemblera donc :
1 Routeur> en
2 Routeur# conf t
3 Routeur(config)# ipv6 unicast-routing
4 Routeur(config)# int fa 0/0
5 Routeur(config-if)# ipv6 addr 2001:db8:a::1/64
6 Routeur(config-if)# no shut
7 Routeur(config-if)# int fa 0/1
8 Routeur(config-if)# ipv6 addr 2001:db8:b::1/64
9 Routeur(config-if)# no shut
De manire gnrale, la commande ipv6 remplace la commande ip, ainsi pour obtenir des IP des
interfaces :
1 Routeur# sh ipv6 int brief
2 FastEthernet0/0 [up/down]
3 FE80::217:59FF:FE02:8DB8
4 2001:DB8:A::1
30 / 137 Julien VAUBOURG
Yarding CHAPITRE 3. COMPATIBILIT DES SYSTMES quipe rseau Lothaire
5 FastEthernet0/1 [up/down]
6 FE80::217:59FF:FE02:8DB9
7 2001:DB8:B::1
La liste des routes sobtient de la mme faon quen IPv4 (sh ipv6 route). Mais alors quen IPv4
tous les administrateurs ont rv que IOS adopte la notation CIDR pour les dnir, lIPv6 ne laisse pas
dautre choix :
1 Routeur(config)# ipv6 route 2001:db8:c::/64 2001:db8:a::1
Certaines commandes apparaissent avec lautoconguration stateless, et sont regroupes avec le
mot-cl nd (Neighbors Discovery) au niveau de la conguration des interfaces :
ipv6 nd dad attempts <0-600> : Force le nombre de tentatives (Neighbor Solicitation) que
doit eectuer une interface avant de conclure quune absence de rponse (Neighbor Advertisement)
signie que ladresse IP choisie est libre (cf. algorithme DAD section 4.2.3 page 38).
ipv6 nd managed-config-flag : Positionne le drapeau qui permet dindiquer dans les Routeur
Advertisement (RA) que les adresses IP doivent se rcuprer en DHCP (cf. tableau 4.1 page 46).
ipv6 nd other-config-flag : Positionne lautre drapeau des RA, qui permettra de prvenir que
tout ce qui nest pas adresse IP devra tre rclam au serveur DHCP (DNS, NTP, etc.).
ipv6 nd prefix X:X:X:X::X/<0-128> : Permet de prciser le prxe qui sera dius dans les
annonces pour lautoconguration stateless des nuds du rseau (par dfaut, cest le prxe de
ladresse de linterface). Les dures maximales prfres et limites peuvent tre ajoutes la suite.
ipv6 nd ra interval <4-1800> : Intervalle en secondes entre deux envois de RA non-sollicits
par un nud.
ipv6 nd ra suppress : Le routeur nenverra plus de RA rgulirement, et ne rpondra plus aux
Routeur Solicitation. Si un poste est en autoconguration stateless uniquement, il ne parviendra
jamais prendre une adresse IP, en labsence de prxe connu (cf. section 4.2 sur lautoconguration
stateless page 37).
Associer une adresse MAC avec une adresse IP ne se fait plus par la table ARP qui disparat, mais
par la table des voisins (les adresses MAC sont en notation pointe) :
1 Routeur# sh ipv6 neighbors
2 IPv6 Address Age Link-layer Addr State Interface
3 FE80::62FB:42FF:FEEF:E11A 0 60fb.42ef.e11a REACH Fa0/0
4 2001:DB8:4503:105:62FB:42FF:FEEF:E11A 0 60fb.42ef.e11a REACH Fa0/0
Ces commandes sont pour IOS, mais peuvent direr pour les autres systmes de Cisco (par exemple
le neighbor du sh ipv6 neighbor de lASA ne prend pas de pluriel).
31 / 137 Julien VAUBOURG
Yarding CHAPITRE 3. COMPATIBILIT DES SYSTMES quipe rseau Lothaire
32 / 137 Julien VAUBOURG
4
Autoconguration et DNS
On the Internet, nobody knows youre a dog.
1
- Peter Steiner
4.1 NDP et la rcupration des adresses MAC sans ARP
4.1.1 Gnralits
Le protocole ARP est banni de cette nouvelle version dIP, au prot du protocole NDP (Neighbor
Discovery Protocol, RFC 2461).
Plutt que denvoyer un ARP Request lensemble des nuds, la machine qui cherchera associer
une adresse MAC une adresse IP utilisera le multicast pour envoyer en ICMPv6 un Neighbor Solicitation
une adresse de type solicited-node (gure 4.1 page 33).
104 bits 24 bits
ff02::1:ff00:0 24 derniers bits de ladresse IPv6 cible
Figure 4.1 Format dune adresse multicast solicited-node.
Un exemple est fourni en gure 4.2.
Ladresse cible tant obligatoirement inscrite au groupe multicast correspondant son adresse solicited-
node
2
, elle recevra cette rponse. Elle pourra donc retourner un message ICMPv6 de type Neighbor
1. http://www.unc.edu/depts/jomc/academics/dri/idog.html
2. Parler dinscription pour une adresse multicast de lien local (ff02:/16) nest pas tout fait exact au niveau du
routeur, puisque dans ce cas linterface se contentera dcouter les messages sans envoyer de message celui-ci, qui relaiera
sans se proccuper de la composition du groupe.
Yarding CHAPITRE 4. AUTOCONFIGURATION ET DNS quipe rseau Lothaire
0000 0001
24 bits
128 bits
Adresse IP de l'interface
0000 0001
2001 0db8 abcd 0000 0000 0000
02 0000 0000 0000 0001 00
Prxe multicast solicited-node (104 bits)
Adresse IP solicited-node correspondante
Figure 4.2 Conversion dune adresse IP unicast en adresse multicast solicited-node.
Advertisement, qui permettra au demandeur de dduire ladresse MAC recherche de ladresse source de
la trame et de complter sa table des neighbors (quivalente lancienne table ARP).
Le gain en terme dencombrement des interfaces rseaux est providentiel : seules les quelques machines
du lien qui ont en commun leurs 24 derniers bits interprteront la trame, et seront mme de dterminer
sa pertinence en fonction de ladresse who-has contenue dans les donnes.
Puisque les adresses multicast de ce type ne sont pas routables, il convient de se mer des problmes
qui peuvent tre rencontrs lors du trajet retour. Ce problme nest pas spcique IPv6, puisque les
oprateurs de rseau qui routaient des adresses publiques IPv4 le rencontraient dj et disposaient plus
ou moins des mmes solutions. Toutefois, la gnralisation des NAT rendait ce problme invisible la
plupart du temps. La nouveaut en IPv6 est donc quil se gnralise jusqu impacter lutilisateur lambda
derrire son botier ADSL.
Ce problme est illustr dans les sections suivantes qui dtaillent trois situations possibles, en sat-
tardant particulirement sur les requtes Who has, transportes en multicast via des messages ICMPv6
Neighbor Solicitation.
Le plan dadressage choisi dans ces exemples est le suivant :
# Prfixe allou par le responsable de R1
2001:0db8:abcd::/48
# Intercos
2001:0db8:abcd:1000::/52
2001:0db8:abcd:1000::/56
2001:0db8:abcd:1100::/56
2001:0db8:abcd:1200::/56
# Utilisateurs
2001:0db8:abcd:2000::/52
2001:0db8:abcd:2000::/56
2001:0db8:abcd:2100::/56
34 / 137 Julien VAUBOURG
Yarding CHAPITRE 4. AUTOCONFIGURATION ET DNS quipe rseau Lothaire
4.1.2 Avec changes de routes
En admettant que chaque routeur communique ses routes celui qui le prcde, lenvoi en multicast
dune requte Who has au poste utilisateur prfixe :2100::20 (U4) ne pose aucun problme puisque
chaque routeur a conscience des sauts ncessaires et adresse donc les trames au routeur suivant plutt
que de directement chercher utiliser ladresse ethernet multicast correspondante.
Comme toutes les interfaces adresses en unicast, la machine U4 coute en multicast pour le groupe
correspondant son adresse solicited-node calcule partir de son adresse IP.
La rgle du more specic sappliquant, R1 utilisera la route Directly connected pour dialoguer avec R2
et considrera quil faut utiliser un saut pour toutes les machines hors du sous-rseau lui correspondant.
La gure 4.3 illustre ce cas.
Figure 4.3 NDP avec diusion des routes.
35 / 137 Julien VAUBOURG
Yarding CHAPITRE 4. AUTOCONFIGURATION ET DNS quipe rseau Lothaire
4.1.3 Sans change de routes
Dans le cas dun FAI grand public positionn en R1, seul le prxe est allou et aucune route ne peut
tre change. Chaque fois que lutilisateur :2100::20 souhaitera sortir vers Internet, R1 considrera
quil est directement dans le mme rseau que R2 puisquil na pas connaissance du redcoupage. Ainsi,
il enverra directement la trame en utilisant ladresse multicast en version ethernet.
Comme illustr en gure 4.4, puisquil sagit dun multicast de lien local, il ny a pas dinscription au
groupe multicast auprs des routeurs. Ceux-ci communiquent donc les trames quoiquil arrive.
Figure 4.4 NDP sans diusion des routes.
4.1.4 Sans change de routes avec proxies NDP
Lutilisation de proxies NDP (RFC 4389
3
) permet de contourner le problme de labsence des routes,
de faon similaire aux proxies ARP qui vitaient les NAT. Le routeur qui aura cette fonction coutera tous
les paquets en se mettant en mode promiscuous (ou au moins en mode all-multicast), et recevra donc
3. Avec des erreurs non-corriges documentes ici : http://www.rfc-editor.org/errata_search.php?rfc=4389
36 / 137 Julien VAUBOURG
Yarding CHAPITRE 4. AUTOCONFIGURATION ET DNS quipe rseau Lothaire
la trame mise sur ladresse ethernet multicast depuis le routeur du FAI, quil pourra relayer (gure 4.5
page 37).
Figure 4.5 NDP sans diusion des routes, avec lutilisation dun proxy.
Une solution plus ancienne consiste dire au routeur de crer un pont logiciel uniquement pour le
trac IPv6, pour sabstraire lui-mme et ainsi rgler les problmes voqus. Cette solution, connue sous
le nom de brouting
4
est juge comme trop sale et nest plus au got du jour.
4.2 Autoconguration stateless (SLAAC)
4.2.1 Gnralits
Toutes les version rcentes des systmes dexploitation les plus populaires supportent lautocongu-
ration autonome (RFC 4862), en intgrant un client NDP. La mthode est souvent appele autocon-
4. Tutoriel : http://ip6.fr/free-broute/
37 / 137 Julien VAUBOURG
Yarding CHAPITRE 4. AUTOCONFIGURATION ET DNS quipe rseau Lothaire
guration stateless ou sans tat (ou SLAAC pour Stateless Address AutoConguration) en raison de
labsence de conguration au niveau du systme.
La premire tape pour une machine qui se congure de cette faon est de dterminer automatique-
ment son adresse IPv6. Elle utilise un prxe de 64 bits auquel elle colle son adresse MAC (EUI-48)
lgrement adapte (EUI-64) qui sert didentiant dinterface (interface/host ID).
4.2.2 Construction automatique des adresses IP
Construction automatique de ladresse IP :
1. Ajouter les octets fffe au milieu de ladresse MAC de linterface.
2. Positionner le septime bit de la MAC modie en partant de la gauche 1 si ladresse est unique
(ce qui est le cas pour toutes les adresses MAC par dfaut
5
) sinon 0.
3. Rcupration du prxe si cest une adresse globale, sinon utilisation du prxe dadresse de lien
local.
4. Concatnation du prxe avec ladresse MAC ainsi modie.
Le mcanisme est illustr en gure 4.6.
Le prxe global sobtient en coutant les diusions ICMPv6 des Router Advertisement sur le rseau.
En gnral ce sont les routeurs qui se chargent de diuser les prxes toutes les cinq minutes, mais une
machine a la possibilit de rclamer cette diusion immdiatement en utilisant un message ICMPv6 de
type Router Solicitation destination de ladresse all-routers (gure 4.7 page 39).
La RFC 6106 prcise que les diusions des routeurs peuvent diuser une adresse DNS utiliser par le
mme biais (RDNSS). Une interface congure de cette faon garde toujours une adresse de lien local.
Pour activer la rception des messages RA des routeurs sous Mac OS avant Lion (ce qui peut aussi
tre fait en ajoutant ip6mode=autohost dans /etc/rc.conf ) :
1 # sysctl -w net.inet6.ip6.accept_rtadv=1
4.2.3 Duplicate Address Detection (DAD)
An de sassurer que ladresse choisie nexiste pas dj sur le rseau, lautoconguration stateless
utilise le NDP avec des messages ICMPv6, de la mme faon quil lutilise pour remplacer lARP.
Elle commence par envoyer un message Neighbor Solicitation ladresse multicast solicited-node
voque dans le tableau 2.2 page 18 (en utilisant ladresse IP non-spcie compose de bits nuls
comme adresse source). Pour pouvoir recevoir une ventuelle rponse, elle sabonne ladresse multicast
5. Ce septime bit correspond au bit U/L (Universal/Local ) positionn 1 si ladresse nest pas unique. Linverse a
t adopt dans cet algorithme pour faciliter ladministration des machines qui sera probablement manuelle si ladresse
ethernet a t change manuellement (par exemple, on pourra donc utiliser ladresse de lien local fe80::1 plutt que
fe80::200:0:0:1). Si ladresse MAC est bien forme, il sura donc de simplement inverser la valeur de ce bit. Si
ladresse MAC nest pas unique mais que son bit U/L est mal positionn, lerreur se propagera dans ladresse IPv6 calcule
automatiquement.
38 / 137 Julien VAUBOURG
Yarding CHAPITRE 4. AUTOCONFIGURATION ET DNS quipe rseau Lothaire
Figure 4.6 Autoconguration dune adresse IP unicast avec lautoconguration stateless.
Figure 4.7 Diusion des Router Advertisements.
all-nodes de diusion tous les nuds (le broadcast nexistant plus en IPv6). Si aucun nud ne possde
cette adresse, elle naura aucune rponse malgr ses essais rpts. Dans le cas contraire, elle recevra un
message Neighbor Advertisement depuis lIP en question vers ladresse multicast de diusion tous les
nuds, qui conrmera la prsence dun conit (illustration dune collision en gure 4.8).
Une exprimentation de lattribution automatique des adresses en mode stateless est propose en
section 8.2 page 87.
4.2.4 Dures de vie
Les messages Router Advertisement qui se chargent de fournir le prxe utiliser prcisent tou-
jours une dure de vie conseille (preferred lifetime) et une dure de vie de validit (valid lifetime). Ce
mcanisme remplace la notion de bail mise en uvre par le DHCP.
La plupart du temps, la dure de vie conseille nexpirera pas grce aux annonces rgulires des
39 / 137 Julien VAUBOURG
Yarding CHAPITRE 4. AUTOCONFIGURATION ET DNS quipe rseau Lothaire
Figure 4.8 Dtection dune collision avec lalgorithme DAD.
routeurs. Si ceux-ci ne viennent pas renouveler les baux, une adresse qui dpasse sa dure de vie conseille
devient dprcie (deprecated). Les nouvelles sessions devront viter ces adresses lors de leur slection
de lIP de sortie (cf. rgle 3 de lalgorithme dcrit dans la section 4.2.3 page 38), et les sessions en cours
continuent de lutiliser. Dans le cas o cest la dure de vie limite de validit qui est dpasse, ladresse
est supprime de linterface et toutes les sessions en cours qui lutilisent sont fermes. Ce comportement
est dtaill dans la RFC 4862.
Pour dnir ces deux dures de vie sur un routeur Cisco (1000 secondes pour la dure de vie de
validit et 900 secondes pour la dure de vie conseille) :
1 Routeur(config)# ipv6 nd prefix 2001:db8::/64 1000 900
Ces dures de vie peuvent ventuellement tre innies en remplaant ces deux valeurs par un
infinite.
4.2.5 Problme de vie prive
La RFC 3041 dcrit un problme de scurit li au calcul des adresses IP vu plus haut. Si une machine
drive chaque fois son identiant dinterface depuis son adresse MAC qui reste constante, il devient ais
de le tracer de rseau en rseau en cherchant les 64 derniers bits identiques et les adresses deviennent
pondrables. Un algorithme de hashage constitue une extension du protocole, pour assurer la prservation
de la vie prive, qui doit prendre certains des mcanismes sus-mentionns en considration.
Les objectifs de ce hashage sont donc les suivants :
1. Il doit prendre en considration lalgorithme de formation des adresses, cest dire conserver intact
le prxe global rcupr sur le rseau, et appliquer la modication du septime bit gauche, selon
lunicit ou non de ladresse MAC utilise initialement.
2. Une adresse IP gnre en autoconguration stateless doit toujours tre associe une date
dexpiration, ce doit donc aussi tre le cas pour sa version hashe.
3. Les adresses IP visibles quand la machine communique ne doivent pas tre prvisibles, pour viter
que la procdure de hashage ne soit prdictible et ne permette de tracer la machine.
4. Lidentiant de linterface doit tre utilis pour chacune des adresses de la machine. Dans le cas
contraire, il faudrait sabonner toutes les adresses multicast de type solicited-node (pour recevoir
les Neighbor Solicitation) correspondants ces identiants.
40 / 137 Julien VAUBOURG
Yarding CHAPITRE 4. AUTOCONFIGURATION ET DNS quipe rseau Lothaire
Lalgorithme de hashage de la RFC suppose que la machine tient jour une table de valeurs qui
serviront calculer les prochaines adresses. An que la machine puisse tre contacte sur le rseau
malgr ses adresses imprdictibles, celle-ci doit conserver son adresse drive de sa MAC en clair. Elle
lutilisera donc pour recevoir les connexions entrantes, et se servira de son quivalent hash pour sortir.
Les adresses de sortie peuvent tre calcule en utilisant les 64 derniers bits du hash MD5 de la dernire
valeur calcule (ou un nombre alatoire pour la premire itration), en tant quidentiant dinterface. Le
septime bit en partant de la gauche doit tre adapt pour tre conforme la convention. Les 64 derniers
bits du hash MD5 sont stocks en tant que nouvelle valeur, qui servira au prochain calcul didentiant.
Cette mthode permet de saranchir des performances douteuses de la gnration systmatique de
nombres alatoires, en vitant de redemander un ala chaque itration et en utilisant la base ladresse
MAC cense tre unique.
Activer ce mcanisme pour Windows XP SP2/SP3 (pas dIPv6 avant, et activation par dfaut en-
suite) :
1 C:\> netsh interface ipv6 set privacy state=enabled
Pour les Mac OS compatibles, avant 10.7 (Lion) qui lactive par dfaut :
1 # sysctl -w net.inet6.ip6.use_tempaddr=1
Enn ct GNU/Linux, si a nest pas dj activ
6
:
1 # sysctl net.ipv6.conf.all.use_tempaddr=2
2 # sysctl net.ipv6.conf.default.use_tempaddr=2
3
4 # Relancer linterface, ou attendre le prochain RA
5 # ifdown eth0
6 # ifup eth0
Pour Windows la modication sera permanente (ajouter store=active pour que a soit temporaire).
Pour GNU/Linux et Mac OS il faudra utiliser le chier /etc/sysctl.conf pour garder la modication au
redmarrage.
Une mthode alternative de hashage destine aux machines qui ne peuvent pas stocker de table de
valeurs peut tre employe, mais elle dpasse le cadre de ce document destin des machines clientes
standards.
4.2.6 Scurit
Lautoconguration stateless convient parfaitement aux petits rseaux, qui peuvent ainsi se passer
totalement de conguration de leurs machines pour les faire communiquer entre elles. Toutefois, elle
devient problmatique ds lors que le rseau ncessite de pouvoir associer une adresse une machine. Un
mcanisme de conservation de journaux systmes pour associer les adresses alatoires avec les adresses
contenant les adresses MAC en clair anantirait la possibilit allchante de se passer des contraintes
ce niveau, autrefois induites par lutilisation des NAT.
6. https://bugs.launchpad.net/ubuntu/+source/procps/+bug/176125
41 / 137 Julien VAUBOURG
Yarding CHAPITRE 4. AUTOCONFIGURATION ET DNS quipe rseau Lothaire
De plus, lutilisation dune adresse alatoire en sortie ne permet pas de lui associer un champ PTR
systmatique au niveau du DNS, ce qui incite certains serveurs exigeants les considrer plus facilement
comme malveillantes (voir ce sujet la section 4.4 page 48).
Au niveau de la scurit, laisser les machines sarranger entre elles nest pas anodin. De nombreuses
attaques de type redirect, spoong ou ooding
7
sont dcrites dans la RFC 3756, vritable bible du petit
pirate de lautoconguration stateless. Certaines de ces attaques pourraient tre vites en utilisant le
mcanisme SEND (SEcure Neighbor Discovery, RFC 3971/3972), qui impose aux machines de se calculer
des adresses dites CGA (Cryptographically Generated Address) laide de leur adresse calcule en clair
et dune cl publique (RFC 3972). Ce mcanisme est prvu par les messages de sollicitation et annonces
de voisins, qui peuvent embarquer les cls publiques. Cette solution entache la simplicit de ce type
dautoconguration.
Une solution plus simple
8
que SEND consiste dnir une ACL au niveau du commutateur daccs,
qui sappliquera sur tous les ports sauf ceux lgitimes envoyer des RA (le 137 correspondant aux
Redirect Message qui sont aussi contrls au passage) :
1 Switch(config)# ipv6 access-list RA-snooping
2 Switch(config-ipv6-acl)# deny icmp any any router-advertisement any
3 Switch(config-ipv6-acl)# deny icmp any any 137 any
4 Switch(config-ipv6-acl)# permit ipv6 any any
Toutefois, cette solution ne rsout pas tous les problmes, et ncessite des commutateurs susam-
ment volus pour supporter lutilisation des ACL.
Des outils trs volus comme THC-IPv6
9
permettent dautomatiser des attaques exploitant princi-
palement les possibilits du NDP.
Du ct de la dcouverte des machines sur un rseau, le nombre colossal dadresses possibles sur les
sous-rseaux devrait empcher des outils comme Nmap de tout pouvoir scanner. Encore une fois, ce sont
les fonctionnalits du NDP qui sont exploites pour rsoudre ce problme :
1 # nmap -6 -sP -v -e eth0 --script targets-ipv6-multicast-echo,targets-ipv6-
multicast-slaac --script-args newtargets
Avec THC-IPv6/Alive6 (plus rapide) :
1 # alive6 eth0
2 Alive: 2001:571:c9be:10:bac7:5dff:fec8:9606
3 Alive: 2001:571:c9be:10:e4d5:c4fa:bbcd:cb8e
4 Found 2 systems alive
Avec Scan6
10
(plus complet) :
1 # scan6 -i eth0 -lrve
2 Link-local addresses:
3 fe80::95f0:c8ff:fec4:3957 @ 97:f0:c8:c3:40:57
7. Une vido loquante de larrt dun Windows avec un simple ood de RA, avec les explications (qui concernent aussi
les *BSD), est disponible ici : http://samsclass.info/ipv6/proj/flood-router6a.htm.
8. Merci Romain BOISSAT (http://chroot-me.in).
9. http://freeworld.thc.org/thc-ipv6/
10. http://www.si6networks.com/tools/ipv6toolkit/
42 / 137 Julien VAUBOURG
Yarding CHAPITRE 4. AUTOCONFIGURATION ET DNS quipe rseau Lothaire
4 fe80::8e78:13ff:fe55:4f35 @ 8c:78:12:54:4f:36
5
6 Global addresses:
7 2001:571:c8be:10::2 @ 00:24:4d:8a:84:91
8 2001:571:c8be:10:8e77:13ff:fe55:4f34 @ 8c:77:13:55:4f:34
Pour toutes ces raisons, un rseau qui ncessite une administration massive avec un souci de traabilit
de lactivit, tend impliquer de prfrer la seconde mthode dautoconguration, plus traditionnelle.
Dans tous les cas, dsactiver lautoconguration stateless sur les serveurs et autres machines qui ne sont
pas concernes par ce mode de conguration semble une saine initiative.
Voir galement les rgles de pare-feu conseilles dans la section 2.9 page 24.
4.2.7 Dsactiver
Sous GNU/Linux, lautoconguration stateless peut tre dsactive avec les commandes suivantes :
1 # sysctl -w net.ipv6.conf.all.accept_ra_defrtr=0
2 # sysctl -w net.ipv6.conf.default.accept_ra_defrtr=0
3 # sysctl -w net.ipv6.conf.all.autoconf=0
4 # sysctl -w net.ipv6.conf.default.autoconf=0
Lautoconguration utilise les Router Advertisements (RA) pour rcuprer les paramtres. Cependant,
la version autoconf ne concerne que lattribution automatique des adresses formes grce la distribution
des prxes. Alors que la version ra se charge spciquement de dcouvrir et positionner toute seule la
route par dfaut en trouvant ladresse de lien local du routeur, avec en plus une route par prxe trouve
sur lensemble des RA reus (dcouverte automatique des passerelles).
Chaque fois quun RA est reu, les temps dexpiration des adresses autocongures sont remis leur
maximum indiqu par le RA, uniquement pour les prxes annoncs ce moment l. Si un prxe nest
plus annonc, il nira par expirer, mais ne sera pas supprim pour autant au prochain RA.
Pour dsactiver temporairement les adresses obtenues par autoconguration :
1 # ip -6 addr flush dynamic
Deux acteurs externes se font souvent remarquer lorsque ladministrateur souhaite reprendre le con-
trle complet de ses interfaces :
Le mDNS : il faut alors stopper le service avahi-daemon.
Les gestionnaires de rseaux : il faut bien penser stopper aussi tout ce qui est wicd, Network-
Manager (pour GNU/Linux), etc. Ces dmons ont tendance supprimer rgulirement tout ce
quils nont pas congur eux-mmes, sur toutes les interfaces dont ils ont connaissance (ou a min-
ima lorsquelles sont relances logiciellement). noter que certaines versions de NetworkManager
(dans Ubuntu 12.04 par exemple), ncessitent de cocher son option Ignorer les routes obtenues
automatiquement, sous peine sinon de le voir ajouter une route par destination contacte.
43 / 137 Julien VAUBOURG
Yarding CHAPITRE 4. AUTOCONFIGURATION ET DNS quipe rseau Lothaire
4.3 Autoconguration stateful (DHCPv6)
4.3.1 Gnralits
Cette mthode dautoconguration utilise un serveur DHCPv6, de faon trs similaire au protocole
DHCPv4, moyennant un lger reconditionnement des messages changs et lutilisation des adresses
anycast (RFC 3315). Par exemple, pour recenser la liste des serveurs DHCP du rseau, le client enverra
un message de type SOLICIT (correspondant lancien DHCPDISCOVER) ladresse anycast du routeur
du sous-rseau (comme indiqu lors de la prsentation du type anycast), qui renverra un message de type
ADVERTISE (anciennement DHCPOFFER).
Comme dans sa version 4, le DHCP pourra retourner un domaine ainsi que des adresses DNS. La
mise en place de relais est toujours possible.
Une nouveaut intressante se situe du ct de la renumrotation des rseaux, qui peut savrer
ncessaire dans le cas dun changement de FAI, par exemple. Le serveur a la possibilit de diuser en
multicast un message de type RECONFIGURE, qui incitera tous les clients lui envoyer une rponse
de type RENEW (ou INFORMATION REQUEST, selon la conguration du serveur) pour acqurir les
informations jour. Leet du changement est alors immdiat.
Les dirents messages utiliss par cette nouvelle version de DHCP sont dcrits dans la section
suivante.
4.3.2 Protocole
Les messages DHCP (envoys en ICMPv6) qui existaient dans DHCPv4 changent de nom (lancien
nom est rappel entre parenthses), et des nouveauts sont ajoutes :
SOLICIT (DHCPDISCOVER) : Permet au client de faire un appel gnral sur son rseau pour lo-
caliser les serveurs DHCPv6. Le message est envoy en multicast ladresse ff02::1:2 (RFC
3315).
ADVERTISE (DHCPOFFER) : Rponse des serveurs DHCPv6 aux SOLICIT, en unicast.
REQUEST (DHCPREQUEST) : Utilis par le client pour demander les paramtres de conguration
au serveur DHCPv6 slectionn.
CONFIRM : Cest une nouveaut, et elle permet au client de simplement sassurer auprs du serveur
que son ou ses adresses sont toujours valides.
RENEW (DHCPREQUEST) : Permet au client de demander un prolongement du bail, ou mettre
jour ses paramtres si ceux-ci ont changs depuis.
REBIND (DHCPREQUEST) : Ce message a la mme fonctionnalit que le RENEW, mais il est utilis
pour interroger en multicast lensemble des serveurs DHCPv6, lorsque le serveur DHCP dorigine
ne rpond plus.
RELEASE (DHCPRELEASE) : Envoy par le client au serveur pour indiquer ce dernier la valeur
des paramtres actuellement utiliss.
44 / 137 Julien VAUBOURG
Yarding CHAPITRE 4. AUTOCONFIGURATION ET DNS quipe rseau Lothaire
DECLINE (DHCPDECLINE) : Permet au client de signier au serveur que les paramtres transmis
ne peuvent pas tre utiliss.
REPLY (DHCPACK et DHCPNACK) : Il sagit du message contenant la rponse du serveur DHCP
pour les deux types dinterrogations RENEW et REBIND, ou pour conrmer la bonne rception
des deux types de messages prcdents.
INFORMATION-REQUEST (DHCPINFORM) : Permet simplement au client de demander de nou-
veaux paramtres de conguration.
RECONFIGURE (DHCPFORCERENEW) : Permet au serveur dindiquer ses clients que les paramtres
doivent tre actualiss, et quil serait bon quils le sollicitent avec un message RENEW ou INFORMATION-
REQUEST.
RELAY-FORWARD : Cest une seconde nouveaut, et cest utilis par les relais pour transmettre
un serveur (ou un autre relais) le message initial du client, qui sera contenu dans les options.
RELAY-REPLY : Il sagit du pendant du type prcdent, permettant de rpondre la question du
client initial au travers dun relais.
Concernant les relais DHCPv6 en particulier, le fonctionnement dire un peu de celui de son anctre
(gure 4.9 page 45).
Figure 4.9 Fonctionnement dun relais DHCPv6.
4.3.3 Compatibilit des clients
Contrairement au NDP utilis par lautoconguration stateless et install par dfaut sur tous les
systmes rcents, le mode stateful ncessite un client DHCP qui nest pas toujours prsent sur les
machines.
45 / 137 Julien VAUBOURG
Yarding CHAPITRE 4. AUTOCONFIGURATION ET DNS quipe rseau Lothaire
Ct Windows, si on exclut la version XP qui ne dispose pas de client par dfaut (mais sur lequel on
peut installer un client libre
11
), les versions suivantes ne ncessitent pas dinstallation supplmentaire.
Des drapeaux M (ManagedFlag) et O (OtherConguration) sont la disposition de ladministrateur
pour trouver des compromis entre lautoconguration stateless et stateful (quon appellera DHCPv6
stateless, de la RFC 3736) et peuvent tre combins comme indiqu dans le tableau 4.1 (la dernire
conguration est un peu trange et na pas beaucoup dintrt).
O M SLAAC (avec RDNSS) DHCPv6
0 0 Gre tout Dsactiv
1 1 Dsactiv Gre tout
1 0 Gre les IP Gre le reste dont les DNS
0 1 Gre le reste dont les DNS Gre les IP
Table 4.1 Signication des drapeaux de rpartition des tches pour lautoconguration.
Ces drapeaux peuvent tre positionns avec la commande suivante (versions suprieures XP),
managed correspondant au ag M et advertise au ag O :
1 C:\> netsh interface ipv6 set interface nom_interface managed=enable advertise=
disable
Ct GNU/Linux, le client est disponible directement dans les paquets, et sappelle en gnral isc-
dhcp-client (pour la version standard, sinon Dibbler, disponible aussi dans les paquets, semble aussi trs
usit) pour les distributions bases sur Debian. La version ISC (Internet Systems Consortium) ne semble
pas permettre daner la conguration des drapeaux comme sous Windows.
La version Dibbler les propose, via le chier de conguration du client :
1 iface nom_interface {
2 stateless
3 option dns-server
4 option domain
5 }
Une exprimentation du DHCPv6 statique est disponible la section 8.7 page 107. Le DHCPv6
dynamique est utilis lors de lexprimentation de la section 8.8 page 113.
4.3.4 Conguration des serveurs
Le partage entre le SLAAC et le DHCPv6 se fait aussi ct routeur. Pour un routeur Cisco, on utilisera
les options managed-cong-ag et other-cong-ag :
1 Routeur(config)# int fa 0/0
2 Routeur(config-if)# ipv6 nd managed-config-flag
3 Routeur(config-if)# ipv6 nd other-config-flag
11. Dibbler : http://klub.com.pl/dhcpv6/#DOWNLOAD
46 / 137 Julien VAUBOURG
Yarding CHAPITRE 4. AUTOCONFIGURATION ET DNS quipe rseau Lothaire
Par exemple, pour dlguer la conguration des adresses au mode stateless mais fournir les serveurs
DNS en DHCPv6 (ce qui semble obligatoire tant que le RDNSS ne sera pas mieux support) :
1 Routeur(config)# ipv6 dhcp pool DNSPool
2 Routeur(config-dhcp)# dns-server 2001:db8::1
3 Routeur(config-dhcp)# domain-name u1.example
4 Routeur(config-dhcp)# int ethernet 0/0
5 Routeur(config-if)# ipv6 address 2001:db8::1/64
6 Routeur(config-if)# ipv6 enable
7 Routeur(config-if)# ipv6 nd other-config-flag
8 Routeur(config-if)# ipv6 dhcp server DNSPool
La mme chose peut-tre obtenue en congurant un relais plutt que de laisser linfme DHCP de
lIOS faire le boulot :
1 Routeur(config-if)# ipv6 dhcp relay destination 2001:db8::2
Si radvd est utilis pour le stateless sur un GNU/Linux :
1 interface eth0
2 {
3 AdvManagedFlag off;
4 AdvOtherConfigFlag on;
5 };
Lorsquune plage dIPv6 est indique au serveur DHCP pour indiquer les adresses disponibles, il ne
faut pas oublier que ::10 ne suit pas ::9, mais quil y a ::a, ::b, ::c, ::d, ::e et ::f entre
les deux.
4.3.5 Adresses statiques (DUID)
Plutt que dutiliser systmatiquement les adresses MAC pour identier les machines, le DHCPv6 se
concentre sur les DUID (DHCP Unique Identier de la section 9 de la RFC 3315).
Les deux principaux types de DUID sont DUID-LL (Link-Layer ) et DUID-LLT (Link-Layer plus Time).
Comme leur nom lindique, les deux se basent sur ladresse MAC (dans le cas dune utilisation dethernet)
mais le second ajoute un timestamp dans la construction, comme illustr en gure 4.10.
Le DUID-LLT est celui utilis par dfaut par les clients DHCP de la version ISC. Lidentiant est
calcul une premire fois avec le timestamp courant et stock dans le chier de baux (/var/lib/dhcp/d-
hclient.leases6). Si celui-ci est rgnr pour une raison ou une autre, lidentiant change, et les tables
dassociation DUID-IP sur les serveur DHCP ne sont donc plus valides. Le DUID utilis par le client est
visible dans les paquets DHCPv6 scanns par les sniers.
Ainsi, il vaut mieux prfrer une version totalement statique (sil existe dj, penser supprimer le
chier de baux /var/lib/dhcp/dhclient6.leases auparavant, sinon il svertuera utiliser le DUID-LLT
calcul lors des sessions prcdentes) :
1 # dhclient -D LL eth0
47 / 137 Julien VAUBOURG
Yarding CHAPITRE 4. AUTOCONFIGURATION ET DNS quipe rseau Lothaire
Figure 4.10 Confection dun identiant DHCP de type DUID.
Cette contrainte complique lutilisation du DHCP statique en IPv6.
Le DHCPv6 statique ne semble pas encore support sur les quipements Cisco, mais est trs bien
support sur la version serveur de lISC. Un exemple de conguration (avec des relais DCHP) est donn
pour lexprimentation de la mobilit IPv6 en section 8.7 page 107.
4.4 Rsolutions DNS
4.4.1 Gnralits
Puisque les adresses IPv6 sont quatre fois plus longues que les adresses IPv4, ce sont les champs
DNS AAAA qui contiendront ces adresses. Un mme domaine peut faire cohabiter une rponse pour A et
pour AAAA, et ce sont les requtes qui dcideront ce quelles demandent.
Exemple de double rponse :
1 $ host ipv6actnow.org
2 ipv6actnow.org has address 193.0.19.50
3 ipv6actnow.org has IPv6 address 2001:67c:2e8:11::c100:1332
Exemple de rsolution inverse (nouveau domaine ip6.arpa, qui remplace le ip6.int) :
1 $ host 2001:67c:2e8:11::c100:1332
2 2.3.3.1.0.0.1.c.0.0.0.0.0.0.0.0.1.1.0.0.8.e.2.0.c.7.6.0.1.0.0.2.ip6.arpa domain
name pointer buzzard.ipv6.ripe.net.
Calculer un PTR avec ipv6calc :
1 $ ipv6calc --in ipv6 --out revnibbles.arpa 2001:67c:2e8:11::c100:1332
2 2.3.3.1.0.0.1.c.0.0.0.0.0.0.0.0.1.1.0.0.8.e.2.0.c.7.6.0.1.0.0.2.ip6.arpa.
LIANA a ajout des enregistrements AAAA six root-servers en 2008, rendant possible la rsolution
de noms de domaine entirement en IPv6.
48 / 137 Julien VAUBOURG
Yarding CHAPITRE 4. AUTOCONFIGURATION ET DNS quipe rseau Lothaire
Des enregistrements A6 sont parfois cits dans la littrature. Alors que la documentation de IBM
12
qualie les AAAA de Obsolete format of IPv6 address , un mmo
13
(subjectif) sur le site de lIETF
conseille doublier les champs A6 ( move A6 document to historic state ), principalement pour des
raisons de scurit. Le principal apport des champs A6 consiste pouvoir fragmenter les requtes pour
obtenir des chiers de zones plus simples grer (voir le mmo), au dtriment de la quantit de travail
pour les resolvers. Le dploiement actuel de lIPv6 semble de toutes faons avoir largement donn raison
aux quadras (AAAA).
4.4.2 DHCPv6
linstar de son prdcesseur, le DHCPv6 est habilit distribuer des adresses de serveurs DNS. Son
fonctionnement est dtaill dans la section 4.3 page 44.
Tous les systmes ne proposent pas de client DHCPv6 par dfaut :
Des clients DHCPv6 pour GNU/Linux sont disponibles la plupart du temps dans les dpts ociels :
isc-dhcp-client ou dibbler-client.
Chez Mac OS X, il est disponible par dfaut depuis la version 10.7 (Lion).
Pour Windows, il est aussi disponible par dfaut depuis Vista.
Enn pour Cisco le Features Navigator indique quil serait disponible depuis la version 15.2(2)S de
IOS.
4.4.3 RDNSS
Les options RDNSS (Recursive DNS Server ) et DNSSL (DNS Search List) sont des ajouts rcents
du protocole NDP. La RFC 6106 qui les documente explique que tant que les machines taient en double
pile, elles pouvaient utiliser les DNS en IPv4. Mais ds lors que la machine est entirement IPv6, un
DHCPv6 tait ncessaire pour diuser les adresses de DNS, ramenant le protocole NDP au niveau de la
futilit tant donn limportance de ces adresses pour lautoconguration des postes clients.
Le RDNSS permet de diuser les adresses des serveurs de nom de domaine via les annonces de
lautoconguration stateless, tandis que le DNSSL permet de diuser la liste des suxes des domaines
utiliser par dfaut sur le rseau.
Puisque ces options sont rcentes, elles ne sont pas supportes partout :
Le monde GNU/Linux semble le plus en avance sur ce point, puisque la plupart des versions rcentes
des distributions supportent le RDNSS par dfaut.
Comme pour le client DHCPv6, Mac OS X ne supporte cette option par dfaut que depuis la
version 10.7 (Lion).
Du ct du monde Windows le constat est plus pessimiste puisquil ny a pas de support natif y
compris sur Seven, mais uniquement le logiciel libre rdnssd-win32 installer.
12. http://pic.dhe.ibm.com/infocenter/aix/v7r1/index.jsp?topic=%2Fcom.ibm.aix.files%2Fdoc%
2Faixfiles%2Fnamed.conf.htm
13. http://tools.ietf.org/html/draft-ietf-dnsext-aaaa-a6-01
49 / 137 Julien VAUBOURG
Yarding CHAPITRE 4. AUTOCONFIGURATION ET DNS quipe rseau Lothaire
Au niveau serveur chez Cisco, cette option nest pas encore implmente.
Un serveur DNS rcursif est un serveur DNS qui dlguera la question un autre serveur DNS pour
retransmettre la rponse, lorsquil ne la connait pas lui-mme. Il sagit du type de serveur DNS que tous
les clients naux utilisent, et qui soppose aux serveurs DNS uniquement destins faire autorit sur un
domaine, sans pour autant tre apte rpondre toutes les requtes dune machine (vitant ainsi un
cas frquent de dni de service). Il sagit donc du mme type dadresse de serveur DNS quun serveur
DHCP est habitu distribuer.
Lautoconguration stateless entirement en IPv6 naura aucun sens tant que cette option ne sera
pas mieux supporte par les systmes. Des possibilits de mixage de DHCPv6 et RDNSS sont disponibles
dans la section 4.3 page 44. Lexprimentation la section 8.2 page 87 prouve que le RDNSS est malgr
tout trs bien support sous GNU/Linux.
Comme lindiquent le positionnement des deux drapeaux stateful (cf. section 4.3.3 page 45) et les
champs RDNSS (en gras), le FAI Free utilise NDP avec RDNSS pour congurer ses abonns :
1 $ rdisc6 eth0
2 Soliciting ff02::2 (ff02::2) on eth0...
3
4 Hop limit : 64 ( 0x40)
5 Stateful address conf. : No
6 Stateful other conf. : No
7 Router preference : medium
8 Router lifetime : 1800 (0x00000708) seconds
9 Reachable time : unspecified (0x00000000)
10 Retransmit time : unspecified (0x00000000)
11 Prefix : 2a01:e35:3ee7:b031::/64
12 Valid time : 86400 (0x00015180) seconds
13 Pref. time : 86400 (0x00015180) seconds
14 Recursive DNS server : 2a01:e00::2
15 Recursive DNS server : 2a01:e00::1
16 DNS servers lifetime : 600 (0x00000258) seconds
17 MTU : 1480 bytes (valid)
18 Source link-layer address: 00:24:D4:7D:E5:9C
19 from fe80::224:d5ff:ff6d:d59d
Le test a t eectu depuis une ligne ADSL Free avec lun des outils trs utiles du paquet ndisc6 de
Debian. Aucun DHCPv6 nest disponible chez Free, par consquent les systmes qui ne supportent pas
le RDNSS doivent utiliser les serveurs DNS IPv4 diuss en DHCPv4, grce la double-pile.
4.4.4 mDNS
Le DNS multicast consiste interroger le rseau plutt quun serveur DNS dsign pour rsoudre
des noms de domaine. Ce mcanisme fait partie des outils zroconf
14
. Il nest pas une nouveaut dIPv6,
mais peut constituer une piste explorer pour la distribution des adresses DNS.
14. http://www.zeroconf.org
50 / 137 Julien VAUBOURG
Yarding CHAPITRE 4. AUTOCONFIGURATION ET DNS quipe rseau Lothaire
Les deux principales spcications existantes sont LLMNR
15
(Microsoft) et le couple mDNS/DNS-
SD
16
(Apple). Il existe une troisime spcication SLP (Hewlett-Packard) peu utilise, mais qui a le mrite
dtre la seule avoir russi faire lobjet dun consensus susant pour aboutir sur une normalisation
de lIETF (RFC 2608 et RFC 3224).
Alors que LLMNR nest utilis que sur Windows, mDNS/DNS-SD est largement utilis sous Mac
OS X avec limplmentation Bonjour/Rendezvous et est disponible sous GNU/Linux avec Avahi (qui est
activ par dfaut dans quasiment toutes les distributions).
Lutilisation classique du mDNS est de rechercher une machine sur le lien local partir de son nom
plutt que de son IP, en lui ajoutant le suxe .local rserv cet usage. Ainsi, pour une nouvelle
imprimante simplement branche directement sur une machine ou via un commutateur, lutilisateur
pourra se contenter de saisir myprinter.local dans son navigateur pour obtenir la page web de son
nouveau priphrique. Concrtement, en utilisant le suxe du mDNS, le systme a interrog le rseau
en demandant qui tait myprinter ladresse multicast ff02::fb, en UDP sur le port 5353. La premire
machine couter cette adresse de diusion qui se reconnait et qui rpond en unicast, rpond la
question grce ladresse source de sa rponse.
Cette fonctionnalit est disponible par dfaut sur quasiment tous les systmes, qui coutent donc
tous par dfaut ladresse multicast mDNS (comme en tmoigne par exemple la section 2.3.5 page 19 qui
analyse les abonnements par dfaut dune Debian).
Il est possible dtendre cette fonctionnalit des rsolutions plus larges (rcursives) de noms de
domaine, de faon se passer compltement de serveur DNS. Cette possibilit nest jamais active par
dfaut puisque cest un trou de scurit bant : la premire rponse arrivant du rseau fait foi quelque
soit sa provenance (risque de spoong/phishing).
titre de documentation, voici comment activer ce mode de rsolution sous Debian
17
(paquet
nss-mdns) :
1. Vrier que mdns est bien prsent sur la ligne hosts de /etc/nsswitch.conf (cest le cas par dfaut).
2. Ajouter search local dans /etc/resolv.conf.
3. Activer la rsolution des noms de domaine en multicast, en crant le chier /etc/mdns.allow avec
simplement le caractre * dedans.
4.4.5 Rsolutions inverses des adresses autocongures (DDNS)
Une pratique courante pour lutter contre le spamming ou le ooding consiste vrier systma-
tiquement si lIP qui cherche contacter le service (par exemple un SMTP) possde bien un champ
PTR. Certains vont mme jusqu vrier ensuite que le domaine retourn correspond bien lIP initiale.
Alors que les serveurs sont souvent adresss statiquement, cette problmatique se pose surtout pour les
rseaux wi librement accessibles. Bien que la problmatique ne soit pas nouvelle, elle est nouveau
naturellement amplie par labsence de NAT, qui ne ncessitait que lenregistrement des quelques IPv4
publiques qui taient utilises pour sortir.
15. RFC informational 4795
16. http://tools.ietf.org/html/draft-cheshire-dnsext-multicastdns-06
17. http://0pointer.de/lennart/projects/nss-mdns/
51 / 137 Julien VAUBOURG
Yarding CHAPITRE 4. AUTOCONFIGURATION ET DNS quipe rseau Lothaire
En mode stateful (DHCPv6), le DHCP peut communiquer avec un serveur DNS pour ajouter au-
tomatiquement un domaine et un reverse chaque fois quune IPv6 est alloue. Comme en IPv4, il sagit
du DDNS (Dynamic DNS, RFC 2136 et 3007) prsent en gure 4.11.
Figure 4.11 Injections dynamiques denregistrements DNS par le DHCP.
Une exprimentation est ralise dans la section 8.8 page 113.
Pour le mode stateless, la mme manipulation est ralisable. Mais puisque chaque machine sattribue
elle-mme une adresse IP, elle doit tre elle-mme autorise ajouter dynamiquement des entres dans le
serveur DNS. Chacune dentre elle devra donc possder une cl de chirement limite et rfrence auprs
du serveur DNS. La manipulation est donc bien ralisable mais pas vraiment envisageable. Ce nouveau
problme, additionn celui du RDNSS qui nest pas encore exploitable, met lautoconguration stateless
dans une situation bien inconfortable face aux DNS.
Citons tout de mme quelques projets qui tentent de rpondre au problme des PTR automatiques
pour le mode stateless :
AllKnowingDNS
18
: Propose de rpondre la vole des PTR bases sur les adresses IPv6 de-
mandes, en lui dlguant la zone .ip6.arpa.
gen6dns
19
: Le fonctionnement est plus simple, puisquil sagit dun utilitaire destin gnrer
directement la base de donnes du serveur DNS, en crant les PTR de toutes les adresses possibles
pour un prxe donn.
RFC 4472 : Commentaires informationnels concernant les problmes lis aux DNS dans lutilisation
des IPv6 en production.
18. http://all-knowing-dns.zekjur.net
19. http://www.hznet.de/tools.html
52 / 137 Julien VAUBOURG
5
IPv6 dans un monde IPv4
We need to be the change we wish to see in the world.
1
- Gandhi
5.1 Cohabitation (double pile)
Il sagit de la solution la plus massivement utilise pour la conguration des machines : le systme
gre une double pile (dual-stack), en autorisant les communications IPv4 et IPv6. Tous les systmes sus-
voqus qui supportent lIPv6 implmentent la double pile, qui est active par dfaut partir de linstant
o au moins une adresse de chaque est renseigne.
Si linterface doit contacter un hte en utilisant une IPv4, elle utilisera son IPv4. Si cest une IPv6,
elle choisira une IPv6 pour sortir. Dans le cas o un nom de domaine est utilis, si celui-ci ne possde
quun champ A elle utilisera son IPv4 et si elle ne possde quun AAAA ce sera une IPv6.
Les critres de slection pour lIPv6 de sortie sont rappels dans la section 2.8 page 23. Ces mmes
critres permettent de dnir le choix entre lIPv4 et lIPv6 en cas de double rponse du DNS. Certaines
applications comme le navigateur web Safari contournent ces critres en slectionnant une IP par version
puis en testant celle qui rpond le plus rapidement.
Cette solution est simple mettre en uvre et convient parfaitement aux particuliers en permettant
de faire cohabiter des applications inaptes lIPv6 avec dautres plus modernes. Dans le cas de lad-
ministration dun parc informatique, cette cohabitation impose de congurer deux fois chaque machine,
davoir deux plans dadressage fonctionnels et de contrler deux jeux de rgles pour le pare-feu. Au niveau
des machines, la double pile entraine tacitement une charge supplmentaire, qui sera particulirement
lourde lorsquune application tentera une connexion en IPv6 qui chouera au bout dun certain temps,
avant de retenter en IPv4 (la rgle sur les systmes GNU/Linux est en gnral de toujours prfrer la
version IPv6).
1. Dans Arun Gandhi Shares the Mahatmas Message, Michel W. Potts, India.
Yarding CHAPITRE 5. IPV6 DANS UN MONDE IPV4 quipe rseau Lothaire
La numrotation du parc entirement en IPv6 est tentante, mais ne permettra pas aux utilisateurs de
traverser les ocans IPv4 pour atteindre les les IPv6 (jusquau jour o le problme sera invers), ni de
contacter directement une machine qui ne dispose pas dune adresse digne de notre nouveau millnaire.
La premire partie des solutions prsentes ci-dessous expose des solutions pour utiliser de lIPv6
lorsque les utilisateurs nont quun accs IPv4 (avec une double pile pour pouvoir utiliser celui-ci). La
seconde partie sintresse aux solutions possibles pour passer lensemble de son parc en IPv6 sans double
pile, tout en permettant les connexions vers des serveurs IPv4.
5.2 Faire de lIPv6 sur un rseau IPv4 (protocole 41)
5.2.1 Encapsulation IP
Cette section traite des tunnels avec encapsulation IP utilisant le protocole 41, destin faire passer
des paquets IPv6 au-dessus de rseaux entirement IPv4 (typiquement laccs Internet). Les postes
clients doivent tre au minimum capables de faire de lIPv6, et devront disposer dune double pile sils
veulent pouvoir faire de lIPv4 en mme temps.
Au niveau des enttes IP, le protocole 16 correspond TCP et le protocole 17 UDP. Lintroduc-
tion dun nouveau protocole numrot 41, permet de dnir un standard (RFC 2473) qui modiera le
comportement des routeurs, selon le type de tunnel utilis.
Le principe de base est le mme pour tous : deux rseaux entirement IPv6 sont relis par un
rseau IPv4. Le routeur de sortie (R1) du premier rseau encapsule les paquets IPv6 dans des paquets
IPv4 (cest dire quil ajoute les enttes IPv4 au dbut du paquet IPv6, qui se retrouve alors dans sa
zone de donnes/payload), le paquet transite sans problme au travers des rseaux IPv4, pour enn
tre dsencapsul par le routeur dentre (R2) du second rseau IPv6 (suppression des enttes IPv4) et
transmis tel quel. Un exemple simple est illustr en gure 5.1.
Les extrmits du tunnel peuvent aussi tre prises en charge par les pare-feux si ceux-ci le permettent.
Lencapsulation (mise en tunnel) dun paquet comptant pour un franchissement de routeur, le Hop Limit
est incrment de 1. Puisque les paquets ainsi encapsuls ajoutent des octets (enttes IPv4) aux paquets,
il faudra parfois fragmenter pour respecter la MTU entre les deux routeurs (ou laugmenter 1280 quand
cest possible, au dtriment des performances).
Il existe direntes faons dutiliser ce mcanisme, qui sont dtailles dans les sections suivantes.
5.2.2 Tunnels statiques
Il est possible de crer des tunnels statiques respectant stricto sensu le schma ci-avant, en congurant
les routeurs la main.
Les machines U1 et U2 ne connaissent que lIPv6, le tunnel est totalement transparent pour eux et ne
ncessite aucune conguration leur niveau. Par contre, si des rcritures interviennent durant le trajet,
54 / 137 Julien VAUBOURG
Yarding CHAPITRE 5. IPV6 DANS UN MONDE IPV4 quipe rseau Lothaire
Figure 5.1 Fonctionnement de base dun tunnel IPv6 pour lIPv4.
le transfert peut tre dicile, notamment cause des NAT
2
.
Les tunnels statiques de ce type correspondent au cas o il faut relier deux sites IPv6 spars par un
rseau IPv4. Mais il faudra monter ce type de tunnel manuellement pour chacune des destinations IPv6
joindre, ce qui est impossible dans le cas du surf web imprdictible dun des deux utilisateurs. Pour
automatiser la cration de ces tunnels, direntes solutions dcrites dans la suite sont envisageables.
Une exprimentation mettant en place un tunnel statique est propose en section 8.3 page 89.
5.2.3 Tunnels 6to4
An de permettre la cration de ces tunnels la vole, la RFC 3056 propose dutiliser un prxe
standardis par lIANA : 2002::/16.
Comme dans lexemple prcdent, les deux routeurs devront possder une adresse IPv4 publique.
Cest partir de celle-ci que sera dduit tout le sous-rseau (annonc par le routeur avec des Router
Advertisements ou du DHCPv6) qui se trouvera derrire. Pour se faire, il sut dajouter la valeur en
hexadcimale de cette IP la suite du prxe donn par lIANA. Le rsultat sera un prxe sur 48 bits.
2. Un document de lIETF de 2003 traite de ce problme en dtail :
http://tools.ietf.org/html/draft-palet-v6ops-proto41-nat-03.
55 / 137 Julien VAUBOURG
Yarding CHAPITRE 5. IPV6 DANS UN MONDE IPV4 quipe rseau Lothaire
Loutil ipv6calc dj prsent permet de faire a facilement (exemple avec ladresse de R1) :
1 $ ipv6calc --in ipv4addr --out ipv6addr --action conv6to4 193.100.0.1
2 2002:c164:1::
Ladresse IPv6 de la machine U1 qui se trouve derrire R1 pourrait donc avoir comme adresse :
2002:c164:1::10/48.
Une autre solution consiste laisser lIPv4 sous forme dcimale dans lIPv6 pour laisser le systme
calculer lui-mme :
1 $ ping6 2001:db8:b::193.100.0.1
2 PING 2001:db8:b::193.100.0.1(2001:db8:b::c164:1) 56 data bytes
Dans le cas de la migration dun parc informatique, plusieurs habitudes se retrouvent souvent :
1. Recopier lintgralit de lancienne IPv4 la n de la nouvelle IPv6 : 192.168.1.10 ::c0a8:10a
qui peut aussi tre note ::192.168.1.10, pour les nostalgiques.
2. Reporter le dernier octet de lancienne adresse IPv4 la n de la nouvelle adresse IPv6 : .10
::10, ce qui permet de commencer rellement se dtacher de lancien modle IP.
3. Laisser lautoconguration faire son travail, et utiliser les adresses MAC (ventuellement masques
automatiquement), ce qui semble la faon la plus saine de faire dans un environnement IPv6
(conformment aux bonnes pratiques prsentes en section 2.9 page 24).
Grce au prxe standardis et lintgration de ladresse publique IPv4 du routeur dans toutes les
adresses au travers du prxe du rseau gnr, deux routeurs qui supportent le 6to4 communiquent
parfaitement entre eux au travers dun rseau IPv4 (on admet que R1 et R2 sont dans le schma utilis
jusqu lors sont des routeurs 6to4) :
1. U1 envoie un paquet IPv6 destination dune autre adresse en 2002:, quil cone donc sa
passerelle par dfaut R1.
2. Puisque ladresse de destination nest pas locale, R1 se prpare envoyer le paquet vers le rseau
mondial.
3. Puisque ladresse de destination est en 2002:, il en dduit quil faut utiliser le mcanisme 6to4
pour envoyer ce paquet sur sa patte IPv4 relie Internet.
4. Il commence par extraire ladresse IPv4 du routeur 6to4 de destination, grce aux 4 octets suivant
le prxe de lIANA.
5. Il encapsule le paquet IPv6 dans un paquet IPv4 en utilisant le protocole 41 prsent ci-dessus, et
ladresse lIPv4 extraite correspondant R2.
6. R2 reoit ce paquet, constate quil sagit du protocole 41 et dsencapsule donc le paquet IPv6.
7. Par mesure de scurit, il vrie si les 4 octets aprs 2002: de lIPv6 source correspondent bien
ladresse IPv4 source du paquet avant dsencapsulation.
8. Si cest le cas, il transmet le paquet IPv6 tel quel la machine de destination appartenant son
rseau.
Un exemple est donn en gure 5.2 page 57.
56 / 137 Julien VAUBOURG
Yarding CHAPITRE 5. IPV6 DANS UN MONDE IPV4 quipe rseau Lothaire
Figure 5.2 Communication dun nud 6to4 un autre.
Ce mcanisme fonctionne parfaitement de routeur 6to4 routeur 6to4, mais ne permet pas de
contacter une adresse IPv6 qui nest pas en 2002: et qui ne dispose donc pas dun tel routeur. Il faudra
alors utiliser des relais 6to4.
Comme illustr en gure 5.3 page 58, ces relais fonctionneront comme de simples passerelles par
dfaut utiliser dans le cas dune adresse IPv6 qui nest pas dans le rseau local et qui nutilise pas le
prxe 6to4.
Le relais utiliser peut tre dni statiquement au niveau du routeur, ou pointer sur ladresse anycast
192.88.99.1 (transforme en son quivalent 6to4 2002:c058:6301::) de la RFC 3068 qui chargera le
rseau de trouver le relais le plus proche.
Un relais 6to4 nannonce que la route 2002::/16 sans la redcouper du ct de lInternet IPv6,
an de ne pas polluer les tables de routage IPv6 avec des adresses issues dadresse IPv4. Puisque le
retour ncessite aussi un relais qui sera choisi dune faon imprdictible, la route peut tre asymtrique
et entraner des problmes (notamment pour la traabilit). De plus, le relais externe peut poser de gros
soucis de scurit (vie prive comme dni de service).
Si U1 (et U2 dans les exemples prcdents) souhaite contacter une machine IPv4, il devra disposer
en plus dune double pile avec un double adressage de la part du routeur.
Une exprimentation du 6to4 avec un relais est propose en section 8.4 page 91.
57 / 137 Julien VAUBOURG
Yarding CHAPITRE 5. IPV6 DANS UN MONDE IPV4 quipe rseau Lothaire
Figure 5.3 Communication dun nud 6to4 un nud IPv6 natif laide dun relais.
5.2.4 Tunnels 6rd
Le principal problme du 6to4 rside dans limpossibilit de contrler les relais qui mnent lInternet
IPv6, entranant des problmes de stabilit et de scurit. Le protocole 6rd a t conu dans le but de
pallier ce problme, en permettant au FAI de grer ses propres relais dans ses propres domaines.
Linnovation a t conduite par le franais Rmi Desprs, et test pour la premire fois par le FAI
franais Free pour proposer des adresses IPv6 ses abonns. En cinq semaines, depuis la proposition
de Rmi Desprs Free jusqu lannonce ocielle aux abonns en passant par toutes les tapes de
dcisions hirarchiques et de marketing, le second plus gros fournisseur daccs haut dbit franais a pu
proposer une connectivit IPv6 totalement transparente pour lensemble de ses abonns. Le succs dune
telle opration a eu un retentissement mondial et a valu lIETF de crer la RFC 5969 qui normalise
le protocole en voquant a successful commercial "rapid deployment" of the 6rd mechanism by a
residential service provider .
Le 6rd est une application du 6to4, ces dirences prs :
Les prxes IPv6 utiliss sont issus des prxes qui appartiennent au FAI, plutt que des sous-
ensembles du prxe normalis 2002::/16 du 6to4.
Il est donc impossible de direncier du trac sorti dun rseau 6rd dun trac IPv6 natif (ce qui
vaut la France davoir articiellement 95%
3
de son trac IPv6 soit-disant natif, principalement
en provenance des connexions ADSL de Free).
Il peut y avoir plusieurs prxes IPv6 dirents, chacun correspondant un domaine 6rd.
La taille du prxe IPv6 est libre.
La taille alloue ladresse IPv4 incorpore est libre aussi : si lensemble des adresses IPv4 du
domaine peuvent tre agrges en un sous rseau, le prxe de celui-ci na pas besoin dtre
3. Page 15 de http://meetings.ripe.net/ripe-57/presentations/Colitti-Global_IPv6_statistics_-_
Measuring_the_current_state_of_IPv6_for_ordinary_users_.7gzD.pdf
58 / 137 Julien VAUBOURG
Yarding CHAPITRE 5. IPV6 DANS UN MONDE IPV4 quipe rseau Lothaire
renseign (par exemple, si toutes les adresses appartiennent 10.0.0.0/8, seuls les 24 derniers
bits sont utiles).
Ces dirences ont fait le succs du 6rd :
En utilisant ses propres prxes, le FAI contrle tous les relais, ce qui annihile la plupart des dfauts
du 6to4.
Les paquets encapsuls tiquets protocole 41 ne sortent donc pas de linfrastructure du FAI.
Ainsi la MTU des paquets IPv4 peut tre augmente (ou celle des IPv6 diminue) pour empcher
la fragmentation lie aux doubles enttes.
Les relais peuvent tre joignables avec des adresses anycast propres au FAI (une par domaine 6rd),
orant ainsi des possibilits de redondance automatique.
LIANA a ajout une option OPTION_6RD (section 7.1.1 de la RFC 5969) pour congurer au-
tomatiquement un routeur pour un domaine 6rd prcis.
Les routeurs des abonns peuvent facilement ajouter un support 6to4 (avec des adresses sup-
plmentaires qui utilisent le prxe 6to4) qui sera utilis pour contacter toutes les machines en
2002::/16 sans passer par les relais.
Contraintes respecter :
La taille du prxe IPv6 plus le nombre de bits ncessaires pour reprsenter lIPv4 incluse ne doit
pas dpasser 64 bits pour permettre lautoconguration partir des adresses MAC sur les rseaux
des abonns.
cause des adresses anycast utilises pour les relais, les paquets IPv4 utilisant le protocole 41
ne doivent pas subir de fragmentation (il ny a pas de garantie que deux relais partageant la
mme adresse anycast nutilisent pas le mme identiant de fragmentation, ce qui entranerait des
recompositions hasardeuses).
Il doit y avoir un domaine 6rd (donc un prxe IPv6) interne si le FAI utilise du NAT en sortie.
Inconvnients :
Pour respecter la contrainte des 64 bits maximum, les prxes IPv6 des domaines 6rd doivent tre
relativement petits, ce qui implique une consommation assez importante du prxe total allou au
FAI (qui peut aussi ncessiter des prxes pour de lIPv6 natif).
Comme pour le 6to4, les adresses IPv4 devraient tre xes pour faciliter la traabilit.
Labonn devra bncier dune double pile pour pouvoir continuer accder lInternet IPv4.
Du ct du FAI, cette solution lui permet de proposer une connectivit IPv6 ses abonns en un
temps record, mais ne lui permet pas dtre prt pour lavenir : si un snier tait plac entre le botier
ADSL de labonn et la prise murale, il ny verrait pas un seul paquet IPv6, puisque tout est encapsul
et que le rseau du FAI est rest entirement en IPv4. Un exemple de communication avec lextrieur
dun rseau 6rd est disponible en gure 5.4.
La nouvelle option de DHCPv4 (option-code) OPTION_6rd permet dajouter les champs suivants
au annonces DHCP :
59 / 137 Julien VAUBOURG
Yarding CHAPITRE 5. IPV6 DANS UN MONDE IPV4 quipe rseau Lothaire
Figure 5.4 Communication IPv6 via un rseau 6rd.
IPv4MaskLen : Valeur entre 0 et 32 qui reprsente le nombre de bits de poids fort qui sont commun
toutes les IPv4 du domaine 6rd (donc la reprsentation des IPv4 dans les IPv6 se fera sur 32 -
IPv4MaskLen bits).
6rdPrefixLen : Le prxe IPv6 ddi au domaine 6rd annonc (32 - IPv4MaskLen + 6rdPrefixLen
doit donc tre infrieur ou gal 128 et idalement 64).
6rdBRIPv4Address : Une ou plusieurs adresses IPv4 (ventuellement anycast) qui permettent de con-
tacter les relais pour le domaine 6rd.
Un exemple dexprimentation du 6rd avec un relais anycast est propos en section 8.5 page 94.
5.2.5 Tunnels ISATAP
Les tunnels ISATAP (Intra-Site Automatic Tunnel Protcol ) sont destins tre utiliss lintrieur
dun site, pour relier des machines obligatoirement en double pile au travers dun tunnel IPv4. Ce sont
les machines qui tablissent le tunnel entre elles et non les quipements rseau. Le tunnel utilise un
protocole de couche liaison de donnes, et permet donc aux machines de se considrer directement sur le
mme lien. Ce type de tunnel ne passe pas les NAT, il doivent donc tre utiliss soit dans un adressage
entirement priv (ventuellement avec un VPN) soit dans un adressage entirement public.
Chaque machine client doit supporter ISATAP, qui est disponible sous Windows ( partir de XP),
GNU/Linux et Cisco mais en version pre-alpha
4
pour Mac OS. Pour ce qui est des tlphones IP,
webcams, imprimantes et autres, lutilisation de ce genre de tunnel est impossible.
Le protocole (RFC 5214) nimpose pas de prxe comme cest le cas pour le 6to4, mais un format
spcique pour les 8 derniers octets (gure 5.5 page 61).
Les adresses IPv6 contiennent donc les adresses IPv4 des htes, ce qui permet de les extraire comme
dans le cas du 6to4. Lalgorithme dextraction est illustr en gure 5.6 page 61.
4. http://www.momose.org/macosx/isatap.html
60 / 137 Julien VAUBOURG
Yarding CHAPITRE 5. IPV6 DANS UN MONDE IPV4 quipe rseau Lothaire
Figure 5.5 Confection dune adresse ISATAP.
Figure 5.6 Fonctionnement de ISATAP.
Le protocole de couche 2 utilis nest pas ethernet mais un lien local NBMA NonBroadcast Multiple-
Access (comme pour le 6rd) : le nonbroadcast implique linoprance du multicast. Puisque le passage
des paquets sur le rseau se fait intgralement en IPv4, le NDP nest pas ncessaire pour la rsolution
des adresses MAC.
La RFC 5214 prvoit galement un mcanisme de passerelle ISATAP pour communiquer avec le
monde IPv6 extrieur. Un serveur DNS est utilis pour grer la dcouverte des routeurs ISATAP, ce qui
ressemble un viol des concepts fondamentaux de conception des rseaux, avec un trange mlange des
couches.
En fonctionnant ainsi en couche 2 et en nayant besoin daucune intervention sur les quipements
rseaux (qui doivent tout de mme autoriser le transport du protocole 41), ISATAP est un trs bon
moyen de virtualiser une connexion ad-hoc en IPv6, entre deux machines spares par un rseau IPv4
61 / 137 Julien VAUBOURG
Yarding CHAPITRE 5. IPV6 DANS UN MONDE IPV4 quipe rseau Lothaire
qui supportent le protocole. Pass ce cas dutilisation, les contraintes imposes et les moyens dployer
pour faire plus, le laissent sans avenir face au 6to4/6rd.
5.3 Autres solutions pour faire de lIPv6 sur un rseau IPv4
5.3.1 Encapsulation UDP pour mieux passer les NAT (Teredo)
Dans le cas de lutilisation de NAT pour les rseaux IPv4, les tunnels 6to4 et ses drivs imposent
aux routeurs les grant dimplmenter directement les fonctionnalits dencapsulation. Dune manire
gnrale, tous les routeurs ne proposent pas ces options, et peuvent tre une barrire ltablissement
des tunnels. Lencapsulation UDP (couche 4) plutt que IP (couche 3) permet non seulement de passer
les NAT facilement, mais aussi les pare-feux qui nont plus besoin dtre congurs pour laisser passer le
protocole 41.
Teredo est une solution propose par Microsoft standardise par lIETF avec la RFC 4380, qui utilise
ce type dencapsulation et qui est disponible sur la plupart des versions des systmes dexploitation qui
supportent lIPv6 (lavantage dune solution propose par Microsoft tant que Windows ne freine pas les
autres systmes).
Son fonctionnement nest pas trs dirent des autres types de tunnels :
Prxe IPv6 2001:0000::/32 spcique Teredo qui embarque des adresses IPv4.
Systme client/serveur pour communiquer dune adresse Teredo lautre.
Relais connects lInternet IPv6 contacter pour sortir.
La premire tape pour ltablissement dun tunnel Teredo est de permettre la machine de dcouvrir
le type du NAT derrire lequel elle se trouve (ip1 et p1 sont mapps automatiquement au niveau du NAT
sur des quivalents privs, et chaque envoi en UDP donne lieu ltablissement de rgles dynamiques
de NAT plus ou moins strictes pour permettre au serveur de rpondre). Les types de NAT sont dtaills
dans le tableau 5.1.
Type de NAT Envoi Conditions de retour Commentaire
full-cone ip1:p1 ip2:p2 *:* ip1:p1 Type de NAT des botiers ADSL.
symtrique ip1:p1 ip2:p2 ip2:p2 ip1:p1
Une ip1 publique dirente
pour chaque connexion.
restricted cone ip1:p1 ip2:p2 ip2:* ip1:p1
restricted port ip1:p1 ip2:p2 ip2:p2 ip1:p1
Table 5.1 Les dirents types de NAT (changes UDP).
Puisque lUDP donne lieu la cration de rgles NAT automatiques, cest un excellent moyen (appel
hole punching) de passer les NAT sans devoir congurer une rgle PAT avec un port statique la main,
condition que des paquets soient rgulirement envoys pour maintenir le mappage actif. Cest la raison
pour laquelle les protocoles comme SIP (tlphonie IP) utilisent beaucoup cette technique qui permet
de ne pas contraindre les utilisateurs lambda devoir aller manipuler leur botier ADSL.
62 / 137 Julien VAUBOURG
Yarding CHAPITRE 5. IPV6 DANS UN MONDE IPV4 quipe rseau Lothaire
Pour dterminer le type de NAT derrire lequel lutilisateur se trouve, les logiciels clients utilisent un
mcanisme de type STUN
5
(Simple Traversal of UDP through NAT) simpli (section 5.2.1 de la RFC
4380). Il sagit dune srie de questions-rponses depuis le NAT vers un serveur STUN (dans notre cas,
ce sont les serveurs Teredo qui font oce) qui visent dterminer les restrictions en fonction des paquets
reus ou non. Les rponses STUN permettent aussi de connatre son IP ainsi que son port public.
partir des informations dduites des changes STUN, lutilisateur est mme de construire son
adresse IPv6 Teredo, en suivant le schma disponible en gure 5.7 page 63.
Figure 5.7 Confection dune adresse Teredo.
Dans le cas dun NAT full-cone (simplement appel cone NAT dans la littrature de Microsoft, le
reste tant des restricted NAT), le drapeau permet au relais de savoir quil na pas besoin de passer
par des changes avec le serveur pour transmettre son paquet encapsul (les changes rguliers du client
avec le serveur permettent de laisser le port UDP mapp - et renseign dans les adresses - dans le NAT,
et la nature de celui-ci permet nimporte qui de lexploiter).
Si un NAT symtrique est dtect, le client Teredo avertit lutilisateur quil ne pourra pas faire de
tunnel Teredo
6
.
Enn, sil sagit dun NAT restricted, le protocole prvoit un change de paquets bubble en utilisant
le serveur, qui permettront de demander au client denvoyer un paquet UDP directement au relais. Ainsi,
un nouveau hole punching sera mis en place et le relais pourra dterminer le port utiliser pour une
communication directe (il devra reconnaitre le client grce son adresse IP, ce qui explique pourquoi le
NAT symtrique nest pas support).
Les serveurs Teredo ne sont pas destins faire transiter du trac. Contrairement aux relais, ils ne
sont destins qu recevoir des paquets de taille minimale : ceux permettant de garder le port UDP
mapp, ceux permettant de demander un contact client-relais (paquets bubbles) et ceux destins faire
des requtes de ping vers dautres htes.
Un client Teredo commence par trouver son adresse et initier un tunnel avec le serveur (gure 5.8
page 64). Il pourra ensuite discuter via le tunnel rserv, y compris travers un NAT restricted (gure 5.9
5. http://upload.wikimedia.org/wikipedia/commons/6/63/STUN_Algorithm3.svg
6. Une extension SymTeredo a t propose pour rsoudre ce cas : http://ieeexplore.ieee.org/xpl/freeabs_
all.jsp?reload=true&arnumber=1633339.
63 / 137 Julien VAUBOURG
Yarding CHAPITRE 5. IPV6 DANS UN MONDE IPV4 quipe rseau Lothaire
page 64).
Figure 5.8 Dcouverte de ladresse Teredo et rservation dun tunnel.
Figure 5.9 Fonctionnement de Teredo avec un NAT de type restricted.
64 / 137 Julien VAUBOURG
Yarding CHAPITRE 5. IPV6 DANS UN MONDE IPV4 quipe rseau Lothaire
Explications pour la gure 5.9 page 64 :
1. Le client IPv6 natif envoie son paquet IPv6 destination du client Teredo en ladressant un relais
qui annonce le prxe Teredo, comme nimporte quel routeur.
2. Aprs une srie de vrications, le relais extrait le drapeau de NAT et conclut quil sagit dune
machine derrire un NAT restricted (bit 0). Ne pouvant pas lui transmettre directement le paquet,
il extrait ladresse de son serveur Teredo associ, et lui envoi un paquet bubble encapsul dans un
paquet UDP IPv4.
3. Le serveur Teredo se contente de router le paquet, ayant lautorisation dutiliser le port UDP
mapp.
4. Le client dsencapsule le paquet UDP et trouve un paquet IPv6 bubble : il envoie donc son tour
un paquet encapsul de mme nature au relais Teredo (dont il dtermine ladresse partir des
IP sources du premier paquet), crant ainsi une rgle dynamique de retour dans le NAT, avec un
nouveau port.
5. Le relais associe la provenance du paquet bubble avec celui quil vient denvoyer grce lIP du
client, et dtermine le port utiliser grce au port source du paquet quil vient de recevoir. Il
peut alors directement transmettre le paquet de lhte natif IPv6, via le nouveau port. Il stockera
ces informations dans une table avec un temps dexpiration, pour viter de redemander un port
chaque change.
Les tunnels Teredo sont soumis de gros problmes de scurit
7
.
5.3.2 Tunnels brokers
Les tunnels brokers (RFC 3053) proposent une approche dirente, en utilisant un tunnel IPv4
permanent, linstar dun VPN. Une fois le client connect au tunnel server, les changes en IPv6 se
font au travers de la nouvelle interface virtuelle, qui utilise le mode dencapsulation quelle dsire.
Pour enregistrer les nouveaux utilisateurs et leur donner accs aux tunnels servers, des nuds connus
de type broker sont utiliss. Ceux-ci seront ventuellement payants, et se chargeront en plus dattribuer
les adresses IPv6 (tires dun prxe lui appartenant, formates comme bon lui semble) et dindiquer
au client comment tablir le tunnel avec le tunnel server indiqu. Les clients doivent donc possder le
logiciel spcique au tunnel broker, qui lui permettra dtablir la liaison avec le tunnel server. Un exemple
est donn en gure 5.10 page 66.
Cette solution trs scurise (les tunnels peuvent tre aussi chirs) ncessite plus de ressources que
les autres, et nest destine quaux particuliers isols.
Quelques brokers connus :
SixXS : http://www.sixxs.net.
Freenet6 : http://go6.net.
Hurricane Electric : http://tunnelbroker.net.
BT IPv6 : http://www.ipv6.bt.com.
7. http://www.symantec.com/avcenter/reference/Teredo_Security.pdf
65 / 137 Julien VAUBOURG
Yarding CHAPITRE 5. IPV6 DANS UN MONDE IPV4 quipe rseau Lothaire
Figure 5.10 Fonctionnement dun tunnel broker.
Plusieurs brokers disposent dun logiciel client compatible directement dans (par exemple) les dpts
Debian :
Paquet aiccu pour SixXS.
Paquet gogoc (protocole TSP) pour Freenet.
Si cette solution scurise les changes, elle nest pour autant pas garante de la protection de la vie
prive ou de la neutralit du Net, si lutilisateur utilise un broker quil ne contrle pas.
5.3.3 Sans encapsulation avec le NAT64/DNS64
Ces technologies concernent en gnral plutt les rseaux entirement IPv6, qui ont une connexion
IPv6 disposition, mais qui souhaitent continuer pouvoir contacter des IPv4. Toutefois, lorsque le
DNS64 est congur pour transformer lintgralit des A en faux AAAA, le rseau na plus besoin de la
connectivit IPv4.
La dirence fondamentale avec la plupart des technologies prsentes ici, est quil nutilise pas
dencapsulation et ne ncessite que lutilisation dun routeur capable de faire du NAT64. Pour plus
dinformations sur ces technologies et lastuce permettant de se passer de connexion IPv6, se reporter
la section 5.4.3 page 67.
5.3.4 Serveurs mandataires (proxies)
Passer par une passerelle applicative permet de recevoir des donnes en IPv4 pour les transmettre
en IPv6 au destinataire nal, ou inversement. Cette solution est trs simple mettre en uvre, mais
nest disponible que pour un nombre rduit de protocoles habitus tre proxis (HTTP, SMTP, POP,
IMAP, FTP, DNS, SIP, etc.).
Les serveurs mandataires ont aussi la fcheuse tendance rapidement devenir des goulots dtran-
glement.
66 / 137 Julien VAUBOURG
Yarding CHAPITRE 5. IPV6 DANS UN MONDE IPV4 quipe rseau Lothaire
5.4 Faire de lIPv4 sur un rseau IPv6
5.4.1 Gnralits
Toutes les solutions abordes ci-avant ncessitent une double pile pour faire cohabiter lIPv4 et lIPv6.
Cette section prsente les solutions pour bncier dun rseau entirement IPv6 (comme dans un
6to4 sans IPv4), tout en laissant la possibilit aux usagers de contacter des machines restes en IPv4
(sans double pile). Cette faon de faire permet de rellement passer son rseau en IPv6, sans doubler sa
charge de travail en conservant un double adressage avec un double jeu de rgles pour le pare-feu, et
sans encapsulation. Il sagit donc aussi de la meilleure faon de se prparer pour lavenir.
Ces solutions se basent sur un mcanisme de translation dadresses.
5.4.2 NAT-PT et NATPT-PT
Ces deux technologies (RFC 2766), souvent reprises dans la littrature, ont t rendues obsoltes par
la RFC 4966 et ne doivent plus tre employes.
Elles ne seront pas consquent plus supportes sur les futurs IOS
8
de Cisco.
Il est remplac avantageusement
9
par le NAT64.
5.4.3 NAT64 / DNS64
Le NAT64 est lune des dernires solutions disponible pour traduire des paquets IPv6 en IPv4. Mal-
heureusement, ses spcications nont pas encore t ocialises par lIETF (RFC PROPOSED STAN-
DARD). Malgr le retard de la normalisation, des solutions logicielles fonctionnelles sont dj disponibles.
Le NAT64 utilise le format dadresses de la RFC 6052 illustr en gure 5.11 page 67, qui dcrit
comment transformer une IPv4 en IPv6 en utilisant le prxe 64:ff9b::/96.
Figure 5.11 Confection normalise dune adresse IPv6 depuis une adresse IPv4.
8. Cf. Is NAT-PT still supported in IOS (even though its deprecated by the IETF) ? ici : http://www.cisco.
com/web/learning/le21/le39/docs/tdw130_qa.pdf
9. http://blog.ioshints.info/2011/03/nat-pt-is-dead-long-live-nat-64.html
67 / 137 Julien VAUBOURG
Yarding CHAPITRE 5. IPV6 DANS UN MONDE IPV4 quipe rseau Lothaire
Ce prxe tant destin tre utilis uniquement lintrieur du rseau, il peut tre chang par un
prxe libre, condition dajouter un octet null partir du bit 64 si le prxe IPv6 est plus petit que 96
(section 2.3 de la RFC 6052).
Le NAT64 va de paire avec le DNS64, illustr en gure 5.12 page 68. Celui-ci est charg de rsoudre les
noms de domaine comme nimporte quel serveur DNS. Sauf que si la rponse est en IPv4 uniquement,
il transformera cette dernire en IPv6 en respectant un formatage prcis. Son anctre le NATPT-PT
modiait les rponses DNS provenant de nimporte quel serveur directement dans les paquets, pour
modier les A en AAAA, ce qui rendait la solution un peu plus transparente, mais bien plus lourde que le
DNS64.
Figure 5.12 Fonctionnement dun DNS64, alli indispensable du NAT64.
La passerelle du rseau IPv6 doit avoir accs un accs lInternet IPv4 en plus de lIPv6, comme
illustr en gure 5.13 page 68.
Figure 5.13 Fonctionnement du NAT64.
Lorsquun paquet est envoy destination dune adresse IPv6 ctive, la passerelle NAT64 se charge
de transformer ce paquet en un paquet IPv4 (sans lencapsuler) en utilisant ladresse IPv4 de destination
extraite de ladresse ctive. Elle utilisera une rgle de NAT, comme en NAT44, pour tre capable dassocier
les rponses.
68 / 137 Julien VAUBOURG
Yarding CHAPITRE 5. IPV6 DANS UN MONDE IPV4 quipe rseau Lothaire
Le NAT64 stateless utilise une plage IPv4 prive interne pour crer ses rgles de NAT (ce qui double
les conversions, mais permet de ne pas avoir stocker ltat des connexions), illustr en gure 5.14
page 69.
Figure 5.14 Mcanismes internes du NAT64 stateless.
Dans cet exemple, le NAT64 stateless a choisi lIP 192.168.1.2 parmi les adresses quil avait
disposition et la associe de faon unique lIPv6.
La version stateful (RFC 6146 et gure 5.15 page 69) associe directement les IPv6 aux IPv4, en
conservant ltat des connexions, comme les NAT/PAT44 habituels.
Figure 5.15 Mcanismes internes du NAT64 stateful.
Un document intitul Performance of NAT64 versus NAT44 in the Context of IPv6 Migration
10
propose des tests de performance, notamment entre du NAT64 stateless et du NAT44 classique. Il utilise
les mmes outils que ceux utiliss dans la partie exprimentations et permet de constater que cette
solution pourrait passer lchelle aussi bien que du NAT classique. noter tout de mme quun NAT44
est ajout au NAT64 pour la version stateless.
Ct DNS64, le serveur Bind supporte cette fonctionnalit depuis sa version 9.8
11
, directement
dans ses options (sinon un autre utilitaire peut tre employ, les deux cas tant envisags dans les
exprimentations) :
10. http://www.iaeng.org/publication/IMECS2012/IMECS2012_pp638-645.pdf
11. Un chapitre est consacr au DNS64 dans lOreilly DNS & BIND on IPv6 , disponible ici : http://my.
safaribooksonline.com/book/networking/dns/9781449308025/dns64/27.
69 / 137 Julien VAUBOURG
Yarding CHAPITRE 5. IPV6 DANS UN MONDE IPV4 quipe rseau Lothaire
1 dns64 64:ff9b::/96 {
2 suffix ::;
3 recursive-only yes;
4 clients { ::1/128; };
5 mapped { !10/8; !172.16/12; !192.168/16; any; };
6 exclude { 64:ff9b::/96; };
7 break-dnssec yes;
8 };
Toutes ces contraintes sont optionnelles :
sux : Si le prxe du DNS64 est infrieur 96, un suxe peut tre utilis, sinon la contrainte :: est
positionne par dfaut.
recursive-only : Par dfaut no, cette contrainte permet dindiquer si les transformations sappliquent
aussi sur les zones du Bind en cours, ou non.
clients : Permet de nactiver la fonctionnalit DNS64 que pour un certain nombre de clients DNS (dans
cet exemple il sagit du cas o le Bind est install en local sur la machine utilisateur, et la valeur
par dfaut est any).
mapped : Un AAAA modi ne sera renvoy que lorsque ces IP seront dcouvertes dans la version A. Le
point dexclamation devant les trois plages de lexemple (correspondant aux IP prives de la RFC
1918) permettent dexclure des IP avant de toutes les accepter.
exclude : Lorsquun AAAA est dcouvert, il est retourn sans regarder la version A. Sauf pour les adresses
comprises dans les plages de cette contrainte, pour lesquelles ont renverra toujours un AAAA issu
du A (dans lexemple, on dcide de recalculer systmatiquement soi mme les AAAA lorsquil sagit
manifestement dj dun AAAA modi). Cest cette contrainte, lorsquelle a la valeur ::/0, que
le NAT64 peut tre utilis avec une connexion sans accs IPv6.
break-dnssec : Lorsque DNSsec est utilis, les conversions de A en AAAA ne soprent plus, puisque le
DNS64 qui transmets (forwarder ) va systmatiquement casser les vrications. Ce comportement
peut-tre invers avec cette contrainte.
Si les enregistrements A ont un champ PTR, les AAAA modis en auront aussi un automatiquement.
Le serveur DNS64 rpondra toujours avec un PTR correspondant lIPv6 modie, congur en CNAME
du PTR de lIPv4.
Le NAT64/DNS64 a t expriment en mode stateless en section 8.6.1 page 96 et en mode stateful
la section 8.6.2 page 102.
5.5 Rcapitulatif
Le tableau 5.2 page 71 donne un aperu de la mise en concurrence des solutions qui sont disposition
pour faire de lIPv6 avec ou sans lien IPv6, et en continuant de pouvoir accder aux services IPv4.
70 / 137 Julien VAUBOURG
Yarding CHAPITRE 5. IPV6 DANS UN MONDE IPV4 quipe rseau Lothaire
Solution Dbl pile Lien IPv6 Encap. Cong. Transparent IP natives Univ.
6to4 Oui Oui (relais) Oui (41) Rseau Oui Non Oui
6rd Oui Oui Oui (41) Rseau Oui Oui Oui
NAT64 Non Oui/Non Non Rseau Oui Oui Oui
ISATAP Oui Non Oui (41) Utilisateur Non Oui Oui
Teredo Oui Oui (relais) Oui (UDP) Utilisateur Oui (+NAT) Non Oui
Brokers Oui Non Oui (TCP) Utilisateur Non Oui Oui
Proxies Non Oui Non Utilisateur Oui Oui Non
Table 5.2 Comparatif des solutions pour faire cohabiter lIPv4 et lIPv6.
Prcisions pour le tableau 5.2 page 71 :
Double pile : Oui sil faut garder la pile IPv4 pour pouvoir communiquer avec des services IPv4.
Lien IPv6 : Oui sil faut que le rseau ait accs un lien IPv6 au moins un endroit, pour que la
solution soit mise en place. Lorsque (relais) est indiqu, le lien nest pas ncessaire si ladministrateur
dcide dutiliser des relais externes. Le NAT64 peut fonctionner de paire avec un lien IPv6, ou sen
passer totalement.
Encapsulation : Le type dencapsulation est indiqu entre parenthses, sil y a lieu.
Conguration : Rseau signie que la conguration se fait au niveau du routeur, que la solution
est accessible lensemble du rseau et que les utilisateurs nont pas obligatoirement connaissance
de la solution dploye. Utilisateur signie que la machine de lutilisateur doit tre congure (et
compatible) spciquement pour cette solution, et quelles devront ltre une une.
Transparent : Oui si les nuds qui sont contacts depuis le rseau qui opre la solution nont pas
besoin davoir connaissance de la solution utilise (et donc dtre compatibles ou congurs pour).
IPv6 natives : Oui si les IPv6 de sortie nutilisent pas un prxe particulier qui dsigne la solution
mise en uvre.
Universelle : Oui si la solution fonctionne pour la couche IP sans distinction du type de trac, non
si elle rpond des besoins applicatifs spciques.
5.6 Conclusion
La solution du NAT64 semble la plus optimale en terme de charge de travail pour ladministra-
teur, puisque cest une solution totalement transparente sans encapsulation, qui concerne tout le rseau
la fois, et qui ne ncessite pas de double adressage. Le NAT64 pouvant tre congur de faon ne pas
ncessiter de lien IPv6, il rpond tous les cas dutilisation. Puisque le rseau sous-jacent ne ncessite
pas de double pile, le rseau peut tre entirement gr en IPv6 et proter pleinement des nouveauts,
a minima en interne.
Il est donc le meilleur moyen de prparer son rseau pour lavenir : il pourra commencer sans lien
IPv6, continuer avec un lien IPv6 tout en gardant une compatibilit IPv4, et enn terminer en remplaant
la machine du NAT64 par un simple pare-feu, sans quasiment ne faire aucun changement sur le rseau.
71 / 137 Julien VAUBOURG
Yarding CHAPITRE 5. IPV6 DANS UN MONDE IPV4 quipe rseau Lothaire
La gure 1.4 prsente dans la section IPv6 day, page 11, indique la rgression de lutilisation des
mthodes alternatives comme le 6to4, au prot dIPv6 natives (ventuellement en utilisant du 6rd, de
lISATAP ou du NAT64).
72 / 137 Julien VAUBOURG
6
Routage
Eorts and courage are not enough without purpose and direction.
1
- John F. Kennedy
6.1 Gnralits
Il y a peu de dirences entre le routage IPv4 et le routage IPv6, sauf que celui-ci apporte de nouvelles
possibilits en terme de routage dynamique.
Le choix du chemin se fait toujours selon la rgle du more longest, cest dire la route la plus prcise.
Sur du matriel Cisco, le routage entre interfaces sactive pour lunicast (fonctionnalit de routage
classique) et le multicast (inutile pour les adresses multicast de lien local qui ne sont pas routes) :
1 Routeur(config)# ipv6 unicast-routing
2 Routeur(config)# ipv6 multicast-routing
Ce document nayant pas pour vocation de former la cration dun oprateur, la partie concernant
le routage dynamique sera succincte.
6.2 Statique
Aucune dirence du ct du routage statique, pour lequel les outils ont tous t adapts lidentique.
noter que la convention voudrait que les routeurs soient toujours indiqus par une adresse de lien local.
Ajouter une route statique avec une route par dfaut et acher la table (Cisco) :
1. http://www.presidency.ucsb.edu/ws/index.php?pid=74076
Yarding CHAPITRE 6. ROUTAGE quipe rseau Lothaire
1 Routeur(config)# ipv6 route 2001:db8:c::/64 2001:db8:a::1
2 Routeur(config)# ipv6 route ::/0 2001:db8:c::1
3 Routeur# sh ipv6 route
Avec un systme GNU/Linux :
1 # ip route add 2001:db8:c::/64 2001:db8:a::1
2 # ip route add default via 2001:db8:c::1
3 # ip -6 route
6.3 Dynamique
6.3.1 Correction dynamique des chemins
La principale nouveaut concerne llaboration dynamique et participative du chemin le plus court.
Dans une conguration classique, une machine U1 dcidera denvoyer ses paquets destination de
U2 en passant par sa passerelle par dfaut R1, si U2 ne fait partie daucun des rseaux auxquels il est
directement reli (gure 6.1 page 74).
Figure 6.1 Ajout dynamique dune route plus optimise.
Mais si R1 dcide daprs ses rgles de routage de transmettre les paquets un routeur R2 qui est sur
le mme lien (cas illustr par le schma ci-dessus), la situation rvle que U1 aurait pu les transmettre
directement R2 sans passer par R1, et donc quil lui manque une route.
R1 transmettra les paquets R2, mais dlivrera aussi un message ICMPv6 de type redirect, pour
annoncer la route de R2 U1. Si celui-ci la prend en compte, les prochains paquets destination de U2
passeront directement par la nouvelle rgle de routage.
74 / 137 Julien VAUBOURG
Yarding CHAPITRE 6. ROUTAGE quipe rseau Lothaire
6.3.2 Protocoles
La plupart des protocoles de routage dynamique ont volu de faon sabstraire de la couche 3,
pour ne pas avoir direncier un trac pour IPv4 dun trac pour IPv6 :
RIPng : Base sur le protocole RIPv2 (RFC 2453), la version RIPng (RFC 2080 et 2081) supporte
lIPv6. Il utilise le port UDP 521 au lieu du port 520, direncie la table de routage IPv4 de la table
IPv6, utilise des adresses de lien local pour le next-hop, transmet les prxes et met disposition
ladresse multicast ff02::9 correspondant all-RIP-routers. Les authentications sont bases sur
IPsec.
OSPFv3 : Contrairement sa version prcdente, la version 3 (RFC 5340) est indpendante du protocole
rseau, ce qui lui permet de supporter parfaitement lIPv6. Le RouterID (sur 32 bits) sert prsent
identier directement le routeur, puisque les LSA Router et Network State ne contiennent plus
dadresses de rseau, et doit donc tre x manuellement (ou utiliser ladresse IPv4). Le next-
header correspondant OSPFv6 est 89 et comme RIPng lauthentication prote de la disponibilit
systmatique dIPsec. De la mme faon aussi, il utilise de prfrence les adresses de lien local.
Ladresse multicast ff02::6 correspond OSPFv3 AllDR routers.
IS-IS :
2
Contrairement lOSPF, IS-IS na pas attendu pour oprer en couche 2 puisquil observe ce
comportement depuis toujours. Il a donc toujours t oprationnel pour lIPv6. Seuls trois types
dinformation nouveaux sont apparus : IPv6 Reachability TLV pour annoncer les routes avec leur
prxe et leur mtrique, IPv6 Interface Address TLV pour transmettre les adresses de type lien
local et IPv6 NLPID pour annoncer le support de lIPv6.
BGP4+ : Cette nouvelle version de BGP (RFC 2545) se base sur MBGP (Multiprotocol BGP, RFC
4760) et BGP4 (RFC 4271). Comme pour OSPFv3 le RouterID doit tre x manuellement ou
utiliser une adresse IPv4.
La gure 6.2 page 76 apporte une reprsentation graphique des changes BGP IPv6 entres les AS
enregistrs dans le Looking Glass
3
du Ring (projet de mise disposition de machines virtuelle au sein
des AS participants, pour permettre aux confrres de rsoudre un problme de routage depuis lintrieur
des AS distants) du NLNog
4
(propose par Job Snijders
5
et reporte par Jrme Nicolle sur la liste du
FRnOG).
Elle tend prouver que lInternet IPv6 est dj bien en place et que le rseau est dj loin de la
chimre qui est parfois dnonce.
6.4 Prxe spcial DDoS
La RFC 6666 publie n aot 2012
6
prvoit que le prxe 0100::/64 est dsormais rserv la
redirection du trac potentiellement li un DDoS (Distributed Deny of Service).
3. http://lg.ring.nlnog.net/summary/lg01/ipv6
4. Groupe doprateurs rseaux nerlandais : http://nlnog.net.
5. Version haute rsolution : http://instituut.net/~job/ring-lg/ipv6-bgp-adjacencies.jpeg (version IPv4 :
http://instituut.net/~job/ring-lg/ipv4-bgp-adjacencies2.png).
6. Merci Stphane Bortzmeyer, qui a annonc la nouvelle sur la liste FRnOG le 21 aot, et qui a publi un article sur
son blog, duquel cette section est inspire : http://www.bortzmeyer.org/6666.html
75 / 137 Julien VAUBOURG
Yarding CHAPITRE 6. ROUTAGE quipe rseau Lothaire
Figure 6.2 changes BGP en IPv6 enregistrs par le Ring du NLNOG.
En cas dattaque de ce type, une technique couramment utilise est le RTBH (Remote Triggered
Black Hole, RFC 5635 et 3882), souvent raccourcie en black hole. La victime demande alors son FAI
de rejeter tous les paquets provenant dune plage prcise dadresses IP, ventuellement en prcisant une
liste de ports. Ce dernier sexcute en congurant ses rgles de routage dynamique, pour rediriger les
paquets incrimins.
Les paquets peuvent tre totalement oublis, ou redirigs dans un tunnel qui aboutira sur un dispositif
danalyse qui dcidera de leur sort. Les adresses utilises pour la redirection sont parfois des adresses
prives, ou issues de la plage des adresses de documentation. Cette faon de faire ntant pas satisfaisante,
la nouvelle plage dIP, dsormais rserve, est destine servir pour ces redirections.
76 / 137 Julien VAUBOURG
Yarding CHAPITRE 6. ROUTAGE quipe rseau Lothaire
Les adresses IP de la plage 0100::/64 indiquent donc clairement un trac susceptible de venir dun
DDoS, et ne doivent pas tre routes en dehors de linfrastructure de loprateur, au risque sinon de
propager lattaque.
77 / 137 Julien VAUBOURG
Yarding CHAPITRE 6. ROUTAGE quipe rseau Lothaire
78 / 137 Julien VAUBOURG
7
Mobilit
Im very excited about having the Internet in my den.
1
- Steve Jobs (1994)
7.1 Gnralits
Le concept de mobilit sapplique lorsquun mobile (un ordiphone, une tablette, un ordinateur, etc.)
change dadresse IP en changeant de rseau (wi, GSM, etc.), tout en souhaitant rester joignable en
permanence via ladresse connue de son quipement, sur son rseau personnel.
Sil ne change pas dadresse en changeant de rseau, comme cest le cas pour le roaming en wi, le
mcanisme ne concerne pas la couche IP.
Cette notion nest pas une nouveaut puisquelle existait dj en IPv4 (RFC 2002), dans une version
qui ntait pas trs exploitable tant donne la complexit des rseaux IPv4 constitus de NAT et le
manque dadresses disponibles. La version IPv6 (RFC 6275) rsout ces problmes, et apporte plus de
lgret, moins de prrequis et plus de scurit.
Dans les deux modes existants, le nud qui souhaite utiliser le service de mobilit possdera deux
adresses :
home address (HoA) : LIPv6 de la machine qui est connue de tous, et qui appartient donc au
prxe du LAN auquel il appartient initialement (maison ou bureau, selon les cas).
care-of address (CoA) : LIPv6 de mobilit, qui change selon les rseaux auxquels la machine se
connecte lors de son dplacement, imprvisible.
1. http://the99percent.com/articles/7044/9-Awesome-Interviews-with-Creative-Visionaries
Yarding CHAPITRE 7. MOBILIT quipe rseau Lothaire
Nous parlerons, conformment la littrature, de mobile (mobile node - MN) pour le nud qui
se dplace, et de correspondant (correspondent node - CN) pour celui qui tente de joindre le mobile.
Lorsquil est sur son rseau initial, le routeur qui gre celui-ci est dsign comme home agent (HA) sinon
cest le routeur daccs (router access - RA).
7.2 Sans optimisation du chemin (tunnel bidirectionnel)
Ce mode correspond celui par dfaut, puisquil ne ncessite pas de conguration du ct du corre-
spondant, qui ignorera totalement les dplacements du mobile. Il tentera donc toujours de le contacter
avec sa home address, comme si le mobile restait en permanence dans son rseau.
Lorsque le mobile est dans son rseau initial (gure 7.1 page 80), le correspondant peut le contacter
normalement en utilisant son adresse connue et en passant par le home agent par les mcanismes de
routage habituels.
Figure 7.1 Rseau de rfrence du mobile.
Ds lors que le mobile est en dplacement (gure 7.2 page 81), le correspondant continue de contacter
le home agent pour atteindre le mobile, il faut donc quil soit capable de transmettre les paquets celui-ci
o quil soit.
Pour ce faire, ds lors que le mobile acquiert une adresse (par DHCP ou autoconguration stateless)
qui ne correspond pas sa home address, il doit prvenir son home agent de lendroit o il se situe pour
se faire livrer ses paquets (changes en IPsec pour viter les usurpations didentit), comme illustr en
gure 7.3 page 81.
Ainsi, lorsque le correspondant souhaitera contacter le mobile, le home agent se chargera de trans-
mettre les paquets ladresse care-of (qui dlivrera ensuite en interne le paquet linterface qui a gard
la home address) reue dernirement par le mobile au travers du tunnel tabli (gure 7.4 page 81).
Le tunnel tant bidirectionnel, les rponses destination du correspondant lemprunteront aussi.
Cette mthode ne ncessite quune compatibilit au niveau des quipements du mobile (routeur et
poste utilisateur), mais elle nest pas optimale en terme de chemins. De plus, lutilisation dun tunnel
alourdit le processus et peut poser problme dans le cas dapplication sensibles comme la tlphonie.
Pour ces raisons, une seconde mthode existe.
80 / 137 Julien VAUBOURG
Yarding CHAPITRE 7. MOBILIT quipe rseau Lothaire
Figure 7.2 Mobile en dplacement.
Figure 7.3 Mise jour de ladresse care-of du mobile.
Figure 7.4 Contact du mobile au travers de son home agent.
81 / 137 Julien VAUBOURG
Yarding CHAPITRE 7. MOBILIT quipe rseau Lothaire
7.3 Avec optimisation des chemins
Cette mthode permet au correspondant de contacter directement le mobile en ayant connaissance
de son adresse care-of.
Le mobile commence par crer un tunnel avec son home agent de la mme faon que dans la premier
mode. Puis, an dassurer la scurit de ce systme, le mobile doit avertir le correspondant de son adresse
care-of actuelle en utilisant un mcanisme ddi cet usage. Le mcanisme est illustr en gure 7.5
page 82.
Figure 7.5 Mobilit avec optimisation des chemins.
En passant la fois par le tunnel et le chemin direct, le correspondant peut transmettre des cls qui
permettront de sassurer que le mobile est bien celui quil prtend tre. Ainsi, les deux jetons (keygen)
reus seront utiliss par le mobile pour crer une cl de 20 octets qui servira chirer les messages Binding
Update. Ils serviront par la suite indiquer au correspondant un dplacement (et donc une nouvelle
adresse care-of ). Les paquets qui suivront iront directement de la care-of ladresse du correspondant
et inversement, sans sourir de la lourdeur dun tunnel.
La procdure dauthentication choue (probablement parce que le correspondant ne supporte pas
les fonctionnalits de mobilit), la communication se fera par le tunnel, dans le mode prcdent.
Puisquil peut y avoir des paquets perdus le temps de la rception du message Binding Update, un
mcanisme de Fast Handover est dcrit dans les RFC 5568 et 4260. Plusieurs home agents peuvent aussi
tre utiliss pour assurer sa disponibilit.
7.4 Autres solutions
Deux autres solutions pour faire de la mobilit IPv6 existent, lune tant de lordre de loptimisation
et lautre dans un esprit dirent :
HMIPv6 : Il sagit dune extension (RFC 4140) de la mobilit IPv6 vue plus haut, consistant imposer
une organisation hirarchique au moment de la transmission des messages de mise jour (Binding
Update). Ainsi, ceux-ci seront systmatiquement envoys un nouvel lment appel Mobility
82 / 137 Julien VAUBOURG
Yarding CHAPITRE 7. MOBILIT quipe rseau Lothaire
Anchor Point (MAP) qui se chargera la premire fois den rediuser tous les correspondants.
Ces nuds sont communiqus via les Router Advertisements distribus par le rseau sur lequel se
trouve le mobile. Lorsque le mobile changera de rseau, ce systme parie sur le fait quil recevra
plusieurs fois le mme nud MAP proximit, quil naura alors qu prvenir de son changement
de rseau. Du ct des correspondants, ils continuent communiquer avec le nud MAP, sans
quaucun changement ne leur soit communiqu. Dans ce cas, les messages de mise jour ne sont
donc envoys quen un seul exemplaire et un nud topologiquement proche, plutt quaux n
correspondants parpills.
NEMO : Son fonctionnement ressemble beaucoup au premier mode avec le tunnel (la version optimi-
sation de routes nexiste pas encore), mais il concerne le rseau dans son intgralit plutt que les
postes utilisateurs sparment. Ainsi, cest le routeur (Mobile Router ) qui se charge du travail, en
diusant des routes dynamiques. Puisquil permet de dplacer un rseau en entier, ce mcanisme
(RFC 3963) permet aussi dapporter de la mobilit des postes utilisateurs qui ne le supportent
pas.
7.5 Compatibilit
La plupart des RFC cites ci-dessus sont actuellement marques PROPOSED STANDARD. Ces
fonctionnalits nont donc pas encore fait lobjet dun intrt dmentiel, et ce retard se retrouve au
niveau des solutions logicielles existantes.
Il fut un temps o le site mobile-ipv6.org tait la rfrence dans ce domaine. Ainsi, la plupart des
documentations sy rfrent pour trouver les ressources ncessaires, alors que le site semble avoir disparu
depuis quelques annes. On trouve galement beaucoup de rfrences au projet Nautilus6
2
, qui fut un
groupe de travail sur ces questions jusqu 2008, et qui a produit quelques solutions logicielles qui semblent
condamnes devenir obsoltes. Deux solutions, toutes deux bases sur le projet MIPL (apparemment
autrefois dlivr par mobile-ipv6.org) : lune supporte par le projet USAGI
3
et lautre par UMIP.org.
Ces deux solutions semblent tre uniquement destines GNU/Linux et BSD
4
et permettent un nud
de devenir nimporte lequel des composants qui interviennent dans la mobilit. La solution de UMIP.org
semble tre la plus jour et la plus fonctionnelle. noter que CentOS propose un paquet mipv6-deamon
dans son gestionnaire de paquets.
Du ct de Windows, cest encore plus drle : Windows XP et Server 2003 supportaient la mobilit
IPv6
5
(uniquement pour le mode correspondant
6
) mais ils ont jug que ctait trop compliqu de linclure
dans Vista
7
. Par consquent la fonctionnalit semble totalement abandonne dans les nouvelles versions,
marquant ainsi une rgression.
Enn pour Mac, il ne semble ny avoir quun port de SHISA
8
, lun des projets de Nautilus6 qui semble
la fois pauvre en fonctionnalits et plus ou moins labandon.
2. http://www.nautilus6.org
3. http://www.linux-ipv6.org
4. http://devjlanza.wordpress.com/2011/09/11/mobile-ipv6-user-space-daemons-in-linux-ubuntu/
5. http://www.microsoft.com/en-us/download/details.aspx?id=10905
6. http://www.seattlepro.com/uw/docs/IPv6/ipv6_faq.htm
7. http://blogs.technet.com/b/ipv6/archive/2007/05/08/mobile-ipv6.aspx
8. http://www.momose.org/macosx/mip6.html
83 / 137 Julien VAUBOURG
Yarding CHAPITRE 7. MOBILIT quipe rseau Lothaire
Au niveau des quipements rseaux, le constat est plus encourageant puisque Cisco supporte les
fonctionnalits de home agent sur de nombreux modles de routeurs.
Une tentative dexprimentation du premier mode avec un routeur Cisco, un mobile Debian et un
correspondant Mac, est disponible dans la section 8.7 page 107.
84 / 137 Julien VAUBOURG
8
Exprimentations
Talk is cheap. Show me the code.
1
- Linus Torvalds (2000)
I dont care if it works on your machine ! We are not shipping your machine ! - Vidiu Platon
8.1 Gnralits
Les exprimentations ont t eectues laide de :
1 MacBookPro (U2) : Max OS X Darwin
1 PC Dell Latitude E4300 (U1) : GNU/Linux Debian Wheezy i386
1 serveur Dell PowerEdge 2950 : GNU/Linux Debian Squeeze i386
1 switch Cisco 2960 : C2960 Software (C2960-LANBASE-M), Version 12.2(25)SEE2, RELEASE
SOFTWARE (fc1)
1 rewall Cisco ASA 5505 : Cisco Adaptive Security Appliance Software Version 9.0(0)11 (prt
par Cisco/Axians, en version bta)
2 AP wi Cisco Aironet 1130AG (autonomes) : C1130 Software (C1130-K9W7-M), Version 12.4(10b)JA3,
RELEASE SOFTWARE (fc1)
5 routeurs Cisco 2811 : 2800 Software (C2800NM-ADVIPSERVICESK9-M), Version 12.4(24)T6,
RELEASE SOFTWARE (fc2)
Tous les quipements rseau ont t rinitialiss avant chaque exprimentation.
1. Talkischeap.Showmethecode.
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
Les plans dadressage utilisent les plages dadresses IP ainsi que les TLD destins la documentation :
RFC 5737 : 192.0.2.0/24 (TEST-NET-1) et 198.51.100.0/24 (TEST-NET-2)
RFC 3849 : 2001:DB8::/32
RFC 2606 : .example
Elles sont routables mais ne doivent pas tre utilises en production.
Ces plans dadressage sont conformes aux schmas destins expliquer les protocoles, disponibles
dans la section qui leur correspond. Les nuages ont parfois t remplacs par un routeur pour simuler le
rseau Internet. Les adresses nutilisent jamais les EUI-64 pour une raison de clart et pour une gestion
manuelle plus aise.
La photo en gure 8.1 page 86 donne un aperu de linstallation avec les dirents quipements.
Figure 8.1 quipements utiliss pour les tests en laboratoire.
86 / 137 Julien VAUBOURG
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
8.2 Autoconguration stateless (avec DNS) via un routeur GNU/Linux
Introduction
Le DNS ntant pas prvu initialement pour lautoconguration stateless, celle-ci est souvent dcrie
puisquelle ncessite dans tous les cas un DHCP pour eectuer cette tche.
Lobjectif est donc de tester les facilits de lautoconguration, en prenant en compte le RDNSS,
qui permet depuis rcemment de diuser des adresses DNS via les Router Advertisements. Une machine
dpourvue de toute conguration rseau particulire devra russir parfaitement sinsrer (obtenir une
adresse IP et un serveur DNS) dans un rseau IPv6, sans utiliser de DHCP.
Exprimentation
La machine utilisateur U1 tant une Debian, lautoconguration stateless du poste est active par
dfaut, comme sur la plupart des systmes.
La topologie et le plan dadressage sont dcrits dans la gure 8.2 page 87.
Figure 8.2 Installation lie lexprimentation de lautoconguration stateless (SLAAC).
Conguration du routeur R1 :
1 R1# apt-get install radvd
Conguration de Radvd (/etc/radvd.conf ) :
1 interface eth0
2 {
3 AdvSendAdvert on;
4 prefix 2001:db8::/64
5 {
6 };
7 RDNSS 2001:db8::9
87 / 137 Julien VAUBOURG
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
8 {
9 };
10 };
Conguration de lutilisateur U1 :
1 U1# apt-get install rdnssd
Patienter 10 minutes (par dfaut le MaxRtrAdvInterval de Radvd est positionn 600 secondes), ou
relancer linterface rseau.
Nouvelle adresse IPv6 :
1 U1# ip -6 addr show dev eth0
2 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
3 inet6 2001:db8:0:0:221:70ff:feec:b49c/64 scope global dynamic
4 valid_lft 86336sec preferred_lft 14336sec
5 inet6 fe80::221:70ff:feec:b49c/64 scope link
6 valid_lft forever preferred_lft forever
Nouveau serveur DNS :
1 U1# cat /etc/resolv.conf
2 nameserver 2001:db8::9
Si dautres serveurs taient dj congurs, il nauront pas t crass.
Conclusion
An de diversier les tests, mais aussi parce que Cisco ne semble pas du tout supporter le RDNSS,
une machine GNU/Linux a t utilise en tant que routeur. Malheureusement, cette option essentielle
est encore trop rcente pour pouvoir lexploiter sur du matriel rseau classique, et continue donc de
condamner ce mode dautoconguration.
Du ct des clients, GNU/Linux semble aussi plus ou moins le seul tre en avance et supporter
parfaitement cette option. Lattribution des IP quant elle, ne pose aucun problme, quelque soit les
postes utilisateurs supportant lIPv6 ou le matriel rseau. Le gestionnaire de rseaux NetworkManager
qui est majoritairement utilis dans les environnements orients Gnome (comme Ubuntu, y compris avec
Unity) supporte le RDNSS et le DNSSL par dfaut.
Bien que loption nait pas t exploite dans cette exprimentation, ct serveur, Radvd supporte
aussi le DNSSL depuis sa version 1.8 :
1 interface eth0 {
2 ...
3 DNSSL lan.local { };
4 }
88 / 137 Julien VAUBOURG
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
8.3 Tunnel statique
Introduction
Lobjectif de cette exprimentation consiste tester la faisabilit de la cration dun tunnel statique
IPv6 entre deux routeurs Cisco. Le tunnel devra faire permettre de faire communiquer deux rseaux
IPv6 entre eux, en passant par un routeur qui ne supporte que lIPv4 et qui ne doit pas ncessiter de
conguration particulire.
Cette exprimentation permettra de comprendre le concept de la tunnelisation IPv6 over IPv4, pour
tester ensuite les tunnels dynamiques avec le 6to4 ou le 6rd.
Exprimentation
La topologie et le plan dadressage sont dcrits dans la gure 8.3 page 89.
Figure 8.3 Installation lie lexprimentation des tunnels statiques.
Conguration du routeur R1 :
1 R1> en
2 R1# conf t
3 R1(config)# int fa 0/1
4 R1(config-if)# ipv6 addr 2001:db8:a::1/64
5 R1(config-if)# no shut
6 R1(config-if)# int fa 0/0
7 R1(config-if)# ip addr 192.0.2.1 255.255.255.0
8 R1(config-if)# no shut
9 R1(config-if)# int tunnel 0
10 R1(config-if)# ipv6 addr 2001:db8:c::1/64
11 R1(config-if)# tunnel mode ipv6ip
12 R1(config-if)# tunnel source 192.0.2.1
13 R1(config-if)# tunnel dest 198.51.100.2
14 R1(config-if)# exit
89 / 137 Julien VAUBOURG
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
15 R1(config)# ipv6 unicast-routing
16 R1(config)# ip route 0.0.0.0 0.0.0.0 192.0.2.2
17 R1(config)# ipv6 route ::/0 Tunnel 0
Conguration du routeur INT4 :
1 INT4> en
2 INT4# conf t
3 INT4(config)# int fa 0/0
4 INT4(config-if)# ip addr 192.0.2.2 255.255.255.0
5 INT4(config-if)# no shut
6 INT4(config-if)# int fa 0/1
7 INT4(config-if)# ip addr 198.51.100.1 255.255.255.0
8 INT4(config-if)# no shut
9 INT4(config-if)# exit
10 INT4(config)# ip routing
Conguration du routeur R2 :
1 R2> en
2 R2# conf t
3 R2(config)# int fa 0/1
4 R2(config-if)# ip addr 192.51.100.2 255.255.255.0
5 R2(config-if)# no shut
6 R2(config-if)# int fa 0/0
7 R2(config-if)# ipv6 addr 2001:db8:b::1/64
8 R2(config-if)# no shut
9 R2(config-if)# int tunnel 0
10 R2(config-if)# ipv6 addr 2001:db8:c::2/64
11 R2(config-if)# tunnel mode ipv6ip
12 R2(config-if)# tunnel source 198.51.100.2
13 R2(config-if)# tunnel dest 192.0.2.1
14 R2(config-if)# exit
15 R2(config)# ipv6 unicast-routing
16 R2(config)# ipv6 route ::/0 Tunnel 0
Conguration de lutilisateur U1 :
1 U1# ip a a 2001:db8:a::10 dev eth0
Conguration de lutilisateur U2 :
1 U2# ip a a 2001:db8:b::10 dev eth0
Vrication du tunnel sur R1 :
1 R1# sh ipv6 int brief
2 [...]
3 Tunnel0 [up/up]
Test de U1 U2 :
90 / 137 Julien VAUBOURG
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
1 U1$ ping6 fc00::2:2
2 PING fc00::2:2(fc00::2:2) 56 data bytes
3 64 bytes from fc00::2:2: icmp_seq=1 ttl=62 time=2.61 ms
4 64 bytes from fc00::2:2: icmp_seq=2 ttl=62 time=2.69 ms
5 64 bytes from fc00::2:2: icmp_seq=3 ttl=62 time=2.52 ms
Conclusion
En prenant la peine de congurer les deux routeurs aux extrmits des rseaux IPv6, la cration du
tunnel ne pose aucun problme, et permet de faire passer facilement de lIPv6 au travers dun rseau
IPv4.
Un complment intressant serait de tester avec des quipements de pare-feu dots dune congura-
tion classique, pour constater les ventuels problmes lis au protocole 41.
8.4 Tunnel 6to4 avec un relais
Introduction
Lexprimentation suivante vise tester le bon fonctionnement et la facilit dinstallation dun relais
6to4. Deux rseaux uniquement IPv6 devront russir communiquer entre eux au travers dun rseau
qui ne gre que lIPv4 et qui ne devra pas ncessiter de conguration spcique.
Contrairement au tunnel statique, le routeur lextrmit de la machine contacter ne doit pas
ncessiter de conguration particulire. Un relais 6to4 doit donc tre install lintersection entre un
routeur qui ne gre que lIPv4 et un autre qui ne gre que lIPv6. Lexprimentation visera galement
tester ladresse anycast normalise pour ce type dquipement.
Exprimentation
La topologie et le plan dadressage sont dcrits dans la gure 8.4 page 91.
Figure 8.4 Installation lie lexprimentation du 6to4.
91 / 137 Julien VAUBOURG
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
Conguration du routeur R1 :
1 R1> en
2 R1# conf t
3 R1(config)# int fa 0/1
4 R1(config-if)# ipv6 addr 2002:c000:201::1/64
5 R1(config-if)# no shut
6 R1(config-if)# int fa 0/0
7 R1(config-if)# ip addr 192.0.2.1 255.255.255.0
8 R1(config-if)# no shut
9 R1(config-if)# int tunnel 0
10 R1(config-if)# ipv6 addr 2002:c000:201:1::1/64
11 R1(config-if)# tunnel source fa 0/0
12 R1(config-if)# tunnel mode ipv6ip 6to4
13 R1(config-if)# exit
14 R1(config)# ipv6 unicast-routing
15 R1(config)# ipv6 route 2002::/16 tunnel 0
16 R1(config)# ipv6 route ::/0 2002:c633:6402::1
Conguration du routeur INT4 :
1 INT4> en
2 INT4# conf t
3 INT4(config)# int fa 0/0
4 INT4(config-if)# ip addr 192.0.2.2 255.255.255.0
5 INT4(config-if)# no shut
6 INT4(config-if)# int fa 0/1
7 INT4(config-if)# ip addr 198.51.100.1 255.255.255.0
8 INT4(config-if)# no shut
9 INT4(config-if)# exit
10 INT4(config)# ip routing
Conguration du routeur RR :
1 RR> en
2 RR# conf t
3 RR(config)# int fa 0/1
4 RR(config-if)# ip addr 198.51.100.2 255.255.255.0
5 RR(config-if)# no shut
6 RR(config-if)# int fa 0/0
7 RR(config-if)# ipv6 addr 2001:db8:a::1/64
8 RR(config-if)# no shut
9 RR(config-if)# int tunnel 0
10 RR(config-if)# ipv6 addr 2002:c633:6402::1/64
11 RR(config-if)# tunnel source fa 0/1
12 RR(config-if)# tunnel mode ipv6ip 6to4
13 RR(config-if)# exit
14 RR(config)# ipv6 unicast-routing
15 RR(config)# ipv6 route 2002::/16 tunnel 0
16 RR(config)# ipv6 route ::/0 2001:db8:a::2
92 / 137 Julien VAUBOURG
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
Contrairement aux tunnels statiques, il ny a pas de tunnel destination, ladresse tant dduite
de lIPv6 vers laquelle le paquet sera transmis.
Conguration du routeur INT6 :
1 RR> en
2 RR# conf t
3 RR(config)# int fa 0/0
4 RR(config-if)# ipv6 addr 2001:db8:a::2/64
5 RR(config-if)# no shut
6 RR(config-if)# int fa 0/1
7 RR(config-if)# ipv6 addr 2001:db8:b::1/64
8 RR(config-if)# no shut
9 RR(config-if)# exit
10 RR(config)# ipv6 unicast-routing
11 RR(config)# ipv6 route 2002::/16 2001:db8:a::1
12 RR(config)# ipv6 route ::/0 2001:db8:b::2
Conguration du routeur R2 :
1 R2> en
2 R2# conf t
3 R2(config)# int fa 0/1
4 R2(config-if)# ipv6 addr 2001:db8:b::2/64
5 R2(config-if)# no shut
6 R2(config-if)# int fa 0/0
7 R2(config-if)# ipv6 addr 2001:db8:c::1/64
8 R2(config-if)# no shut
9 R2(config-if)# exit
10 R2(config)# ipv6 unicast-routing
11 R2(config)# ipv6 route ::/0 2001:db8:b::1
Conguration de lutilisateur U1 :
1 U1# ip a a 2002:c000:201::10/64 dev eth0
2 U1# ip -6 r a default via 2002:c000:201::1/64 dev eth0
Conguration de lutilisateur U2 :
1 U2# ip a a 2001:db8:c::10/64 dev eth0
2 U2# ip -6 r a default via 2001:db8:c::1/64 dev eth0
Test de U1 U2 :
1 U1$ ping6 2001:db8:c::10
2 PING 2001:db8:c::10(2001:db8:c::10) 56 data bytes
3 64 bytes from 2001:db8:c::10: icmp_seq=1 ttl=60 time=214 ms
4 64 bytes from 2001:db8:c::10: icmp_seq=2 ttl=60 time=3.83 ms
5 64 bytes from 2001:db8:c::10: icmp_seq=3 ttl=60 time=3.92 ms
Le routeur relais tant destin annoncer des routes en 2002::/16 (et qui ne peuvent tre rduites),
il devrait rejoindre les autres routeurs relais en utilisant ladresse anycast approprie.
93 / 137 Julien VAUBOURG
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
Modication de RR pour lui attribuer ladresse anycast normalise en IPv4 (ainsi que son quivalent
IPv6) :
1 RR(config)# int fa 0/1
2 RR(config-if)# no ip addr
3 RR(config-if)# ip addr 192.88.99.1 255.255.255.0
4 RR(config-if)# int tunnel 0
5 RR(config-if)# no ipv6 addr
6 RR(config-if)# ipv6 addr 2002:c058:6301::/48
7 %Tunnel0: Warning: 2002:C058:6301::/48 is a Subnet Router Anycast
Modication de INT4 pour lui ajouter une route IPv4 par dfaut (RR nappartient plus au mme
sous-rseau que lui) :
1 INT4(config)# ip route 0.0.0.0 0.0.0.0 fa 0/1
Modication de R1 pour quil contacte ladresse anycast des relais 6to4 (sil recevait des routes
dynamiquement, ce ne serait donc pas obligatoirement le ntre) :
1 R1(config)# no ipv6 route ::/0
2 R1(config)# ipv6 route ::/0 2002:c058:6301::
Nouveau test de U1 U2 :
1 U1$ ping6 2001:db8:c::10
2 PING 2001:db8:c::10(2001:db8:c::10) 56 data bytes
3 64 bytes from 2001:db8:c::10: icmp_seq=3 ttl=60 time=3.84 ms
4 64 bytes from 2001:db8:c::10: icmp_seq=4 ttl=60 time=3.84 ms
5 64 bytes from 2001:db8:c::10: icmp_seq=5 ttl=60 time=3.88 ms
Conclusion
Un quipement peu coteux comme un routeur Cisco 2800 permet de facilement mettre en place un
routeur 6to4 avec un relais vers un rseau IPv6 natif.
Ladresse anycast ne pose aucun problme, et la machine U1 a pu contacter U2, sans que celle-ci ait
connaissance de lincapacit du rseau du U1 communiquer en IPv6.
8.5 Tunnel 6rd avec relais
Introduction
Les tunnels 6rd sont proches des tunnels 6to4, mais ncessitent des congurations particulires,
comme la diusion des prxes personnaliss ou le nombre de bits utiles pour reprsenter les adresses
IPv4.
Labsence de matrise des relais 6to4 posant beaucoup de problme, lobjectif est de constater si
son successeur est aussi simple mettre en place, en permettant deux machines de communiquer de
94 / 137 Julien VAUBOURG
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
la mme faon que pour le 6to4. Une machine dans le domaine 6rd est ajoute pour vrier que la
conguration permet aussi de ne pas passer par le relais.
Exprimentation
La topologie et le plan dadressage sont dcrits dans la gure 8.5 page 95.
Figure 8.5 Installation lie lexprimentation du 6rd.
Remarques :
Pour simplier la comprhension (et limiter le nombre de machines utiliser), les rseaux Internet
nont pas t simuls.
On considre que les prxes 2001:db8::/32 et 192.0.2.1/24 ont t allous au FAI.
Contrairement au 6to4, une machine a t ajoute pour tester les connexions au sein du domaine.
Aprs avoir mis en place la topologie conue, un problme de version des IOS sest pos : contrairement
au 6to4, le 6rd est encore trop rcent et trop destin de gros matriels situs en cur de rseau. Cette
technologie nest donc pas disponible sur les machines qui sont disposition pour ces exprimentations.
Pour connatre la liste des plate-formes supportes, se reporter au Cisco Features Navigator
2
.
Voici la conguration du tunnel pour R1, correspondant la conception (non-teste) :
1 R1> en
2 R1# conf t
3 R1(config)# int tunnel 0
4 R1(config-if)# tunnel source 192.0.2.1
2. http://tools.cisco.com/ITDIT/CFN/jsp/by-feature.jsp (By feature > Search for 6rd > IP Tunneling - 6RD
IPv6 Rapid Deployment > Add > Continue > Platform).
95 / 137 Julien VAUBOURG
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
5 R1(config-if)# tunnel mode ipv6ip 6rd
6 R1(config-if)# tunnel 6rd prefix 2001:db8:a::/48
7 R1(config-if)# tunnel 6rd ipv4 prefix-length 24
8 R1(config-if)# exit
9 R1(config)# ipv6 route 2001:db8:a::/48 Tunnel 0
10 R1(config)# ipv6 route ::/0 2001:db8:a:2::
Explications :
On considre que le sous-rseau 2001:db8:a::/48 a t retenu par le FAI pour servir dans son
domaine 6rd.
Puisque toutes ses adresses IPv4 partagent le prxe 192.0.2.0/24, il na besoin que du dernier
octet pour les direncier.
Contrairement au 6to4, les adresses IPv6 des tunnels ne sont plus explicitement prcises et la
destination est une adresse anycast du domaine.
Conclusion
Cette technologie est malheureusement encore trop rcente, et destine aux quipement trs fortement
orients fournisseur daccs Internet. Les rares modles Cisco sur lesquels elle est supporte ntant pas
accessibles nancirement, lexprimentation na pas pu aboutir.
Les recherches eectues semblent toutefois indiquer que les possibilits de personnalisation sont
compltes.
8.6 Translations dadresses avec un NAT64/DNS64
Introduction
Deux exprimentations sont ralises pour le NAT64/DNS64 : en mode stateless et en mode state-
ful. Lobjectif est dvaluer la faisabilit de chacun avec les quipements disponibles, et comparer les
contraintes lies aux deux modes.
Un rseau uniquement IPv6 devra russir communiquer avec un rseau entirement IPv4, sans
utiliser de tunnels et ainsi saranchir de ses contraintes. Les machines dans le rseau de provenance
devront faire rsoudre leurs requtes DNS par un serveur DNS64. Les faux AAAA gnrs par celui-ci
devront utiliser le prxe prvu par la norme.
8.6.1 Stateless
Cette exprimentation utilise une machine GNU/Linux en labsence de matriel rseau compatible.
La topologie et le plan dadressage sont dcrits dans la gure 8.6 page 97.
96 / 137 Julien VAUBOURG
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
Figure 8.6 Installation lie lexprimentation du NAT64 stateless.
Le DNS64, le NAT64 et le serveur DNS ont t installs sur une mme machine (dans un cas rel,
au moins le serveur DNS serait externe), et le rseau Internet des schmas de la section 5.4.3 page 5.4.3
a t remplac par un simple commutateur pour ne pas compliquer les congurations de tests.
Le serveur de passerelle (R1) utilise trois logiciels dirents :
bind9 : Rpond aux requtes DNS, en utilisant une base de donnes qui sera cre pour lexpri-
mentation.
totd : coute sur le port 53 de la machine et sert de serveur DNS pour lutilisateur U1. Il transmet
toutes les requtes DNS au vrai serveur DNS pour obtenir le A et/ou le AAAA correspondant
la question. Sil parvient rcuprer un AAAA, il transmet la rponse directement U1, sinon il
transforme le A en AAAA en injectant ladresse IPv4 dans une adresse IPv6 du prxe 64:ff9b::/96
avant de rpondre. Bind peut directement assurer cette fonction sil est une version gale ou
suprieure la 9.8. Les deux versions seront exprimentes.
tayga : Assure les fonctionnalits de NAT64 en crant une nouvelle interface qui servira de tunnel.
Ce dernier se fait livrer tous les paquets adresss une adresse IPv6 du prxe 64:ff9b::/96. Il se
charge dextraire lIPv4 embarqu quil utilise comme adresse de destination du paquet IPv4 corre-
spondant quil fait sortir lautre bout, et utilise une adresse prive de la plage 192.168.1.0/24
comme adresse source. Les paquets qui sortent de son tunnel sont transmis linterface eth1 de
sortie qui assure les fonctionnalits de NAT classiques. linverse, il reoit par lautre extrmit
tous les paquets IPv4 destination dune adresse de la plage 192.168.1.0/24 pour reproduire
des paquets IPv6 selon les rgles quil a enregistres et les transmettre eth0.
Installation des logiciels (lutilisation de Totd dpend de la version du Bind) :
1 R1# apt-get install totd bind9 conntrack
2 R1# wget http://ubuntu.wikimedia.org/ubuntu/pool/universe/t/tayga/tayga_0.9.2-4
_i386.deb
3 R1# dpkg -i tayga_0.9.2-4_i386.deb
Conntrack est ajout pour logguer le NAT44 par la suite.
Conguration du chier de conguration DNS pour les tests avec bind9 (/etc/bind/db.example) :
97 / 137 Julien VAUBOURG
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
1 $TTL 604800
2 @ IN SOA example. root.example. (
3 3 ; Serial
4 604800 ; Refresh
5 86400 ; Retry
6 2419200 ; Expire
7 604800 ) ; Negative Cache TTL
8 ;
9 @ IN NS example.
10 @ IN AAAA 2001:db8::1
11
12 u1 IN AAAA 2001:db8:a::10
13 u2 IN A 192.0.2.10
14 u3 IN AAAA 2001:db8:b::10
Cration de la zone example (/etc/bind/zone.example) :
1 zone "example" {
2 type master;
3 file "/etc/bind/db.example";
4 };
Prise en compte de la nouvelle zone par Bind (ajouter la n de /etc/bind/named.conf ) :
1 include "/etc/bind/zones.example";
Si Totd est utilis par la suite, Bind doit couter sur un autre port que le 53 :
1 R1# sed s/listen-on-v6/listen-on-v6 port 5300/ -i /etc/bind/named.conf.options
Et le NAT64 doit tre congur (/etc/totd.conf ) :
1 forwarder ::1 port 5300
2 prefix 64:ff9b::
3 port 53
Commentaires par ligne :
1. Serveur utiliser pour obtenir une rponse pour la requte reue (ici cest le Bind qui vient dtre
install).
2. Prxe utiliser pour crer les adresses IPv6 factices lorsquil ny aura quun A de disponible au
niveau du Bind (transformera les A en AAAA simplement en collant lIPv4 correspondante la n
du prxe).
3. Port dcoute, qui correspond au port standard des serveurs DNS.
Sinon (Bind 9.8), il est possible de congurer le NAT64 directement avec Bind (/etc/bind/-
named.conf.options) :
1 dns64 64:ff9b::/96 {
2 mapped { !10/8; !172.16/12; !192.168/16; any; };
98 / 137 Julien VAUBOURG
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
3 exclude { 64:ff9b::/96; };
4 };
Contrairement au cas avec Totd, il ny a pas de forwarder puisque Bind connait directement les
rponses, et on exclut en plus la conversion des plages dadresses prives. Si le AAAA trouv semble tre
une adresse 64, le NAT64 dcidera de la recalculer lui-mme. Ces deux contraintes sont optionnelles.
Dans tous les cas, redmarrage de Bind (et Totd si besoin) puis test de la conguration :
1 R1# service totd restart
2 R1# service bind9 restart
3 R1# dig +short @::1 -p 5300 u2.example
4 192.0.2.10
Conguration du futur tunnel NAT64 (/etc/tayga.conf ) :
1 tun-device nat64
2 ipv4-addr 192.168.1.1
3 prefix 64:ff9b::/96
4 dynamic-pool 192.168.1.0/24
5 data-dir /var/local/tayga
Commentaires par ligne :
1. Nom de linterface qui correspondra au tunnel NAT64 (ici nat64 ).
2. Adresse que Tayga utilisera comme source pour envoyer ses propres messages derreur (le man
indique quelle peut appartenir la plage fournie ligne 4, et quelle sera transforme en IPv6 avec
le prxe utilis pour le nat64 pour communiquer en IPv6).
3. Prxe utilis par le DNS64 pour crer les adresses IPv6 factices (RFC 6052).
4. Plage dadresses IPv4 disposition du NAT64 pour renseigner le champ IP source des paquets
IPv4 quil sortira de son tunnel (et avec lesquelles il rcuprera les rponses dans lautre sens).
Une plage prive a t choisie plutt quune plage de documentation pour bien mettre en avant la
ncessit du NAT par la suite.
5. Un chier dynamic.map sera enregistr dans ce dossier, qui permettra de retrouver les associations
IPv6-IPv4 en cas de redmarrage, pour les sessions en cours. Chaque adresse de ce chier est
rserve pour 2h04 au maximum aprs le dernier paquet traduit (pour un pool en /24, il y aura
donc 254 adresses IPv6 direntes maximum sur une priode de deux heures, la 255ime recevant
un message ICMPv6 unreachable).
Cration des adresses et des routes pour le tunnel (ainsi que du dossier pour le chier de la table
dynamique) :
1 R1# mkdir /var/local/tayga/
2 R1# tayga --mktun
3 R1# ip link set nat64 up
4 R1# ip route add 64:ff9b::/96 dev nat64
5 R1# ip route add 192.168.1.0/24 dev nat64
Commentaires par ligne :
99 / 137 Julien VAUBOURG
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
1. Cration de linterface nat64 (tunnel).
2. Activation de linterface.
3. Tous les paquets IPv6 destination dune adresse IPv6 appartenant au prxe utilis par le DNS64
pour crer des adresses factices doivent passer par le tunnel pour que celui-ci puisse extraire les
adresses IPv4 de destination et traduire les enttes.
4. Dans le sens inverse, puisque les paquets sortent du tunnel en IPv4 avec une adresse source prise
dans la plage dnie dans sa conguration, il faut que cette mme plage soit route par dfaut
dans le tunnel pour que celui-ci puisse traduire les rponses IPv4 en IPv6.
En sortant du tunnel, les paquets IPv6 mtamorphoss en paquets IPv4 utilisent des adresses IP source
prives (192.168.1.0/24). Il faut donc que la machine assume galement un rle de NAT classique pour
que les paquets sortant utilisent ladresse publique (192.0.2.1) de linterface de sortie (eth1) :
1 R1# iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
2 R1# iptables -A FORWARD -i eth1 -o nat64 -m state --state RELATED,ESTABLISHED -j
ACCEPT
3 R1# iptables -A FORWARD -i nat64 -o eth1 -j ACCEPT
Enn, la machine agissant comme routeur, il faut activer ses fonctions de routage au niveau du
noyau :
1 R1# sysctl -w net.ipv4.conf.all.forwarding=1
2 R1# sysctl -w net.ipv6.conf.all.forwarding=1
Conguration IP de la machine, conformment au plan dadressage (vrier que le noyau a bien cr
les routes correspondantes aux adresses des interfaces) :
1 R1# ip addr add 2001:db8:a::1/64 dev eth0
2 R1# ip addr add 2001:db8:b::1/64 dev eth1
3 R1# ip addr add 192.0.2.1/24 dev eth1
Lancement du dmon de Tayga qui se chargera dassurer les fonctions de NAT64 du tunnel (mode
debug) :
1 R1# tayga -d
Conguration IP et DNS (interroge par dfaut le DNS64 de sa passerelle) de la machine utilisateur
U1 :
1 U1# ip addr add 2001:db8:a::10/64 dev eth0
2 U1# ip route add default via 2001:db8:a::1 dev eth0
3 U1# echo nameserver 2001:db8:a::1 > /etc/resolv.conf
Test du DNS64 depuis U1 avec la machine U2 (uniquement IPv4) :
1 U1# host u2.example
2 u2.example has address 192.0.2.10
3 u2.example has IPv6 address 64:ff9b::c000:20a
Conguration IP de la machine utilisateur U2 :
100 / 137 Julien VAUBOURG
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
1 U2# ip addr add 192.0.2.10/24 dev eth0
2 U2# ip route add default via 192.0.2.1 dev eth0
Conguration IP de la machine utilisateur U3 :
1 U3# ip addr add 2001:db8:b::10/64 dev eth0
2 U3# ip route add default via 2001:db8:b::1 dev eth0
Test de U1 U2 (vers une IPv4) :
1 U1# ping6 u2.example
2 PING u2.example(64:ff9b::c000:20a) 56 data bytes
3 64 bytes from 64:ff9b::c000:20a: icmp_seq=4 ttl=61 time=0.568 ms
4 64 bytes from 64:ff9b::c000:20a: icmp_seq=5 ttl=61 time=0.388 ms
5 64 bytes from 64:ff9b::c000:20a: icmp_seq=6 ttl=61 time=0.352 ms
Achage de Tayga ct serveur :
1 assigned new pool address 192.168.1.2 (2001:db8:a::10)
Traces de Tshark sur les direntes interfaces de la passerelle durant le ping :
1 Capturing on eth0
2 0.000000 2001:db8:a::10 -> 64:ff9b::c000:20a ICMPv6 Echo request
3 0.000539 64:ff9b::c000:20a -> 2001:db8:a::10 ICMPv6 Echo reply
4
5 Capturing on nat64
6 0.000000 2001:db8:a::10 -> 64:ff9b::c000:20a ICMPv6 Echo request
7 0.000173 192.168.1.2 -> 192.0.2.10 ICMP Echo (ping) request
8 0.002094 192.0.2.10 -> 192.168.1.2 ICMP Echo (ping) reply
9 0.002114 64:ff9b::c000:20a -> 2001:db8:a::10 ICMPv6 Echo reply
10
11 Capturing on eth1
12 0.000000 192.0.2.1 -> 192.0.2.10 ICMP Echo (ping) request
13 0.000229 192.0.2.10 -> 192.0.2.1 ICMP Echo (ping) reply
Test de U1 U3 (vers une IPv6, aucun paquet dans le tunnel) :
1 U1# ping6 u3.example
2 PING u3.example(2001:db8:b::10) 56 data bytes
3 64 bytes from 2001:db8:b::10: icmp_seq=1 ttl=63 time=0.390 ms
4 64 bytes from 2001:db8:b::10: icmp_seq=2 ttl=63 time=0.399 ms
5 64 bytes from 2001:db8:b::10: icmp_seq=3 ttl=63 time=0.387 ms
Tayga dispose dun service avec un dmon (les deux lignes du milieu permettent de dlguer au
service la charge de crer les routes pour le prxe IPv6 du DNS64 ainsi que la plage IPv4 du NAT64,
puis de crer les rgles netlter pour le NAT44 en sortie) :
1 R1# sed s/RUN="no"/RUN="yes"/ -i /etc/default/tayga
2 R1# sed s/CONFIGURE_IFACE="no"/CONFIGURE_IFACE="yes"/ -i /etc/init.d/tayga
3 R1# sed s/CONFIGURE_NAT44="no"/CONFIGURE_NAT44="yes"/ -i /etc/init.d/tayga
101 / 137 Julien VAUBOURG
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
4 R1# service tayga start
Malheureusement, Tayga nintgre aucune fonctionnalit concernant les journeaux systmes, pourtant
indispensable pour retrouver lorigine dune connexion en cas de requte judiciaire. Puisque le chier de
la table dynamique est rcrit entirement chaque nouvelle association (et donc inexploitable), la seule
solution trouve est de rcuprer les messages de sortie du mode debug (qui semble najouter que cette
fonctionnalit). Le service devrait donc tre dsactiv au dmarrage.
Envoyer en temps rel les associations IPv6/IPv4 de Tayga Syslog :
1 R1# (stdbuf -oL tayga -d | grep --line-buffered assigned | logger -t NAT64) &
Envoyer en temps rel les nouvelles connexions avec les associations IPv4 prive/publique Syslog :
1 R1# (conntrack -E -o extended | logger -t NAT64) &
Aperu dune connexion de U1 vers U2 sur le port 80 (dans /var/log/user.log, paramtre par dfaut
de logger) :
1 Jul 13 16:02:11 R1 NAT64: assigned new pool address 192.168.1.2 (2001:db8:a::10)
2 Jul 13 16:02:11 R1 NAT64: [NEW] ipv4 2 tcp 6 120 SYN_SENT src=192.168.1.2
dst=192.0.2.10 sport=49069 dport=80 [UNREPLIED] src=192.0.2.10 dst=192.0.2.1
sport=80 dport=49069
8.6.2 Stateful
Le NAT64 stateful nest actuellement disponible que sur les Cisco ASR 1000 et les CRS-1
3
.
Ct GNU/Linux, il existe le projet Ecdysis disponible aussi sous BSD. Malheureusement, la fondation
qui soutient ce projet a point quelques gros problmes
4
.
Dans le cadre des tests eectus pour la conception de ce document, Cisco (par lintermdiaire de
lintgrateur Axians) a fourni un quipement de pare-feu ASA 5505 avec une version du systme ASA en
version bta, qui supporte la cration de rgles NAT64 stateful. Cest donc sur ce matriel, qui devrait
tre accessible pour tous prochainement, que cette exprimentation est ralise.
La topologie et le plan dadressage sont dcrits dans la gure 8.7 page 103.
Le NAT stateful nimpose pas de passer par une plage dadresse interne. Par contre, il faut bien
direncier ladresse dinterconnexion de ladresse de sortie du NAT, qui ne peuvent pas tre regroupes
en une seule (le botier ADSL dun particulier na quune IPv4 pour sortir, mais son FAI communique
avec elle via un lien dinterconnexion qui utilise une adresse que labonn ne connait pas).
Informations supplmentaires :
IPv4 publique de sortie du NAT : 192.0.2.2
Prxe IPv6 utilis pour transformer les A en AAAA : 2001:db8:c::/96
3. Cf. Tableau 4 ici : http://www.cisco.com/en/US/prod/collateral/iosswrel/ps6537/ps6553/white_
paper_c11-676278.html.
4. http://tnc2010.terena.org/files/jean_philippe_dionne.pdf
102 / 137 Julien VAUBOURG
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
Figure 8.7 Installation lie lexprimentation du NAT64 stateful.
Le serveur DNS nassure pas lui-mme les fonctionnalits de NAT64 dans cet exemple : cette
situation est plus proche de ce qui sera probablement mis en place dans un premier temps, sur
le rseau dune institution. Le serveur DNS64 se contentera donc dinterroger les serveurs DNS
habituels, qui ne seront pas modis le temps des tests. Il pourra utiliser Bind (apt-get install
bind9) si sa version est gale ou suprieure 9.8, sinon ce sera Totd (apt-get install totd).
Contrairement lexprimentation en mode stateless, le prxe 64:ff9b::/96 destin tre utilis
pour embarquer des adresses IPv4 ne peut pas tre utilis pour la traduction des A en AAAA. Il ny a
aucune raison logique a (ces adresses ne sortent pas du rseau) mais lIOS refuse catgoriquement :
1 NAT64/46 real destination/source network cannot contain 0.0.0.0/0 when well known
prefix used.
Conguration des interfaces de lASA :
1 ASA> en
2 ASA# conf t
3 ASA(config)# int vlan 1
4 ASA(config-if)# nameif inside
5 ASA(config-if)# security-level 1
6 ASA(config-if)# ipv6 address 2001:db8:a::1/64
7 ASA(config-if)# int vlan 2
8 ASA(config-if)# nameif outside
9 ASA(config-if)# security-level 2
10 ASA(config-if)# ipv6 address 2001:db8:b::1/64
11 ASA(config-if)# ip address 192.0.2.1/64
12 ASA(config-if)# int ethernet 0/0
13 ASA(config-if)# switchport access vlan 1
103 / 137 Julien VAUBOURG
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
14 ASA(config-if)# no shut
15 ASA(config-if)# int ethernet 0/1
16 ASA(config-if)# switchport access vlan 2
17 ASA(config-if)# no shut
18 ASA(config-if)# exit
Conguration des objets sur lASA :
1 ASA(config)# object network ipv4-publique
2 ASA(config-network-object)# host 192.0.2.2
3 ASA(config-network-object)# object network ipv6-dns64
4 ASA(config-network-object)# subnet 2001:db8:c::/96
5 ASA(config-network-object)# object network ipv6-inside
6 ASA(config-network-object)# subnet 2001:db8:a::/64
7 ASA(config-network-object)# exit
Conguration du NAT64 sur lASA partir des objets :
1 ASA(config)# nat (inside,outside) source static ipv6-inside ipv4-publique
destination static ipv6-dns64 any
Version ASDM (Conguration > Firewall > NAT Rules > Add) en gure 8.8 page 104.
Figure 8.8 Conguration de la rgle de NAT64 stateful avec lADSM pour IOS 9.
Conguration du pare-feu (aucun ltrage et journaux systmes en mode debug) :
1 ASA(config)# access-list global_access extended permit ip any any log debugging
Version ASDM (Conguration > Firewall > Access Rules) en gure 8.9 page 105.
104 / 137 Julien VAUBOURG
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
Figure 8.9 Autorisation de tous les tracs avec lADSM pour IOS 9.
Conguration du serveur DNS :
1 DNS# ip addr add 2001:db8:b::2/64 dev eth0
2 DNS# // suite idem que pour linfra stateless
Conguration du serveur DNS64 :
1 DNS# ip addr add 2001:db8:b::3/64 dev eth0
2 DNS# ip route add 2001:db8:a::/64 2001:db8:b::1 dev eth0
Si Totd est utilis, conguration du DNS64 dans /etc/totd.conf (cf. commentaires dans la version
stateless) :
1 forwarder 2001:db8:b::2
2 prefix 2001:db8:c::
3 port 53
Sinon (Bind 9.8), conguration du DNS64 avec Bind (/etc/bind/named.conf.options) :
1 forwarders {
2 2001:db8:b::2;
3 };
4
5 dns64 2001:db8:c::/96 {
6 recursive-only yes;
7 };
Dans tous les cas, conguration du poste utilisateur U1 :
1 U1# ip addr add 2001:db8:a::10/64
2 U1# ip route add default via 2001:db8:a::1 dev eth0
3 U1# echo nameserver 2001:db8:b::3 > /etc/resolv.conf
Conguration de U2 et U3 : idem que pour lexprimentation stateless (section 8.6.1 page 96).
Eectuer ensuite les mmes tests de ping et de rsolutions DNS que dans lexprimentation stateless.
Une machine U1 entirement IPv6 a t teste en conditions relles, sur le rseau Lothaire, qui a
lui-mme ncessit quelques modications supplmentaires :
1. Comme tudi dans la section consacre NDP (section 4.2 page 37), lutilisation massive dIP
publiques ncessite du routage sur le rseau du FAI. En considrant que cest ladressage de cette
exprimentation qui a t utilise (ce qui nest videmment pas le cas), il faut rajouter une rgle sur
les routeurs en amont qui route le rseau 2001:db8:a::/64 vers 2001:db8:b::1 (la propagation
de cette route a t concrtise avec la directive redistributes static de IS-IS).
105 / 137 Julien VAUBOURG
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
2. De la mme faon, il faut annoncer des routes de 192.0.2.2/32 vers 192.0.2.1.
3. Congurer les ACL du rseau pour autoriser les entres/sorties vers ces rseaux, et autoriser les
ports 53 pour les deux serveurs DNS.
4. Au niveau de lASA directement, il faut ajouter des routes par dfaut pour lIPv4 et lIPv6 :
1 ASA(config)# ipv6 route outside ::/0 <ipv6-gateway>
2 ASA(config)# route outside 0.0.0.0 0.0.0.0 <ipv4-gateway>
5. Pour ne pas induire en erreur les autres machines du rseau attach la patte outside, il ne faut
pas que celle-ci diuse des annonces Router Advertisement :
1 ASA(config)# int vlan 2
2 ASA(config-if)# ipv6 nd suppress-ra
Concernant les journaux systmes, lASA utilise son propre Syslog qui peut naturellement tre con-
gur pour envoyer les donnes un Syslog distant (exemple avec une connexion web de U1 vers U2) :
1 ASA(config)# logging enable
2 ASA(config)# logging buffered debugging
3 ASA(config)# do show logging
4 [...]
5 %ASA-6-302013: Built inbound TCP connection 3831 for inside:2001:db8:a::10/40524
(192.0.2.2/40524) to outside:192.0.2.10/80 (2001:db8:c::c000:20a/80)
Une version ASDM est disponible via Monitoring > Logging > Real-Time Log Viewer > View.
Conclusion
Les deux exprimentations sont un succs, les objectifs ont t atteints, lexception de lutilisation
du prxe normalis avec lASA. Ce dfaut est peut-tre mettre en lien avec laspect bta du systme,
pour lequel une documentation true derreurs a aussi t fournie.
Le constat est toutefois relativement dcevant au niveau de la compatibilit des matriels : la version
stateless na pas pu tre ralise avec un quipement rseau Cisco, et la version stateful a ncessit de
rclamer un prt chez Cisco. LIOS 9 semble faire un gros eort sur lIPv6, et cest souhaiter que le
NAT64 sera disponible sur un maximum dquipement prochainement. Au niveau du DNS64, cest une
trs bonne chose que Bind soit en capacit de le grer nativement, mais la version installe nest pas
encore dans la Debian stable ce jour.
La version stateless na pas lair dtre lordre du jour chez Cisco. Lexprimentation prouve que
lutilisation dune plage interne est relativement contraignante : elle doit tre bien dimensionne, et ne
pas correspondre une plage qui sera potentiellement router. Labsence de solution pour les jounaux
systmes pour Tayga est surprenante et la solution mise en uvre manque de recul pour pouvoir valuer
sa capacit suivre un trac trs important.
La conclusion gnrale de ce document prvoit en section 8.8 page 119, un retour dexprience dun
mois avec lexprimentation stateful.
106 / 137 Julien VAUBOURG
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
8.7 Mobilit IPv6, DHCPv6 statique et relais DHCPv6
Introduction
La mobilit est une technologie qui est reste dans lombre pendant des annes en IPv4, tant les
contraintes lies aux NAT la portaient au rang de lutopie. LIPv6 prvoit une nouvelle version, et surtout
de nouveaux espoirs en orant un climat favorable son utilisation grande chelle.
Lexprimentation devra russir faire communiquer un poste utilisateur distant avec un poste util-
isateur mobile. Ce dernier devra donc changer compltement de rseau, au cours dune communication
avec ce premier, sans que celle-ci ne soure du changement. En mode sans optimisation de chemins, le
rseau et la machine du ct du nud distant ne doivent ni avoir connaissance de ce dplacement, ni
avoir besoin de supporter la mobilit en particulier.
Pour tre dans des conditions relles de mobilits, des points daccs wi sont utiliss pour passer
rapidement dun rseau lautre. Pour respecter le plan dadressage du schma, et pour ajouter une autre
notion lexprimentation, un serveur DHCPv6 est utilis pour adresser automatiquement les machine
en statique.
Exprimentation
La topologie et le plan dadressage sont dcrits dans la gure 8.10 page 107 (les noms des quipements
respectent les conventions donnes dans le chapitre 7 page 79).
Figure 8.10 Installation lie lexprimentation de la mobilit IPv6.
Conguration du point daccs AP1 :
1 AP1> en
2 AP1# conf t
3 AP1(config)# dot11 ssid AP1
4 AP1(config)-dot11-ssid# authentification open
107 / 137 Julien VAUBOURG
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
5 AP1(config-dot11-ssid)# guest-mode
6 AP1(config-dot11-ssid)# exit
7 AP1(config)# int Dot11Radio 0
8 AP1(config-if)# ssid AP1
9 AP1(config-if)# no shut
Conguration du point daccs AP2 :
1 AP2> en
2 AP2# conf t
3 AP2(config)# dot11 ssid AP2
4 AP2(config)-dot11-ssid# authentification open
5 AP2(config-dot11-ssid)# guest-mode
6 AP2(config-dot11-ssid)# exit
7 AP2(config)# int Dot11Radio 0
8 AP2(config-if)# ssid AP2
9 AP2(config-if)# no shut
Conguration du routeur HA :
1 HA> en
2 HA# conf t
3 HA(config)# int fa 0/0
4 HA(config-if)# ipv6 addr 2001:db8:a::1/64
5 HA(config-if)# ipv6 dhcp relay destination 2001:db8:c::4
6 HA(config-if)# ipv6 mobile home-agent
7 HA(config-if)# no shut
8 HA(config-if)# int fa 0/1
9 HA(config-if)# ipv6 addr 2001:db8:a::1/64
10 HA(config-if)# no shut
11 HA(config-if)# exit
12 HA(config)# ipv6 unicast-routing
13 HA(config)# ipv6 route 2001:db8:b::/64 2001:db8:c::2
14 HA(config)# ipv6 route 2001:db8:d::/64 2001:db8:c::3
Conguration du routeur AR1 :
1 AR1> en
2 AR1# conf t
3 AR1(config)# int fa 0/0
4 AR1(config-if)# ipv6 addr 2001:db8:d::1/64
5 AR1(config-if)# no shut
6 AR1(config-if)# int fa 0/1
7 AR1(config-if)# ipv6 addr 2001:db8:c::3/64
8 AR1(config-if)# ipv6 dhcp relay destination 2001:db8:c::4
9 AR1(config-if)# no shut
10 AR1(config-if)# exit
11 AR1(config)# ipv6 unicast-routing
12 AR1(config)# ipv6 route 2001:db8:a::/64 2001:db8:c::1
13 AR1(config)# ipv6 route 2001:db8:b::/64 2001:db8:c::2
108 / 137 Julien VAUBOURG
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
Conguration du routeur RCN :
1 RCN> en
2 RCN# conf t
3 RCN(config)# int fa 0/0
4 RCN(config-if)# ipv6 addr 2001:db8:b::1/64
5 RCN(config-if)# no shut
6 RCN(config-if)# int fa 0/1
7 RCN(config-if)# ipv6 addr 2001:db8:c::2/64
8 RCN(config-if)# no shut
9 RCN(config-if)# exit
10 RCN(config)# ipv6 unicast-routing
11 RCN(config)# ipv6 route 2001:db8:a::/64 2001:db8:c::1
12 RCN(config)# ipv6 route 2001:db8:d::/64 2001:db8:c::3
Conguration du serveur DHCP :
1 DHCP# ip addr add 2001:db8:c::4/64 dev eth0
2 DHCP# apt-get install isc-dhcp-server
Conguration du chier /etc/dhcp/dhcpd6.conf du serveur DHCP (adresse MAC de wlan0 :
00:21:6a:27:9d:ea) :
1 authoritative;
2
3 subnet6 2001:db8:c::/64 {}
4
5 subnet6 2001:db8:a::/64 {
6 host AP1Client {
7 host-identifier option dhcp6.client-id 00:03:00:01:00:21:6a:27:9d:
ea;
8 fixed-address6 2001:db8:a::10;
9 }
10 }
11
12 subnet6 2001:db8:d::/64 {
13 host AP2Client {
14 host-identifier option dhcp6.client-id 00:03:00:01:00:21:6a:27:9d:
ea;
15 fixed-address6 2001:db8:d::10;
16 }
17 }
Lancement du serveur DHCP :
1 DHCP# touch /var/lib/dhcp/dhcpd6.leases
2 DHCP# dhcpd -6 -f -cf /etc/dhcp/dhcpd6.conf
Conguration de la machine utilisateur CN :
1 CN# ip addr add 2001:db8:b::10/64 dev eth0
109 / 137 Julien VAUBOURG
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
2 CN# ip route add default via 2001:db8:b::1 dev eth0
Conguration de la machine utilisateur MN ( noter que CentOS semble avoir un paquet mipv6-
daemon dans ses dpts) :
1 MN# ip addr add 2001:db8:a::10/64 dev wlan0
2 MN# ip route add default via 2001:db8:a::1 dev wlan0
3 MN# apt-get install git autoconf automake bison flex libssl-dev indent ipsec-
tools
4 MN# git clone git://git.umip.org/umip.git
5 MN# cd umip
6 MN(umip)# autoreconf -i
7 MN(umip)# CPPFLAGS=-isystem /usr/src/linux/include/ ./configure --enable-vt
8 MN(umip)# make && make install
Conguration du chier /usr/local/etc/mip6d.conf de MN :
1 NodeConfig MN;
2 DebugLevel 10;
3
4 MnHomeLink "wlan0" {
5 HomeAgentAddress 2001:db8:a::1;
6 HomeAddress 2001:db8:a::10/64;
7 }
8
9 UseMnHaIPsec disabled;
Pour changer de point daccs en ligne de commande, rcuprer la MAC des AP ainsi que le canal
utilis :
1 MN# iwlist wlan0 scan | grep AP -B 5
2 Cell 01 - Address: 00:3A:98:C1:28:50
3 Channel:6
4 Frequency:2.437 GHz (Channel 6)
5 Quality=70/70 Signal level=-16 dBm
6 Encryption key:off
7 ESSID:"AP2"
8 --
9 Cell 02 - Address: 00:1A:30:32:3E:00
10 Channel:3
11 Frequency:2.422 GHz (Channel 3)
12 Quality=70/70 Signal level=-21 dBm
13 Encryption key:off
14 ESSID:"AP1"
Se connecter AP1 puis lancer le dmon MIPL (le driver de la carte utilise ncessite dteindre
linterface) :
1 MN# ifconfig wlan0 down
2 MN# iwconfig wlan0 essid AP1 channel 3 ap 00:1A:30:32:3E:00
3 MN# dhclient -6 -D LL wlan0
110 / 137 Julien VAUBOURG
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
4 MN# mipd6
Vrication du fonctionnement du DHCP et du dmon (le tunnel ne sest pas appropri la home-
address) :
1 MN# ip -6 a
2 3: wlan0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qlen 1000
3 inet6 2001:db8:a::10/64 scope global home nodad
4 valid_lft forever preferred_lft forever
5 inet6 fe80::221:6aff:fe27:9dea/64 scope link
6 valid_lft forever preferred_lft forever
7 17: ip6tnl1: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1460
8 inet6 fe80::221:6aff:fe27:9dea/64 scope link
9 valid_lft forever preferred_lft forever
Trace du dmon MIPL en relation :
1 Tue Jul 24 13:13:55 md_update_router_stats: Adding CoA 2001:db8:a:0:221:6aff:fe27
:9dea on interface (3)
2 Tue Jul 24 13:13:55 __md_discover_router: discover link on iface wlan0 (3)
3 Tue Jul 24 13:13:57 mn_addr_do_dad: DAD succeeded!
4 Tue Jul 24 13:13:57 mn_addr_do_dad: address = 2001:db8:a:0:0:0:0:10
5 Tue Jul 24 13:13:57 mn_move: 1775
6 Tue Jul 24 13:13:57 mn_move: in home net
7 == NON_MIP_CN_ENTRY ==
8 Home address 2001:db8:a:0:0:0:0:10
9 Care-of address 2001:db8:a:0:0:0:0:10
10 CN address 2001:db8:a:0:0:0:0:1
Passage lAP2 :
1 MN# ifconfig wlan0 down
2 MN# iwconfig wlan0 essid AP2 channel 6 ap 00:3A:98:C1:28:50
3 MN# dhclient -6 -D LL wlan0
Trace du dmon MIPL en relation :
1 Tue Jul 24 13:38:40 md_update_router_stats: Adding CoA 2001:db8:d:0:221:6aff:fe27
:9dea on interface (3)
2 Tue Jul 24 13:38:40 mn_move: 1775
3 Tue Jul 24 13:38:40 mn_move: in foreign net
4 Tue Jul 24 13:38:40 mn_block_rule_add: blackhole is already set.
5 Tue Jul 24 13:38:40 mn_send_home_bu: 792
6 Tue Jul 24 13:38:40 mn_get_home_lifetime: CoA lifetime 2591995 s, HoA lifetime
2590714 s, BU lifetime 262140 s
7 Tue Jul 24 13:38:40 mn_ro_pol_add: Adding default RO triggering policies for all
Correspondent Nodes
8 Tue Jul 24 13:38:40 process_first_home_bu: New bule for HA
9 Tue Jul 24 13:38:40 bul_add: Adding bule
10 == BUL_ENTRY ==
11 Home address 2001:db8:a:0:0:0:0:10
111 / 137 Julien VAUBOURG
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
12 Care-of address 2001:db8:d:0:0:0:0:10
13 CN address 2001:db8:a:0:0:0:0:1
14 Tue Jul 24 13:38:40 mh_send: sending MH type 5
15 from 2001:db8:a:0:0:0:0:10
16 to 2001:db8:a:0:0:0:0:1
Trace Wireshark concernant lenvoi du Binding Update de MN pour prvenir HA de son dplacement :
1 MN# tshark -i wlan0 -VR mipv6
2 Frame 1: 86 bytes on wire (688 bits), 86 bytes captured (688 bits) on interface 0
3 [...]
4 Source: 2001:db8:d::10 (2001:db8:d::10)
5 Destination: 2001:db8:a::1 (2001:db8:a::1)
6 [...]
7 Mobile IPv6 / Network Mobility
8 Payload protocol: IGMP (0x02)
9 Header length: 33 (272 bytes)
10 Mobility Header Type: Unknown (106)
11 Reserved: 0xff
12 Checksum: 0xfe27
13 Unknown MH Type
14
15 Frame 2: 78 bytes on wire (624 bits), 78 bytes captured (624 bits) on interface 0
16 [...]
17 Source: 2001:db8:a::1 (2001:db8:a::1)
18 Destination: 2001:db8:d::10 (2001:db8:d::10)
19 [...]
20 Mobile IPv6 / Network Mobility
21 Payload protocol: IPv6 no next header (0x3b)
22 Header length: 2 (24 bytes)
23 Mobility Header Type: Binding Error (7)
24 Reserved: 0x00
25 Checksum: 0x29ce
26 Binding Error
27 Status: Unknown binding for Home Address destination option (1)
28 Home Address: 2001:db8:a::10 (2001:db8:a::10)
Dtection de lerreur par MIPL, qui rsume bien la situation (BE = Binding Error ) :
1 Tue Jul 24 13:38:40 mn_recv_be: Got BE from HA, it does not understand us ?
Conclusion
Labsence de RFC publies sur ce sujet (la RFC 3775 est en PROPOSED STANDARD) explique
probablement pourquoi un mobile GNU/Linux en vient utiliser un numro de protocole quun home
agent Cisco ne connait mme pas. Outre le fait de rappeler limportance des standards, le logiciel utilis
par le mobile semble parfois avoir dautres imperfections (gure 8.11 page 113).
112 / 137 Julien VAUBOURG
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
Figure 8.11 Erreur de checksum lors de lexprimentation de MIPv6.
Mme en sacharnant, les possibilits de mobilit avec lIPv6 ne semblent pas encore tre pour
aujourdhui. Malgr des traces de projets trs actifs entre 2004 et 2007, lengouement semble retombe,
et peu de systmes ont suivi pour linstant.
Concernant le DHCP statique, lobjectif est atteint puisque U1 a reu des adresses prcises selon le
rseau sur lequel il sest connect en wi. Aprs avoir pass beaucoup de temps tenter de faire du
statique avec le routeur Cisco, la conclusion semble tre quils ne supportent pas encore cette faon de
faire. Le DHCP de ISC a trs bien rempli son travail, mais la documentation laisse un peu dsirer ct
IPv6, avec un man qui fournit la version IPv6 des paramtres quand a lui chante, et sans vraie mise en
parallle. Les exemples sont rests exclusivement en IPv4, et le paquet Debian ne dispose pas encore de
chier de conguration dexemple pour lIPv6 (ce qui semble tre le cas pour le paquet CentOS).
La fonction relais des routeurs Cisco ne pose aucun problme et se paramtre aisment.
8.8 Ajout dynamique dadresse dans le DNS (DDNS) et pool
DHCPv6
Introduction
Labsence de NAT sur les rseaux IPv6 impose de diuser un nombre important dadresses direntes
sur Internet. Beaucoup de services ncessitant davoir un domaine et un reverse associs pour ne pas
tre considr comme un spammeur, les attributions ne peuvent plus tre ralises la main. Linjection
dentres DNS via le DHCPv6 (autoconguration stateful ) est une solution qui existait dj en IPv4,
avec le Dynamic DNS.
Lobjectif de cette exprimentation est de tester lavancement du DHCP de ISC et de Bind, pour
assurer ces fonctions pour lIPv6. Un poste utilisateur devra donc se faire attribuer une IP pioche
alatoirement dans une plage (pool ) dadresse dnie dans le DHCP, et tre ensuite en mesure de
consulter le nom DNS ainsi que le reverse qui ont t associs dynamiquement.
Exprimentation
La topologie et le plan dadressage sont dcrits dans la gure 8.12 page 114.
Les deux IPv4 en bleu ont d tre ajoutes, contraint et forc de constater que la version ISC du
serveur DHCP (version 4.2.2 incluse) ne permet pas de renseigner une adresse IPv6 pour le serveur
113 / 137 Julien VAUBOURG
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
Figure 8.12 Installation lie lexprimentation du DDNS entre un serveur DHCP et un serveur DNS.
DNS mettre jour. Cette volution arrivera probablement rapidement et est semble issue du mme
tat desprit que celui qui a conduit attendre aussi longtemps pour mettre en uvre le RDNSS, en
considrant que les serveurs DNS seraient encore longtemps en IPv4. Dans ce cas de gure, il nimpose
que la couche v4 sur les deux serveurs (plus dexplications plus bas).
Installation du serveur DNS et conguration IP :
1 DNS# apt-get install bind
2 DNS# ip addr add 2001:db8:b::3/64 dev eth0
3 DNS# ip route add 2001:db8:a::/64 2001:db8:b::1 dev eth0
4 DNS# ip addr add 192.0.2.3/24 dev eth0
Cration dune cl symtrique pour autoriser le DHCP injecter des entres dynamiquement :
1 DNS# cat /tmp/$(dnssec-keygen -a hmac-md5 -b 128 -n USER -K /tmp dhcpupdate).key
| cut -d -f7
2 HErio7xWBgGWPL8OFVcu0w==
Cration dun chier de cl sur le serveur DNS (/etc/bind/update.key) :
1 key "dhcpupdate" {
2 algorithm hmac-md5;
3 secret "HErio7xWBgGWPL8OFVcu0w==";
4 };
Prcisions :
Le chier /etc/bind/rndc.key automatiquement gnr sur certaines distributions pourrait tre
directement utilis.
Faire attention aux guillemets (qui ne devront pas toujours tre prsent, dans la suite).
Vrier que lutilisateur de Bind (bind ou named) a bien le droit dajouter des chiers dans
/etc/bind/.
114 / 137 Julien VAUBOURG
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
Conguration du champ AAAA de U1 sur le serveur DNS (/etc/bind/db.example) :
1 $TTL 604800
2 @ IN SOA example. root.example. (
3 3 ; Serial
4 604800 ; Refresh
5 86400 ; Retry
6 2419200 ; Expire
7 604800 ) ; Negative Cache TTL
8 ;
9 @ IN NS example.
10 @ IN AAAA 2001:db8:b::3
11
12 u1 IN AAAA 2001:db8:a::10
Conguration de son quivalent PTR (/etc/bind/db.a.db8.2001) :
1 $TTL 604800
2 a.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa IN SOA example. root.example. (
3 3 ; Serial
4 604800 ; Refresh
5 86400 ; Retry
6 2419200 ; Expire
7 604800 ) ; Negative Cache TTL
8 ;
9 @ IN NS example.
10 @ IN AAAA 2001:db8:b::3
11
12 0.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.a.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa. PTR u1
.example.
Cration des zones correspondantes, avec la cl qui autorise leur mise jour (/etc/bind/zones.example) :
1 zone "example" {
2 type master;
3 file "/etc/bind/db.example";
4 allow-update { key dhcpupdate; };
5 };
6
7 zone "a.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa" {
8 type master;
9 file "/etc/bind/db.a.db8.2001";
10 allow-update { key dhcpupdate; };
11 };
Enn, ajouter la n de /etc/bind/named.conf :
1 include "/etc/bind/update.key";
2 include "/etc/bind/zones.example";
115 / 137 Julien VAUBOURG
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
Redmarrer puis tester le serveur DNS :
1 DNS# service bind9 restart
2 DNS# dig +short AAAA @::1 u1.example
3 2001:db8:a::10
4 DNS# dig +short @::1 -x 2001:db8:a::10
5 u1.example.
Tester lajout dynamique dentres dans le DNS ( ritrer ensuite depuis la machine du serveur
DHCP) :
1 DNS# nsupdate
2 > server ::1
3 > key dhcpupdate HErio7xWBgGWPL8OFVcu0w==
4 > zone example
5 > update add u2.example. 600 IN AAAA 2001:db8:a::20
6 > send
7 > quit
8 DNS# dig +short AAAA @::1 u2.example
9 2001:db8:a::20
Installation du serveur DHCP et conguration IP :
1 DHCP# apt-get install isc-dhcp-server
2 DHCP# ip addr add 2001:db8:b::2/64 dev eth0
3 DHCP# ip route add 2001:db8:a::/64 2001:db8:b::1/64 dev eth0
Conguration du DHCP (/etc/dhcp/dhcpd6.conf ) :
1 authoritative;
2
3 ddns-updates on;
4 allow client-updates;
5 ddns-update-style interim;
6 do-forward-updates true;
7
8 ddns-domainname "example";
9 option dhcp6.name-servers 2001:db8:b::3;
10
11 key dhcpupdate {
12 algorithm hmac-md5;
13 secret HErio7xWBgGWPL8OFVcu0w==;
14 };
15
16 zone example. {
17 key dhcpupdate;
18 primary 192.0.2.3;
19 }
20
21 zone a.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa. {
22 key dhcpupdate;
116 / 137 Julien VAUBOURG
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
23 primary 192.0.2.3;
24 }
25
26 subnet6 2001:db8:b::/64 {}
27
28 subnet6 2001:db8:a::/64 {
29 range6 2001:db8:a::1 2001:db8:a::ffff:ffff;
30 ddns-hostname = concat("dyn-", binary-to-ascii(16, 16, "-", substring(option
dhcp6.ia-na, 16, 16)));
31 }
Lobligation dutiliser des adresses IPv4 pour communiquer avec le serveur DNS provient du champ
primary pour lequel le parser de Bind rejette les IPv6 :
1 /etc/dhcp/dhcpd6.conf line 26: expecting semicolon.
2 primary 2001:
3 ^
Le serveur accepte de se lancer en utilisant une adresse DNS (ns.example) plutt quune adresse
IPv6, mais ses habitudes de serveur prhistorique ne lui permettent pas darriver ses ns lorsquil doit
ajouter une entre DNS dynamique :
1 ns.example: no A record associated with address.
Lancer le serveur en mode debug pour voir la trace :
1 DHCP# dhcpd -6 -f -d -cf /etc/dhcp/dhcpd6.conf
Conguration de R1 qui se contente de router et de faire relais DHCP :
1 R1> en
2 R1(config)# conf t
3 R1(config)# ipv6 unicast-routing
4 R1(config)# int f 0/0
5 R1(config-if)# ipv6 addr 2001:db8:a::1/64
6 R1(config-if)# ipv6 dhcp relay destination 2001:db8:b::2
7 Routeur(config-if)# ipv6 nd other-config-flag
8 Routeur(config-if)# ipv6 nd managed-config-flag
9 R1(config-if)# no shut
10 R1(config)# int f 0/1
11 R1(config-if)# ipv6 addr 2001:db8:b::1/64
12 R1(config-if)# no shut
Le routeur intervient dans cette exprimentation parce que U1 correspond un Mac version Lion, et
que celui-ci na pas doption DHCP explicite pour lIPv6. Il faut donc le congurer en Automatique, et
forcer lutilisastion du DHCPv6 via les drapeaux des Router Advertisements.
Pour tester la demande dIPv6 en DHCP, brancher et dbrancher la prise ethernet du Mac, ou la
demander explicitement si cest un GNU/Linux :
1 U1# dhclient -6 eth0
117 / 137 Julien VAUBOURG
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
Trace du serveur DHCP :
1 Relay-forward message from 2001:db8:b::1 port 547, link address 2001:db8:a::1,
peer address fe80::62fb:42ff:feef:e11a
2 Picking pool address 2001:db8:a::82d1:bea4
3 Sending Relay-reply to 2001:db8:b::1 port 547
4 Relay-forward message from 2001:db8:b::1 port 547, link address 2001:db8:a::1,
peer address fe80::62fb:42ff:feef:e11a
5 Sending Relay-reply to 2001:db8:b::1 port 547
6 Added new forward map from dyn-2001-db8-a-0-0-0-82d1-bea4.example to 2001:db8:a
::82d1:bea4
7 Added reverse map from 4.a.e.b.1.d.2.8.0.0.0.0.0.0.0.0.0.0.0.0.a.0.0.0.8.b.d
.0.1.0.0.2.ip6.arpa. to dyn-2001-db8-a-0-0-0-82d1-bea4.example
Trace au niveau de la machine du serveur DNS :
1 DNS# tshark -i eth0 -R dns.flags == 0x2800
2 Running as user "root" and group "root". This could be dangerous.
3 Capturing on eth0
4 9.847464 192.0.2.2 -> 192.0.2.3 DNS 265 Dynamic update 0xd220 SOA example
5 9.859034 192.0.2.2 -> 192.0.2.3 DNS 276 Dynamic update 0x246b SOA a.0.0.0.8.b.
d.0.1.0.0.2.ip6.arpa
Vrier que U1 a bien rcupr ladresse 2001:db8:a::82d1:bea4 et tester la nouvelle entre du
DNS :
1 U1# dig +short @2001:db8:b::3 -x 2001:db8:a::82d1:bea4
2 dyn-2001-db8-a-0-0-0-82d1-bea4.example
3 U1# dig +short AAAA @2001:db8:b::3 dyn-2001-db8-a-0-0-0-82d1-bea4.example
4 2001:db8:a::82d1:bea4
Conclusion
Le DDNS semble parfaitement fonctionner, et permettre une politique de confection des noms DNS
dynamiquement qui nest limite que par limagination de ladministrateur (reproduire le comportement
de lautoconguration stateless en utilisant les MAC pourrait tre intressant). Malheureusement, la
ncessit du lien IPv4 rappelle que le DNS IPv6 a t considr trop longtemps non-prioritaire, considrant
que la double couche sera toujours disponible.
Concernant le DHCPv6 dynamique, le fonctionnement est similaire lIPv4, mais le DHCP de ISC
soure dun manque de documentation pour IPv6.
118 / 137 Julien VAUBOURG
Conclusion
Any fool can use a computer. Many do. - Ted Nelson
Est-il possible de migrer son rseau interne en IPv6 uniquement,
tout en continuant bncier des services rests en IPv4 ?
Grce la solution du NAT64/DNS64, la rponse est oui.
Cette solution a t teste durant un mois sur le poste dun utilisateur :
La couche IPv4 a t dsactive (i.e. aucune interface ne disposait dune IPv4).
LASA qui a servi pour lexprimentation du NAT64 stateful a t plac en aval de sa machine.
Aucune conguration rseau na t eectue sur la machine (en autoconguration et en distribuant
ladresse du DNS faisant oce de DNS64).
Conformment au fonctionnement du NAT64, tous les sites web et services taient accessibles en
IPv6 pour la machine, quils le supportent nativement ou non.
Lutilisateur a rencontr trois problmes durant cette priode :
1. Un client IRC qui supportait lIPv6 mais qui sacharnait se connecter de prfrence en IPv4,
malgr labsence dinterface compatible
5
.
2. Un intranet dcole inaccessible cause dun DNS mal congur, avec un faux AAAA disponible
6
.
3. Un autre site web qui a pos le mme problme
7
.
De faon gnrale il naurait pu y avoir que quatre types de problme avec le NAT64 :
1. Lapplication a t mal crite et utilise une IPv4 en dur, sans passer par le DNS (cas du client
IRC).
5. Un ticket a t post ce sujet, demandant de prfrer automatiquement lIPv6, comme cest le cas sur la plupart
des applications le supportant : http://bugs.irssi.org/index.php?do=details&task_id=842.
6. Les responsables techniques ont t prvenus (SI TELECOM Nancy). Solution temporaire au problme : echo
2001:db8:c::193.50.40.1 www-intranet.esial.uhp-nancy.fr >> /etc/hosts.
7. Malgr une belle annonce : http://puppetlabs.com/blog/puppet-labs-helps-save-the-internet-ipv6-style/.
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
2. Le DNS renseigne un faux AAAA (cas du site inaccessible).
3. Lapplication utilise explicitement le A du DNS sil est disponible, en oubliant du mme coup le
AAAA.
4. Lapplication ne supporte pas lIPv6, et ne prvoit donc pas dinterroger le AAAA du DNS.
Les trois premiers problmes sont plutt rares, et relvent plus du bug que de la compatibilit. Le
dernier pourrait tre le plus courant, et concernera particulirement les applications mtier.
Un NAT64 nayant pas fondamentalement de raison dtre plus lent quun NAT44 classique (en
oubliant la dirence dge, qui peut jouer sur les performances) cette solution semble tout fait en-
visageable dans un environnement de production. En prenant soin toutefois de vrier la compatibilit
des applications susceptibles dtre utilises. Le rseau et les machines tant entirement en IPv6, toute
la puissance et la simplicit du nouveau protocole sont exploitables (changes entre services Windows,
tlphonie, etc.). Enn, ladministration ne ncessite pas pour autant de double plan dadressage ou de
duplication des ACL.
Un NAT peine plus particulier que ceux dj mis en place subsiste, mais tendra disparatre
naturellement en tant de moins en moins sollicit au l des annes, sans quaucune intervention sur le
rseau ou les postes clients ne soit ncessaire. Les nouveaux services mis en place sur le rseau seront
conus pour fonctionner avec lIPv6, le rendant de plus en plus robuste et prt pour lavenir.
Est-il possible de se passer totalement de lIPv4 ?
cause de la maigre liste des sites web accessibles en IPv6 dans le top 100 des sites web les plus
visits par les franais (fournie en gure 1.2 page 10), la rponse est non.
Le mieux qui peut tre fait actuellement est dutiliser la solution du NAT64, et dattendre patiemment
quil ne soit plus sollicit. Ou dutiliser une double pile sur les machines, si le rseau est susamment
petit. Le jour o les sites pornographiques prsents dans le top 100 seront accessibles en IPv6, ce sera
un signal fort pour indiquer que le web est prt se passer totalement de lIPv4.
Bilan des recherches et exprimentations
Le protocole apporte beaucoup de nouveauts trs intressantes et prote de lexprience de lIPv4
pour corriger ses principaux problmes.
Beaucoup de solutions existent pour permettre ceux qui nont pas de connexion IPv6 de naviguer au
dessus de lIPv4. Malheureusement, les eorts auraient plutt d tre concentrs sur la disponibilits des
services en IPv6, qui restent bien trop rares aprs tant dannes depuis les premires alertes de pnurie.
Malgr tout, tous les systmes dexploitation rcents supportent parfaitement lIPv6, et de plus en plus
de FAI proposent des plages leurs abonns.
Lautoconguration stateless (SLAAC) qui est lune des nouveauts des plus remarques soure
encore du retard de la normalisation du RDNSS qui nest pas encore utilisable, faute de compatibilit
susante avec les systmes dexploitation. Tant que les serveurs de nom de domaine devront tre dlivrs
120 / 137 Julien VAUBOURG
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
par DHCPv6, ce mode dautoconguration naura pas un grand intrt. Il pose galement beaucoup de
soucis au niveau de la scurit (blocage de lalgorithme DAD, envois de Router Advertisements non-
autoriss, etc.), et ne permet pas dassocier automatiquement un domaine et un reverse aux adresses.
Le DHCPv6 aura donc probablement encore de beaux jours devant lui dans les rseaux dentreprise.
Au del des autres dceptions comme la mobilit, lIPv6 fonctionne trs bien et apporte beaucoup
despoir en terme de simplicit des rseaux, tant avec labolition des NAT quavec ses adresses multicast
et ses diverses optimisations.
Pour nir sur une note dhumour, voici quoi pourrait ressembler la vie dentreprise si le monde ne
se dcide pas adopter IPv6 :
IPv6 - Are You Ready ? <http://www.youtube.com/watch?v=eYffYT2y-Iw
8
>
8. Cadeau bonux, une autre : http://www.youtube.com/watch?v=8OxIV7o6OCY.
121 / 137 Julien VAUBOURG
Yarding CHAPITRE 8. EXPRIMENTATIONS quipe rseau Lothaire
122 / 137 Julien VAUBOURG
A
Exemple de politique de scurit
# INPUT #
# Maintenance of communication
ip6tables -A ICMPv6_IN -p icmpv6 --icmpv6-type 1 -j ACCEPT # Destination Unreachable
ip6tables -A ICMPv6_IN -p icmpv6 --icmpv6-type 2 -j ACCEPT # Packet too big
ip6tables -A ICMPv6_IN -p icmpv6 --icmpv6-type 3 -j ACCEPT # Time Exceeded
ip6tables -A ICMPv6_IN -p icmpv6 --icmpv6-type 4 -j ACCEPT # Parameter problem
# Connectivity checking
ip6tables -A ICMPv6_IN -p icmpv6 --icmpv6-type 128 -j ACCEPT # Echo Request
ip6tables -A ICMPv6_IN -p icmpv6 --icmpv6-type 129 -j ACCEPT # Echo Response
# Address configuration and router selection: allow in link-local only
ip6tables -A ICMPv6_IN -p icmpv6 --icmpv6-type 133 -m hl --hl-eq 255 -j LOG --log-level warning --log-prefix "RS6 " # RS
ip6tables -A ICMPv6_IN -p icmpv6 --icmpv6-type 133 -m hl --hl-eq 255 -j ACCEPT # RS
ip6tables -A ICMPv6_IN -p icmpv6 --icmpv6-type 134 -m hl --hl-eq 255 -j ACCEPT # RA
ip6tables -A ICMPv6_IN -p icmpv6 --icmpv6-type 135 -m hl --hl-eq 255 -j ACCEPT # NS
ip6tables -A ICMPv6_IN -p icmpv6 --icmpv6-type 136 -m hl --hl-eq 255 -j LOG --log-level warning --log-prefix "NA6 " # NA
ip6tables -A ICMPv6_IN -p icmpv6 --icmpv6-type 136 -m hl --hl-eq 255 -j ACCEPT # NA
ip6tables -A ICMPv6_IN -p icmpv6 --icmpv6-type 141 -m hl --hl-eq 255 -j ACCEPT # Inverse NDS
ip6tables -A ICMPv6_IN -p icmpv6 --icmpv6-type 142 -m hl --hl-eq 255 -j ACCEPT # Inverse NDA
# Link-local Multicast receiver: allow in link-local only
ip6tables -A ICMPv6_IN -p icmpv6 --icmpv6-type 130 -m hl --hl-eq 255 -j ACCEPT # Listener Query
ip6tables -A ICMPv6_IN -p icmpv6 --icmpv6-type 131 -m hl --hl-eq 255 -j ACCEPT # Listener Report
ip6tables -A ICMPv6_IN -p icmpv6 --icmpv6-type 132 -m hl --hl-eq 255 -j ACCEPT # Listener Done
ip6tables -A ICMPv6_IN -p icmpv6 --icmpv6-type 143 -m hl --hl-eq 255 -j ACCEPT # Listener Report v2
# SEND Certification Path Notification: allow in link-local traffic only
ip6tables -A ICMPv6_IN -p icmpv6 --icmpv6-type 148 -m hl --hl-eq 255 -j ACCEPT # CPS
ip6tables -A ICMPv6_IN -p icmpv6 --icmpv6-type 149 -m hl --hl-eq 255 -j ACCEPT # CPA
# Multicast Router messages: Advertisement, Solicitation, Termination
ip6tables -A ICMPv6_IN -p icmpv6 --icmpv6-type 151 -m hl --hl-eq 255 -j ACCEPT # MRA
ip6tables -A ICMPv6_IN -p icmpv6 --icmpv6-type 152 -m hl --hl-eq 255 -j ACCEPT # MRS
ip6tables -A ICMPv6_IN -p icmpv6 --icmpv6-type 153 -m hl --hl-eq 255 -j ACCEPT # MRT
# Mobile IPv6
ip6tables -A ICMPv6_IN -p icmpv6 --icmpv6-type 144 -j ACCEPT # Home Agent Address Discovery Request
ip6tables -A ICMPv6_IN -p icmpv6 --icmpv6-type 145 -j ACCEPT # Home Agent Address Discovery Reply
ip6tables -A ICMPv6_IN -p icmpv6 --icmpv6-type 146 -j ACCEPT # Mobile Prefix Solicitation
ip6tables -A ICMPv6_IN -p icmpv6 --icmpv6-type 147 -j ACCEPT # Mobile Prefix Advertisement
Yarding ANNEXE A. EXEMPLE DE POLITIQUE DE SCURITquipe rseau Lothaire
# Handling fragmentation
ip6tables -A ICMPv6_IN -m ipv6header --soft --header frag -j ACCEPT
# Applying ICMPv6_IN rules to general icmpv6 input
ip6tables -A INPUT -p icmpv6 -j ICMPv6_IN
# FORWARD #
# Maintenance of communication
ip6tables -A ICMPv6_FW -p icmpv6 --icmpv6-type 1 -j ACCEPT # Destination Unreachable
ip6tables -A ICMPv6_FW -p icmpv6 --icmpv6-type 2 -j ACCEPT # Packet too big
ip6tables -A ICMPv6_FW -p icmpv6 --icmpv6-type 3 -j ACCEPT # Time Exceeded
ip6tables -A ICMPv6_FW -p icmpv6 --icmpv6-type 4 -j ACCEPT # Parameter problem
# Connectivity checking, for now let the IPv6 world in
ip6tables -A ICMPv6_FW -p icmpv6 --icmpv6-type 128 -j ACCEPT # Echo Request
ip6tables -A ICMPv6_FW -p icmpv6 --icmpv6-type 129 -j ACCEPT # Echo Response
# Handling fragmentation
ip6tables -A ICMPv6_FW -m ipv6header --soft --header frag -j ACCEPT
# Applying rules
ip6tables -A FORWARD -p icmpv6 -j ICMPv6_FW
124 / 137 Julien VAUBOURG
B
Rfrences
The thing about quotes on the internet is that you cannot conrm their validity. - Abraham Lincoln
IPv6 : Thorie et pratique crit sous le nom demprunt Gisle Cizault, il sagit en ralit dune uvre
du collectif duniversitaires et dingnieurs qui participe la mise au point dIPv6 au niveau inter-
national, au travers du G6 (association pour la promotion et le dveloppement dIPv6). Le livre
est initialement dit par les ditions franaises de OReilly, qui ont disparues. Pour cette raison,
et parce que le livre voluait trop vite, il est disponible librement en version numrique
1
sur le site
de lassociation. Le faux nom Cizault vient du 6bone (littralement six os), qui est une plate-forme
dexprimentation de lIPv6. Cest probablement LA rfrence en matire dIPv6, qui traite prin-
cipalement de lexplication dtaille des protocoles, avec un peu de code C pour programmer des
applications avec des sockets IPv6.
1. http://livre.g6.asso.fr
Yarding ANNEXE B. RFRENCES quipe rseau Lothaire
IPv6 : Principes et mise en uvre Aux ditions ENI, il sagit ce jour du livre le plus rcent (mai
2012) sur lIPv6, disponible en franais. Plutt succinct sur laspect protocolaire, il sattarde plutt
sur des explications concrtes des mcanismes lis lIPv6, avec des exemples de conguration. Il
a aussi le mrite de sintresser de prs aux aspects compatibilit des systmes, tout en balayant
un champ assez large des possibilits actuelles.
DNS and BIND on IPv6 Aux ditions OReilly, ce livre sattarde sur toutes les possibilits lies la
rsolution des noms de domaine en IPv6 ainsi qu la diusion des informations du rseau via
DHCPv6 (autoconguration stateful ). Les premiers chapitres sont disponibles gratuitement sur
Scribd
2
et SafariBooks
3
.
Wiki ARIN Il sagit dune base de donnes communautaire
4
alimente par un public professionnel qui
partage ses notes qui concernent lIPv6, notamment au travers des listes du NANOG (quivalent
nord-amricain du FRnOG).
World IPv6 Launch Lune des rfrences parmi les acteurs importants de la dmocratisation de lIPv6,
ce site
5
de lInternet Society donne loccasion au moins une fois par an de faire un point sur
lutilisation de lIPv6 au travers du monde. Le RIPE propose aussi
6
des statistiques de ce type.
IPV6 HOWTO (GNU/Linux) Tir de The Linux Documentation Project, ce tutoriel
7
trs complet
(bien que parfois un peu vieillissant) de Peter Bieringer, permet dobtenir des solutions techniques
prcises pour lutilisation dIPv6 sur GNU/Linux.
Preparing an IPv6 Addressing Plan Propos par le RIPE, ce document
8
dune vingtaine de pages
est destin assister la conception dun plan dadressage IPv6, laide des bonnes pratiques.
IETF Cette rfrence pourrait faire partie de toutes les documentations informatiques, mais les RFC pour
lIPv6 sont une solution particulirement ecace dobtenir de manire sre, jour et complte, un
descriptif dtaill des dirents protocoles. Contrairement ce quon pourrait craindre, elles sont
trs faciles lire, et souvent plus claire que nimporte quel tutoriel dnich coup de sueur depuis
son moteur de recherche. Gagnez du temps, consultez directement les RFC et abonnez-vous au
blog de Stphane Bortzmeyer
9
qui propose une explication en franais des nouveauts.
FAQ ISoc LInternet Society met disposition une FAQ
10
trs intressante sur les questions qui con-
cernent lIPv6.
Cheat Sheet Un format A4 recto-verso
11
avec tous les fondamentaux de lIPv6, acher dans ses
toilettes.
Quelques liens supplmentaires concernant la compatibilit des postes clients :
Une page Wikipdia
12
fait le point sur la disponibilit de lIPv6 sur les systmes dexploitation.
2. http://www.scribd.com/doc/63969331/DNS-and-BIND-on-IPv6
3. http://my.safaribooksonline.com/book/networking/dns/9781449308025
4. http://www.getipv6.info
5. http://www.worldipv6launch.org
6. http://v6day.ripe.net/cgi-bin/index.cgi
7. http://tldp.org/HOWTO/Linux+IPv6-HOWTO/index.html
8. http://www.ripe.net/lir-services/training/material/IPv6-for-LIRs-Training-Course/IPv6_addr_
plan4.pdf/view
9. http://www.bortzmeyer.org
10. http://www.isoc.org/internet/issues/ipv6_faq.shtml
11. http://www.roesen.org/files/ipv6_cheat_sheet.pdf
12. https://en.wikipedia.org/wiki/Comparison_of_IPv6_support_in_operating_systems
126 / 137 Julien VAUBOURG
Yarding ANNEXE B. RFRENCES quipe rseau Lothaire
Un tableau
13
trs intressant qui rcapitule les commandes systmes fondamentales pour lIPv6,
pour dirents systmes dexploitation.
Analyse assez dtaille
14
(mais un peu ancienne) de la compatibilit des direntes technologies
IPv6 sur les systmes dexploitation.
13. https://wikispaces.psu.edu/display/ipv6/IPv6+Rosetta+Stone
14. http://ipv6int.net/systems
127 / 137 Julien VAUBOURG
Yarding ANNEXE B. RFRENCES quipe rseau Lothaire
128 / 137 Julien VAUBOURG
C
Table des RFC
Lets say the docs present a simplied view of reality.
1
- Larry Wall (1990)
Ces direntes RFC
2
ont t cites dans ce document (certaines sont informationnelles) :
RFC 791 : INTERNET PROTOCOL
RFC 1191 : Path MTU Discovery
RFC 1338 : Supernetting : an Address Assignment and Aggregation Strategy
RFC 1918 : Address Allocation for Private Internets
RFC 2080 : RIPng for IPv6
RFC 2081 : RIPng Protocol Applicability Statement
RFC 2136 : Dynamic Updates in the Domain Name System (DNS UPDATE)
RFC 2461 : Neighbor Discovery for IP Version 6 (IPv6)
RFC 2464 : Transmission of IPv6 Packets over Ethernet Networks
RFC 2473 : Generic Packet Tunneling in IPv6 Specication
RFC 2606 : Reserved Top Level DNS Names
RFC 2675 : IPv6 Jumbograms
RFC 3007 : Secure Domain Name System (DNS) Dynamic Update
RFC 3041 : Privacy Extensions for Stateless Address Autoconguration in IPv6
RFC 3053 : IPv6 Tunnel Broker
RFC 3056 : Connection of IPv6 Domains via IPv4 Clouds
1. http://groups.google.com/groups?selm=6940@jpl-devvax.JPL.NASA.GOV&hl=en
2. Pour consulter une RFC : http://tools.ietf.org/html/rfcXXXX.
Yarding ANNEXE C. TABLE DES RFC quipe rseau Lothaire
RFC 3068 : An Anycast Prex for 6to4 Relay Routers
RFC 3224 : Vendor Extensions for Service Location Protocol, Version 2
RFC 3306 : Unicast-Prex-based IPv6 Multicast Addresses
RFC 3315 : Dynamic Host Conguration Protocol for IPv6 (DHCPv6)
RFC 3484 : Default Address Selection for Internet Protocol version 6 (IPv6)
RFC 3736 : Stateless Dynamic Host Conguration Protocol (DHCP) Service for IPv6
RFC 3775 : Mobility Support in IPv6
RFC 3849 : IPv6 Address Prex Reserved for Documentation
RFC 3882 : Conguring BGP to Block Denial-of-Service Attacks
RFC 3963 : Network Mobility (NEMO) Basic Support Protocol
RFC 3972 : Cryptographically Generated Addresses (CGA)
RFC 4140 : Hierarchical Mobile IPv6 Mobility Management (HMIPv6)
RFC 4193 : Unique Local IPv6 Unicast Addresses
RFC 4271 : A Border Gateway Protocol 4 (BGP-4)
RFC 4260 : Mobile IPv6 Fast Handovers for 802.11 Networks
RFC 4291 : IP Version 6 Addressing Architecture
RFC 4380 : Teredo : Tunneling IPv6 over UDP through Network Address Translations (NATs)
RFC 4389 : Neighbor Discovery Proxies (ND Proxy)
RFC 4443 : Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6
(IPv6) Specication
RFC 4472 : Operational Considerations and Issues with IPv6 DNS
RFC 4861 : Neighbor Discovery for IP version 6 (IPv6)
RFC 4862 : IPv6 Stateless Address Autoconguration
RFC 4966 : Reasons to Move the Network Address Translator - Protocol Translator (NAT-PT)
to Historic Status
RFC 5214 : Intra-Site Automatic Tunnel Addressing Protocol (ISATAP)
RFC 5340 : OSPF for IPv6
RFC 5342 : IANA Considerations and IETF Protocol Usage for IEEE 802 Parameters
RFC 5568 : Mobile IPv6 Fast Handovers
RFC 5635 : Remote Triggered Black Hole Filtering with Unicast Reverse Path Forwarding (uRPF)
RFC 5684 : Unintended Consequences of NAT Deployments with Overlapping Address Space
RFC 5737 : IPv4 Address Blocks Reserved for Documentation
RFC 5969 : IPv6 Rapid Deployment on IPv4 Infrastructures (6rd) Protocol Specication
RFC 6052 : IPv6 Addressing of IPv4/IPv6 Translators
RFC 6106 : IPv6 Router Advertisement Options for DNS Conguration
RFC 6146 : Stateful NAT64 : Network Address and Protocol Translation from IPv6 Clients to
IPv4 Servers
RFC 6269 : Issues with IP Address Sharing
RFC 6275 : Mobility Support in IPv6
RFC 6666 : A Discard Prex for IPv6
130 / 137 Julien VAUBOURG
D
Figures et tableaux
Yarding ANNEXE D. FIGURES ET TABLEAUX quipe rseau Lothaire
132 / 137 Julien VAUBOURG
Table des gures
1.1 Paquet IPv6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2 Les 100 sites les plus visits par les franais et lIPv6 (sites compatibles en vert). . . . . 10
1.3 Logo de la journe mondiale pour le lancement de lIPv6. . . . . . . . . . . . . . . . . 11
1.4 Utilisation de lIPv6 au travers du temps, mesure par Google. . . . . . . . . . . . . . . 11
2.1 Reprsentation schmatique dune diusion unicast. . . . . . . . . . . . . . . . . . . . 15
2.2 Reprsentation schmatique dune diusion multicast. . . . . . . . . . . . . . . . . . . 16
2.3 Format dune IP multicast. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4 Format dune adresse ethernet multicast. . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5 Conversion dune adresse IP multicast en adresse ethernet multicast (adresse all-nodes). 18
2.6 Reprsentation schmatique dune diusion broadcast. . . . . . . . . . . . . . . . . . . 21
2.7 Reprsentation schmatique dune diusion anycast. . . . . . . . . . . . . . . . . . . . 21
4.1 Format dune adresse multicast solicited-node. . . . . . . . . . . . . . . . . . . . . . . 33
4.2 Conversion dune adresse IP unicast en adresse multicast solicited-node. . . . . . . . . . 34
4.3 NDP avec diusion des routes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.4 NDP sans diusion des routes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.5 NDP sans diusion des routes, avec lutilisation dun proxy. . . . . . . . . . . . . . . . 37
4.6 Autoconguration dune adresse IP unicast avec lautoconguration stateless. . . . . . . 39
4.7 Diusion des Router Advertisements. . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.8 Dtection dune collision avec lalgorithme DAD. . . . . . . . . . . . . . . . . . . . . . 40
Yarding TABLE DES FIGURES quipe rseau Lothaire
4.9 Fonctionnement dun relais DHCPv6. . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.10 Confection dun identiant DHCP de type DUID. . . . . . . . . . . . . . . . . . . . . . 48
4.11 Injections dynamiques denregistrements DNS par le DHCP. . . . . . . . . . . . . . . . 52
5.1 Fonctionnement de base dun tunnel IPv6 pour lIPv4. . . . . . . . . . . . . . . . . . . 55
5.2 Communication dun nud 6to4 un autre. . . . . . . . . . . . . . . . . . . . . . . . 57
5.3 Communication dun nud 6to4 un nud IPv6 natif laide dun relais. . . . . . . . 58
5.4 Communication IPv6 via un rseau 6rd. . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.5 Confection dune adresse ISATAP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.6 Fonctionnement de ISATAP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.7 Confection dune adresse Teredo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.8 Dcouverte de ladresse Teredo et rservation dun tunnel. . . . . . . . . . . . . . . . . 64
5.9 Fonctionnement de Teredo avec un NAT de type restricted. . . . . . . . . . . . . . . . 64
5.10 Fonctionnement dun tunnel broker. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.11 Confection normalise dune adresse IPv6 depuis une adresse IPv4. . . . . . . . . . . . 67
5.12 Fonctionnement dun DNS64, alli indispensable du NAT64. . . . . . . . . . . . . . . . 68
5.13 Fonctionnement du NAT64. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.14 Mcanismes internes du NAT64 stateless. . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.15 Mcanismes internes du NAT64 stateful. . . . . . . . . . . . . . . . . . . . . . . . . . 69
6.1 Ajout dynamique dune route plus optimise. . . . . . . . . . . . . . . . . . . . . . . . 74
6.2 changes BGP en IPv6 enregistrs par le Ring du NLNOG. . . . . . . . . . . . . . . . . 76
7.1 Rseau de rfrence du mobile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
7.2 Mobile en dplacement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
7.3 Mise jour de ladresse care-of du mobile. . . . . . . . . . . . . . . . . . . . . . . . . 81
7.4 Contact du mobile au travers de son home agent. . . . . . . . . . . . . . . . . . . . . 81
7.5 Mobilit avec optimisation des chemins. . . . . . . . . . . . . . . . . . . . . . . . . . . 82
8.1 quipements utiliss pour les tests en laboratoire. . . . . . . . . . . . . . . . . . . . . 86
8.2 Installation lie lexprimentation de lautoconguration stateless (SLAAC). . . . . . . 87
134 / 137 Julien VAUBOURG
Yarding TABLE DES FIGURES quipe rseau Lothaire
8.3 Installation lie lexprimentation des tunnels statiques. . . . . . . . . . . . . . . . . 89
8.4 Installation lie lexprimentation du 6to4. . . . . . . . . . . . . . . . . . . . . . . . 91
8.5 Installation lie lexprimentation du 6rd. . . . . . . . . . . . . . . . . . . . . . . . . 95
8.6 Installation lie lexprimentation du NAT64 stateless. . . . . . . . . . . . . . . . . . 97
8.7 Installation lie lexprimentation du NAT64 stateful. . . . . . . . . . . . . . . . . . . 103
8.8 Conguration de la rgle de NAT64 stateful avec lADSM pour IOS 9. . . . . . . . . . 104
8.9 Autorisation de tous les tracs avec lADSM pour IOS 9. . . . . . . . . . . . . . . . . . 105
8.10 Installation lie lexprimentation de la mobilit IPv6. . . . . . . . . . . . . . . . . . 107
8.11 Erreur de checksum lors de lexprimentation de MIPv6. . . . . . . . . . . . . . . . . . 113
8.12 Installation lie lexprimentation du DDNS entre un serveur DHCP et un serveur DNS. 114
135 / 137 Julien VAUBOURG
Yarding TABLE DES FIGURES quipe rseau Lothaire
136 / 137 Julien VAUBOURG
Liste des tableaux
2.1 Exemple dutilisation de la porte des adresses multicast avec NTP. . . . . . . . . . . . 17
2.2 Adresses multicast couramment utilises (porte locale). . . . . . . . . . . . . . . . . . 18
2.3 Groupes multicast automatiquement rejoints par une Debian. . . . . . . . . . . . . . . 20
2.4 Groupes multicast automatiquement rejoints par un routeur Cisco. . . . . . . . . . . . . 20
4.1 Signication des drapeaux de rpartition des tches pour lautoconguration. . . . . . . 46
5.1 Les dirents types de NAT (changes UDP). . . . . . . . . . . . . . . . . . . . . . . 62
5.2 Comparatif des solutions pour faire cohabiter lIPv4 et lIPv6. . . . . . . . . . . . . . . 71
Version du 2 octobre 2012
Ce document est distribu sous la licence Creative Commons Attribution-ShareAlike 3.0 France.
Les sources L
A
T
E
X et SVG jour sont disponibles sur http://julien.vaubourg.com
(ou git://git.fiat-tux.fr/yarding).
Nhsitez pas le corriger, le complter ou lactualiser et me contacter sur julien@vaubourg.com.
<http://creativecommons.org/licenses/by-sa/3.0/fr>