IPv6 och Openvpn

Openvpn är en enkel och framförallt billig ( ‘gratis’ ) VPN-lösning som fungerar för Windows, Linux och Mac OS X.
I det här exemplet sätter vi upp ett bryggat interface, tap, i Openvpnserver med fördelen att vi kan köra Router Advertisment (RA) på det interacet och på så sätt få fart på IPv6 på VPN’en. Med RA kan vi använda SLAAC och/eller DHCPv6 för adresstilldelning på VPN interfacet.

openvpn.conf
Jag föredrar tcp och port 443 för då hittar VPN-klienten oftast ut genom brandväggen du sitter bakom.

port 443
dev tap
proto tcp-server
server-bridge 10.8.0.1 255.255.255.0 10.8.0.50 10.8.0.100

# The server's virtual endpoints
ifconfig 10.8.0.1 255.255.255.0

När Openvpn startar skapas ett tap0 interface och vi sätter IPv6-adressen och aktiverar IPv6-routing i /etc/rc.local med

ip a a 2001:db8:888::1/64 dev tap0
echo 1 > /proc/sys/net/ipv6/conf/all/forwarding

radvd.conf
Annonserar ut 2001:db8:888::/64

interface tap0 {
        AdvSendAdvert on;
        AdvManagedFlag on;
        AdvOtherConfigFlag on;
        MinRtrAdvInterval 3;
        MaxRtrAdvInterval 30;

        prefix 2001:db8:888::/64 {
                AdvOnLink on;
                AdvAutonomous on;
                AdvRouterAddr on;
        };

        RDNSS 2001:db8:888::46
        {
                AdvRDNSSPreference 8;
                AdvRDNSSOpen off;
                AdvRDNSSLifetime 50;
        };

};

I datorn som ska använda VPN’en är det sedan viktigt att ni ställer in det på tap, tcp och port 443.

 

 

 

 

Tack till Jörgen Eriksson på .SE för några tips!

Om ni kör Viscosity så skapar ni en VPN som vanligt men sedan måste configureringsfilen ändras till det nedan. Det är med Mac OS X 10.6.8 och Viscosity 1.3.4 (1030) som jag hade problem.

client
remote bastion.interlan.se 443
dev tap
proto tcp
auth-nocache
script-security 2
persist-key
persist-tun
redirect-gateway def1
ca ca.crt
cert cert.crt
dev tap
key key.key