Muada logo - Click to visit our homepage
HOME · HOME (OLD) · SEARCH · FEEDBACK · LOG ON · NEDERLANDS

IPv6 over een dial-up verbinding of ADSL bij XS4ALL

Als je met IPv6 aan de slag wilt moet je je aansluiten op een IPv6 netwerk, net als je je voor het werken met IPv4 op het IPv4 internet aan moet sluiten. Het probleem is echter dat maar een minieme fractie van 't huidige internet IPv6 aankan. Inbelservers zijn een goed voorbeeld van systemen die niks van IPv6 snappen. Dit is op te lossen via "tunnels". Hierbij worden de IPv6 pakketten verpakt in IPv4 pakketten en zo kunnen ze gedeelten van het netwerk die nog geen IPv6 doen passeren.

Er zijn een aantal typen dynamische tunnels, waarbij de eindpunten (de apparaten die het toevoegen en verwijderen van een extra IPv4 header voor hun rekening nemen) niet vast ingesteld hoeven te worden. Dit type tunnels laat ik hier buiten beschouwing.

Instellingen bij XS4ALL

Als je bij XS4ALL aan de slag wilt met IPv6 zal je in de meeste gevallen een tunnel op moeten zetten. Hier heb je drie dingen voor nodig:

  • Een systeem dat IPv6 aan kan, zoals: een BSD variant, Linux, Windows XP of MacOS 10.2 Jaguar
  • Een XS4ALL account
  • Een vast (statisch) IP adres

Ik heb twee setups uitgeprobeerd. Hieronder wat ik gedaan heb om ze aan de praat te krijgen. Let op dat je op de XP machine als administrator inlogt. Wat je hier ziet zijn de commando's die je moet geven om eea direct te activeren. Dit moet je dus na iedere reboot opnieuw doen, of je moet hier scriptjes voor maken. Er zijn ook betere manieren om dit permanent te maken, maar dat laat ik als oefening over aan de lezer. (Voor de Mac zouden de BSD instellingen die bij de service pagina gelinkt worden in principe moeten werken, zij het dat MacOS geen rc.conf heeft...)

De instellingen aan de kant van XS4ALL zijn in beide gevallen hetzelfde. Door in te loggen met mijn account op https://service.xs4all.nl/ipv6/ en een tunnel aan te maken naar mijn vaste IP adres 194.109.13.84 kreeg ik de volgende IPv6 gegevens:

Tunnel endpoint XS4ALL:    194.109.5.241
Tunnel endpoint mijn kant: 194.109.13.84
Tunnel adres XS4ALL kant:  3ffe:8280:0:2001::3714/127
Tunnel adres mijn kant:    3ffe:8280:0:2001::3715/127
IPv6 adresreeks:           3ffe:8280:10:7410::/60

Het is ook nog mogelijk om nameservers in te vullen, maar dat is niet verplicht; deze velden kan je leeg laten.

Ok, wat betekent dit? De endpoints zijn de IP adressen van de machines die het in/uitpakken van IPv6 in IPv4 afhandelen. Let op dat ik hier op de machine die dit adres als echt adres heeft werk en NIET achter een NAT gateway. De inbellende machine deed hierbij NAT voor IPv4 (niet voor IPv6) voor de andere, dit was nodig om op IPv4 de DNS aan te spreken. Hoe dit moet is in de betreffende helpsystemen te vinden.

De machine behandelt een tunnel als een echt interface. Dat betekent dat het tunnel interface ook een IPv6 adres moet hebben, anders is het niet mogelijk er IPv6 pakketten overheen te sturen. De adressen aan beide kanten zijn opeenvolgend en vormen samen een "subnet", wat het vinden van de andere kant makkelijker maakt.

De IPv6 adresreeks is waar het allemaal om begonnen is: dit zijn de adressen die je naar eigen inzicht kan gebruiken. Je kan hierbij 68 van de 128 bits van het IPv6 adres naar eigen inzicht invullen, en de eerste 60 worden door XS4ALL opgegeven (dit is wat de /60 aangeeft). Je hebt dus 295147905179352825856 individuele adressen. Maar het is gebruikelijk die in blokken van 64 bits aan ethernetsegmenten en dergelijke toe te kennen. Als je dat doet is het mogelijk om systemen op zo'n ethernet automatisch hun IPv6 adres samen te laten stellen. Dat betekent dat je 4 bits overhoudt om de verschillende ethernetten uit elkaar te houden. In de praktijk: je gebruikt het laatste cijfer voor de :: om je ethernetsegmenten uit elkaar te houden. Ik heb bijvoorbeeld 3ffe:8280:10:7410::/64 voor m'n vaste ethernet gebruikt en 3ffe:8280:10:7411::/64 voor m'n wireless LAN.

Met een Mac inbellen en IPv6 routeren voor Windows XP

Op de Mac moet uiteraard een dial-up config ingesteld worden zoals te doen gebruikelijk. Hier zijn verder geen bijzondere instellingen bij nodig. Daarna heb ik een terminal (in applications/utilities) gestart en de volgende commando's ingevoerd:

