Welkom IPv6

Het is inderdaad echt niet moeilijk. 10 minuten concentreren en zie hier het resultaat:


Of het nog 2 jaar duurt of 10 is koffiedik kijken maar op een goede dag is niet meer het hele internet te bereiken met IPv4. IPv4 adressen worden schaars en daarmee kostbaar. Ik heb de moed verzamelt en een klein stukje geschreven over IPv6 met Ubuntu.

Stap 1: Stel een IPv6 tunnel in bij je provider

Ik kan er niet vanuit gaan dat iedereen die dit leest een IPv6 router heeft. De meederheid van de mensheid zal nu nog met een IPv6 tunnel over bestaande IPv4 infrastructuur moeten werken.

Ik maak verbinding met het internet via Xs4all. Er zijn verschillende instanties die IPv6 tunnels aanbieden. Ik beschrijf er 2 in de hoop dat u met deze info geïnspireerd wordt om bij uw provider een tunnel aan te maken / vragen.

Niet Xs4all internetters kunnen bijvoorbeeld terecht bij Hurricane Electric http://ipv6tb.he.net.
Daar is een eenvoudig registratie formulier. Nadat je het hebt ingevuld krijg je een e-mail met je gebruikersnaam en wachtwoord. Ga terug naar de site, log in en maak een regular tunnel. Je ip adres staat hiernaast (rechts).

Xs4all gebruikers gaan naar: https://service.xs4all.nl/ en kiezen voor extra en dan voor IPv6 tunnel. Bij IPv4-tunnel endpoint vul je het externe IPv4 adres van je router in. Dit adres staat natuurlijk hiernaast (rechts) maar als je het daar niet kan vinden kijk je op: http://whatismyip.com/

Stap 2: Maak het tunnel apparaat aan

