summaryrefslogtreecommitdiff
blob: c14b4d6ba3c0757f44994e94620100facbfd2cee (plain)
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
<?xml version='1.0' encoding="UTF-8"?>
<!--
	Sync: 1.4
-->

<!DOCTYPE guide SYSTEM "/dtd/guide.dtd">

<guide link="/doc/nl/ipv6.xml">

<title>Gentoo IPv6 Router Guide</title>
<author title="Developer">
    <mail link="latexer@gentoo.org">Peter Johanson</mail>
</author>
<author title="Editor">
    <mail link="peesh@gentoo.org">Jorge Paulo</mail>
</author>
<author title="Editor, Reviewer">
    <mail link="swift@gentoo.org">Sven Vermeulen</mail>
</author>
<author title="Translator">
	<mail link="blubber@gentoo.org">Tiemo Kieft</mail>
</author>

<license />

<abstract>
Deze handleiding laat zien hoe IPv6 kan worden gebruikt op
een Gentoo systeem, inclusief het maken van een tunnel met
een tunnel broker. Een basis DNS configuratie en het
configureren van clients om het systeem te gebruiken om te 
verbinden met IPv6 adressen.
</abstract>

<version>1.0.2</version>
<date>4 Oktober 2003</date>

<chapter>

<title>Kernel Configuratie</title>

<section>
<title>Basis Kernel Configuratie</title>
<body>
<p>
Alle versie 2.4.x kernels die beschikbaar zijn in Gentoo ondersteunen
eenvoudig IPv6 verbindingen. En, op zowel de <c>sys-kernel/gentoo-sources</c>
als op de <c>sys-kernel/pfeifer-sources</c> kunnen de USAGI patches worden
toegepast. De USAGI patches zijn niet vereist, maar zijn volop in  ontwikkeling 
en implementeren veel onderdelen van IPv6 die anders niet aanwezig zijn in 
de kernel. Om de USAGI patches te installeren moet je er zeker van zijn 
dat 'usagi' tussen je USE variabelen staat tijdens het emergen van de 
kernel. De 2.5.x ontwikkelingskernel heeft ook uitstekende IPv6 ondersteuning, 
de USAGI patches zijn hier al grotendeels ingebouwd.
</p>

<pre caption="Een kernel emergen">
# <i>USE="usagi" emerge gentoo-sources</i>
<comment>of</comment>
# <i>USE="usagi" emerge pfeifer-sources</i>
</pre>

<p>
We kunnen nu de kernel directory binnengaan, en beginnen met het 
configureren van de kernel.
</p>

<pre caption="De Linux Kernel configureren">
# <i>cd /usr/src/linux</i>
# <i>make menuconfig</i>
</pre>

<note>
Bovenstaande gaat ervan uit dat de symlink <path>/usr/src/linux</path>
verwijst naar de kernel directory die we willen gebruiken.
</note>

<note>
zorg ervoor dat <path>Prompt for development and/or icomplete
code/drivers</path> ingeschakeld is in je kernel configuratie.
</note>

<pre caption = "'make menuconfig' options">
Networking options ---&gt;
   &lt;*&gt; IP: tunneling
   ...
   &lt;*&gt; The IPv6 protocol (EXPERIMENTAL) ---&gt;

<codenote>De IPv6 opties die hieronder staan kunnen handig zijn voor veel andere applicaties</codenote>
<codenote>maar zijn niet noodzakelijk voor een basis configuratie</codenote>

Network device support ---&gt;
   &lt;*&gt; Universal TUN/TAP device driver support
<codenote>Deze optie is alleen vereist als je ptrtd voor 6to4 conversie wilt gebruiken</codenote>
</pre>

</body>
</section>

<section>
<title>IPv6 ondersteuning testen</title>
<body>

<p>
Na het inschakelen van de aangeraden opties dient de kernel opnieuw 
gecompileerd te worden, en de computer opnieuw opgestart. Als IPv6 
werkt, dan heeft het loopback apparaat nu een IPv6 adres.
</p>

<pre caption = "Het loopback apparaat controleren">
# <i>ifconfig lo</i>
lo    Link encap:Local Loopback 
      inet addr:127.0.0.1  Mask:255.0.0.0 
	  inet6 addr: ::1/128 Scope:Host
      <codenote>De bovenstaande regel laat zien dat alles werkt</codenote>
	  UP LOOPBACK RUNNING  MTU:16436  Metric:1
      RX packets:6 errors:0 dropped:0 overruns:0 frame:0
      TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0
      RX bytes:456 (456.0 b)  TX bytes:456 (456.0 b)