sudo ifconfig gif0 tunnel 194.109.13.84 194.109.5.241
sudo ifconfig gif0 inet6 3ffe:8280:0:2001::3715/127
sudo route add -inet6 default 3ffe:8280:0:2001::3714
sudo ifconfig en0 inet6 3ffe:8280:10:7410::1
sudo sysctl -w net.inet6.ip6.forwarding=1
sudo rtadvd en0

Het commando "sudo" maakt het mogelijk om als gewone gebruiker commando's uit te voeren die normaal aan root voorbehouden zijn. Je moet wel het root wachtwoord opgeven. (Dit is gelijk aan het wachtwoord van de eerste gebruiker die op het systeem aangemaakt is.)

De eerste regel stelt de tunnel endpoints in. De tweede het IP adres voor de tunnel. De derde regel maakt een default route aan zodat alle IPv6 bestemmingen via de tunnel gerouteerd worden. Vervolgens komt op de ethernetkaart (en0) een IP adres uit de eerste /64 (let op dat het /64 subnetmask de default is), zetten we IPv6 forwarding (routering) tussen de verschillende interfaces aan in de kernel en als laatste starten we de router advertisement daemon om andere IPv6 hosts op de hoogte te brengen van de mogelijkheid om via IPv6 het net op te gaan via dit systeem.

Overigens is MacOS 10 op BSD gebaseerd dus grote kans dat bovenstaand op de meeste BSD varianten ook zal werken.

Op de Windows XP machine startte ik een "opdrachtprompt" (te vinden in het startmenu) en typte ik:

ipv6 install

en dat was dat. Vervolgens kon ik met Internet Explorer naar verschillende IPv6 sites zoals www.ipv6.xs4all.nl, www.ipv6.surfnet.nl, www.kame.net en www.netbsd.org. IE onder Win XP probeert bij sites die zowel een A (IPv4) als AAAA (IPv6) record in de DNS hebben eerst IPv6 en pas als dat niet wil IPv4. Helaas kon ik onder MacOS geen enkele browser vinden die standaard IPv6 doet, dit zal waarschijnlijk komen omdat pas sinds versie 10.2 IPv6 standaard in de kernel zit. Wel is het mogelijk om met traceroute6 te zien of alles werkt. (Onder Windows is dit "tracert6".) Er is ook een ping6, en de telnet en ftp commando's supporten IPv6.

Met Windows XP inbellen en IPv6 routeren voor een Mac

De volgende vraag was of Windows XP net zo makkelijk als een MacOS machine als IPv6 router kon functioneren. Het antwoord: ja, dit viel reuze mee, ondanks het feit dat de betreffende commando's slecht gedocumenteerd zijn. Let op dat het configureren van IPv6 onder de standaard Windows XP heel anders gaat dan andere protocollen: namelijk via de prompt. Vanaf service pack 1 kan het zowel via de prompt zoals hier beschreven als op een meer Windows-achtige manier.

Let op dat hieronder interfaces steeds met een nummer aangegeven worden. Met het commando "ipv6 if" (na "ipv6 install") kan je zien wat de nummers voor de interfaces op jouw systeem zijn. Bij mij was 6 mijn wireless kaart en 7 het tunnel interface dat ik aanmaakte. De commando's:

ipv6 install
ipv6 ifcr v6v4 194.109.13.84 194.109.5.241
ipv6 ifc 7 forwards
ipv6 adu 7/3ffe:8280:0:2001::3715
ipv6 rtu ::/0 7/3ffe:8280:0:2001::3714
ipv6 adu 6/3ffe:8280:10:7411::1
ipv6 ifc 6 forwards advertises
ipv6 rtu 3ffe:8280:10:7411::/64 6 pub

De eerste regel activeert IPv6. De volgende maakt een tunnel interface aan en stelt de endpoints in. Het systeem meldt het nummer van het zojuist aangemaakte interface, in dit geval 7. De volgende regel zet IPv6 forwarding aan voor interface 7, en de regel erna stelt het IPv6 adres voor de tunnel in. (Geen mask? Vreemd... Maar het werkt.) De "ipv6 rtu" regel maakt als ik het goed begrijp een defaultroute aan. Let op dat de 7/ voor het adres het interfacenummer is. De "ipv6 adu" regel stelt een adres in voor interface 6, het wireless LAN, en de regel erna zet forwarding en router advertisement aan voor dit interface. Wat de laatste regel precies doet is me niet helemaal duidelijk.

Op de Mac hoefde ik helemaal niks te doen, afgezien van de Airport kaart instellen. Tip: als je WEP encryptie wilt doen (let op dat dit met niet al te veel moeite te kraken is, dus doe gevoelige dingen alleen over gecrypte verbindingen zoals SSH of SSL!) tussen een Mac en een ander systeem, geef dan hexadecimale keys op. Dit kan op de Mac door eerst een $ en dan de key in hex te typen.

Ik hoop dat dit nuttig was! Nog vragen? Mail me op het emailadres op de homepage. (Let op dat ik ABSOLUUT NIKS van Windows XP weet, ik heb het pas twee dagen voor deze test voor het eerst geinstalleerd.)

Iljitsch van Beijnum