-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathLinux+IPv6-HOWTO.fr.xml
More file actions
2955 lines (2913 loc) · 314 KB
/
Linux+IPv6-HOWTO.fr.xml
File metadata and controls
2955 lines (2913 loc) · 314 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "https://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
[
]>
<!-- XML file was created by LyX 2.3.5
See http://www.lyx.org/ for more information -->
<book lang="fr_FR">
<bookinfo>
<title>Linux IPv6 HOWTO (fr)</title>
<author><firstname>Peter</firstname><surname>Bieringer</surname><affiliation><address>pb at bieringer dot de</address></affiliation></author>
<revhistory>
<revision><revnumber>0.49.fr.3wip</revnumber><date>2020-06-17</date> <authorinitials>PB</authorinitials> </revision>
<revision><revnumber>0.49.fr.2</revnumber><date>2007-10-06</date> <authorinitials>PB</authorinitials> </revision>
<revision><revnumber>0.49.fr.1</revnumber><date>2006-02-26</date> <authorinitials>MB</authorinitials> </revision>
<revision><revnumber>0.48.1.fr.1</revnumber><date>2005-01-20</date> <authorinitials>MB</authorinitials></revision>
<revision><revnumber>0.47.fr.1</revnumber><date>2004-09-05</date> <authorinitials>MB</authorinitials> </revision>
<revision><revnumber>0.44.fr.1</revnumber><date>2003-05-09</date> <authorinitials>MB</authorinitials> </revision>
</revhistory> <abstract>
<para>L'objet de cet HOWTO IPv6 Linux est de répondre à la fois aux questions basiques et avancées au sujet d'IPv6 sur le système d'exploitation Linux. Cet HOWTO fournira au lecteur assez d'information pour installer, configurer et utiliser les applications IPv6 sur les machines Linux. <link linkend="revision-history">l'historique des révisions</link></para>
</abstract></bookinfo><chapter id='chapter-general' >
<title><!-- anchor id="chapter-general" -->Généralités</title>
<para>Vous trouverez les informations concernant les différentes traductions disponibles dans la section <link linkend="general-translations">Traductions</link>.</para><sect1 id='general-copright' >
<title><!-- anchor id="general-copright" -->Copyright, licence et autres</title>
<sect2>
<title>Copyright</title>
<para>Rédaction et Copyright (C) 2001-2020 Peter Bieringer, traduction francophone et Copyright (C) 2003-2006 Michel Boucey</para></sect2><sect2>
<title>Licence</title>
<para>Cet HOWTO IPv6 Linux est publié sous GPL GNU version 2:
</para>
<para>L'HOWTO IPv6 Linux, un guide sur la façon de configurer et d'utiliser IPv6 sur les systèmes Linux.
</para>
<para>Copyright (C) 2001-2020 Peter Bieringer
</para>
<para>Ce document est libre; vous pouvez le redistribuer et/ou le modifier dans les termes de la Licence Publique Générale GNU, telle que publiée par la Free Software Foundation; soit dans sa version 2, ou (c'est à votre convenance) une quelconque version postérieure.</para>
<para>Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE; sans même de garantie impliquée par une COMMERCIALISATION ou d'ADÉQUATION A UNE FIN PARTICULIÈRE. Voir la Licence Publique Générale GNU pour de plus amples détails.</para>
<para>Vous devriez avoir reçu une copie de la Licence Publique Générale GNU allant de paire avec ce programme; sinon, écrivez à la Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.</para></sect2><sect2>
<title>A propos de l'auteur</title>
<sect3>
<title>L'auteur, Internet et IPv6</title>
<itemizedlist>
<listitem><para>1993: J'ai pris contact avec l'Internet par la pratique du mél et des news sur un client en mode texte (par exemple, rechercher "e91abier" sur groups.google.com, c'est moi).</para></listitem><listitem><para>1996: J'ai été sollicité pour concevoir un cours sur IPv6, incluant des travaux pratiques sur le système d'exploitation Linux.</para></listitem><listitem><para>1997: Début de la rédaction d'un guide sur la façon d'installer, de configurer et d'utiliser IPv6 sur les systèmes Linux, appelé <ulink url="http://www.bieringer.de/linux/IPv6/">HowTo - IPv6 & Linux </ulink> (voir <ulink url="http://www.bieringer.de/linux/IPv6/IPv6-HOWTO/IPv6-HOWTO-0.html#history">IPv6 & Linux - HowTo/History</ulink> pour plus d'information).</para></listitem><listitem><para>2001: Début de la rédaction de cet HOWTO IPv6 Linux.</para></listitem></itemizedlist></sect3><sect3>
<title>Contact</title>
<para>L'auteur peut être contacté par mél à <pb chez bieringer point de> mais aussi <emphasis>via</emphasis> <ulink url="http://www.bieringer.de/pb/">sa page personnelle</ulink>.</para>
<para>Il vit actuellement à Munich [dans la partie nord du Schwabing] / Bavière / Allemagne (sud) / Europe (centrale) / Terre (surface/continent).</para></sect3></sect2></sect1><sect1 id='general-category' >
<title><!-- anchor id="general-category" -->Catégorie</title>
<para>Cet HOWTO relève de la catégorie "<emphasis>Réseau/Protocoles</emphasis>".</para></sect1><sect1>
<title>La version, l'historique et ce qu'il reste à faire</title>
<sect2>
<title>La version</title>
<para>La version actuelle est visible dès le début de ce document.</para>
<para>En ce qui concerne les autres versions/traductions, voir également<ulink url="http://www.bieringer.de/linux/IPv6/">http://www.bieringer.de/linux/IPv6/</ulink>.</para></sect2><sect2>
<title>L'historique</title>
<sect3>
<title>L'essentiel de l'historique</title>
<para>30-11-2001:Début de la conception du nouvel HOWTO.</para>
<para>02-01-2002: Une quantité importante du contenu est achevée, publication de la première version du premier chapitre (version 0.10).</para>
<para>14-01-2002: Plus achevé, avec relectures, publication de la première version complète du document (version 0.14).</para>
<para>16-08-2002: La traduction polonaise est en cours</para>
<para>31-10-2002: La traduction chinoise est disponible (voir <link linkend="general-translations">les traductions</link> pour en savoir plus)</para>
<para>10-11-2002: La traduction allemande est en cours</para>
<para>10-02-2003: La traduction allemande est disponible</para>
<para>09-04-2003: La traduction francophone est en cours</para>
<para>09-05-2003: La traduction francophone est disponible</para>
<para>15-08-2003: La traduction espagnole est en cours - (lost, URL no longer valid)</para>
<para>16-10-2003: La traduction italienne est en cours</para>
<para>12-03-2004: La traduction italienne est disponible</para>
<para>18-06-2004: La traduction grecque est en cours</para></sect3><sect3>
<title>L'historique complet</title>
<para>Voir <link linkend="revision-history">l'historique des révisions</link> à la fin de ce document.</para></sect3></sect2><sect2>
<title>Ce qu'il reste à faire</title>
<itemizedlist>
<listitem><para>Rédiger les contenus manquants</para></listitem><listitem><para>Achever la correction orthographique</para></listitem></itemizedlist></sect2></sect1><sect1 id='general-translations' >
<title><!-- anchor id="general-translations" -->Les traductions</title>
<para>Les traductions doivent toujours contenir l'URL, le numéro de version et le copyright du document original (le vôtre aussi). Merci de ne pas traduire le journal original des modifications, ce n'est vraiment pas utile. Il apparaît que la fréquence des modifications apportées à ce document est, la plupart du temps, inférieure à une fois par mois. Depuis la version 0.27, il apparaît aussi que la plus grande part du contenu fourni par moi-même a été rédigée. Les traductions doivent toujours prendre comme source la version anglo-saxonne.</para><sect2>
<title>Traductions disponibles</title>
<sect3>
<title>En langue française</title>
<para>La traduction francophone par Michel Boucey a été mise en chantier le 9 avril 2003, à partir de la révision 0.41.1. Elle est disponible depuis le 9 mai 2003 sur Deep Space 6, avec pour URL original <ulink url="http://mirrors.deepspace6.net/Linux+IPv6-HOWTO-fr/">mirrors.deepspace6.net / Linux+IPv6-HOWTO-fr</ulink>. Je (<emphasis>Michel Boucey</emphasis>) remercie par avance toute personne qui aidera, de quelque façon, à améliorer cette traduction. On peut me contacter à l'adresse mél <mboucey chez free point fr>.</para></sect3><sect3>
<title>Les autres traductions disponibles</title>
<para>L'information concernant les traductions disponibles en d'autres langues que l'anglais et le français peut être trouvée dans le document original: <ulink url="http://www.tldp.org/HOWTO/Linux+IPv6-HOWTO/general-translations.html">TLDP / Linux+IPv6-HOWTO / Translations</ulink></para></sect3></sect2></sect1><sect1>
<title>Un peu de technique</title>
<sect2 id='general-original-source' >
<title><!-- anchor id="general-original-source" -->Le document original de cet HOWTO</title>
<para>Cet HOWTO est actuellement rédigé avec la version 2.2.2 de LyX sur un système Fedora Linux 25 avec un patron SGML (livre DocBook). Il est disponible en vue des contributions à l'URL <ulink url="https://github.com/tLDP/Linux-IPv6/">github / tLDP / Linux-IPv6</ulink>.</para><sect3>
<title>Modification des lignes de code propres à LyX</title>
<para>Les modifications des lignes de code propres à LyX sont réalisées par un script ”maison”, ”lyxcodelinewrapper.pl”, que vous pouvez obtenir par CVS pour votre propre compte: <ulink url="https://github.com/tLDP/Linux-IPv6/">github / tLDP / Linux-IPv6</ulink> (<emphasis>NdT</emphasis>: ces lignes ne gênent pas la génération au format SGML, mais celles aux formats PS et PDF à partir du SGML généré couramment, <emphasis>i.e.</emphasis> sans ce script).</para></sect3><sect3>
<title>La génération du SGML</title>
<para>Le code SGML est généré en utilisant la fonction d'exportation de LyX.</para>
<para>Des solutions ont été apportées afin de créer un code SGML plus propre (voir aussi ici pour le programme Perl, <ulink url="https://github.com/tLDP/Linux-IPv6/">github / tLDP / Linux-IPv6</ulink>):</para><itemizedlist>
<listitem><para>L'exportation du document LyX ne créait pas proprement les balises ”colspan” - l'outil qui règle le problème: ”sgmllyxtabletagfix.pl” (le problème est définitivement réglé depuis la version 1.2.0 de LyX)</para></listitem><listitem><para>LyX utilise parfois des entités spéciales gauche/droite, à la place des guillemets habituels, qui seront présentes dans le code HTML. Certains navigateurs n'interprètent pas très bien ces balises (Opéra 6 TP 2 ou Konquéror sont connus pour ce problème) - l'outil qui règle le problème: ”sgmllyxquotefix.pl”</para></listitem></itemizedlist></sect3></sect2><sect2>
<title>Les références en ligne à la version HTML de cet HOWTO (lien/ancrage)</title>
<sect3>
<title>La page d'index maître</title>
<para>Généralement, une référence vers la page d'index maître est recommandée.</para></sect3><sect3>
<title>Les pages dédiées</title>
<para>Parce que les pages HTML sont générées à partir du fichier SGML, le nommage des fichiers HTML prend une tournure aléatoire. Et cependant, certaines pages ont des balises assignées par LyX, dont il résulte un nommage constant. Ces balises sont très utiles aux références et ne devraient pas être changées à l'avenir.</para>
<para>Si vous pensez que j'ai oublié une balise, merci de me le faire savoir, et je l'ajouterai.</para></sect3></sect2></sect1><sect1>
<title>Préface</title>
<para>Quelques petites choses d'abord:</para><sect2>
<title>Combien se promène-t-il de versions de l'HOWTO Linux & IPv6?</title>
<para>En incluant celui-ci, il y a trois documents HOWTO disponibles. Mes excuses si cela vous semble de trop ;)</para><sect3>
<title>La FAQ/HOWTO IPv6 Linux (obsolète)</title>
<para>Le premier document relatif à IPv6 a été écrit par <emphasis>Eric Osborne,</emphasis> et s'appelle <ulink url="http://www.linuxhq.com/IPv6/">FAQ/HOWTO IPv6 Linux</ulink> (merci de ne l'utiliser que pour des raisons historiques). La dernière version fut la 3.2.1, publiée le 14 juillet 1997.</para>
<para>Merci de m'aider: si quelqu'un connaît la date anniversaire de cet HOWTO, merci de m'envoyer un mél (cette information est nécessaire à "l'historique").</para></sect3><sect3>
<title>L'HowTo - IPv6 & Linux (maintenu)</title>
<para>Il existe une seconde version appelée <ulink url="http://www.bieringer.de/linux/IPv6/">HowTo - IPv6 & Linux - </ulink> écrite par moi-même (<emphasis>Peter Bieringer</emphasis>) en pur HTML. Elle est née en avril 1997 et la première version anglo-saxonne a été publiée en juin 1997. Je continuerais à la maintenir, mais cela déclinera lentement (mais pas complètement) en faveur de l'HOWTO IPv6 Linux que vous lisez en ce moment.</para></sect3><sect3>
<title>L'HOWTO IPv6 Linux (ce document)</title>
<para>Parce que l'<ulink url="http://www.bieringer.de/linux/IPv6/">HowTo - IPv6 & Linux</ulink> est écrit en HTML pur, il n'est vraiment pas compatible avec le <ulink url="http://www.tldp.org/">Projet de Documentation Linux</ulink> (<emphasis>Linux Documentation Project,</emphasis> ou TLDP). J'ai (<emphasis>Peter Bieringer</emphasis>) reçu une demande fin novembre 2001 de réécriture de l'<ulink url="http://www.bieringer.de/linux/IPv6/">HowTo -IPv6 & Linux</ulink> en SGML. Cependant, à cause de la discontinuité de cet HOWTO (<ulink url="http://www.bieringer.de/linux/IPv6/IPv6-HOWTO/IPv6-HOWTO-0.html#history">le future de l'HowTo - IPv6 & Linux</ulink>), et de la standardisation croissante d'IPv6, je décidais d'écrire un nouveau document couvrant aussi bien les questions simples ou avancées qui resteront importantes dans les toutes prochaines années. Plus dynamique, un contenu plus avancé s'y trouvera en plus, par rapport au second HOWTO (<ulink url="http://www.bieringer.de/linux/IPv6/">HowTo - IPv6 & Linux</ulink>).</para></sect3></sect2></sect1><sect1>
<title>Termes employés, glossaire et abréviations</title>
<sect2>
<title>Relatifs aux réseaux</title>
<variablelist>
<varlistentry><term>Base 10</term><listitem><para>Le système bien connu des nombres décimaux, représentant n'importe quelle valeur avec les chiffres 0-9.</para></listitem></varlistentry><varlistentry><term>Base 16</term><listitem><para>Habituellement utilisée dans les langages de programmation de bas et haut niveaux, connue encore en tant que système numérique hexadécimal, représentant les valeurs avec les chiffres 0-9 et les caractères A-F (insensible à la casse).</para></listitem></varlistentry><varlistentry><term>Base 85</term><listitem><para>Représentation d'une valeur grâce à 85 différents chiffres/caractères, cela permet des chaînes de caractères plus courtes mais jamais vue dans la pratique.</para></listitem></varlistentry><varlistentry><term>Bit</term><listitem><para>Unité minimale de stockage, allumée(<emphasis>on</emphasis>)/vraie (1) ou éteinte(<emphasis>off</emphasis>)/fausse (0).</para></listitem></varlistentry><varlistentry><term>Byte</term><listitem><para>Le plus souvent, une collection de 8 bits (mais ce n'est pas réellement une nécessité - regardez les systèmes des anciens ordinateurs).</para></listitem></varlistentry><varlistentry><term>Périphérique</term><listitem><para>ici, matériel de connexion réseau, voir aussi NIC.</para></listitem></varlistentry><varlistentry><term>Hôte à double résidence</term><listitem><para>Un hôte à double résidence est un noeud ayant deux interfaces réseau (physique ou virtuelle) sur deux liens différents, mais qui ne réalise pas de renvoi de paquets entre les interfaces.</para></listitem></varlistentry><varlistentry><term>Hôte</term><listitem><para>Généralement, un hôte simple résident, présent sur un lien. Normalement, il n'a seulement qu'une interface réseau active, par exemple Ethernet ou (non pas <emphasis>et</emphasis>) PPP.</para></listitem></varlistentry><varlistentry><term>Interface</term><listitem><para>quasi-synonyme de ”périphérique”, voir aussi NIC.</para></listitem></varlistentry><varlistentry><term>En-tête IP</term><listitem><para>En-tête d'un paquet IP (chaque paquet réseau a un en-tête, son type dépendant de la couche réseau).</para></listitem></varlistentry><varlistentry><term>Lien</term><listitem><para>Un lien est un médium de transport de paquet réseau de la couche 2, des exemples en sont Ethernet, PPP, SLIP, ATM, RNIS, Frame Relay, <emphasis>etc.</emphasis></para></listitem></varlistentry><varlistentry><term>Noeud</term><listitem><para>Un noeud est soit un hôte, soit un routeur.</para></listitem></varlistentry><varlistentry><term>Octet</term><listitem><para>Une collection véritable de 8 bits, aujourd'hui synonyme de "byte".</para></listitem></varlistentry><varlistentry><term>Port</term><listitem><para>Information destinée au distributeur TCP/UDP (couche 4) afin de transporter l'information à la couche supérieure.</para></listitem></varlistentry><varlistentry><term>Protocole</term><listitem><para>Chaque couche réseau contient la plupart du temps un champ ”protocole” facilitant la distribution de l'information transportée à la couche supérieure, comme cela peut se voir dans la couche 2 (MAC) et 3 (IP)</para></listitem></varlistentry><varlistentry><term>Routeur</term><listitem><para>Un routeur est un noeud possédant une ou plusieurs interface(s) réseau, capable d'envoyer les paquets entre ses interfaces.</para></listitem></varlistentry><varlistentry><term>Socket</term><listitem><para>Une socket IP est définie par ses adresses source et destination, ses ports et (association)</para></listitem></varlistentry><varlistentry><term>Pile</term><listitem><para>Une collection de couches relative au réseau.</para></listitem></varlistentry><varlistentry><term>Masque de sous-réseau</term><listitem><para>Les réseaux IP utilisent un masque de bits afin de distinguer le réseau local de ceux qui sont distants.</para></listitem></varlistentry><varlistentry><term>Tunnel</term><listitem><para>Un tunnel est typiquement une connexion point-à-point sur laquelle les paquets échangés transportent les données d'un autre protocole, un tunnel IPv6-in-IPv4 en est un exemple.</para></listitem></varlistentry></variablelist><sect3 id='Glossaire' >
<title><!-- anchor id="Glossaire" -->Abréviations</title>
<variablelist>
<varlistentry><term>ACL</term><listitem><para><emphasis>Access Control List</emphasis>, Liste de Contrôle d'Accès</para></listitem></varlistentry><varlistentry><term>API</term><listitem><para><emphasis>Application Programming Interface</emphasis>, Interface de Programmation d'Application</para></listitem></varlistentry><varlistentry><term>ASIC</term><listitem><para><emphasis>Application Specified Integrated Circuit</emphasis>, Circuit Intégré d'Application Spécifique</para></listitem></varlistentry><varlistentry><term>BSD</term><listitem><para><emphasis>Berkeley Software Distribution</emphasis>, Distribution des Logiciels Berkeley</para></listitem></varlistentry><varlistentry><term>Bus CAN</term><listitem><para>Système de bus physique contrôlant un réseau (<emphasis>NdT</emphasis>: voir par exemple <ulink url="http://edelaunay.chez.tiscali.fr/buscan.htm">ici</ulink> pour plus d'information)</para></listitem></varlistentry><varlistentry><term>ISP</term><listitem><para><emphasis>Internet Service Provider</emphasis>, Fournisseur d'Accès à Internet (FAI)</para></listitem></varlistentry><varlistentry><term>KAME</term><listitem><para>Projet - effort conjoint de six entreprises au Japon pour fournir, mondialement et dans le cadre du logiciel libre, une pile IPv6 et IPsec (pour IPv4 et IPv6) pour les variantes de BSD <ulink url="http://www.kame.net/">www.kame.net</ulink></para></listitem></varlistentry><varlistentry><term>LIR</term><listitem><para><emphasis>Local Internet Registry</emphasis>, Bureau local d'enregistrement Internet</para></listitem></varlistentry><varlistentry><term>NIC</term><listitem><para><emphasis>Network Interface Card</emphasis>, Carte d'interface réseau</para></listitem></varlistentry><varlistentry><term>RFC</term><listitem><para><emphasis>Request for comments</emphasis>, Appel à commentaires - jeu de notes techniques et organisationnelles au sujet d'Internet.</para></listitem></varlistentry><varlistentry><term>USAGI</term><listitem><para>Projet ”UniverSAl playGround for IPv6” - travaille à rendre disponible une pile protocolaire IPv6 destinée au système Linux qui soit d'une qualité apte à la production.</para></listitem></varlistentry></variablelist></sect3></sect2><sect2>
<title>Relatifs à ce document</title>
<sect3>
<title>Balisage en vue de l'encodage PDF/PS</title>
<para>Le caractère ”¬” est utilisé pour signaler que le code est enveloppé en vue d'un meilleur affichage dans les fichiers PDF et PS.</para></sect3><sect3>
<title>Conventions</title>
<para>Dans les exemples génériques vous trouverez parfois ce qui suit:</para><screen>
<![CDATA[<monadresseip>
]]></screen><para>Pour une utilisation réelle sur votre système, en ligne de commande ou dans des scripts, cela doit être remplacé par le contenu adéquate (ôtez bien sûr les chevrons), et le résultat devrait être par exemple</para><screen>
<![CDATA[1.2.3.4
]]></screen></sect3><sect3>
<title>Les commandes dans l'interpréteur de commandes (le<emphasis> shell</emphasis>)</title>
<para>Les commandes exécutables en tant qu'utilisateur non-root commencent avec un $, par exemple</para><screen>
<![CDATA[$ whoami
]]></screen><para>Les commandes exécutables en tant qu'utilisateur root commencent avec un #, par exemple</para><screen>
<![CDATA[# whoami
]]></screen></sect3></sect2></sect1><sect1>
<title>Pré-requis à l'usage de cet HOWTO</title>
<sect2>
<title>Pré-requis personnels</title>
<sect3>
<title>Une expérience des outils Unix</title>
<para>Vous devriez être familiarisé avec les outils essentiels d'Unix comme <emphasis>grep</emphasis>, <emphasis>awk</emphasis>, <emphasis>find</emphasis>, <emphasis>etc</emphasis>, et connaître les options de ligne de commande les plus communément employées.</para></sect3><sect3>
<title>Une expérience de la théorie des réseaux</title>
<para>Vous devriez connaître les notions de couche, de protocole, d'adresse, de câble, de socket, <emphasis>etc</emphasis>. Si vous êtes nouveau, voici un bon point de départ pour vous: <ulink url="http://www.linuxports.com/howto/intro_to_networking/">linuxports/howto/intro_to_networking</ulink></para></sect3><sect3>
<title>Une expérience de la configuration IPv4</title>
<para>Vous devriez absolument avoir quelque expérience de la configuration IPv4, sinon ce sera difficile pour vous de comprendre ce qui se passe réellement.</para></sect3><sect3>
<title>Une expérience du Système des Noms de Domaine (DNS)</title>
<para>Vous devriez aussi comprendre en quoi consiste le Système des Noms de Domaine (DNS), ce qu'il fournit et comment s'en servir.</para></sect3><sect3>
<title>Une expérience des stratégies de déboguage réseau</title>
<para>Vous devriez au moins savoir comment utiliser <emphasis>tcpdump</emphasis> et avoir connaissance de ce qu'il peut vous montrer. Sinon, le déboguage réseau sera très difficile pour vous.</para></sect3></sect2><sect2>
<title>Le matériel compatible avec le système d'exploitation Linux</title>
<para>Vous espérez certainement pouvoir expérimenter tout cela avec du vrai matériel, et pas seulement lire cet HOWTO jusqu'à tomber de sommeil. ;-7)</para></sect2></sect1></chapter><chapter id='chapter-basics' >
<title><!-- anchor id="chapter-basics" -->Les bases</title>
<sect1>
<title>Qu'est-ce qu'IPv6?</title>
<para>IPv6 est un nouveau protocole de la couche 3 (voir <ulink url="http://www.linuxports.com/howto/intro_to_networking/c4412.htm#PAGE103HTML">le modèle OSI</ulink>) qui supplantera à terme IPv4 (plus connu sous le nom d'IP). IPv4 a été conçu il y a déjà un certain de temps (<ulink url="http://www.faqs.org/rfcs/rfc760.html">RFC 760 / Le protocole Internet</ulink> à partir de janvier 1980), et, dès le début, il y a eu de nombreuses demandes pour accroître la quantité d'adresses disponible et augmenter les capacités. Le RFC le plus récent est le <ulink url="http://www.faqs.org/rfcs/rfc2460.html">RFC 2460 / spécification du protocole Internet version 6</ulink> (<emphasis>NdT</emphasis>: <ulink url="http://abcdrfc.free.fr/rfc-vf/rfc2460.html">une version francophone de ce RFC</ulink>). Le changement essentiel apporté par IPv6 est la nouvelle conception de l'en-tête, incluant une augmentation de la taille de l'adresse, passant de 32 à 128 bits. Parce que la couche 3 est responsable de bout en bout du transport des paquets dont le routage est basé sur des adresses, elle doit inclure les nouvelles adresses IPv6, comme pour IPv4.</para>
<para>Pour en savoir plus sur l'histoire d'IPv6, jetez un oeil aux anciens RFC concernant IPv6, par exemple dans le <ulink url="http://www.switch.ch/lan/ipv6/references.html">Guide / Références IPv6 SWITCH </ulink>.</para></sect1><sect1 id='basic-history-IPv6-Linux' >
<title><!-- anchor id="basic-history-IPv6-Linux" -->Historique d'IPv6 pour Linux</title>
<para>Les années 1992, 1993 et 1994 de l'histoire d'IPv6 (dans ses généralités) sont couvertes par le document suivant: <ulink url="http://www.laynetworks.com/IPv6.htm#CH3">IPv6 ou IPng (IP nouvelle génération)</ulink>.</para>
<para>A faire: plus de détails historiques, plus de contenu...</para><sect2>
<title>Au début</title>
<para>Le premier code réseau relatif à IPv6 a été ajouté au noyau Linux 2.1.8 en novembre 1996 par Pedro Roque. Il était fondé sur l'API BSD:</para><screen>
<![CDATA[diff -u --recursive --new-file v2.1.7/linux/include/linux/in6.h
¬ linux/include/linux/in6.h
--- v2.1.7/linux/include/linux/in6.h Thu Jan 1 02:00:00 1970
+++ linux/include/linux/in6.h Sun Nov 3 11:04:42 1996
@@ -0,0 +1,99 @@
+/*
+ * Types and definitions for AF_INET6
+ * Linux INET6 implementation
+ * + * Authors:
+ * Pedro Roque <******>
+ *
+ * Source:
+ * IPv6 Program Interfaces for BSD Systems
+ * <draft-ietf-ipngwg-bsd-api-05.txt>
]]></screen><para>Les lignes présentées sont copiées du patch-2.1.8 (l'adresse mél a été effacée au copier&coller).</para></sect2><sect2>
<title>Après</title>
<para>A cause du manque de bras, l'implémentation d'IPv6 dans le noyau était incapable de suivre les projets discutés ou les RFC nouvellement mis à jour. En novembre 2000, un projet débute au Japon, appelé <ulink url="http://www.linux-ipv6.org/">USAGI</ulink>, dont le but était d'implémenter dans Linux tout le support IPv6 manquant ou obsolète. Ce projet suit en cela la trace de l'implémentation courante d'IPv6 pour FreeBSD, réalisée par le <ulink url="http://www.kame.net/">projet KAME </ulink>. De temps à autre, ils créaient des archives de développement (<emphasis>snapshots</emphasis>) à partir des sources courantes du noyau Linux.</para></sect2><sect2>
<title>Actuellement</title>
<para>Malheureusement, le patch <ulink url="http://www.linux-ipv6.org/">USAGI</ulink> est très volumineux, à tel point que les personnes s'occupant actuellement de maintenir les fonctionnalités réseau de Linux sont incapables de l'inclure dans les sources, aptes à la production, de la série des noyaux Linux 2.4.x. En conséquence, la série 2.4.x manque de certaines (et même de nombreuses) extensions, et elle n'applique pas non plus les brouillons et RFC courants (voir <ulink url="http://www.ietf.org/html.charters/ipv6-charter.html">le groupe de travail IP Version 6 (ipv6)</ulink>). Cela peut poser des problèmes d'interopérabilité avec les autres systèmes d'exploitation.</para></sect2><sect2>
<title>A l'avenir</title>
<para><ulink url="http://www.linux-ipv6.org/">USAGI</ulink> fait maintenant usage de la série des noyaux de développement Linux 2.5.x afin d'incorporer toutes les extensions actuelles dans cette version de développement; dans l'espoir que la série des noyaux 2.6.x comprenne une véritable implémentation à jour d'IPv6.</para></sect2></sect1><sect1>
<title>A quoi ressemblent les adresses IPv6?</title>
<para>Comme cela a été mentionné précédemment, les adresses IPv6 ont une longueur de 128 bits. Ce nombre de bits génère de très grands nombres, dont la quantité de chiffres est supérieure à 39:</para><screen>
<![CDATA[2^128-1: 340282366920938463463374607431768211455
]]></screen><para>De tels nombres ne sont vraiment pas des adresses pouvant être mémorisées. L'adresse IPv6 en elle-même est faite à partir d'une collection de bits (comme pour IPv4, bien que cela soit rarement su). Il y a une meilleure notation pour de si grands nombres, qui est l'hexadécimal. En hexadécimal, 4 bits (mot aussi connu sous la dénomination de "nibble") sont représentés par un chiffre ou un caractère de 0-9 et a-f (10-15). Ce format réduit la longueur de l'adresse IPv6 à 32 caractères.</para><screen>
<![CDATA[2^128-1: 0xffffffffffffffffffffffffffffffff
]]></screen><para>Cette représentation est encore peu praticable (possibilité de confusion ou de perte d'un simple chiffre hexadécimal), c'est pourquoi les concepteurs d'IPv6 ont choisi un format hexadécimal scindé en blocs de 16 bits, avec comme séparateur le caractère ":". De plus, le préfixe "0x" (le marqueur des valeurs hexadécimales utilisé dans les langages de programmation) est ôté:</para><screen>
<![CDATA[2^128-1: ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
]]></screen><para>Une adresse utilisable (nous verrons les différents types d'adresse plus tard) est par exemple:</para><screen>
<![CDATA[3ffe:ffff:0100:f101:0210:a4ff:fee3:9566
]]></screen><para>Dans un but de simplification, les zéros non significatifs de chaque bloc de 16 bits sont omis:</para><screen>
<![CDATA[3ffe:ffff:0100:f101:0210:a4ff:fee3:9566 ->
¬ 3ffe:ffff:100:f101:210:a4ff:fee3:9566
]]></screen><para>Une séquence de blocs de 16 bits ne comprenant que des zéros peut être remplacée par “::“. Mais pas plus d'une fois par adresse, sinon il ne s'agirait plus d'une représentation unique. </para><screen>
<![CDATA[3ffe:ffff:100:f101:0:0:0:1 -> 3ffe:ffff:100:f101::1
]]></screen><para>La plus importante réduction qui peut être observée est celle de l'adresse localhost d'IPv6: </para><screen>
<![CDATA[0000:0000:0000:0000:0000:0000:0000:0001 -> ::1
]]></screen><para>Il existe aussi une représentation dite <emphasis>compacte</emphasis>, encodée en base85 (<ulink url="http://www.faqs.org/rfcs/rfc1924.html">RFC 1924 / A Compact Representation of IPv6 Addresses</ulink>, publié le 1er avril 1996), jamais vue véritablement employée, sans doute une blague de 1er avril; en voici cependant un exemple: </para><screen>
<![CDATA[# ipv6calc --addr_to_base85 3ffe:ffff:0100:f101:0210:a4ff:fee3:9566
Itu&-ZQ82s>J%s99FJXT
]]></screen><blockquote>
<para>Info: <emphasis>ipv6calc</emphasis> est un programme de formatage d'adresse IPv6 et de conversion pouvant être trouvé ici: <ulink url="http://www.deepspace6.net/projects/ipv6calc.html">ipv6calc</ulink> ( <ulink url="http://mirrors.bieringer.de/www.deepspace6.net/projects/ipv6calc.html">miroir</ulink> )</para>
</blockquote></sect1><sect1>
<title>FAQ (Les bases)</title>
<sect2>
<title>Pourquoi IPv6 et non pas IPv5 comme successeur d'IPv4?</title>
<para>Dans tout en-tête IP, les 4 premiers bits sont réservés à la version du protocole. C'est ainsi qu'un numéro de protocole entre 0 et 15 est théoriquement possible:</para><itemizedlist>
<listitem><para>4: est déjà pris pour IPv4</para></listitem><listitem><para>5: est réservé au protocole de flux (<emphasis>Stream Protocol</emphasis>, ou STP - <ulink url="http://www.faqs.org/rfcs/rfc1819.html">RFC 1819 / Internet Stream Protocol Version 2</ulink>) (qui n'a jamais véritablement conquis le public)</para></listitem></itemizedlist><para>Le prochain numéro libre était 6. Et voilà comment IPv6 était né!</para></sect2><sect2>
<title>L'adresse IPv6: pourquoi un tel nombre de bits?</title>
<para>Lors de la conception d'IPv4, les gens pensaient que 32 bits seraient suffisants pour le monde, dans sa globalité. Rétrospectivement, 32 bits ont été jusqu'à maintenant suffisants, et seront sans doute suffisants pour encore quelques années. Cependant, 32 bits seront insuffisants à fournir dans le futur une adresse globale à chaque périphérique réseau. Pensez aux téléphones mobiles, aux voitures (incluant les périphériques électroniques sur bus CAN), aux grille-pain, aux réfrigérateurs, aux interrupteurs d'éclairage, <emphasis>etc</emphasis>.</para>
<para>Les concepteurs ont alors choisi 128 bits, 4 fois plus en longueur et une quantité 2^96 fois plus importante qu'IPv4 aujourd'hui.</para>
<para>La quantité utilisable est cependant inférieure à ce qu'il semble. La raison en est que, dans le schéma d'adresse défini actuellement, 64 bits sont utilisés pour l'identifiant d'interface, les 64 autres bits sont utilisés pour le routage. Compte tenu des niveaux stricts actuels d'agrégation (/48, /32, ...), il est encore possible d'"épuiser" cette quantité, mais bien heureusement, pas dans un avenir proche.</para>
<para>Voir aussi pour plus d'information le <ulink url="http://www.faqs.org/rfcs/rfc1715.html">RFC 1715 / The H Ratio for Address Assignment Efficiency</ulink> et le <ulink url="http://www.faqs.org/rfcs/rfc3194.html">RFC 3194 / The Host-Density Ratio for Address Assignment Efficiency</ulink>.</para></sect2><sect2>
<title>L'adresse IPv6: pourquoi un si petit nombre de bits pour sa nouvelle conception?</title>
<para>Pendant ce temps, il y a (c'est possible) des gens sur Internet (je n'en connais qu'un, Jim Fleming...) qui pensent déjà à IPv8, et même jusqu'à IPv16, dont les conceptions sont loin d'être couramment reçues et implémentées. En attendant, 128 bits était le meilleur choix qui pouvait être fait au regard de l'en-tête placé au-dessus des données transportées. En considérant le minimum de la taille de l'Unité Maximale de Transfert (<emphasis>Maximum Transfer Uni</emphasis>t, ou MTU), la longueur de l'en-tête en IPv4 est de 20 octets (c'est le minimum, car elle peut monter à 60 octets avec les options IPv4), et en IPv6, elle est de 48 octets (longueur constante). C'est 3,4 % de la MTU en IPv4 et 3,8 % de la MTU en IPv6. Cela signifie que le surplus de taille dû à l'en-tête est quasiment le même. Plus de bits dans les adresses auraient réclamé un en-tête de plus grande taille, et par conséquent, un plus grand surplus. Et si l'on prend aussi en compte la MTU maximale sur un lien courant (tel Ethernet aujourd'hui): soit 1500 octets (dans des cas particuliers: 9 Ko pour de grosses trames). Finalement, cela n'aurait pas été d'une conception correcte si 10% ou 20% des données transférées dans un paquet de la couche 3 avaient été utilisés pour les adresses et non pas pour la charge utile.</para></sect2></sect1></chapter><chapter id='chapter-addresstypes' >
<title><!-- anchor id="chapter-addresstypes" -->Les types d'adresse IPv6</title>
<para>Comme pour IPv4, l'adresse IPv6 peut être scindée en une partie réseau et une partie hôte, par l'usage d'un masque de sous-réseau.</para>
<para>IPv4 a montré que parfois cela serait bien si plus d'une adresse IP pouvaient être assignées à une interface, chacune à un but bien précis (alias, multi-cast). Afin de demeurer ouvert à l'avenir, IPv6 offre davantage en permettant à plus d'une adresse IPv6 d'être assignées à une interface. Il n'y a actuellement aucune limite définie par aucun RFC, mais seulement par l'implémentation de la pile IPv6 (afin de prévenir les attaques DoS).</para>
<para>Pour employer le grand nombre de bits constitutifs de son adresse, IPv6 définit des types d'adresse basés sur certains regroupements de ces bits, qui, avec un peu de chance, ne devraient pas être modifiés à l'avenir (à la différence d'aujourd'hui avec IPv4, et l'histoire des classes A, B et C).
</para>
<para>C'est ainsi que la totalité des bits est divisée en une partie réseau (les 64 supérieurs) et en une partie hôte (les 64 inférieurs), afin de faciliter l'auto-configuration.</para><sect1>
<title>Les adresses sans préfixe spécial</title>
<sect2>
<title>L'adresse localhost</title>
<para>C'est une adresse spéciale pour l'interface de bouclage (<emphasis>loopback</emphasis>), similaire à IPv4 avec sa "127.0.0.1".</para><screen>
<![CDATA[0000:0000:0000:0000:0000:0000:0000:0001
]]></screen><para>ou compressée:</para><screen>
<![CDATA[::1
]]></screen><para>Les paquets ayant cette adresse comme source ou destination ne devraient jamais quittés l'hôte émetteur.</para></sect2><sect2>
<title>L'adresse non spécifiée</title>
<para>C'est une adresse spéciale telle que ”n'importe laquelle” (”any”) ou ”0.0.0.0” en IPv4 . Il s'agit pour IPv6 de:</para><screen>
<![CDATA[0000:0000:0000:0000:0000:0000:0000:0000
]]></screen><para>ou:</para><screen>
<![CDATA[::
]]></screen><para>Ces adresses sont essentiellement utilisées/vues dans les sockets d'écoute (à toute adresse IPv6) ou dans les tables de routage.</para>
<para>Note: l'adresse non spécifiée ne peut pas être utilisée comme adresse de destination.</para></sect2><sect2>
<title>L'adresse IPv6 avec adresse IPv4 intégrée</title>
<para>Il y a deux types d'adresse contenant une adresse IPv4</para><sect3>
<title>L'adresse IPv6 mappée IPv4</title>
<para>Les adresses IPv6 compatibles seulement avec IPv4 sont parfois utilisées/vues pour la création de socket par un démon disposant d'IPv6, mais à l'écoute d'une adresse IPv4.</para>
<para>Ces adresses sont définies par un préfixe spécial d'une longueur de 96 (a.b.c.d est l'adresse IPv4):</para><screen>
<![CDATA[0:0:0:0:0:ffff:a.b.c.d/96
]]></screen><para>ou en format compressé:</para><screen>
<![CDATA[::ffff:a.b.c.d/96
]]></screen><para>Par exemple, l'adresse IPv4 1.2.3.4 ressemble à ceci:</para><screen>
<![CDATA[::ffff:1.2.3.4
]]></screen></sect3><sect3>
<title>L'adresse IPv6 compatible IPv4</title>
<para>Utilisée pour le tunnelage automatique (<ulink url="http://www.faqs.org/rfcs/rfc2893.html">RFC 2893 / Transition Mechanisms for IPv6 Hosts and Routers</ulink>), en cours de remplacement par <link linkend="tunneling-6to4.">le tunnelage 6to4</link>.</para><screen>
<![CDATA[0:0:0:0:0:0:a.b.c.d/96
]]></screen><para>ou en format compressé:</para><screen>
<![CDATA[::a.b.c.d/96
]]></screen></sect3></sect2></sect1><sect1>
<title>La partie réseau, aussi appelée préfixe</title>
<para>Les concepteurs ont défini certains types d'adresse et laissé un vaste champ libre à de futures définitions, telles que l'émergence de nouvelles exigences encore aujourd'hui inconnues. L'architecture d'adressage IPv6 (<ulink url="http://www.faqs.org/rfcs/rfc2373.html">RFC 2373 de juillet 1998</ulink>) définit le schéma d'adressage actuel, mais il y a déjà un nouveau brouillon disponible: <ulink url="ftp://ftp.ietf.org/internet-drafts/">draft-ietf-ipngwg-addr-arch-*.txt</ulink>.
</para>
<para>Jetons maintenant un coup d'oeil aux différents types de préfixe (et par conséquent aux différents types d'adresse IPv6):</para><sect2>
<title>Le type d'adresse lien-local</title>
<para>Ce sont des adresses particulières qui n'auront de validité que sur le lien d'une interface. En utilisant cette adresse comme adresse de destination le paquet ne devrait jamais franchir un routeur. C'est utile pour des communications sur un lien telles que:</para><itemizedlist>
<listitem><para>Y a-t-il quelqu'un d'autre sur ce lien?</para></listitem><listitem><para>Y a-t-il quelqu'un d'autre sur ce lien ayant une adresse spéciale (on cherche par exemple à détecter la présence d'un routeur)?</para></listitem></itemizedlist><para>Elles commencent par (où <emphasis>”x”</emphasis> est n'importe quel caractère hexadécimal, couramment <emphasis>”0</emphasis>”)</para><screen>
<![CDATA[fe8x: <- actuellement le seul en usage.
fe9x:
feax:
febx:
]]></screen><para>Ce type d'adresse se trouve sur chaque interface disposant d'IPv6 après une auto-configuration sans état (ce qui est couramment le cas).</para></sect2><sect2>
<title>Le type d'adresse site-local</title>
<para>Ces adresses sont similaires à ce que le RFC 1918 (<ulink url="http://www.faqs.org/rfcs/rfc1918.html">RFC 1918 / Address Allocation for Private Internets</ulink>) définit aujourd'hui pour IPv4, avec en plus l'avantage que celui qui utilise ce type d'adresse a la capacité d'utiliser les 16 bits fournis pour un maximum de 65536 sous-réseaux. Comparable au 10.0.0.0/8 aujourd'hui en IPv4.</para>
<para>Autre avantage: parce qu'il est possible avec IPv6 d'assigner plus d'une seule adresse par interface, vous pouvez assigner une telle adresse site-local en plus de l'adresse globale.</para>
<para>Il commence par: </para><screen>
<![CDATA[fecx: <- le plus couramment utilisé.
fedx:
feex:
fefx:
]]></screen><para>(où <emphasis>”x”</emphasis> est n'importe quel caractère hexadécimal, couramment <emphasis>”0</emphasis>”)</para>
<para>Notez que des discussions sont en cours concernant la dépréciation de ce type d'adresse en raison de nombreux problèmes. Pour en savoir plus, lire: <ulink url="http://www.ietf.org/internet-drafts/">draft-ietf-ipv6-deprecate-site-local-XY.txt</ulink>.</para>
<para>Pour des tests en laboratoire, de telles adresses restent un bon choix, à mon humble avis.</para></sect2><sect2>
<title>Le type d'adresse ”unicast globale (agrégeable) "</title>
<para>Aujourd'hui, il y a un type d'adresse globale de défini (la première conception, appelée ”basée sur le fournisseur” a été abandonnée il y a déjà quelques années (<ulink url="http://www.faqs.org/rfcs/rfc1884.html">RFC 1884 / IP Version 6 Addressing Architecture [obsolete]</ulink>), vous en trouverez des traces dans des sources anciennes du noyau Linux).</para>
<para>Il commence par (les <emphasis>x</emphasis> étant des caractères hexadécimaux)</para><screen>
<![CDATA[2xxx:
3xxx:
]]></screen><para>Note: la dénomination ”agrégeable” est abandonnée dans les brouillons actuels.
Il y a quelques sous-types définis en plus, ci-dessous:</para><sect3>
<title>Les adresses de test 6bone</title>
<para>Elles ont été les premières adresses globales à être définies et mises en usage. Elles commencent toutes par</para><screen>
<![CDATA[3ffe:
]]></screen><para>Exemple:</para><screen>
<![CDATA[3ffe:ffff:100:f102::1
]]></screen><para>Une adresse spéciale de test 6bone, qui ne sera jamais globalement unique, commence par</para><screen>
<![CDATA[3ffe:ffff:
]]></screen><para>Et elle est la plupart du temps montrée dans les exemples passés, car si des adresses réelles sont montrées, il est possible à quelqu'un de les copier/coller dans ses propres fichiers de configuration. Ce type d'inadvertance cause des duplications d'adresse globalement unique. Cela pose de graves problèmes à l'hôte d'origine (par exemple recevoir des paquets en réponse de requêtes qu'il n'a pas émises).
Parce qu'IPv6 est maintenant en production, ce préfixe ne sera plus délégué et probablement retiré du routage après 6 juin 2006 (voir<ulink url="http://www.faqs.org/rfcs/rfc3701.html">RFC 3701 / 6bone Phaseout</ulink>pour plus d'information).</para></sect3><sect3>
<title>Les adresses 6to4</title>
<para>Ce type d'adresse, conçu pour un mécanisme précis de tunnelage (<ulink url="http://www.faqs.org/rfcs/rfc3056.html">RFC 3056 / Connection of IPv6 Domains via IPv4 Clouds</ulink> et <ulink url="http://www.faqs.org/rfcs/rfc2893.html">RFC 2893 / Transition Mechanisms for IPv6 Hosts and Routers</ulink>), encode une adresse IPv4 donnée et un sous-réseau possible. Il commence par</para><screen>
<![CDATA[2002:
]]></screen><para>Par exemple, pour représenter 192.168.1.1/5:</para><screen>
<![CDATA[2002:c0a8:0101:5::1
]]></screen><para>Une petite ligne de commande peut vous aider à générer une telle adresse à partir d'une adresse IPv4 donnée:</para><screen>
<![CDATA[ipv4="1.2.3.4"; sla="5"; printf "2002:%02x%02x:%02x%02x:%04x::1" `echo $ipv4
¬ | tr "." " "` $sla
]]></screen><para>Voir aussi <link linkend="tunneling-6to4.">le tunnelage utilisant 6to4</link> et <link linkend="information-joinipv6-6to4-tunneling">information concernant le relayage de 6to4 par les routeurs</link>.</para></sect3><sect3>
<title>Les adresses assignées par un fournisseur dans la hiérarchie de routage</title>
<para>Ces adresses sont déléguées aux Fournisseurs d'Accès à Internet (FAI) et commencent par</para><screen>
<![CDATA[2001:
]]></screen><para>Les préfixes fournis aux FAI (aussi connus en tant que LIR) les plus importants (propriétaires de backbone) sont délégués par les <link linkend="information-majorregionregistries">centres locaux d'enregistrement</link> (<emphasis>local registries</emphasis>) et ils possèdent actuellement un préfixe d'une longueur de 32.</para>
<para>Tout client peut obtenir de son FAI un préfixe d'une longueur de 48.</para></sect3><sect3>
<title>Adresses réservées aux exemples et à la documentation</title>
<para>Actuellement, deux blocs d'adresses sont réservés aux exemples et à la documentation:</para><screen>
<![CDATA[3ffe:ffff::/32
2001:0DB8::/32 EXAMPLENET-WF
]]></screen><para>Ces blocs d'adresses devraient être filtrés sur la base des adresses source et, si possible, NE devraient PAS être acheminés par les routeurs en bordure d'Internet vers ce dernier.</para></sect3></sect2><sect2>
<title>Les adresses multicast </title>
<para>Les adresses multicast sont utilisées pour les services y afférents.</para>
<para>Elles commencent par (xx est la valeur de la portée)</para><screen>
<![CDATA[ffxy:
]]></screen><para>Elles se répartissent en différentes portées et types:</para><sect3>
<title>La portée multicast</title>
<para>La portée multicast est un paramètre spécifiant la distance maximale qu'un paquet multicast peut prendre vis-à-vis de son entité émettrice.</para>
<para>Actuellement, les régions suivantes (portées) sont définies:</para><itemizedlist>
<listitem><para>ffx1: noeud-local, ces paquets ne quittent jamais le noeud.</para></listitem><listitem><para>ffx2: lien-local, ces paquets ne sont jamais transmis par les routeurs, ils ne quittent par conséquent jamais le lien spécifié.</para></listitem><listitem><para>ffx5: site-local, ces paquets ne quittent jamais le site.</para></listitem><listitem><para>ffx8: organisation-locale, ces paquets ne quittent jamais l'organisation (pas si simple à implémenter, cela doit être par le protocole de routage).</para></listitem><listitem><para>ffxe: portée globale.</para></listitem><listitem><para>les autres sont réservées.</para></listitem></itemizedlist></sect3><sect3>
<title>Les types multicast</title>
<para>Il y a déjà de nombreux types définis/réservés (voir le <ulink url="http://www.faqs.org/rfcs/rfc2373.html">RFC 2373 / IP Version 6 Addressing Architecture</ulink> pour les détails). Quelques exemples en sont:</para><itemizedlist>
<listitem><para>Adresse de tous les noeuds: ID = 1h, correspond aux adresses de tous les hôtes présents sur le noeud local (ff01:0:0:0:0:0:0:1) ou au lien connecté (ff02:0:0:0:0:0:0:1).</para></listitem><listitem><para>Adresse de tous les routeurs: ID = 2h, correspond aux adresses de tous les routeurs présents sur le noeud local (ff01:0:0:0:0:0:0:2), sur le lien connecté (ff02:0:0:0:0:0:0:2), ou encore sur le site local (ff05:0:0:0:0:0:0:2).</para></listitem></itemizedlist></sect3><sect3>
<title>L'adresse multicast de sollicitation du lien-local</title>
<para>Adresse multicast spéciale utilisée comme adresse de destination dans la découverte de voisinage, car à la différence d'IPv4, ARP n'existe plus dans IPv6.</para>
<para>Un exemple de cette adresse ressemble à ceci</para><screen>
<![CDATA[ff02::1:ff00:1234
]]></screen><para>Le préfixe utilisé montre qu'il s'agit d'une adresse multicast lien-local. Le suffixe est généré à partir de l'adresse de destination. Dans cet exemple, un paquet devrait être envoyé à l'adresse “fe80::1234”, mais la pile réseau ne connaît pas l'actuelle adresse MAC de la couche 2. Elle remplace les 104 bits supérieurs par “ff02:0:0:0:0:1:ff00::/104” et laisse les 24 bits inférieurs inchangés. Cette adresse est maintenant utilisée 'sur le lien' afin de trouver le noeud correspondant, lequel va devoir émettre une réponse contenant son adresse MAC de couche 2.</para></sect3></sect2><sect2>
<title>Les adresses anycast</title>
<para>Les adresses anycast sont des adresses spéciales utilisées pour couvrir des besoins tels que déterminer le serveur DNS le plus proche, le serveur DHCP le plus proche, ou tout groupe dynamique similaire. Les adresses sont prises dans l'espace d'adressage unicast (agrégeable ou site-local pour le moment). Le mécanisme anycast (au regard du client) sera pris en compte par un protocole de routage dynamique.</para>
<para>Note: Les adresses anycast ne peuvent être utilisées comme adresse source, elles sont utilisables uniquement comme adresse de destination.</para><sect3>
<title>L'adresse anycast de routeur de sous-réseau</title>
<para>Un simple exemple d'une adresse anycast est celle d'un routeur de sous-réseau. Soit un noeud avec l'adresse IPv6 suivante assignée:</para><screen>
<![CDATA[3ffe:ffff:100:f101:210:a4ff:fee3:9566/64 <- L'adresse du noeud
]]></screen><para>L'adresse anycast de routeur de sous-réseau sera créée en laissant totalement blanc le suffixe (les 64 bits inférieurs):</para><screen>
<![CDATA[3ffe:ffff:100:f101::/64 <- l'adresse anycast de routeur de sous-réseau
]]></screen></sect3></sect2></sect1><sect1>
<title>Les types d'adresse (partie hôte)</title>
<para>En ce qui concerne les questions d'auto-configuration et de mobilité, Il a été décidé d'utiliser les 64 bits inférieurs de la partie hôte de l'adresse pour la plupart des types d'adresse actuels. Conséquemment, chaque sous-réseau détient une grande quantité d'adresses. </para>
<para>Cette partie hôte peut être différemment considérée: </para><sect2>
<title>L'adresse calculée automatiquement (dite aussi ”sans état”)</title>
<para>Avec l'auto-configuration, la partie hôte de l'adresse est calculée en convertissant l'adresse MAC d'une interface (si disponible), avec la méthode EUI-64, en une adresse IPv6 unique. Si aucune adresse MAC n'est disponible pour le périphérique en question (ce qui arrive par exemple sur les périphériques virtuels), quelque chose d'autre (comme l'adresse IPv4 ou l'adresse MAC d'une interface physique) est utilisée à la place.
</para>
<para>Considérons à nouveau le premier exemple:</para><screen>
<![CDATA[3ffe:ffff:100:f101:210:a4ff:fee3:9566
]]></screen><para>ici, </para><screen>
<![CDATA[210:a4ff:fee3:9566
]]></screen><para>est la partie hôte calculée à partir de l'adresse MAC de la NIC</para><screen>
<![CDATA[00:10:A4:E3:95:66
]]></screen><para>en utilisant <ulink url="http://standards.ieee.org/regauth/oui/tutorials/EUI64.html">IEEE EUI-64</ulink> conçue pour les identifiants EUI-48.</para><sect3>
<title>Le problème d'incursion possible dans la sphère privée (<emphasis>privacy problem</emphasis>) avec les adresses automatiquement calculées, et une solution</title>
<para>Parce que la partie hôte "automatiquement calculée” est globalement unique (sauf lorsqu'un fabriquant de NIC utilise la même adresse MAC sur plus d'une NIC), la traque grâce à un client (<emphasis>client tracking</emphasis>) est possible sur l'hôte, dès lors qu'aucun proxy d'aucune sorte n'est utilisé.</para>
<para>C'est un problème connu, et une solution a été apportée: l'extension ”sphère privée”, définie dans le RFC 3041 (<ulink url="http://www.faqs.org/rfcs/rfc3041.html">RFC 3041 / Privacy Extensions for Stateless Address</ulink>; il y a déjà aussi un brouillon plus récent disponible: <ulink url="ftp://ftp.ietf.org/internet-drafts/">draft-ietf-ipngwg-temp-addresses-*.txt</ulink>). Le principe est d'utiliser une valeur aléatoire et une valeur statique à partir desquelles un nouveau suffixe est généré à intervalle régulier. Note: ce n'est raisonnable que pour des connexions client sortantes, et n'est pas vraiment utile pour des machines réputées être des serveurs.</para></sect3></sect2><sect2>
<title>La configuration manuelle</title>
<para>Pour les serveurs, il est probablement plus aisé de se rappeler d'adresses plus simples; cela peut aussi se faire. Il est possible d'assigner une adresse IPv6 additionnelle à une interface, par exemple</para><screen>
<![CDATA[3ffe:ffff:100:f101::1
]]></screen><para>Pour les suffixes tels que ”::1”, montré dans l'exemple ci-dessus, il est requis que le septième bit le plus significatif soit positionné à 0 (le bit universel/local d'un identifiant automatiquement généré). Certaines autres (à part celles qui n'ont pas étaient choisies) combinaisons de bits sont réservées aux adresses anycast.</para></sect2></sect1><sect1>
<title>La longueur de préfixe nécessaire au routage</title>
<para>Dans les premières phases de la conception, il était prévu d'utiliser une approche intégrale de routage hiérarchique, et ce, afin de réduire au maximum la taille des tables de routage. A la base du raisonnement sous-tendu par cette approche, il y a la prise en compte du nombre grandissant des entrées de routage IPv4 au coeur des routeurs (supérieur à 104 000 en mai 2001), la nécessité de réduire ce nombre afin de diminuer le besoin en mémoire du matériel (piloté par Circuit Intégré d'Application Spécifique, <emphasis>Application Specified Integrated Circuit</emphasis>, ou ASIC) maintenant les tables de routage, et, en conséquence, d'accroître la vitesse (dans l'espoir que moins d'entrées génèrent des recherches plus rapides).
</para>
<para>Aujourd'hui, le point de vue est que le routage sera conçu quasi-hiérarchiquement pour les réseaux ayant seulement un fournisseur de service. Pour plus d'une connexion à un ISP, ce n'est pas possible, et cela relève du problème de la multi-résidence (des informations sur la multi-résidence:<ulink url="http://www.ietf.org/internet-drafts/">drafts*multi6*</ulink><ulink url="http://arneill-py.sacramento.ca.us/ipv6mh/"> IPv6 Multihoming Solutions</ulink></para><sect2>
<title>La longueur du préfixe (aussi connue en tant que "masque de réseau")</title>
<para>Comme pour IPv4, la notion de chemin de réseau routable nécessaire au routage a ici sa place. Parce que la notation standard d'un masque réseau n'est pas très agréable pour un adressage sur 128 bits, les concepteurs ont employé le schéma du Routage Inter-Domaines IPv4 Sans Classe (<emphasis>IPv4 Classless Inter Domain Routing</emphasis>, ou CIDR, défini dans le <ulink url="http://www.faqs.org/rfcs/rfc1519.html"> RFC 1519 / Classless Inter-Domain Routing</ulink>), dans lequel est spécifié le nombre de bits de l'adresse devant être utilisé pour le routage. Il est aussi connu comme notation ”slash”.</para>
<para>Un exemple: </para><screen>
<![CDATA[3ffe:ffff:100:1:2:3:4:5/48
]]></screen><para>De cette notation seront extraits:</para><itemizedlist>
<listitem><para>le réseau: </para></listitem></itemizedlist><screen>
<![CDATA[3ffe:ffff:0100:0000:0000:0000:0000:0000
]]></screen><itemizedlist>
<listitem><para>le masque de réseau: </para></listitem></itemizedlist><screen>
<![CDATA[ffff:ffff:ffff:0000:0000:0000:0000:0000
]]></screen></sect2><sect2>
<title>La correspondance à une route</title>
<para>Dans des conditions normales (<emphasis>i.e.</emphasis> sans QoS), de la recherche dans une table de routage résulte la route ayant le plus grand nombre de bits d'adresse significatifs; autrement dit, la route avec le plus grand préfixe correspond la première.</para>
<para>Par exemple, si une table de routage affiche les entrées suivantes (la liste est incomplète):</para><screen>
<![CDATA[3ffe:ffff:100::/48 :: U 1 0 0 sit1
2000::/3 ::192.88.99.1 UG 1 0 0 tun6to4
]]></screen><para>Ci-dessous, les adresses de destination des paquets IPv6 dont le trafic sera routé au travers du périphérique désigné</para><screen>
<![CDATA[3ffe:ffff:100:1:2:3:4:5/48 -> trafic routé au travers du périphérique sit1
3ffe:ffff:200:1:2:3:4:5/48 -> trafic routé au travers du périphérique tun6to4
]]></screen></sect2></sect1></chapter><chapter id='chapter-systemcheck' >
<title><!-- anchor id="chapter-systemcheck" -->La vérification d'un système prêt pour IPv6 </title>
<para>Avant de commencer à utiliser IPv6 sur votre hôte Linux, vous avez à tester si votre système est prêt pour IPv6. Pour ce faire, vous aurez peut-être d'abord un peu de travail.</para><sect1 id='systemcheck-kernel' >
<title><!-- anchor id="systemcheck-kernel" -->Un noyau prêt pour IPv6</title>
<para>Les distributions contemporaines de Linux comportent déjà un noyau prêt pour IPv6, les capacités IPv6 sont en général compilées dans un module, mais il est possible que ce module ne soit pas chargé automatiquement au démarrage.</para>
<para>Voir la page <ulink url="http://www.bieringer.de/linux/IPv6/status/IPv6+Linux-status-distributions.html">IPv6+Linux-status-distributions</ulink> pour obtenir les informations les plus à jour.</para>
<para>Note: vous ne devriez plus utiliser les noyaux de la série 2.2.x; car ils ne sont pas assez à jour vis-à-vis d'IPv6.</para><sect2>
<title>Vérifier la présence du support IPv6 dans le noyau actuellement en cours d'utilisation</title>
<para>Afin de vérifier si oui ou non votre actuel noyau supporte IPv6, jetez un coup d'oeil dans votre système de fichiers /proc. Les entrées qui suivent doivent être présentes:</para><screen>
<![CDATA[/proc/net/if_inet6
]]></screen><para>Un bref test automatique ressemble à:</para><screen>
<![CDATA[# test -f /proc/net/if_inet6 && echo "Running kernel is IPv6 ready"
]]></screen><para>Si cela échoue, cela peut être parce que le module IPv6 n'est pas chargé.</para></sect2><sect2>
<title>Essayer de charger le module IPv6</title>
<para>Vous pouvez tenter de charger le module IPv6 en exécutant</para><screen>
<![CDATA[# modprobe ipv6
]]></screen><para>Si c'est un succès, la présence de ce module sera testée comme par magie par la ligne suivante:</para><screen>
<![CDATA[# lsmod |grep -w 'ipv6' && echo "IPv6 module successfully loaded"
]]></screen><para>Et la vérification montrée plus haut devrait maintenant se faire elle aussi avec succès.</para>
<para>Note: enlever le module n'est actuellement pas supporté et peut aboutir, sous certaines conditions, au <emphasis>crash</emphasis> du noyau.</para><sect3>
<title>Le chargement automatique du module</title>
<para>Il est possible d'automatiser le chargement du module IPv6 à la demande. Vous avez juste à ajouter les lignes qui suivent dans le fichier de configuration du chargeur de modules du noyau (normalement /etc/modules.conf ou /etc/conf.modules):</para><screen>
<![CDATA[alias net-pf-10 ipv6 # chargement automatique du module IPv6 à la demande
]]></screen><para>Il est aussi possible de mettre hors service le chargement automatique du module IPv6 en utilisant la ligne suivante</para><screen>
<![CDATA[alias net-pf-10 off # rend indisponible le chargement automatique du module IPv6
]]></screen><para>Note additionnelle: pour les noyaux de la série 2.6,le mécanisme du chargeur de modules a été repensé. Le nouveau fichier de configuration s'appellera /etc/modprobe.conf au lieu de /etc/modules.conf. Pour de plus amples détails voir <ulink url="http://his.luky.org/ftp/mirrors/linux/kernel/people/rusty/modules/">le module-init-tool</ulink>
</para><itemizedlist>
<listitem><para>Compiler un noyau à partir des seules sources brutes (facile, si vous connaissez les options dont vous avez besoin)</para></listitem><listitem><para>Recompiler les sources du noyau fournies par votre distribution Linux (parfois, ce n'est si simple que ça)</para></listitem><listitem><para>Compiler un noyau avec l'extension USAGI</para></listitem></itemizedlist><para>Si vous vous décidez à compiler un noyau, vous devriez avoir une certaine expérience dans la compilation de noyau et lire l'<ulink url="http://www.tldp.org/HOWTO/Kernel-HOWTO.html">HOWTO sur le noyau Linux</ulink>.</para>
<para>La comparaison pratiquement la plus à jour entre un noyau original et un noyau comprenant USAGI est disponible dans <ulink url="http://www.bieringer.de/linux/IPv6/status/IPv6+Linux-status-kernel.html">IPv6+Linux-status-kernel</ulink>.</para></sect3><sect3>
<title>Compiler un noyau uniquement à partir des sources originales (vanille)</title>
<para>Plus d'éléments concernant la compilation d'un noyau disposant d'IPv6 peuvent par exemple être trouvés dans <ulink url="http://www.bieringer.de/linux/IPv6/IPv6-HOWTO/IPv6-HOWTO-2.html#kernel">IPv6-HOWTO-2#kernel</ulink>.</para>
<para>Note: vous devriez autant que possible utiliser les noyaux de la série 2.6.x ou supérieures,car le support IPv6 de la série 2.4.x n'obtiendra qu'un portage partielet celui de la série 2.2.x est désespérément obsolète.).</para></sect3><sect3>
<title>Compiler un noyau avec l'extension USAGI</title>
<para>Comme pour le noyau vanille, seulement recommandé aux utilisateurs avancés, déjà familiarisés avec IPv6 et la compilation noyau. Voir aussi <ulink url="http://www.linux-ipv6.org/faq.html">la FAQ du projet USAGI</ulink> et <ulink url="http://www.deepspace6.net/docs/best_ipv6_support.html">comment obtenir le meilleur support IPv6 avec Linux (article)</ulink> (<ulink url="http://mirrors.bieringer.de/www.deepspace6.net/docs/best_ipv6_support.html">miroir</ulink>).</para></sect3></sect2><sect2>
<title>Les périphériques réseau prêts pour IPv6</title>
<para>Les périphériques réseau n'ont pas tous déjà (ou n'auront jamais, pour certains) la capacité de transporter des paquets IPv6. L'état actuel de la situation quant à ce sujet peut être trouvé <ulink url="http://www.bieringer.de/linux/IPv6/status/IPv6+Linux-status-kernel.html#transport">ici</ulink>.</para>
<para>A cause de l'implémentation de la structure de la couche réseau du noyau, un problème majeur est qu'un paquet IPv6 n'est pas réellement reconnu par son numéro d'en-tête IP (6 au lieu de 4). Il est reconnu par le numéro de protocole de la couche transport 2. En conséquence, tout protocole n'utilisant pas un tel numéro de protocole ne peut pas distribuer les paquets IPv6. Note: le paquet est bien encore transporté sur le lien, mais, côté récepteur, la distribution ne fonctionne pas (vous pouvez observer cela par exemple avec tcpdump).</para><sect3>
<title>Actuellement connus pour ne jamais être ”capables de lien IPv6”</title>
<itemizedlist>
<listitem><para>IP sur Ligne Série (<emphasis>Serial Line IP</emphasis>, SLIP, <ulink url="http://www.faqs.org/rfcs/rfc1055.html">RFC 1055 / SLIP</ulink>), serait aujourd'hui mieux dénommé SLIPv4, noms de périphérique: slX</para></listitem><listitem><para>IP sur Ligne Parallèle, comme pour SLIP, noms de périphérique: plipX</para></listitem><listitem><para>RNIS avec encapsulation <emphasis>rawip</emphasis>, noms de périphérique: isdnX</para></listitem></itemizedlist></sect3><sect3>
<title>Actuellement connu pour ne pas être ”capable de lien IPv6”</title>
<itemizedlist>
<listitem><para>RNIS avec encapsulation <emphasis>syncppp</emphasis>, noms de périphérique: ipppX (au sujet de la conception de ipppd, il fusionnera dans une couche PPP plus abstraite dans la série des noyaux 2.5.x)</para></listitem></itemizedlist></sect3></sect2></sect1><sect1>
<title>Les outils de configuration réseau prêts pour IPv6</title>
<para>Vous n'irez pas loin si vous faites tourner un noyau prêt pour IPv6 mais sans avoir d'outils pour configurer IPv6. Il existe plusieurs paquetages pouvant servir à cette tâche.</para><sect2>
<title>Le paquetage net-tools</title>
<para>Le paquetage net-tools inclut certains outils tels que ifconfig et route qui vous aideront à configurer IPv6 sur une interface. Regardez la sortie d'ifconfig? ou celle de route?, et si vous y voyez quelque chose comme IPv6, ou inet6, c'est que l'outil est prêt pour IPv6.</para>
<para>Vérification magique:</para><screen>
<![CDATA[# /sbin/ifconfig -? 2>& 1 | grep -qw 'inet6' && echo "utility 'ifconfig' is
¬ IPv6-ready"
]]></screen><para>La même vérification peut être réalisée pour route:</para><screen>
<![CDATA[# /sbin/route -? 2>& 1 | grep -qw 'inet6' && echo "utility 'route' is IPv6-ready"
]]></screen></sect2><sect2>
<title>Le paquetage iproute</title>
<para>Alexey N. Kuznetsov (actuellement la personne qui maintient le code réseau de Linux) a créé un jeu d'outils qui configure le réseau à travers le périphérique netlink. Vous aurez plus de fonctionnalités en utilisant ce jeu d'outils que n'en fournit net-tools, mais il n'est pas très bien documenté et n'est pas vraiment fait pour les êtres pusillanimes.</para><screen>
<![CDATA[# /sbin/ip 2>&1 | grep -qw 'inet6' && echo "utility 'ip' is IPv6-ready"
]]></screen><para>Si le programme /sbin/ip n'est pas trouvé, je vous recommande alors d'installer le paquetage iproute.</para><itemizedlist>
<listitem><para>Vous pouvez le récupérer à partir de votre distribution Linux (s'il s'y trouve)</para></listitem><listitem><para>Vous pouvez télécharger l'archive tar et recompiler: <ulink url="ftp://ftp.inr.ac.ru/ip-routing/">sources sur le FTP d'origine</ulink> et miroir (manquant)</para></listitem><listitem><para>Vous pouvez rechercher le bon paquetage RPM ici, <ulink url="http://rpmfind.net/linux/rpm2html/search.php?query=iproute">RPMfind pour iproute</ulink> (parfois la reconstruction d'un paquetage SRPM est recommandée)</para></listitem></itemizedlist></sect2></sect1><sect1>
<title>Les programmes de test/déboguage prêts pour IPv6</title>
<para>Après avoir préparé votre système pour IPv6, vous voudrez établir des communications en utilisant IPv6. Vous devriez d'abord apprendre comment examiner les paquets IPv6 avec un programme dit ”renifleur” (un <emphasis>sniffer</emphasis>). Cela est fortement conseillé, car cela peut aider à fournir très rapidement un diagnostic en cas de déboguage/dépannage.</para><sect2 id='program-ping6.' >
<title><!-- anchor id="program-ping6." --> ping IPv6</title>
<para>Ce programme est normalement inclus dans le paquetage <emphasis>iputils</emphasis>. Il est conçu pour réaliser de simples tests du transport en émettant des paquets de requête d'écho (<emphasis>echo-request</emphasis>) ICMPv6 et en attendant les paquets de réponse en écho (<emphasis>echo-reply</emphasis>) ICMPv6.</para>
<para>Usage</para><screen>
<![CDATA[# ping6 <hôteavecadresseipv6>
# ping6 <adresseipv6>
# ping6 [-I <périphérique>] <adresseipv6-lien-local>
]]></screen><para>Exemple</para><screen>
<![CDATA[# ping6 -c 1 ::1
PING ::1(::1) from ::1 : 56 data bytes
64 bytes from ::1: icmp_seq=0 hops=64 time=292 usec
--- ::1 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max/mdev = 0.292/0.292/0.292/0.000 ms
]]></screen><para>Info: ping6 a besoin d'un accès brut à la socket, il faut donc les permissions root. Par conséquent, s'il n'y a pas d'utilisateur root pouvant utiliser ping6, deux problèmes peuvent se poser ici:</para><orderedlist>
<listitem><para>ping6 n'est pas sur le chemin de l'utilisateur (probablement, car ping6 est généralement stocké dans /usr/sbin -> ajouter au chemin (pas vraiment recommandé)</para></listitem><listitem><para>ping6 ne s'exécute pas proprement, généralement, c'est qu'il y a des permissions root manquantes -> chmod u+s /usr/sbin/ping6</para></listitem></orderedlist><sect3>
<title>Spécifier une interface à ping IPv6</title>
<para>En spécifiant uniquement une adresse lien-local à ping IPv6, le noyau ne sait pas par quel périphérique (physique ou virtuel) il doit émettre le paquet - chaque périphérique a une adresse lien-local. Un essai aura pour résultat un message d'erreur:</para><screen>
<![CDATA[# ping6 fe80::212:34ff:fe12:3456
connect: Invalid argument
]]></screen><para>Dans ce cas vous devez en plus spécifier l'interface comme ci-dessous:</para><screen>
<![CDATA[# ping6 -I eth0 -c 1 fe80::2e0:18ff:fe90:9205
PING fe80::212:23ff:fe12:3456(fe80::212:23ff:fe12:3456) from
¬ fe80::212:34ff:fe12:3478 eth0: 56 data bytes
64 bytes from fe80::212:23ff:fe12:3456: icmp_seq=0 hops=64 time=445 usec
--- fe80::2e0:18ff:fe90:9205 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss round-trip
¬ min/avg/max/mdev = 0.445/0.445/0.445/0.000 ms
]]></screen></sect3><sect3>
<title>Ping6 et les adresses multicast</title>
<para>Un mécanisme intéressant pour détecter les hôtes IPv6 actifs sur un lien est de lancer ping6 sur l'adresse multicast lien-local tous-noeuds (<emphasis>all-node</emphasis>):</para><screen>
<![CDATA[# ping6 -I eth0 ff02::1
PING ff02::1(ff02::1) from fe80:::2ab:cdff:feef:012356 eth0: 56 data bytes
64 bytes from ::1: icmp_seq=1 ttl=64 time=0.104 ms
64 bytes from fe80::212:34ff:fe12:3450: icmp_seq=1 ttl=64 time=0.549 ms (DUP!)
]]></screen><para>A la différence d'IPv4, où les réponses à un ping sur l'adresse de diffusion (<emphasis>broadcast</emphasis>) peuvent être rendues indisponibles, en IPv6, ce comportement ne peut pas être actuellement rendu indisponible, sauf par un pare-feu IPv6 local.</para></sect3></sect2><sect2 id='program-traceroute6.' >
<title><!-- anchor id="program-traceroute6." --> traceroute6 IPv6</title>
<para>Ce programme est normalement inclus dans le paquetage <emphasis>iputils</emphasis>. C'est un programme similaire au traceroute d'IPv4. En voici un exemple:</para><screen>
<![CDATA[# traceroute6 www.6bone.net
traceroute to 6bone.net (3ffe:b00:c18:1::10) from 3ffe:ffff:0000:f101::2, 30
¬ hops max, 16 byte packets
1 localipv6gateway (3ffe:ffff:0000:f101::1) 1.354 ms 1.566 ms 0.407 ms
2 swi6T1-T0.ipv6.switch.ch (3ffe:2000:0:400::1) 90.431 ms 91.956 ms 92.377 ms
3 3ffe:2000:0:1::132 (3ffe:2000:0:1::132) 118.945 ms 107.982 ms 114.557 ms
4 3ffe:c00:8023:2b::2 (3ffe:c00:8023:2b::2) 968.468 ms 993.392 ms 973.441 ms
5 3ffe:2e00:e:c::3 (3ffe:2e00:e:c::3) 507.784 ms 505.549 ms 508.928 ms
6 www.6bone.net (3ffe:b00:c18:1::10) 1265.85 ms * 1304.74 ms
]]></screen><para>Note: à la différence de certaines versions contemporaines du traceroute d'IPv4, qui peuvent utiliser les paquets de requête d'écho ICMPv4 aussi bien que les paquets UDP (défaut), l'actuel traceroute IPv6 ne peut qu'émettre des paquets UDP. Comme vous le savez peut-être, les paquets de requête d'écho ICMP sont mieux acceptés par les pare-feu ou les ACL sur les routeurs intermédiaires que les paquets UDP.</para></sect2><sect2 id='program-tracepath6.' >
<title><!-- anchor id="program-tracepath6." -->tracepath6 IPv6</title>
<para>Ce programme est normalement inclus dans le paquetage <emphasis>iputils</emphasis>. C'est un programme comme traceroute6, il trace le chemin vers une destination donnée, découvrant la MTU le long de ce chemin. En voici un exemple:</para><screen>
<![CDATA[# tracepath6 www.6bone.net
1?: [LOCALHOST] pmtu 1480
1: 3ffe:401::2c0:33ff:fe02:14 150.705ms
2: 3ffe:b00:c18::5 267.864ms
3: 3ffe:b00:c18::5 asymm 2 266.145ms pmtu 1280
3: 3ffe:3900:5::2 asymm 4 346.632ms
4: 3ffe:28ff:ffff:4::3 asymm 5 365.965ms
5: 3ffe:1cff:0:ee::2 asymm 4 534.704ms
6: 3ffe:3800::1:1 asymm 4 578.126ms !N
Resume: pmtu 1280
]]></screen></sect2><sect2 id='program-tcpdump' >
<title><!-- anchor id="program-tcpdump" -->tcpdump IPv6</title>
<para>Sur Linux, tcpdump est l'outil majeur pour la capture de paquets. Vous allez trouver ci-dessous quelques exemples. Le support IPv6 est normalement intégré aux éditions actuelles de la version 3.6.</para>
<para>tcpdump utilise des expressions pour filtrer les paquets, minimisant le bruit:</para><itemizedlist>
<listitem><para>icmp6: filtre le trafic ICMPv6 natif</para></listitem><listitem><para>ip6: filtre le trafic IPv6 natif (incluant ICMPv6)</para></listitem><listitem><para>proto ipv6: filtre le trafic IPv6-in-IPv4 tunnelé</para></listitem><listitem><para>not port ssh: supprime l'affichage des paquets SSH, pour lancer tcpdump à partir d'une session distante SSH</para></listitem></itemizedlist><para>Certaines options en ligne de commande sont très utiles pour capter et afficher plus d'information concernant les paquets, essentiellement intéressant pour approfondir l'information des paquets ICMPv6:</para><itemizedlist>
<listitem><para>“-s 512”: augmente la quantité d'information capturée pour un paquet à 512 octets</para></listitem><listitem><para>“-vv”: sortie vraiment verbeuse</para></listitem><listitem><para>“-n”: ne pas résoudre les adresses en noms, utile si la résolution inversée ne fonctionne pas proprement</para></listitem></itemizedlist><sect3>
<title>Ping IPv6 vers l'adresse native 3ffe:ffff:100:f101::1 sur un lien-local</title>
<screen>
<![CDATA[# tcpdump -t -n -i eth0 -s 512 -vv ip6 or proto ipv6
tcpdump: listening on eth0
3ffe:ffff:100:f101:2e0:18ff:fe90:9205 > 3ffe:ffff:100:f101::1: icmp6: echo
¬ request (len 64, hlim 64)
3ffe:ffff:100:f101::1 > 3ffe:ffff:100:f101:2e0:18ff:fe90:9205: icmp6: echo
¬ reply (len 64, hlim 64)
]]></screen></sect3><sect3>
<title>Ping IPv6 vers 3ffe:ffff:100::1 routée au travers d'un tunnel IPv6-in-IPv4</title>
<para>1.2.3.4 et 5.6.7.8 sont les extrémités du tunnel (toutes les adresses sont des exemples)</para><screen>
<![CDATA[# tcpdump -t -n -i ppp0 -s 512 -vv ip6 or proto ipv6
tcpdump: listening on ppp0
1.2.3.4 > 5.6.7.8: 2002:ffff:f5f8::1 > 3ffe:ffff:100::1: icmp6: echo request
¬ (len 64, hlim 64) (DF) (ttl 64, id 0, len 124)
5.6.7.8 > 1.2.3.4: 3ffe:ffff:100::1 > 2002:ffff:f5f8::1: icmp6: echo reply (len
¬ 64, hlim 61) (ttl 23, id 29887, len 124)
1.2.3.4 > 5.6.7.8: 2002:ffff:f5f8::1 > 3ffe:ffff:100::1: icmp6: echo request
¬ (len 64, hlim 64) (DF) (ttl 64, id 0, len 124)
5.6.7.8 > 1.2.3.4: 3ffe:ffff:100::1 > 2002:ffff:f5f8::1: icmp6: echo reply (len
¬ 64, hlim 61) (ttl 23, id 29919, len 124)
]]></screen></sect3></sect2></sect1><sect1>
<title>Les programmes prêts pour IPv6</title>
<para>Les distributions actuelles comportent déjà les clients et les serveurs IPv6 les plus couramment utilisés. Allez d'abord voir sur <ulink url="http://www.bieringer.de/linux/IPv6/status/IPv6+Linux-status-distributions.html">IPv6 & Linux / l'état actuel des distributions</ulink>. Si ce que vous cherchez n'y est pas encore, vous pouvez vérifier sur <ulink url="http://www.bieringer.de/linux/IPv6/status/IPv6+Linux-status-apps.html">IPv6 & Linux / l'état actuel des applications disponibles</ulink>, où sont répertoriés les programmes déjà portés sur IPv6 et utilisables sous Linux. Pour les programmes les plus communément employés, il y a quelques éléments disponibles dans <ulink url="http://www.bieringer.de/linux/IPv6/IPv6-HOWTO/IPv6-HOWTO-3.html">la troisième partie</ulink> et <ulink url="http://www.bieringer.de/linux/IPv6/IPv6-HOWTO/IPv6-HOWTO-4.html">la quatrième partie</ulink> de l'HowTo - IPv6 & Linux.</para></sect1><sect1>
<title>Les programmes client prêts pour IPv6 (une sélection)</title>
<para>Pour lancer les tests qui vont suivre, il est nécessaire que votre système dispose d'IPv6, et certains exemples montrent des adresses ne pouvant être atteintes que si une connexion au 6bone est disponible.</para><sect2>
<title>Vérifier la résolution DNS des adresses IPv6</title>
<para>A cause des mises à jour de sécurité ces dernières années, tout serveur du Système des Noms de Domaine (DNS) devrait fonctionner avec un logiciel récent comprenant déjà le type (intermédiaire) d'adresse IPv6 AAAA (le nouveau, nommé A6 n'est pas encore assez répandu pour le moment, car uniquement supporté par BIND9 et supérieurs, mais aussi à cause de la non existence de support du domaine racine IP6.ARPA). Un simple test pour savoir si le système utilisé peut résoudre les adresses IPv6 est</para><screen>
<![CDATA[# host -t AAAA www.join.uni-muenster.de
]]></screen><para>et cela devrait affiché quelque chose comme ce qui suit:</para><screen>
<![CDATA[www.join.uni-muenster.de. is an alias for tolot.join.uni-muenster.de.
tolot.join.uni-muenster.de. has AAAA address 2001:638:500:101:2e0:81ff:fe24:37c6
]]></screen></sect2><sect2>
<title>Le client telnet prêt pour IPv6</title>
<para>Des clients telnet prêts pour IPv6 sont disponibles. Un simple test peut être effectué par</para><screen>
<![CDATA[$ telnet 3ffe:400:100::1 80
Trying 3ffe:400:100::1...
Connected to 3ffe:400:100::1.
Escape character is '^]'.
HEAD / HTTP/1.0
HTTP/1.1 200 OK
Date: Sun, 16 Dec 2001 16:07:21
GMT Server: Apache/2.0.28 (Unix)
Last-Modified: Wed, 01 Aug 2001 21:34:42 GMT
ETag: "3f02-a4d-b1b3e080"
Accept-Ranges: bytes
Content-Length: 2637
Connection: close
Content-Type: text/html; charset=ISO-8859-1
Connection closed by foreign host.
]]></screen><para>Si le client telnet ne comprend pas l'adresse IPv6 et dit quelque chose comme ”ne peut résoudre le nom d'hôte” (”<emphasis>cannot resolve hostname</emphasis>”), IPv6 n'est alors pas disponible.</para></sect2><sect2>
<title>Les clients ssh prêts pour IPv6</title>
<sect3>
<title>openssh</title>
<para>Les versions actuelles d'openssh sont prêtes pour IPv6. Selon la configuration précédant la compilation, il y a deux comportements possibles.</para><itemizedlist>
<listitem><para>--without-ipv4-default: le client essaie automatiquement une connexion IPv6 en premier et revient à IPv4 en cas d'échec.</para></listitem><listitem><para>--with-ipv4-default: la connexion par défaut est IPv4, la connexion IPv6 doit être forcée comme dans l'exemple qui suit:</para></listitem></itemizedlist><screen>
<![CDATA[$ ssh -6 ::1
user@::1's password: ******
[user@ipv6host user]$
]]></screen><para>Si votre client ssh ne comprend pas l'option ”-6”, c'est qu'il n'a pas IPv6 de disponible, comme la plupart des paquetages de ssh version 1.</para></sect3><sect3>
<title>ssh.com</title>
<para>Le client et le serveur SSH de chez SSH.com sont aussi prêts pour IPv6, et gratuits pour les machines Linux et FreeBSD selon l'usage - commercial ou personnel - qui en est fait.</para></sect3></sect2><sect2>
<title>Les navigateurs web prêts pour IPv6</title>
<para><ulink url="http://www.bieringer.de/linux/IPv6/status/IPv6+Linux-status-apps.html#HTTP">L'état actuel de la liste des navigateurs web IPv6</ulink> est disponible.</para>
<para>La plupart ont des problèmes irrésolues pour le moment</para><orderedlist>
<listitem><para>Si un seul proxy IPv4 est utilisé dans les réglages, les requêtes IPv6 seront bien envoyées vers le proxy, mais celui-ci échouera à comprendre la requête, laquelle échouera. Solution: mettre à jour le logiciel proxy (à voir plus tard).</para></listitem><listitem><para>Les réglages de configuration automatique de proxy (*.pac) ne peuvent être étendus afin de prendre en charge différemment les requêtes IPv6 (par exemple ne pas utiliser le proxy) à cause de leur nature (écrits en Java-script et bien encodés en dur dans les sources, comme cela peut être observé pour le code source de Maxilla).</para></listitem></orderedlist><para>C'est ainsi que les anciennes versions ne comprennent pas un URL avec une adresse encodée en IPv6 comme <ulink url="http://[2a01:238:4281:8600:812a:5915:8d24:58f3]/">http://[2a01:238:4281:8600:812a:5915:8d24:58f3]/</ulink> (cet URL ne fonctionne qu'avec un navigateur disposant d'IPv6!).</para>
<para>Un bref test est d'essayer l'URL fourni avec un navigateur donné, sans utiliser de proxy.</para><sect3>
<title>Un URL de test</title>
<para>Un bon point de départ pour tester la navigation IPv6 est <ulink url="http://www.kame.net/">http://www.kame.net/</ulink>. Si la tortue sur la page est animée, la connexion se fait <emphasis>via</emphasis> IPv6, sinon la tortue est statique.</para></sect3></sect2></sect1><sect1>
<title>Les programmes serveur prêts pour IPv6</title>
<para>Dans cette partie, de nombreuses questions concernant des clients spécifiques ont été mentionnées. En conséquence, les éléments pour les serveurs prêts pour IPv6 sont fournis plus bas dans la section <link linkend="chapter-hints-daemons">Eléments d'installation des démons prêts pour IPv6</link>.</para></sect1><sect1 id='faq-ipv6-ready-system-check' >
<title><!-- anchor id="faq-ipv6-ready-system-check" -->FAQ (vérification d'un système prêt pour IPv6)</title>
<sect2>
<title>Utiliser les outils</title>
<sect3>
<title>Q: impossible d'utiliser ping6 avec des adresses lien-local</title>
<para>Message d'erreur: "<emphasis>connect: Invalid argument</emphasis>"</para>
<para>Le noyau ne sait pas sur quel lien (physique ou virtuel) vous voulez l'utiliser et envoyer des paquets ICMPv6. C'est pourquoi est affiché un message d'erreur.</para>
<para>Solution: spécifier l'interface de cette façon: ”ping6 -I eth0 fe80::2e0:18ff:fe90:9205”, voir aussi <link linkend="program-ping6.">l'usage du programme ping6</link>.</para></sect3><sect3>
<title>Q: impossible d'utiliser ping6 ou traceroute en tant qu'utilisateur courant</title>
<para>Message d'erreur: ”<emphasis>icmp socket: Operation not permitted</emphasis>”</para>
<para>Ces utilitaires créent des paquets spéciaux ICMPv6 et les émettent en dehors. Ceci est réalisé par l'emploi des sockets brutes du noyau. Ces dernières ne peuvent être utilisées que par l'utilisateur ”root”. C'est pourquoi les utilisateurs courants obtiennent un tel message d'erreur.</para>
<para>Solution: s'il est vraiment nécessaire que tous les utilisateurs puissent utiliser ces utilitaires, vous pouvez ajouter le bit ”suid” en faisant ”chmod u+s /chemin/vers/le/programme”, voir aussi <link linkend="program-ping6.">l'usage du programme</link>. Si tous les utilisateurs ne doivent pas en être capables, vous pouvez changer ce programme de groupe, par exemple au profit du groupe ”wheel”, ajouter les utilisateurs nécessaires à ce groupe et ôter le bit d'exécution aux autres utilisateurs par ”chmod o-rwx /chemin/vers/le/programme”, ou bien configurer ”sudo” pour mettre en place votre politique de sécurité. </para></sect3></sect2></sect1></chapter><chapter id='chapter-configuration-interface' >
<title><!-- anchor id="chapter-configuration-interface" -->Configurer les interfaces</title>
<sect1>
<title>Les différents périphériques réseau</title>
<para>Sur un noeud, il existe différents périphériques réseau. Ils peuvent être</para><itemizedlist>
<listitem><para>Physiquement rattachés, comme eth0, tr0</para></listitem><listitem><para>Virtuellement existants, comme ppp0, tun0, tap0, sit0, isdn0, ippp0</para></listitem></itemizedlist><sect2>
<title>Physiquement rattachés</title>
<para>Les interfaces physiquement rattachées, comme Ethernet ou Token-Ring, sont la norme et n'ont pas besoin d'un traitement particulier.</para></sect2><sect2>
<title>Virtuellement existants</title>
<para>Les interfaces virtuellement rattachées ont toujours besoin d'un traitement particulier.</para><sect3>
<title>Les interfaces de tunnelage IPv6-in-IPv4</title>
<para>Ces interfaces sont normalement dénommées sit<emphasis>x</emphasis>. <emphasis>sit</emphasis> est l'abréviation mise pour Simple Transition Internet (<emphasis>Simple Internet Transition</emphasis>). Ce périphérique a la capacité d'encapsuler les paquets IPv6 à l'intérieur de paquets IPv4 et de les tunneler vers une extrémité étrangère.</para>
<para>sit0 a une signification particulière et ne peut être utilisée pour des tunnels dédiés.</para></sect3><sect3>
<title>Les interfaces PPP</title>
<para>Les interfaces PPP acquièrent leur capacité IPv6 grâce à un démon PPP disposant d'IPv6.</para></sect3><sect3>
<title>Les interfaces RNIS HDLC</title>
<para>La capacité IPv6 pour HDLC avec encapsulation ip est déjà intégrée au noyau.</para></sect3><sect3>
<title>Les interfaces PPP RNIS </title>
<para>Les interfaces PPP RNIS (ippp) ne sont pas disponibles pour IPv6 dans le noyau. Il n'est pas prévu que cela se fasse, puisqu'elles seront remplacées par une couche d'interface ppp plus générique.</para></sect3><sect3>
<title>SLIP + PLIP</title>
<para>Comme il a déjà été dit, ces interfaces ne supportent pas le transport IPv6 (l'émission est OK, mais la distribution à la réception ne fonctionne pas).</para></sect3><sect3>
<title>Le périphérique Ether-tap</title>
<para>Les périphériques Ether-tap sont prêts pour IPv6, et sont de plus configurables sans état. Pour être utilisés, le module ”ethertap” doit être chargé au préalable.</para></sect3><sect3>
<title>Les périphériques tun</title>
<para>Actuellement, je ne les ai pas encore testés par moi-même.</para></sect3><sect3>
<title>ATM</title>
<para>01/2002: non supporté par l'actuel noyau vanille, supporté par l'extension USAGI.</para></sect3><sect3>
<title>Autres</title>
<para>Ai-je oublié une interface?...</para></sect3></sect2></sect1><sect1>
<title>(dé)Montage des interfaces</title>
<para>Deux méthodes peuvent être utilisées pour (dé)monter les interfaces.</para><sect2>
<title>Utiliser "ip"</title>
<para>Usage: </para><screen>
<![CDATA[# ip link set dev <interface> up
# ip link set dev <interface> down
]]></screen><para>Exemple:</para><screen>
<![CDATA[
# ip link set dev eth0 up
# ip link set dev eth0 down
]]></screen></sect2><sect2>
<title>Utiliser "ifconfig"</title>
<para>Usage: </para><screen>
<![CDATA[# /sbin/ifconfig <interface> up
# /sbin/ifconfig <interface> down
]]></screen><para>Exemple:</para><screen>
<![CDATA[# /sbin/ifconfig eth0 up
# /sbin/ifconfig eth0 down
]]></screen></sect2></sect1></chapter><chapter id='chapter-configuration-address' >
<title><!-- anchor id="chapter-configuration-address" -->Configurer les adresses IPv6</title>
<para>Il y a différentes façons de configurer une adresse IPv6 sur une interface. Vous pouvez utiliser "ifconfig" ou "ip".</para><sect1>
<title>Affichage des adresses IPv6 existantes</title>
<para>Vous devriez d'abord vérifier s'il existe des adresses IPv6 configurées, et combien (peut-être y en a-t-il qui l'ont été, comme par magie, pendant l'auto-configuration sans état).</para><sect2>
<title>Utiliser "ip"</title>
<para>Usage:</para><screen>
<![CDATA[# /sbin/ip -6 addr show dev <interface>
]]></screen><para>Exemple pour un hôte configuré statiquement:</para><screen>
<![CDATA[# /sbin/ip -6 addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_ fast qlen 100
inet6 fe80::210:a4ff:fee3:9566/10 scope link
inet6 3ffe:ffff:0:f101::1/64 scope global
inet6 fec0:0:0:f101::1/64 scope site
]]></screen><para>Exemple pour un hôte auto-configuré</para>
<para>Ici vous pouvez voir des adresses auto-configurées comme par magie et leurs durées de vie.</para><screen>
<![CDATA[# /sbin/ip -6 addr show dev eth0
3: eth0: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc pfifo_fast qlen
¬ 100
inet6 2002:d950:f5f8:f101:2e0:18ff:fe90:9205/64 scope global dynamic
valid_lft 16sec preferred_lft 6sec
inet6 3ffe:400:100:f101:2e0:18ff:fe90:9205/64 scope global dynamic
valid_lft 2591997sec preferred_lft 604797sec inet6 fe80::2e0:18ff:fe90:9205/10
¬ scope link
]]></screen></sect2><sect2>
<title>Utiliser "ifconfig"</title>
<para>Usage:</para><screen>
<![CDATA[# /sbin/ifconfig <interface>
]]></screen><para>Exemple (la sortie est filtrée avec grep pour n'afficher que les adresses IPv6). vous pouvez voir ici des adresses IPv6 ayant des portées différentes.</para><screen>
<![CDATA[# /sbin/ifconfig eth0 |grep "inet6 addr:"
inet6 addr: fe80::210:a4ff:fee3:9566/10 Scope:Link
inet6 addr: 3ffe:ffff:0:f101::1/64 Scope:Global
inet6 addr: fec0:0:0:f101::1/64 Scope:Site
]]></screen></sect2></sect1><sect1>
<title>Ajouter une adresse IPv6</title>
<para>Ajouter une adresse IPv6 est similaire au mécanisme des adresses ”ALIAS IP” sur les interfaces configurées par IPv4 Linux.</para><sect2>
<title>Utiliser "ip"</title>
<para>Usage: </para><screen>
<![CDATA[# /sbin/ip -6 addr add <adresseipv6>/<longueurdupréfixe> dev <interface>
]]></screen><para>Exemple:</para><screen>
<![CDATA[# /sbin/ip -6 addr add 3ffe:ffff:0:f101::1/64 dev eth0
]]></screen></sect2><sect2>
<title>Utiliser "ifconfig"</title>
<para>Usage: </para><screen>
<![CDATA[# /sbin/ifconfig <interface> inet6 add <adresseipv6>/<longueurdupréfixe>
]]></screen><para>Exemple:</para><screen>
<![CDATA[# /sbin/ifconfig eth0 inet6 add 3ffe:ffff:0:f101::1/64
]]></screen></sect2></sect1><sect1>
<title>Ôter une adresse IPv6</title>
<para>Rarement nécessaire, prenez garde de ne pas ôter une adresse IPv6 n'existant pas, il en résulte parfois un <emphasis>crash</emphasis> sur les anciens noyaux.</para><sect2>
<title>Utiliser "ip"</title>
<para>Usage: </para><screen>
<![CDATA[# /sbin/ip -6 addr del <adresseipv6ipv6address>/<longueurdupréfixe> dev <interface>
]]></screen><para>Exemple:</para><screen>
<![CDATA[# /sbin/ip -6 addr del 3ffe:ffff:0:f101::1/64 dev eth0
]]></screen></sect2><sect2>
<title>Utiliser "ifconfig"</title>
<para>Usage:</para><screen>
<![CDATA[# /sbin/ifconfig <interface> inet6 del <adresseipv6>/<longueurdupréfixe>
]]></screen><para>Exemple:</para><screen>
<![CDATA[# /sbin/ifconfig eth0 inet6 del 3ffe:ffff:0:f101::1/64
]]></screen></sect2></sect1></chapter><chapter id='chapter-configuration-route' >
<title><!-- anchor id="chapter-configuration-route" -->Configurer les routes IPv6 courantes</title>
<para>Si vous voulez quitter votre lien et voulez émettre des paquets vers l'Internet mondial IPv6, vous avez besoin de routage. S'il existe déjà un routeur disposant d'IPv6 sur votre lien, il est possible que cela soit suffisant pour ajouter des routes IPv6.</para><sect1>
<title>Afficher les routes IPv6 existantes</title>
<para>Vous devriez d'abord vérifier s'il existe des routes IPv6 configurées, et combien (peut-être y en a-t-il qui l'ont été, comme par magie, pendant l'auto-configuration sans état).</para><sect2>
<title>Utiliser "ip"</title>
<para>Usage:</para><screen>
<![CDATA[# /sbin/ip -6 route show [dev <périphérique>]
]]></screen><para>Exemple:</para><screen>
<![CDATA[# /sbin/ip -6 route show dev eth0
3ffe:ffff:0:f101::/64 proto kernel metric 256 mtu 1500 advmss 1440
fe80::/10 proto kernel metric 256 mtu 1500 advmss 1440
ff00::/8 proto kernel metric 256 mtu 1500 advmss 1440
default proto kernel metric 256 mtu 1500 advmss 1440
]]></screen></sect2><sect2>
<title>Utiliser "route"</title>
<para>Usage: </para><screen>
<![CDATA[# /sbin/route -A inet6
]]></screen><para>Exemple (la sortie est filtrée sur l'interface eth0). Ici vous pouvez voir différentes routes IPv6 pour différentes adresses sur une même interface.</para><screen>
<![CDATA[# /sbin/route -A inet6 |grep -w "eth0"
3ffe:ffff:0:f101 ::/64 :: UA 256 0 0 eth0 <- Route de l'interface de portée globale
¬ address
fe80::/10 :: UA 256 0 0 eth0 <- Route de l'interface de portée lien-local
¬ address
ff00::/8 :: UA 256 0 0 eth0 <- Route de l'interface destiné à tout le trafic multicast
¬ addresses
::/0 :: UDA 256 0 0 eth0 <- Route automatique par défaut
]]></screen></sect2></sect1><sect1>
<title>Ajouter une route IPv6 traversant une passerelle</title>
<para>Nécessaire la plupart du temps pour atteindre l'extérieur grâce à IPv6 en utilisant un routeur IPv6 sur votre lien.</para><sect2>
<title>Utiliser "ip"</title>
<para>Usage:</para><screen>
<![CDATA[# /sbin/ip -6 route add <réseauipv6>/<longueurdupréfixe> via <adresseipv6>
¬ [dev <périphérique>]
]]></screen><para>Exemple:</para><screen>
<![CDATA[# /sbin/ip -6 route add 2000::/3 via 3ffe:ffff:0:f101::1
]]></screen></sect2><sect2>
<title>Utiliser "route"</title>
<para>Usage: </para><screen>
<![CDATA[# /sbin/route -A inet6 add <réseauipv6>/<longueurdupréfixe> gw
¬ <adresseipv6> [dev <périphérique>]
]]></screen><para>Un périphérique peut être nécessaire également, si l'adresse IPv6 de la passerelle est un lien-local.</para>
<para>Suivre l'exemple montré ajoute une route à toutes les adresses globales actuelles (2000::/3) à travers la passerelle 3ffe:ffff:0:f101::1</para><screen>
<![CDATA[# /sbin/route -A inet6 add 2000::/3 gw 3ffe:ffff:0:f101::1
]]></screen></sect2></sect1><sect1>
<title>Ôter une route IPv6 traversant une passerelle</title>
<para>Rarement nécessaire manuellement, la plupart du temps effectué par les scripts configurant le réseau à l'extinction (totale ou par interface)</para><sect2>
<title>Utiliser "ip"</title>
<para>Usage:</para><screen>
<![CDATA[# /sbin/ip -6 route del <réseauipv6>/<longueurdupréfixe> via <ipv6address>
¬ [dev <périphérique>]
]]></screen><para>Exemple:</para><screen>
<![CDATA[# /sbin/ip -6 route del 2000::/3 via 3ffe:ffff:0:f101::1
]]></screen></sect2><sect2>
<title>Utiliser "route"</title>
<para>Usage: </para><screen>
<![CDATA[# /sbin/route -A inet6 del <réseau>/<longueurdupréfixe> [dev <périphérique>]
]]></screen><para>Exemple pour de nouveau ôter la route précédemment ajoutée:</para><screen>
<![CDATA[# /sbin/route -A inet6 del 2000::/3 gw 3ffe:ffff:0:f101::1
]]></screen></sect2></sect1><sect1>
<title>Ajouter une route IPv6 traversant une interface</title>
<para>Pas si fréquent, parfois en cas de création de lien point-à-point.</para><sect2>
<title>Utiliser "ip"</title>
<para>Usage:</para><screen>
<![CDATA[# /sbin/ip -6 route add <réseauipv6>/<longueurdupréfixe> dev <périphérique>
¬ metric 1
]]></screen><para>Exemple:</para><screen>
<![CDATA[# /sbin/ip -6 route add 2000::/3 dev eth0 metric 1
]]></screen><para>La distance (<emphasis>metric</emphasis>) ”1” est utilisée ici par soucis de compatibilité avec la distance utilisée par route, car la distance par défaut fixée par ”ip” est ”1024”.</para></sect2><sect2>
<title>Utiliser "route"</title>
<para>Usage:</para><screen>
<![CDATA[# /sbin/route -A inet6 add <réseau>/<longueurdupréfixe> dev <périphérique>
]]></screen><para>Exemple:</para><screen>
<![CDATA[# /sbin/route -A inet6 add 2000::/3 dev eth0
]]></screen></sect2></sect1><sect1>
<title>Ôter une route IPv6 traversant une interface</title>
<para>Rarement utiliser manuellement, les scripts de configuration font cela à l'extinction.</para><sect2>
<title>Utiliser "ip"</title>
<para>Usage:</para><screen>
<![CDATA[# /sbin/ip -6 route del <réseauipv6>/<longueurdupréfixe> dev <périphérique>
]]></screen><para>Exemple:</para><screen>
<![CDATA[# /sbin/ip -6 route del 2000::/3 dev eth0
]]></screen></sect2><sect2>
<title>Utiliser "route"</title>
<para>Usage:</para><screen>
<![CDATA[# /sbin/route -A inet6 del <réseau>/<longueurdupréfixe> dev <périphérique>
]]></screen><para>Exemple:</para><screen>
<![CDATA[# /sbin/route -A inet6 del 2000::/3 dev eth0
]]></screen></sect2></sect1><sect1>
<title>FAQ concernant les routes IPv6</title>
<sect2>
<title>Support d'une route par défaut IPv6</title>
<para>Une idée d'IPv6 était le routage hiérarchique, avec pour conséquence une quantité moindre d'entrées dans les tables de routage nécessaires aux routeurs.</para>
<para>Il y a certains problèmes dans les noyaux Linux actuels:</para><sect3>
<title>Les clients (ne routent aucun paquet!)</title>
<para>Les clients peuvent installer une route par défaut avec pour préfixe ”::/0”, ils peuvent aussi apprendre une telle route par auto-configuration, en utilisant par exemple radvd s'il est présent sur le lien, comme le montre ce qui suit:</para><screen>
<![CDATA[# ip -6 route show | grep ^default
default via fe80::212:34ff:fe12:3450 dev eth0 proto kernel metric 1024 expires
¬ 29sec mtu 1500 advmss 1440
]]></screen></sect3><sect3>
<title>Les routeurs en cas de renvoi de paquets</title>
<para>Dans ses grandes lignes, l'actuel noyau Linux (au moins <= 2.4.17) ne supporte pas les routes par défaut. Vous pouvez les installées, mais la recherche échouera quand un paquet devra être renvoyé (une intention normale pour un routeur).</para>
<para>Pour l'heure, le ”routage par défaut” peut être installé en utilisant l'actuel et unique préfixe d'adresse globale ”2000::/3”.</para>
<para>Le projet USAGI supporte déjà cela dans leurs extensions grâce à une astuce de programmation (<emphasis>NdT</emphasis>: <emphasis>a hack</emphasis>, <emphasis>i.e.</emphasis> littéralement, une”bidouille”).</para>
<para>Note: prenez garde au routage par défaut sans filtrage d'adresse sur les routeurs de bordure, sinon du trafic multicast ou site-local quittera l'environnement.</para></sect3></sect2></sect1></chapter><chapter id='chapter-Neighbor-Discovery' >
<title><!-- anchor id="chapter-Neighbor-Discovery" -->La découverte de voisinage</title>
<para>La découverte de voisinage est le successeur IPv6 de ARP (<emphasis>Address Resolution Protocol</emphasis>, protocole de résolution d'adresse) pour IPv4. Vous pouvez récupérer l'information concernant le voisinage actuel, de plus, vous pouvez fixer ou détruire des entrées. Le noyau garde la trace de la détection d'un voisin (comme ARP pour IPv4). Vous pouvez faire des recherches dans la table apprise, en utilisant ”ip”.</para><sect1>
<title>Afficher le voisinage en utilisant "ip"</title>
<para>Avec la commande qui suit vous pouvez afficher les voisins IPv6 appris ou configurés</para><screen>
<![CDATA[# ip -6 neigh show [dev <périphérique>]
]]></screen><para>L'exemple suivant montre un voisin, qui est un routeur pouvant être atteint</para><screen>
<![CDATA[# ip -6 neigh show
fe80::201:23ff:fe45:6789 dev eth0 lladdr 00:01:23:45:67:89 router nud reachable
]]></screen></sect1><sect1>
<title>Manipuler la table de voisinage en utilisant "ip"</title>
<sect2>
<title>Ajouter manuellement une entrée</title>
<para>La commande suivante vous permet d'ajouter manuellement une entrée </para><screen>
<![CDATA[# ip -6 neigh add <adresseIPv6> lladdr <adressedelacouche-lien> dev <périphérique>
]]></screen><para>Exemple:</para><screen>
<![CDATA[# ip -6 neigh add fec0::1 lladdr 02:01:02:03:04:05 dev eth0
]]></screen></sect2><sect2>
<title>Détruire manuellement une entrée</title>
<para>De même qu'une entrée peut être ajoutée, une entrée peut être détruite:</para><screen>
<![CDATA[# ip -6 neigh del <adresseipv6> lladdr <adressedelacouche-lien> dev <périphérique>
]]></screen><para>Exemple:</para><screen>
<![CDATA[# ip -6 neigh del fec0::1 lladdr 02:01:02:03:04:05 dev eth0
]]></screen></sect2><sect2>
<title>Pour plus de réglages avancés</title>
<para>L'outil ”ip” est sous-documenté, mais il est très puissant. Voir l'aide en ligne pour en savoir plus</para><screen>
<![CDATA[# ip -6 neigh help
Usage: ip neigh { add | del | change | replace } { ADDR [ lladdr LLADDR ]
[ nud { permanent | noarp | stale | reachable } ]
| proxy ADDR } [ dev DEV ]
ip neigh {show|flush} [ to PREFIX ] [ dev DEV ] [ nud STATE ]
]]></screen><para>Il semble que certaines options soient uniquement pour IPv4... si vous pouvez contribuer à en dire plus sur les drapeaux et l'emploi avancé, merci d'envoyer vos informations.</para></sect2></sect1></chapter><chapter id='chapter-configuring-ipv6-in-ipv4-tunnels' >
<title><!-- anchor id="chapter-configuring-ipv6-in-ipv4-tunnels" -->Configurer les tunnels IPv6-in-IPv4</title>
<para>Si vous souhaitez quitter votre lien incapable d'accéder à IPv6 à partir de votre réseau local, vous avez besoin d'un tunnelage IPv6-in-IPv4 afin de rejoindre l'Internet mondial IPv6.</para>
<para>Il y a différents mécanismes de tunnelage, et conséquemment, différentes façons d'installer des tunnels.</para><sect1>
<title>Les types de tunnel</title>
<para>Il y a plus d'une façon de tunneler des paquets IPv6 sur des liens uniquement IPv4.</para><sect2>
<title>Tunnelage statique point-à-point: 6bone</title>
<para>Un tunnel point-à-point est un tunnel dédié à un point de connexion terminal, qui connaît votre réseau IPv6 (pour le routage en retour) et l'adresse IPv4 de votre point de connexion (terminale), comme défini dans la <ulink url="http://www.faqs.org/rfcs/rfc2893.html">RFC 2893 / Transition Mechanisms for IPv6 Hosts and Routers</ulink>. Pré-requis:</para><itemizedlist>
<listitem><para>L'adresse IPv4 de votre point de connexion terminal doit être globalement unique, statique, et accessible à partir de l'autre point de connexion terminal distant</para></listitem><listitem><para>Un préfixe IPv6 vous est assigné (voir le bureau d'enregistrement 6bone)</para></listitem><listitem><para>Une extrémité distante du tunnel capable de router votre préfixe IPv6 jusqu'à votre extrémité locale du tunnel (la plupart du temps, une configuration manuelle distante est requise)</para></listitem></itemizedlist></sect2><sect2>
<title>Le tunnelage automatique</title>
<para>Le cas du tunnelage automatique se présente quand un noeud se connecte directement à un autre noeud en ayant obtenu au préalable l'adresse IPv4 de l'autre noeud.</para></sect2><sect2 id='tunneling-6to4.' >
<title><!-- anchor id="tunneling-6to4." -->Le tunnelage 6to4</title>
<para>Le tunnelage 6to4 (<ulink url="http://www.faqs.org/rfcs/rfc3056.html">RFC 3056 / Connection of IPv6 Domains via IPv4 Clouds</ulink>) utilise un mécanisme simple pour créer des tunnels automatiques. Tout noeud ayant une adresse unique globale IPv4 est capable d'être le point de connexion terminal d'un tunnel 6to4 (si aucun pare-feu IPv4 ne prohibe ce trafic). Foncièrement, le tunnelage 6to4 n'est pas un tunnel en binôme (<emphasis>one-to-one tunnel</emphasis>). Ce tunnelage se subdivise en un tunnelage d'un flux montant et d'un flux descendant. Une adresse IPv6 spéciale indique que ce noeud utilisera un tunnelage 6to4 pour se connnecter au réseau mondial IPv6.</para><sect3>
<title>La génération d'un préfixe 6to4</title>
<para>Une adresse 6to4 est définie comme suit (le schéma provient du <ulink url="http://www.faqs.org/rfcs/rfc3056.html">RFC 3056 / Connection of IPv6 Domains via IPv4 Clouds</ulink>):</para><screen>
<![CDATA[| 3+13 | 32 | 16 | 64 bits |
+---+------+-----------+--------+--------------------------------+
| FP+TLA | V4ADDR | SLA ID | Interface ID |
| 0x2002 | | | |
+---+------+-----------+--------+--------------------------------+
]]></screen><para>FP et TLA ensemble (16 bits) ont la valeur 0x2002. V4ADDR est l'adresse IPv4 globale et unique du noeud (en notation hexadécimale). SLA est l'identifiant de sous-réseau (65536 sous-réseaux locaux possibles). Ils sont utilisés pour représenter la structure locale de votre réseau.</para>
<para>Pour les passerelles, un tel préfixe est généré en utilisant normalement pour SLA ”0000”, et pour suffixe ”::1” (ce n'est pas une nécessité, il peut être déterminé arbitrairement, mais d'une portée locale) et assigné à l'interface de tunnelage 6to4. Notez que Windows Microsoft utilise aussi V4ADDR comme préfixe.</para></sect3><sect3>
<title>Le flux de tunnelage ascendant 6to4</title>
<para>Le noeud doit savoir à quel point de connexion terminal étranger ses paquets IPv6 dans IPv4 doivent être envoyés. Aux tout premiers jours du tunnelage 6to4, des routeurs dédiés au tunnelage de flux ascendant avaient été définis. Voir <ulink url="http://www.kfu.com/~nsayer/6to4/">l'information 6to4 de NSayer</ulink> pour une liste de ses routeurs.</para>
<para>De nos jours, les routeurs de flux ascendant 6to4 peuvent être découverts comme par magie par l'emploi de l'adresse anycast 192.88.99.1. Les protocoles de routage s'occupent de cela en arrière-plan, voir le <ulink url="http://www.faqs.org/rfcs/rfc3068.html">RFC 3068 / An Anycast Prefix for 6to4 Relay Routers</ulink> pour les détails. </para></sect3><sect3>
<title>Le flux de tunnelage descendant 6to4</title>
<para>La méthode servant au flux descendant (du 6bone vers votre noeud disposant de 6to4) n'est pas vraiment bien fixée et peut varier selon l'hôte étranger vers qui sont envoyés les paquets originaux. Il existe deux possibilités:</para><itemizedlist>
<listitem><para>l'hôte étranger utilise 6to4 et émet directement en retour les paquets à votre noeud (voir plus bas)</para></listitem><listitem><para>l'hôte étranger émet les paquets en retour vers le réseau mondial IPv6 et selon le routage dynamique qui a lieu alors, un routeur relais créera un tunnel automatique de retour vers votre noeud.</para></listitem></itemizedlist></sect3><sect3>
<title>Le trafic possible avec 6to4</title>
<itemizedlist>
<listitem><para>de 6to4 vers 6to4: est normalement tunnelé directement entre chacun des hôtes disposant de 6to4</para></listitem><listitem><para>de 6to4 vers un trafic non 6to4: est émis <emphasis>via</emphasis> le flux ascendant du tunnelage</para></listitem><listitem><para>un trafic non 6to4 vers 6to4: est émis <emphasis>via</emphasis> le flux descendant du tunnelage</para></listitem></itemizedlist></sect3></sect2></sect1><sect1>
<title>Afficher les tunnels existants</title>
<sect2>
<title>Utiliser "ip"</title>
<para>Usage:</para><screen>
<![CDATA[# /sbin/ip -6 tunnel show [<périphérique>]
]]></screen><para>Exemple:</para><screen>
<![CDATA[# /sbin/ip -6 tunnel show
sit0: ipv6/ip remote any local any ttl 64 nopmtudisc
sit1: ipv6/ip remote 195.226.187.50 local any ttl 64
]]></screen></sect2><sect2>
<title>Utiliser "route"</title>
<para>Usage:</para><screen>
<![CDATA[# /sbin/route -A inet6
]]></screen><para>Exemple (la sortie est filtrée afin de ne laisser apparaître que les tunnels empreintant l'interface sit0):</para><screen>
<![CDATA[# /sbin/route -A inet6 | grep "\Wsit0\W*$"
::/96 :: U 256 2 0 sit0
2002::/16 :: UA 256 0 0 sit0
2000::/3 ::193.113.58.75 UG 1 0 0 sit0
fe80::/10 :: UA 256 0 0 sit0
ff00::/8 :: UA 256 0 0 sit0
]]></screen></sect2></sect1><sect1 id='conf-ipv6-in-ipv4-point-to-point-tunnels' >
<title><!-- anchor id="conf-ipv6-in-ipv4-point-to-point-tunnels" -->Montage d'un tunnel point-à-point</title>
<para>Il y a 3 possibilités pour ajouter ou ôter un tunnel point-à-point.</para>
<para>Une bonne source d'information additionnelle à propos de l'installation de tunnel grâce à ”ip” est <ulink url="http://www.deepspace6.net/docs/iproute2tunnel-en.html">configurer les tunnels avec iproute2 (article)</ulink> (<ulink url="http://mirrors.bieringer.de/www.deepspace6.net/docs/iproute2tunnel-en.html">miroir</ulink>).</para><sect2>
<title>Ajouter un tunnel point-à-point</title>
<sect3>
<title>Utiliser "ip"</title>
<para>La méthode la plus commune actuellement pour une petite quantité de tunnels.</para>
<para>Usage en vue de créer un périphérique de tunnelage (mais il n'est pas monté pour autant, une TTL doit également être spécifiée, car la valeur par défaut est 0)</para><screen>
<![CDATA[# /sbin/ip tunnel add <périphérique> mode sit ttl <ttlpardéfaut> remote
¬ <adresseipv4dutunnelétranger> local <adresseipv4locale>
]]></screen><para>Usage (exemple générique pour trois tunnels):</para><screen>
<![CDATA[# /sbin/ip tunnel add sit1 mode sit ttl <ttlpardéfaut> remote
¬ <adresseipv4dutunnelétranger1> local <adresseipv4locale>
# /sbin/ip link set dev sit1 up
# /sbin/ip -6 route add <préfixepourlaroute1> dev sit1 metric 1
# /sbin/ip tunnel add sit2 mode sit ttl <ttlpardéfaut>
¬ <adresseipv4dutunnelétranger2> local <adresseipv4locale>
# /sbin/ip link set dev sit2 up
# /sbin/ip -6 route add <préfixepourlaroute2> dev sit2 metric 1
# /sbin/ip tunnel add sit3 mode sit ttl <ttlpardéfaut>
¬ <adresseipv4dutunnelétranger3> local <adresseipv4locale>
# /sbin/ip link set dev sit3 up
# /sbin/ip -6 route add <préfixepourlaroute3> dev sit3 metric 1
]]></screen></sect3><sect3>
<title>Utiliser "ifconfig" et "route" (méthode dépréciée)</title>
<para>Ce n'est véritablement pas une méthode recommandée pour ajouter un tunnel, car elle est plutôt étrange. Pas de problème lors de l'ajout d'un seul tunnel, mais si vous en montez plus d'un, il ne vous est pas possible facilement de démonter le premier tout en laissant les autres fonctionner.</para>
<para>Usage (exemple générique pour trois tunnels):</para><screen>
<![CDATA[# /sbin/ifconfig sit0 up
# /sbin/ifconfig sit0 tunnel <adresseipv4dutunnelétranger1>
# /sbin/ifconfig sit1 up
# /sbin/route -A inet6 add <préfixepourlaroute1> dev sit1
# /sbin/ifconfig sit0 tunnel <adresseipv4dutunnelétranger2>
# /sbin/ifconfig sit2 up
# /sbin/route -A inet6 add <préfixepourlaroute2> dev sit2
# /sbin/ifconfig sit0 tunnel <adresseipv4dutunnelétranger3>
# /sbin/ifconfig sit3 up
# /sbin/route -A inet6 add <préfixepourlaroute3> dev sit3
]]></screen><para>Important: NE JAMAIS FAIRE DE LA SORTE, car cette façon de faire rend implicitement disponible le "tunnelage automatique" à partir de n'importe où dans l'Internet, c'est un risque, et cela ne devrait jamais être préconisé.</para></sect3><sect3>
<title>Utiliser seulement "route"</title>
<para>Il est aussi possible d'installer des tunnels dans le style Accès Multiple Sans Diffusion (<emphasis>Non Broadcast Multiple Access</emphasis>, ou NBMA), c'est un moyen facile d'ajouter de nombreux tunnels en une fois.</para>
<para>Usage (exemple générique pour trois tunnels):</para><screen>
<![CDATA[# /sbin/ifconfig sit0 up
# /sbin/route -A inet6 add <préfixepourlaroute1> gw
¬ ::<adresseipv4dutunnelétranger1> dev sit0
# /sbin/route -A inet6 add <préfixepourlaroute2> gw
¬ ::<adresseipv4dutunnelétranger2> dev sit0
# /sbin/route -A inet6 add <préfixepourlaroute3> gw
¬ ::<adresseipv4dutunnelétranger3> dev sit0
]]></screen><para>Important: NE JAMAIS FAIRE DE LA SORTE, car cette façon de faire rend implicitement disponible le "tunnelage automatique" à partir de n'importe où dans l'Internet, c'est un risque, et cela ne devrait jamais être préconisé.</para></sect3></sect2><sect2>
<title>Ôter des tunnels point-à-point</title>
<para>Rarement réalisé manuellement, mais utilisé par les scripts pour une extinction propre ou un redémarrage de la configuration IPv6.</para><sect3>
<title>Utiliser "ip"</title>
<para>Pour ôter un périphérique de tunnelage:</para><screen>
<![CDATA[# /sbin/ip tunnel del <périphérique>
]]></screen><para>Usage (exemple générique pour trois tunnels):</para><screen>
<![CDATA[# /sbin/ip -6 route del <préfixepourlaroute1> dev sit1
# /sbin/ip link set sit1 down
# /sbin/ip tunnel del sit1
# /sbin/ip -6 route del <préfixepourlaroute2> dev sit2
# /sbin/ip link set sit2 down
# /sbin/ip tunnel del sit2
# /sbin/ip -6 route del <préfixepourlaroute3> dev sit3
# /sbin/ip link set sit3 down
# /sbin/ip tunnel del sit3
]]></screen></sect3><sect3>
<title>Utiliser "ifconfig" et "route" (méthode dépréciée parce qu'elle n'est pas très drôle)</title>
<para>Ce n'est pas seulement la création qui est étrange, mais l'extinction aussi... vous devez ôter les tunnels dans l'ordre inverse, ce qui signifie que le premier créé doit être le dernier ôté.</para>
<para>Usage (exemple générique pour trois tunnels):</para><screen>
<![CDATA[# /sbin/route -A inet6 del <préfixepourlaroute3> dev sit3
# /sbin/ifconfig sit3 down
# /sbin/route -A inet6 del <préfixepourlaroute2> dev sit2
# /sbin/ifconfig sit2 down
# /sbin/route -A inet6 add <préfixepourlaroute1> dev sit1
# /sbin/ifconfig sit1 down
# /sbin/ifconfig sit0 down
]]></screen></sect3><sect3>
<title>Utiliser "route"</title>
<para>Comme pour ôter des routes IPv6 courantes
</para>
<para>Usage (exemple générique pour trois tunnels):</para><screen>
<![CDATA[# /sbin/route -A inet6 del <préfixepourlaroute1> gw
¬ ::<adresseipv4dutunnelétranger1> dev sit0
# /sbin/route -A inet6 del <préfixepourlaroute2> gw
¬ ::<adresseipv4dutunnelétranger2> dev sit0
# /sbin/route -A inet6 del <préfixepourlaroute3> gw
¬ ::<adresseipv4dutunnelétranger3> dev sit0
# /sbin/ifconfig sit0 down
]]></screen></sect3></sect2><sect2>
<title>Attribution d'une adresse (<emphasis>numbered</emphasis>) à un tunnel point-à-point</title>
<para>Il est parfois nécessaire de configurer un tunnel point-à-point avec des adresses IPv6 comme pour IPv4 aujourd'hui. C'est seulement possible avec la première méthode (ifconfig+route - dépréciée) et la troisième méthode (ip+route) d'installation de tunnel. Dans de tels cas, vous pouvez ajouter l'adresse IPv6 à l'interface de tunnelage comme montré dans la configuration d'interface.</para></sect2></sect1><sect1 id='configuring-ipv6to4-tunnels' >
<title><!-- anchor id="configuring-ipv6to4-tunnels" -->Installation des tunnels 6to4</title>
<para>Prenez garde au fait que le support des tunnels 6to4 est actuellement manquant sur la série des noyaux vanille 2.2.x (voir <link linkend="systemcheck-kernel">la vérification du système / noyau</link> pour plus de détails). Notez aussi que la longueur du préfixe d'une adresse 6to4 est de 16, car, du point de vue du réseau, tous les autres hôtes 6to4 sont sur la même couche 2.</para><sect2>
<title>Ajouter un tunnel 6to4</title>
<para>Vous avez premièrement à calculer votre préfixe 6to4 en utilisant votre adresse IPv4 routable assignée localement (si votre hôte n'a pas d'adresse IPv4 routable, dans des cas précis, NAT sur une passerelle est possible):</para>
<para>En considérant que votre adresse IPv4 soit</para><screen>
<![CDATA[1.2.3.4
]]></screen><para>le préfixe 6to4 généré sera</para><screen>
<![CDATA[2002:0102:0304::
]]></screen><para>Les passerelles locales 6to4 devraient (mais cela n'est pas une nécessité, vous pouvez choisir un préfixe arbitraire de portée locale, si cela vous sied mieux) toujours assigner le suffixe ”::1”, ce qui vous donnera comme adresse 6to4 locale</para><screen>
<![CDATA[2002:0102:0304::1