</pre>

<p>
Voordat we verder kunnen gaan moet je je ervan vergewissen dat je "ipv6" aan 
de lijst met use variabellen in make.conf hebt toegevoegd. Hierdoor zullen 
nieuw ge-emergde programma's zo mogelijk ook gebruik maken van IPv6.
</p>

</body>
</section>

</chapter>
<chapter>

<title>Tunnel Configuratie</title>

<section>
<title>Basis Configuratie</title>
<body>

<p>
De meeste ISPs ondersteunen geen IPv6 op hun netwerk. Om om deze beperking heen 
te komen bestaan er een aantal "tunnel brokers" verspreid over de wereld. 
Zij bieden gratis IPv6 tunnels aan. Via deze tunnel kun je IPv6 verkeer over
een IPv4 verbinding sturen.
</p>

<table>
<tr><th>Broker</th><th>Locatie</th></tr>
<tr><ti><uri link="http://tunnelbroker.net">Hurricane Electric</uri></ti><ti>VS/Canada</ti></tr>
<tr><ti><uri link="http://www.freenet6.net">Freenet6</uri></ti><ti>VS</ti></tr>
<tr><ti><uri link="http://ipng.org.uk">IPnG</uri></ti><ti>Engeland</ti></tr>
<tr><ti><uri link="http://tb.ipv6.btexact.com">BTExact</uri></ti><ti>Europa</ti></tr>
</table>

<p>
Hieronder staan twee voorbeelden voor het opzetten van een verbinding met
twee populaire Noord Amerikaanse tunnel brokers, Hurricane Electric
en Freenet6.
<!--
XXX
Below are two examples for setting up a tunnel with two popular North 
American tunnels, Hurricane Electric and Freenet6.
-->
</p>
</body>
</section>

<section>
<title>Hurricane Electric</title>
<body>

<p>
Hurricane Electric (HE in het kort) biedt gratis IPv6 tunnels aan, en
reserveren een /64 blok met adressen voor je. HE staat reverse DNS
configuraties toe. Om een tunnel te krijgen bij HE surf je naar 
<uri>http://www.tunnelbroker.net</uri>, onderaan de pagina vind je daar
een knop "register", als je daar op klikt kom je bij het formulier dat
je in moet vullen.
</p>

<note>
De registratie vereist het invullen van informatie zoals je adres
en telefoonnummer.
</note>

<warn>
Een tunnel bij HE heeft 24 uur nodig om geactieveerd te worden. Dit 
doet men om misbruik van de service tegen te gaan,
</warn>

<p>
Nadat de tunnel goedgekeurd is, wordt er een /64 blok voor je gereserveerd,
je kunt nu je Gentoo computer instellen. HE heeft enkele voorbeeld
configuraties, deze zijn gebaseerd op ifconfig en de iproute programmas. De 
volgende twee voorbeelden gaan uit van de volgende configuratie:
</p>

<table>
<tr><ti>Lokaal IPv4 adres</ti><ti>68.36.91.195</ti></tr>
<tr><ti>HE IPv4 adres</ti><ti>64.71.128.82</ti></tr>
<tr><ti>Lokaal IPv6 tunnel adres</ti><ti>2001:470:1F00:FFFF::189</ti></tr>
<tr><ti>IPv6 blok</ti><ti>2001:470:1F00:296::/64</ti></tr>
</table>

<p>
Als je de net-tools en <c>ifconfig</c> wilt gebruiken moet je het volgende
doen:
</p>

<pre caption="Configuratie met ifconfig">
# <i>ifconfig sit0 up</i>
# <i>ifconfig sit0 inet6 tunnel ::64.71.128.82 </i>
<codenote>Voeg een tunnel aan het HE IPv4 adres toe</codenote>
# <i>ifconfig sit1 up</i>
# <i>ifconfig sit1 inet6 add 2001:470:1F00:FFFF::189/127</i>
# <i>route -A inet6 add ::/0 dev sit1</i>
<codenote>Routeer alle IPv6 verkeer door het 'sit1' apparaat</codenote>
</pre>

<p>
Als je gebruikt wilt maken van het iproute pakket en het <c>ip</c> commando, dan
moet je het volgende doen:
</p>

