bugat.at

Achtung! Die Howtos stammen aus der Zeit vor 2006 und sind nur noch aus historischen Gründen online!

FreeBSD IPv6 Tunnel

Letzte Aenderung: 16.06.02

Vorwort:

Dies ist nur ein kleiner Text, der Ihnen erklaert, wie sie unter FreeBSD einen IPv6 Tunnel aufsetzen koennen. Details wie Routing und DNS werden nicht erklaert.

Zuerst wird ein Tunnelbroker benoetigt, den Sie nutzen koennen. Moegliche Tunnelbroker waeren z.B :

Freenet6 (Canada)
Uni - Leipzig (Deutschland)
Hurricane Electric (USA)

Ich verwende Uni-Leipzig, wodurch sich der Text hauptsaechlich an diesen lehnt. Zum Registrieren reicht eine einfache E-Mail, die den Namen, sowie login und password enthaelt (naeheres dazu auf der Homepage).

Sobald Sie registriert sind und Ihre Daten erhalten haben, koennen Sie sich auf der Homepage einloggen und einen neuen Tunnel setzen (Config --> SetTunnel). Sobald der Tunnel angelegt und initalisiert wurde, koennen Sie mit der Konfiguration fortfahren.

Zur Konfiguration werden folgende Daten benoetigt:

- IPv6-Adresse des Servers (Tunnelbroker)
- IPv6-Adresse des Users (wird unter ShowTunnelData angezeigt)
- IPv4-Adresse des Servers
- IPv4-Adresse des Users (die eigene)

Nun folgt ein Beispiel, wie ich bei mir einen Tunnel, mit folgenden Daten aufgesetzt habe (alles was fett gedruckt ist sind Eingaben):

IPv6_server = "2001:0218:0a20:0011:0000:0000:0000:0140"
IPv6_user = "2001:0218:0a20:0011:0000:0000:0000:013d"
IPv4_server ="139.18.38.102"
IPv4_user = "217.233.74.14"

Konfiguration:

# gifconfig gif0 217.233.74.14 139.18.38.102
gifconfig gif0 IPv4_user IPv4_server

# ifconfig gif0 inet6 2001:0218:0a20:0011:0000:0000:0000:013d 2001:0218:0a20:0011:0000:0000:0000:0140 prefixlen 128 alias

ifconfig gif0 inet6 IPv6_user IPv6_server

# route add -inet6 default 2001:0218:0a20:0011:0000:0000:0000:0140
route add -inet6 default IPv6_server

Sie koennen nun testen, ob alles funktioniert hat, indem sie z.b. eingeben:

# ping6 6bone.net

Bei richtiger Konfiguration sollten sie in etwa folgende Ausgabe erhalten:

PING6(56=40+8+8 bytes) 2001:218:a20:11::13d --> 3ffe:b00:c18:1::10
16 bytes from 3ffe:b00:c18:1::10, icmp_seq=0 hlim=57 time=324.492 ms
16 bytes from 3ffe:b00:c18:1::10, icmp_seq=1 hlim=57 time=330.551 ms
16 bytes from 3ffe:b00:c18:1::10, icmp_seq=2 hlim=57 time=328.014 ms

--- 6bone.net ping6 statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 324.492/327.685/330.551 ms

Mehrere IP's:

Es ist moeglich mehrere IP's auf ein Interface zu legen. Bei Uni-Leipzig stehen 4 IP's zur Auswahl, welche unter Config --> ShowRdns gelistet sind. Als Beispiel fuege ich 2001:0218:0a20:0011:0000:0000:0000:013e als zusaetzliche IP hinzu:

# ifconfig gif0 add inet6 2001:0218:0a20:0011:0000:0000:0000:013e prefixlen 128

Bei der Eingabe von ifconfig gif0 werden alle IP's angezeigt. Eine moegliche Ausgabe waere z.B:

gif0: flags=8011 mtu 1280
inet6 fe80::250:bfff:fe04:e005%gif0 --> :: prefixlen 64 scopeid 0x5
inet6 2001:218:a20:11::13d --> 2001:218:a20:11::13c prefixlen 128
inet6 2001:218:a20:11::13e --> :: prefixlen 128

Shellcript:

Es folgt ein kleines Shellscript, welches die oben genannten Schritte automatisch erledigt. Es ist darauf zu achten, dass beim Tunnelbroker zuerst der Tunnel gesetzt wird, bevor das Script ausgefuehrt werden kann. Wichtig ist, das der Tunnel bei jeder Aenderung der IPv4-Addresse aktualisiert werden muss.


#!/bin/sh
ipv4_me='ifconfig tun0 | awk '/inet / {print $2}''
ipv4_sr="139.18.38.102"
ipv6_me="2001:0218:0a20:0011:0000:0000:0000:013d"
ipv6_sr="2001:0218:0a20:0011:0000:0000:0000:0140"
gifconfig gif0 $ipv4_me $ipv4_sr
ifconfig gif0 inet6 $ipv6_me $ipv6_sr prefixlen 128 alias
route add -inet6 default $ipv6_sr


Schlusswort:

Der Text basiert fast ausschliesslich auf dem Shell Script der Uni-Leipzig, welches jedoch nur auf OpenBSD Systemen funktioniert . Es wurde nur eine Zeile ersetzt, um es so auf FreeBSD zum laufen zu bringen.
Vielen Dank geht an dieser Stelle noch an Austin, der mir sehr beim Verstaendnis von IPv6 geholfen hat.

Sebastian Schuetz
mrproof@gmx.net


©2000-2005 BSD Usergroup Austria - webmaster@bugat.at