hi,

ich hatte heute mal Zeit mich näher mit dem OpenVPN ipv6 payload Patch zu 
beschäftigen.

Vom Gert Döring findet man entsprechende Debian/Ubuntu Pakete(*) welche schon 
einen Teil vom Patch enthalten. Hat man das eingespielt, kann man vom Server 
aus dem Client die entsprechende IP Adresse verpassen lassen. Das funktioniert 
aber nur dann (laut Doku), wenn man zzgl. einen IPv4 Pool definiert hat. 
Ansonsten startet der OpenVPN Server nicht. 
Auch hier gibt es gleich eine kleine Einschränkung: Das klappt nur mit "dev 
tun" auf beiden Seiten. Benötigt man jedoch "dev tap", dann hört bei dieser 
Version schon wieder auf. Hier muss man sich die Quellen direkt aus dem Git. 
Ist das Geschehen, kann man nun endlich auch über ein "tap" Interface dem 
Client sagen, welche IPV6 Addresse er bekommen soll. Allerdings wohl noch nicht 
unter allen Betriebssystemen. Tunnelblick unter OSX hat diesen Patch auf 
jedenfall schon einmal nicht drin.

Ein weiterer Stolperfuß: Wer Routen festlegen muss, hat an dieser Stelle leider 
auch Pech.  Denn die funktionieren leider nur eingeschränkt. Ich müsste z.B. 
das Standardgateway auf eine andere IP Adresse legen, als welches OpenVPN 
normalerweise darstellt. Es könnte aber sein, dass dieses Problem nur für mich 
gilt. Wenn das OpenVPN Interface (tap/tun) euer GW ist, seid ihr aus dem 
Schneider. 

Vom Grundsätzlichen her kann man sagen, es funktioniert. Daher meine Server 
Config, welche für die Git kompilierte Version gilt:

=========
# Wenn ein Script gestartet werden muss
script-security 2
user openvpn
group openvpn
tls-server
port 1194
proto udp

# Layer 2
dev tap0
#dev tun0
#tun-ipv6
# Da wird meine Bridge gebaut + Ip Adresse gesetzt
up /etc/openvpn/ipv6-server.up

#Brauchen wir  für ipv6, sonst startet Server nicht
server 192.168.55.0 255.255.255.0
ifconfig-pool-persist ipp.txt

# Nur einschalten, wenn ihr jeden ipv4 Verkehr da durch schicken wollt
#push "redirect-gateway def1 bypass-dhcp"

# Wo soll OpenVPN Clientspezifische Konfigurationen suchen
client-config-dir /etc/openvpn/ccd.d
#client-to-client

# Auf irgendeiner Webseite mal eben generiert **
# fd8b:97b6:6b35::/48

# Eignet sich zum testen, aber bitte was anderes nehmen ;-)
# Es darf nicht kleiner sein, als /64
server-ipv6 fd8b:97b6:1::/64 

#push "route-ipv6 fd8b:97b6:6b35::/64"
# das klappt
push "route-ipv6 2b42:5c8:130:6021::81/128"
# das auch (Standard GW ist dann dev tap/tun auf dem Client)
push "route-ipv6 ::/0"
# Das geht garnicht, noch nicht implementiert
# push "route-ipv6-gateway 2b42:5c8:130:6021::81"

# Schlüssel/key kram
ca keys/ca.crt
cert keys/vpn.crt
key keys/vpn.key
dh keys/dh1024.pem
tls-auth keys/ta.key 0
tls-server
comp-lzo

# Standard zeugs
persist-key
persist-tun
ping-restart 45
ping-timer-rem
===============================

Meine ccd.d/client Datei.  Name der Datei muss dem entsprechen, was man im 
"common name/your name" beim erstellen des Zertifikats angegeben hat

ifconfig-ipv6-push 2b42:5c8:130:6021::83/128

==============================


Auf der Clientseite habe ich eine Standard Konfiguration, wie man sie im 
examples-config Ordner findet. Also wie gesagt, die wirklich wichtigen Dinge 
funktionieren, nur wer mehr will, muss sich gedulden, bis Gert Döring Zeit hat, 
den Rest zu implementieren.


* 
http://www.portunity.de/access/wiki/OpenVPN-Tunnel_%28IPv6%29_unter_Debian-Linux_einrichten_%28Anleitung%29
** http://www.sixxs.net/tools/grh/ula/
--
----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org

Antwort per Email an