<pre caption="Configuratie met ip">
# <i>ip tunnel add sixbone mode sit remote 64.71.128.82 local 68.36.91.195 ttl 255</i>
<codenote>Maak een tunnel tussen het lokale IPv4 adres en HE's IPv4 adres</codenote>
# <i>ip link set sixbone up</i>
# <i>ip addr add 2001:470:1F00:FFFF::189/127 dev sixbone</i>
<codenote>Zet de tunnel aan, en wijs er het IPv6 adres aan toe</codenote>
# <i>ip route add ::/0 dev sixbone</i>
<codenote>Routeer alle IPv6 adressen door ons 'sixbone' tunnel apparaat</codenote>
</pre>

</body>
</section>

<section>
<title>Freenet6</title>
<body>

<p>
<uri link="www.freenet6.net">Freenet6</uri> is een andere gratis
tunnel broker. Registratie vereist enkel een username en
een geldig email adres. Men heeft er hier voor gekozen om het tunnel
management onder te brengen in een client/server opzet. De client
<c>tspc</c> is verkrijgbaar via portage. Om te installeren doe je het volgende:
</p>

<pre>
# <i>emerge freenet6</i>
</pre>

<p>
Vervolgens moet je freenet6 configureren door <path>/etc/freenet6/tspc.conf</path>
aan te passen. Je hoeft eigenlijk alleen maar de velden <path>userid</path> en
<path>password</path> aan te passen, de waardes moeten overeenkomen met de waardes
die freenet6 je toegewezen heeft. Hieronder staat een voorbeeld configuratie
bestand:
</p>

<pre caption="tspc.conf voorbeeld">
tsp_version=1.0.1
tsp_dir=/etc/freenet6
auth_method=any
client_v4=auto
<i>userid=anonymous</i>
<i>passwd=foobar</i>
template=gentoo
server=tsps1.freenet6.net
retry_delay=0
if_tunnel=sit3
</pre>

</body>
</section>

<section>
<title>De verbinding testen</title>
<body>

<p>
Nu je tunnel geconfigureerd is, kun je je verbinding testen. De makkelijkste
manier om dit te doen is doormiddel van <c>ping6</c> een IPv6 host te pingen.
</p>

<pre caption = "De verbinding testen">
# <i>emerge iputils</i>
# <i>ping6 www.kame.net</i>
PING www.kame.net(orange.kame.net) 56 data bytes
64 bytes from orange.kame.net: icmp_seq=1 ttl=52 time=290 ms
64 bytes from orange.kame.net: icmp_seq=2 ttl=52 time=277 ms
64 bytes from orange.kame.net: icmp_seq=3 ttl=52 time=280 ms
64 bytes from orange.kame.net: icmp_seq=4 ttl=52 time=279 ms
64 bytes from orange.kame.net: icmp_seq=5 ttl=52 time=277 ms

--- www.kame.net ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4038ms
rtt min/avg/max/mdev = 277.040/281.041/290.046/4.699 ms
</pre>

<p>
Op het moment wordt er hard gewerkt aan het verbeteren van de IPv6 
ondersteuning in de netwerk init scripts. Als je de huidige status
hiervan wilt weten, of als je wilt helpen, kun je emailen naar
<mail link="latexer@gentoo.org">latexer@gentoo.org</mail>.
</p>

</body>
</section>

</chapter>
<chapter>

<title>IPv6 ondersteuning in applicaties</title>

<section>
<title>Pakketten opnieuw emergen</title>
<body>

<p>
Tenzij je USE="ipv6" al in je <path>/etc/make.conf</path> had staan, moet
je waarschijnlijk een aantal pakketten opnieuw emergen voordat ze IPv6
ondersteuning hebben. Om een lijst van alle geinstalleerde pakketten te
krijgen die baat hebben bij de 'ipv6' USE variabele, kun je dit commando
uitvoeren:
</p>

<pre caption="Kandidaten voor opnieuw emergen">
# <i>emerge -epv world | grep ipv6 | sed "s:^.*\] ::; s:-[0-9]\+.*::" | cut -d' ' -f1</i>
</pre>

<p>
Om eenvoudig sommige van de geselecteerde pakketten opnieuw te
emergen doe je:
</p>

<pre caption="Kandidaten voor opnieuw emergen">
# <i>emerge -epv world | grep ipv6 | sed "s:^.*\] ::; s:-[0-9]\+.*::" | \</i>
&gt; <i>cut -d' ' -f1 > packages</i>
</pre>