Begrijp goed dat mijn laptop gewoon via een WLAN met een WAP/router verbonden is. De verbinding tussen mijn laptop (mijn tunnel endpoint) en de IPv6 tunnel server (Xs4all's tunnel endpoint) gaat dus over verschillende IPv4 netwerken.

Op mijn laptop (Ubuntu) staat een bestand: /etc/network/interfaces. Die heb ik aangevuld met de gegevens die de "Config generator" voor mij heeft verzonnen. Xs4all bied een config genarator aan voor de volgende os-en: Debian/Ubuntu, FreeBSD, RedHat, MacOS X, Windows XP en Windows Vista.

sudo vi /etc/network/interfaces

De nieuwe inhoud betreft in mijn geval

#auto xs6all
iface xs6all inet6 v4tunnel
    endpoint                    194.109.5.241
    up ip route add default via 2001:888:10:742::1
    address                     2001:888:10:742::2
    netmask                     64
    ttl                         64

De interface heet dus xs6all, het betreft een inet6 device via een v4tunnel. Een netmask van 64 bit is de standaard en device 1 is mijn router en 2 dat ben ik. Als je deze interface altijd automatisch wilt laten starten haal je het hekje weg bij: "auto xs6all".

06-03-2011// IPv6 Router

Xs4all zal je meteen de instellingen geven om van je Ubuntu of Debian PC een IPv6 router te maken. 

Heb je een tunnel aangemaakt bij Hurricane Electric dan vul je het adres "Server IPv4" in als endpoint. Het "Server IPv6" adres bij: "up ip route add default via" en tot slot het "Client IPv6" adres bij address. Ook is het raar om het apparaat dan xs6all te noemen. misschien is he6 logischer.

Daarna startte ik de het nieuwe apparaat op met het commando:

sudo ifup xs6all
of
sudo ifup he6

Even controleren of het apparaat echt bestaat (vervang xs6all door he6 als dat nodig is en lees verder he6 i.p.v. xs6all):

$ ifconfig xs6all
xs6all    Link encap:IPv6-in-IPv4 
          inet6 addr: fe80::c0a8:b225/64 Scope:Link
          inet6 addr: 2001:888:10:742::2/64 Scope:Global
          UP POINTOPOINT RUNNING NOARP  MTU:1480  Metric:1
          RX packets:2305 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2184 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1963391 (1.9 MB)  TX bytes:364593 (364.5 KB)

Stap 3: Een pakket filter

Ook voor IPv6 is het een verstandig plan om niet op alle verbindingsverzoeken in te gaan. In linux gebruiken we het programma ip6tables om filters aan te brengen op inkomende uitgaande en doorstromende ip-pakketten. Je kunt een script maken bijvoorbeeld:

sudo vi /etc/init.d/ip6tables

Daarin schrijf ik het volgende script: (let op de naam van je apparaat he6 of xs6all)
met dank aan cyberciti
#!/bin/bash
IPT6="/sbin/ip6tables"
PUBIF="xs6all"
echo "Starting IPv6 packetfilter..."
$IPT6 -F
$IPT6 -X
$IPT6 -t mangle -F
$IPT6 -t mangle -X
 
#Alle verkeer naar en van local loopback toestaan
$IPT6 -A INPUT -i lo -j ACCEPT
$IPT6 -A OUTPUT -o lo -j ACCEPT
 
# Al het verkeer van buiten naar binnen weren
$IPT6 -P INPUT DROP
$IPT6 -P OUTPUT DROP
$IPT6 -P FORWARD DROP
 
# Naar buiten toe mag er verbinding worden gemaakt maar niet van buiten naar binnen
$IPT6 -A INPUT -i $PUBIF -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT6 -A OUTPUT -o $PUBIF -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
 
 
############# Wil je diensten aanbieden? ############
### Haal dan het hekje weg voor een van deze regels
### of verzin er zelf 1

###
### open IPv6 port 80 bijvoorbeeld voor een webserver
#$IPT6 -A INPUT -i $PUBIF -p tcp --destination-port 80 -j ACCEPT
### open IPv6 port 22 bijvoorbeeld voor SSH toegang
#$IPT6 -A INPUT -i $PUBIF -p tcp --destination-port 22 -j ACCEPT

### open IPv6 port 25 bijvoorbeeld voor een FTP server
#$IPT6 -A INPUT -i $PUBIF -p tcp --destination-port 25 -j ACCEPT

############ Einde van het diensten aanbod ################
 
#### log alles wat er verder voorbij komt om het vervolgens te negeren
$IPT6 -A INPUT -i $PUBIF -j LOG
$IPT6 -A INPUT -i $PUBIF -j DROP

Daarna maken we het script uitvoerbaar en voeren we het uit:
$ sudo chmod +x /etc/init.d/ip6tables
$ sudo /etc/init.d/ip6tables

Stap 4: Pingen om te testen

Het eerste wat ik deed was natuurlijk een ping naar het loopback device:

$ ping6 ::1
PING ::1(::1) 56 data bytes
64 bytes from ::1: icmp_seq=1 ttl=64 time=0.044 ms
64 bytes from ::1: icmp_seq=2 ttl=64 time=0.057 ms

En daarna fe80::c0a8:b225 en 2001:888:10:742::2

Toen was het tijd om te kijken of de route naar buiten werkt:

$ traceroute6 2001:888:10:742::1
traceroute to 2001:888:10:742::1 (2001:888:10:742::1) from 2001:888:10:742::2, 30 hops max, 24 byte packets
 1  xs4all1858.ipv6.xs4all.nl (2001:888:10:742::1)  11.097 ms  11.492 ms  11.916 ms

Stap 5: DNS

Ook bij IPv6 hebben we een nameserver nodig om namen voor ons om te zetten naar adressen. Na even google-en vond ik een geschikt adres. Even kenbaar maken aan de resolver:

06/03/2011: Een oplettende lezer attendeerd mij erop dat XS4all tegenwoordig zelf DNS aanbied voor IPv6:

$ host -t AAAA resolver.xs4all.nl
resolver.xs4all.nl has IPv6 address 2001:888:0:9::99
resolver.xs4all.nl has IPv6 address 2001:888:0:6::66

sudo vi /etc/resolv.conf

Daar voegde ik bovenaan een nameserver toe:

# Generated by NetworkManager
nameserver 2001:708:140:220::3
nameserver 192.168.x.y

Opslaan en klaar.

Ik startte firefox en browsde naar: http://ip6.me/ en zag:



This page shows your IPv6 and/or IPv4 address
You are connecting with an IPv6 Address of:
2001:888:10:742::2
IPv4 only Test Normal Test IPv6 only Test


Stap 6: Google en verder

Lees op deze pagina meer over het beleid van google inzake IPv6. Als ik verbind via de tunnel naar Hurricane Electric kan ik naar www.google.com browsen met IPv6. Via Xs4all kom ik na het intypen van ipv6.google.com uit op een speciale google pagina.

Via het he6 device kan ik ook pingen naar www.google.com:

$ ping6 -n www.google.com
PING www.google.com(2001:4860:a005::68) 56 data bytes
64 bytes from 2001:4860:a005::68: icmp_seq=1 ttl=58 time=15.3 ms
64 bytes from 2001:4860:a005::68: icmp_seq=2 ttl=58 time=16.5 ms

Bij Xs4all werkt dat (nog) niet.

Een leuke addon voor firefox is "Showip" hiermee kun je in de statusbar van firefox het ip adres v4 of v6 zien van de site waarmee je verbonden bent. Aangezien IPv6 voorang heeft kun je zo makkelijk zien welke sites IPv6 ready zijn.


Comments