<p>
Vervolgens pas je het <path>packages</path> bestand aan en verwijder
je eventuele pakketten die je nu niet opnieuw wilt compilen. Daarna
draai je:
</p>

<pre>
# <i>emerge `cat packages`</i>
</pre>

</body>
</section>

<section>
<title>IPv6 Specifieke pakketten</title>
<body>

<p>
Er zijn een aantal pakketten die met specifieke IPv6 onderdelen te maken
hebben. De meeste van deze pakketten zitten in <path>/usr/portage/net-misc</path>.
</p>

<table>
<tr><th>Pakket</th><th>Omschrijving</th></tr>
<tr><ti>net-misc/ipv6calc</ti><ti>Converteerd een IPv6 adres naar een 
gecomprimeerd formaat</ti></tr>
<tr><ti>net-misc/nc6</ti><ti>Netcat versie die zowel IPv4 als IPv6 
ondersteund</ti></tr>
<tr><ti>dev-perl/Socket6</ti><ti>IPv6 gerelateerd deel van de C socket.h definities
en structuur manipulators</ti></tr>
</table>
</body>
</section>

</chapter>
<chapter>

<title>DNS opzet</title>

<section>
<title>IPv6 en DNS</title>
<body>

<p>
Net zoals DNS voor IPv4 gebruik maakt van A records, maakt DNS voor
IPv6 gebruik van AAAA records. (Dit komt omdat IPv4 een adresruimte
van 2^32 is terwijl IPv6 een adresruimte van 2^128 is). Voor reverse DNS wordt 
de INT standaard het beste ondersteund. ARPA is het nieuwste formaat, maar is
nog niet zo wijdverspreid als INT. Ondersteuning voor het INT formaat wordt hier
beschreven.
</p>

</body>
</section>

<section>
<title>BIND configuratie</title>
<body>

<p>
Recente versies van BIND hebben prima IPv6 ondersteuning. Deze
sectie gaat ervan uit dat je over, op zijn minst, minimale kennis
betreffende de configuratie en de werking van BIND beschikt. We gaan
ervan uit dat BIND niet in een chroot draait. Als dat wel het geval is,
dan kun je simpelweg het chroot voorvoegsel toevoegen achter de paden
in de volgende sectie.
</p>

<p>
Eerst moet je de entries voor zowel forward als reverse DNS zone bestanden
toevoegen in <path>/etc/bind/named.conf</path>.
</p>

<pre caption="named.conf entries">
zone "ipv6-rules.com" IN {
	type master;
	file "pri/ipv6-rules.com";
};
<codenote>Dit levert de forward DNS voor het domain 'ipv6-rules.com'</codenote>
zone "6.9.2.0.0.0.f.1.0.7.4.0.1.0.0.2.ip6.int" {
	type master;
	file "pri/rev-ipv6-rules.com.int";
};
<codenote>Dit formaat voor reverse DNS heet "bitwise". Het wordt verkregen door het IPv6 voorvoegsel te nemen,</codenote>
<codenote>dit om te draaien en een punt tussen elk getal te zetten.</codenote>
</pre>

<p>
Vervolgens moeten we de zone bestanden aanmaken en entries toevoegen
voor al onze hosts:
</p>

<pre caption="pri/ipv6-rules.com">
$TTL    2h
@       IN      SOA     ipv6-rules.com. webmaster.ipv6-rules.com.  (
                                2003052501 ; Serial
				28800      ; Refresh
				14400      ; Retry
				3600000    ; Expire
				86400 )    ; Minimum
			NS      ns1.ipv6-rules.com

	IN	AAAA	2001:470:1f00:296::1 ; address for ipv6-rules.com
host1	IN	AAAA	2001:470:1f00:296::2 ; address for host1.ipv6-rules.com
host2	IN	AAAA	2001:470:1f00:296::3:3 ; address for host2.ipv6-rules.com
</pre>

<pre caption="pri/rev-ipv6-rules.com.int">
$TTL 3d ; Default TTL (bind 8 needs this, bind 9 ignores it)
@       IN SOA ipv6-rules.com. webmaster.ipv6-rules.com. (
                        2003052501      ; Serial number (YYYYMMdd)
			24h             ; Refresh time
			30m             ; Retry time
			2d              ; Expire time
			3d )            ; Default TTL
	IN      NS     ns1.ipv6-rules.com.
; IPv6 PTR entries
$ORIGIN 6.9.2.0.0.0.f.1.0.7.4.0.1.0.0.2.ip6.int.

1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN      PTR     ipv6-rules.com.
2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN      PTR     host1.ipv6-rules.com.
3.0.0.0.3.0.0.0.0.0.0.0.0.0.0.0 IN      PTR     host2.ipv6-rules.com.
</pre>

</body>
</section>

<section>
<title>DJBDNS configuratie</title>
<body>

<p>
Er zijn momenteel een aantal derde-partij patches voor DJBDNS beschikbaar
op <uri link="http://www.fefe.de/dns">http://www.fefe.de/dns/</uri> die
DJBDNS in staat stellen tot het serveren van IPv6 namen. DJBDNS kan geinstalleerd
worden met deze patches door te emergen met "ipv6" in de use variabelen.
</p>

<warn>
Niet alle record types worden nog ondersteund door deze patches. Voornamelijk
NS en MX records worden vooralsnog niet ondersteund.
</warn>

<pre>
# <i>USE="ipv6" emerge djbdns</i>
</pre>

<p>
Nadat djbdns is geinstalleerd, kan het worden opgezet door <c>tinydns-setup</c>
te draaien. Er worden een aantal vragen gesteld over bijvoorbeeld het IP adres waar
de server op moet luisteren, waar tinydns moet worden geinstalleerd, etc.
</p>

<pre caption = "Tinydns opzetten">
# <i>tinydns-setup</i>
</pre>

<p>
Aangenomen dat <c>tinydns</c> is geinstalleerd in <path>/var/tinydns</path>,
kunnen we nu <path>/var/tinydns/data</path> aanpassen. Dit bestand bevat
alle data die nodig is voor tinydns om IPv6 DNS aanvragen af te handelen.
</p>

<pre caption="voorbeeld data bestand">
.ipv6-rules.com:192.168.0.1:a:259200
<codenote>*.ipv6-rules.com wordt authoritief afgehandeld door 192.168.0.1</codenote>
.6.9.2.0.0.0.f.1.0.7.4.0.1.0.0.2.ip6.int:192.168.0.1:a
<codenote>Authoritief reverse DNS voor 2001:470:1f00:296::/64</codenote>
6host1.ipv6-rules.com:200104701f0002960000000000000001:86400
6host2.ipv6-rules.com:200104701f0002960000000000000002:86400
<codenote>Specificeer de IPs voor host1 en host2</codenote>
3www.ipv6-rules.com:200104701f0002960000000000000002:86400
<codenote>Laat www naar host1 verwijzen</codenote>
</pre>

<p>
Regels die voorafgegaan worden door een <c>6</c> hebben zowel een AAAA
als een PTR record. Regels voorafgegaan door een <c>3</c> hebben enkel
een AAAA record. Naast het handmatig aanpassen van het <path>data</path> bestand, kun
je ook gebruik maken van de programmas <c>add-host6</c> en <c>add-alias6</c>
om nieuwe entries toe te voegen. Nadat er wijzigingen gemaakt zijn
aan het <path>data</path> bestand, dien je <c>make</c> te draaien
vanuit <path>/var/tinydns/root</path>. Hierdoor wordt 
<path>/var/tinydns/root/data.cfb</path> aangemaakt, tinydns gebruikt dit 
bestand als bron voor informatie voor het afhandellen van DNS aanvragen.
</p>

</body>
</section>

</chapter>
<chapter>

<title>IPv6 Router</title>

<section>
<title>Routing configureren</title>
<body>

<p>
Als je je computer als router wilt gebruiken voor clients die met de buitenwereld
willen communiceren via IPv6, dan is er nog enige configuratie vereist. We moeten 
er voor zorgen dat IPv6 pakketten worden doorgestuurd. we kunnen dit op twee manieren
doen.
</p>

<pre caption="Forwarding aanzetten">
# <i>echo 1 > /proc/sys/net/ipv6/conf/all/forwarding</i>
of
# <i>sysctl -w net.ipv6.conf.all.forwarding=1</i>
</pre>

<warn>
Het radvd init script zet forwarding aan, en maakt daarmee
de volgende stap overbodig.
</warn>

<p>
Om forwarding aan te zetten tijdens het opstarten, moeten
we aan <path>/etc/sysctl.conf</path> het volgende toevoegen.
</p>

<pre caption="sysctl.conf toevoeging">
net.ipv6.conf.default.forwarding=1
</pre>

<p>
Verkeer wordt nu doorgestuurd vanaf deze machine, door de tunnel die we hebben
gemaakt naar onze broker.
</p>

<p>
We kunnen op twee manieren IPv6 adressen toewijzen aan onze clients, de 
IPv6 specificatie staat beide stateless en stateful toewijzing toe. 
Stateless toewijzing maakt gebruik van een proces dat Router Advertisement
wordt genoemd, en staat een client toe om een IP adres en een standaard route 
te verkrijgen door simpelweg de interface op te brengen. Het 
heet &quot;stateless&quot; omdat er geen record wordt bijgehouden van IP 
adressen die toegewezen zijn, en de hosts aan wie ze toegewezen zijn. Stateful 
toewijzing wordt afgehandeld door DHCPv6. Het wordt &quot;stateful&quot;
genoemd omdat de server bijhoud welke van de clients een IP adres heeft 
aangevraagd, en welk IP adres zij hebben gekregen.
</p>

</body>
</section>

<section>
<title>Stateless Configuratie</title>
<body>

<p>
Een stateless configuratie is makkelijk op te zetten
met behulp van de Router Advertisement Daemon, ofwel radvd.
</p>

<pre caption="radvd configureren">
# <i>emerge radvd</i>
</pre>

<p>
Nadat radvd ge-emerged is, moeten we <path>/etc/radvd/radvd.conf</path>
aanpassen. Dit bestand bevat informatie over welk IP blok wordt
gebruikt om IP adressen uit toe te wijzen. Hier is een voorbeeld 
<path>radvd.conf</path> bestand dat gebruik maakt van het voorvoegsel dat 
de broker ons heeft toegewezen.
</p>

<pre caption="Voorbeeld radvd.conf">
interface eth0
{
    AdvSendAdvert on;
	<codenote>Verstuur advertisement berichten naar andere hosts</codenote>
	AdvLinkMTU 1280;
	MaxRtrAdvInterval 300;
	prefix 2001:470:1F00:296::/64
	<codenote>De groep IPs die we tot onze beschikking hebben</codenote>
	{
		AdvOnLink on;
		AdvAutonomous on;
	};
};
</pre>

<p>
Meer informatie is beschikbaar via <c>man radvd.conf</c>. We kunnen
nu radvd starten, en instellen om te starten tijdens het opstarten.
</p>

<pre caption = "radvd starten">
# <i>/etc/init.d/radvd start</i>
# <i>rc-update add radvd default</i>
</pre>

</body>
</section>

<section>
<title>Stateful Configuratie</title>
<body>

<p>
Als je het handiger vindt om een stateful configuratie te gebruiken, dan
moet je dhcpv6 installeren en configureren.
</p>

<pre caption = "dhcpv6 installeren">
# <i>emerge dhcpv6</i>
</pre>

<p>
Vervolgens moeten we de DHCPv6 server configureren door
<path>/etc/dhcp6s.conf</path> aan te passen.
</p>

<pre caption="Voorbeeld dhcp6s.conf">
prefer-life-time 10000;
valid-life-time 20000;
renew-time 5000;
rebind-time 8000;
interface eth1 {
	link AAA {
		allow unicast;
		send unicast;
		allow rapid-commit;
		send server-preference 5;
		renew-time 1000;
		rebind-time 2400;
		prefer-life-time 2000;
		valid-life-time 3000;
                pool{
                        range 2001:470:1f00:296::10 to 2001:470:1f00:296::110/64;
                        prefix 2001:470:1f00:296::/64;
                };
	};
};
</pre>

<p>
We kunnen nu dhcp6s starten, en instellen om te starten tijdens het opstarten.
</p>

<pre caption = "dhcp6s starten">
# <i>/etc/init.d/dhcp6s start</i>
# <i>rc-update add dhcp6s default</i>
</pre>

</body>
</section>
</chapter>

<chapter>
<title>IPv6 Clients</title>
<section>
<title>Radvd gebruiken</title>
<body>

<p>
Clients die zich achter de router bevinden zouden nu in staat moeten zijn
om met de rest van het netwerk te verbinden via IPv6. Als je gebruik maakt
van radvd dan zou het genoeg moeten zijn om de interface op te brengen
(dit wordt waarschijnlijk al door jet net.ethX init scripts gedaan), de interface
wordt dan vanzelf geconfigureerd.
</p>

<pre caption = "Verbinden via IPv6">
# <i>ifconfig eth0 up</i>
# <i>ifconfig eth0</i>
eth0      Link encap:Ethernet  HWaddr 00:09:6B:06:B7:B4
          inet6 addr: fe80::209:6bff:fe06:b7b4/64 Scope:Link
          inet6 addr: 2001:470:1f00:296:209:6bff:fe06:b7b4 Scope:Global
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:100
          RX bytes:0 (0.0 b)  TX bytes:828 (828.0 b)
          Interrupt:11 Base address:0x8400 Memory:d0204000-d0204038
</pre>

</body>
</section>

<section>
<title>DHCPv6 gebruiken</title>
<body>

<p>
Als je router opgezet is voor het gebruik van DHCPv6, dan moeten de 
clients ook het dhcpv6 pakket geinstalleerd hebben. Als dit gedaan is
moet je de clients configureren door <path>/etc/dhcp6c.conf</path>
aan te passen.
</p>

<pre caption="Voorbeeld dhcp6c.conf">
interface eth0 {
	send rapid-commit;
	request prefix-delegation;
	request domain-name-servers;
	request temp-address;
	iaid 11111;
	renew-time 11000;
	rebind-time 21000;
};
</pre>

</body>
</section>

</chapter>

<chapter>
<title>Gebruik maken van 6to4 conversie</title>
<section>
<title>Basis princiepes</title>
<body>

<p>
6to4 conversie kun je gebruiken om een hosts in staat te stellen om
IPv4 te praten over een puurt IPv6 netwerk. Dus, je kunt een compleet IPv6 
intern netwerk hebben, met 1 host die met de buitenwereld verbindt 
via IPv4/IPv6.
</p>

</body>
</section>

<section>
<title>DNS configuratie</title>
<body>

<p>
Om 6to4 conversie te laten werken is een DNS proxy, <c>totd</c>,  nodig.
De DNS proxy moet A records omzetten naar AAAA records, voor hosts die
enkel over een A record beschikken. Deze AAAA records zullen verwijzen
naar IPv6 adressen die in het echt niet bestaan, maar die worden gerout
door de 6to4 proxy. <c>totd</c> is nog <c>~x86</c> gemaskeerd wachtend
op verdere tests.
</p>

<pre caption = "totd installeren">
# <i>ACCEPT_KEYWORDS="~x86" emerge totd</i>
</pre>

<p>
Vervolgens moeten we <path>/etc/totd.conf</path> opzetten met enkele
basis configuratie informatie.
</p>

<pre caption="Voorbeeld /etc/totd.conf">
forwarder 192.168.0.2 port 53
<codenote>Verwijst naar een echte DNS nameserver</codenote>
prefix 3ffe:abcd:1234:9876::
<codenote>Welk voorvoegsel wordt er gebruikt voor nep AAAA records</codenote>
port 5005
<codenote>Op welke poort moet totd luisteren</codenote>
pidfile /var/run/totd.pid
<codenote>Welk PID bestand moet totd gebruiken</codenote>
stf
<codenote>Doe het echte 6to4 werk</codenote>
</pre>

<note>
Als er al een DNS server draait op dezelfde computer, dan moet <c>totd</c>
worden geconfigureerd om te luisten op een andere poort dan 53.
</note>

</body>
</section>

<section>
<title>6to4 proxy</title>
<body>

<p>
<c>ptrtd</c> zal worden gebruikt als 6to4 proxy. <c>ptrtd</c> maakt 
verbindingen mogelijk tussen de interne IPv6 host een de externe IPv4 host.
</p>

<pre caption = "ptrtd installeren">
# <i>ACCEPT_KEYWORDS="~x86" emerge ptrtd</i>
</pre>

<p>
We moeten nu <c>ptrtd</c> configureren, en vertellen welk
nep voorvoegsel (de gene die we al bij <c>totd</c> hadden gebruikt),
te gebruiken om proxy verbindingen voor op te zetten. Pas 
<path>/etc/conf.d/ptrtd</path> aan en zet <c>IPV6_PREFIX</c>. Dit
moet hetzelfde voorvoegsel zijn als geconfigureerd is met <c>totd</c>.
</p>

<pre caption="Voorbeeld /etc/ptrtd.conf">
IPV6_PREFIX="3ffe:abcd:1234:9876::"
</pre>

<p>
Je kunt nu totd starten, en instellen om te starten
tijdens het opstarten.
</p>

<pre caption = "Voorbeeld totd">
# <i>/etc/init.d/totd start</i>
# <i>rc-update add totd default</i>
</pre>

</body>
</section>

<section>
<title>Clients configureren en testen</title>
<body>

<p>
Clients kunnen nu worden geconfigureerd om door een puur IPv6 netwerk 
te verbinden met zowel IPv4 als IPv6 hosts. Aangenomen dat de 
clients allemaal een IP adres krijgen van radvd, dienen we simpelweg
een nieuwe DNS resolver entry toe te voegen, en een 
standaard route voor de "nep adressen". Ten eerste, voeg een entry, verwijzend 
naar de machine waar <c>totd</c> op draait, toe aan de top van je 
<path>/etc/resolv.conf</path> bestand.
</p>

<pre caption="/etc/resolv.conf voorbeeld">
nameserver 2001:470:1f00:296::1
<codenote>De server waar totd op draait</codenote>
</pre>

<p>
Om DNS opvragen te testen kunnen we het AAAA record opvragen voor
een bekende alleen IPv4 site.
</p>

<pre caption = "Het testen van naam opvragen">
# <i>host -t aaaa google.com</i>
google.com has AAAA address 3ffe:abcd:1234:9876::d8ef:3364
google.com has AAAA address 3ffe:abcd:1234:9876::d8ef:3564
</pre>

<p>
We zullen nu een standaard route maken voor alle adressen voorafgegaan door
het door ons gekozen nep voorvoegsel.
</p>

<pre caption="Gebruik maken van het route programma">
# <i>route -A inet6 add 3ffe:abcd:1234:9876::/64 gw 2001:470:1f00:296::1</i>
</pre>

<pre caption="Gebruik maken van ip route">
# <i>ip route add 3ffe:abcd:1234:9876::/64 via 2001:470:1f00:296::1 dev eth0</i>
</pre>

<p>
Tenslotte kun je het <c>ping6</c> programma gebruiken om google.com
te pingen op zijn nep IPv6 locatie.
</p>

<pre caption="6to4 testen">
# <i>ping6 -c 2 google.com</i>
PING 3ffe:abcd:1234:9876::d8ef:3364(3ffe:abcd:1234:9876::d8ef:3364) 56 data bytes
64 bytes from 3ffe:abcd:1234:9876::d8ef:3364: icmp_seq=1 ttl=255 time=0.106 ms
64 bytes from 3ffe:abcd:1234:9876::d8ef:3364: icmp_seq=2 ttl=255 time=0.090 ms

--- 3ffe:abcd:1234:9876::d8ef:3364 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.090/0.098/0.106/0.008 ms
</pre>

<note>
De computer die reageert is eingelijk de router waar <c>ptrtd</c> op
draait, maar dit verteld ons wel dat de 6to4 conversie werkt.
</note>

</body>
</section>

</chapter>

<chapter>
<title>Andere bronnen</title>
<body>

<p>
Er zijn een aantal uitstekende online bronnen die IPv6
als onderwerp hebben.
</p>

<table>
<tr><th>Websites</th><th>Bronnen</th></tr>
<tr><ti><uri link="http://www.ipv6.org/">www.ipv6.org</uri></ti><ti>Algemene IPv6 informatie</ti></tr>
<tr><ti><uri link="http://www.linux-ipv6.org/">www.linux-ipv6.org/</uri></ti><ti>USAGI Project</ti></tr>
<tr><ti><uri link="http://www.deepspace6.net/">www.deepspace6.net</uri></ti><ti>Linux/IPv6 site</ti></tr>
<tr><ti><uri link="http://www.hs247.com/">www.hs247.com</uri></ti><ti>Alles over IPv6</ti></tr>
<tr><ti><uri link="http://www.ipv6-net.org/">www.ipv6-net.org</uri></ti><ti>Duitse IPv6 site</ti></tr>
<tr><ti><uri link="http://www.kame.net/">www.kame.net</uri></ti><ti>*BSD implementatie</ti></tr>
</table>

<p>
Er zijn ook een aantal IRC kanalen, <c>#gentoo-ipv6</c> en <c>#ipv6</c> op
<uri link="http:/www.freenode.org">Freenode</uri>. Je kunt verbinden met
de Freenode servers met een IPv6 client door te verbinden op
<b>irc.ipv6.freenode.net</b>.
</p>

</body>
</chapter>


</guide>