Ik wil OpenVPN adressen alloceren voor mijn clients, hiervoor wil ik mijn bestaande /64 IPv6 range van XS4ALL gebruiken. Ik heb op een aantal sites gelezen dat je het beste je bestaande range kan subnetten naar een /112 voor de clients. So far, not much progress... Mijn setup voor IPv4 werkt al erg mooi voor een jaar, maar nu wil ik ook IPv6 adressen gebruiken. Dit wil ik alloceren via de CCD manier.
...
Ik gebruik OpenVPN 2.4.0-6+deb9u2 op Raspbian 9 (Stretch), wat dan dus draait op een Raspberry Pi 3B+.
...
Ik draai zowel een tunnel via UDP als TCP. Ik gebruik mijn UDP tunnel voor het experimenteren met IPv6. Het volgende heb ik al geprobeerd.
Mijn oude config met alleen IPv4 (enige verschil is dat het TCP is, IPv6 config is IPv4 + IPv6) ziet er als volgt uit.
Het volgende heb ik nu voor mijn UDP (IPv4 + IPv6) tunnel. De indented lines zijn de lines die toegevoegd zijn. Sommige lines zijn commented omdat ik ze (nog) niet nodig heb.
2001:aaaa:bbbb:1::/64 = Het subnet dat ik van XS4ALL heb gekregen.
2001:aaaa:bbbb:1:10:1:1::/112 = Het subnet dat ik voor mijn clients wil gebruiken (direct verbindbaar met 'de wereld').
Mijn mobiel heeft al een IPv6 adres via de UDP tunnel, door deze CCD config.
eth0 is verbonden met het internet, die heb ik een vast IPv6 adres gegeven.
Ik heb het volgende verder in sysctl.conf.
Mijn mobiel die verbonden is via de UDP (IPv4 + IPv6) tunnel heeft alleen internet via IPv4. Ik zie in iptables geen drops, ook geen accepts for that matter in de FORWARD chain. Client en server kunnen elkaar niet pingen, internet connectie via IPv6 is voor de client ook niet mogelijk.
Een paar configs/blogs die ik gecheckt heb.
https://community.openvpn.net/openvpn/wiki/IPv6
https://blog.apnic.net/2017/06/09/using-openvpn-ipv6/
https://cuzimageek.wordpr...6/09/21/openvpn-and-ipv6/
https://feeding.cloud.gee...v6-and-openvpn-on-linode/
https://techblog.synagila...-a-ipv6-tunnel-over-ipv4/
https://blog.kmp.or.at/ipv6-enabled-openvpn/
https://tomsalmon.eu/2013/04/openvpn-ipv6-with-tun-device/
https://blog.angenieux.in...n-ipv4-ipv6-nat-sans-ndp/
https://forums.openvpn.net/viewtopic.php?t=21051
https://www.bjoerns-techblog.de/2017/07/openvpn-und-ipv6/
Hoewel ze allemaal nuttig zijn en ik de benodigde config changes daar wel uit kan halen, werkt het alsnog niet. Mijn guess is dat het met routing te maken heeft, met name hoe de routes ingesteld staan in de server config.
Dit staat in de openvpn.log bijvoorbeeld.
Iemand tips?
...
...
Ik gebruik OpenVPN 2.4.0-6+deb9u2 op Raspbian 9 (Stretch), wat dan dus draait op een Raspberry Pi 3B+.
...
Ik draai zowel een tunnel via UDP als TCP. Ik gebruik mijn UDP tunnel voor het experimenteren met IPv6. Het volgende heb ik al geprobeerd.
Mijn oude config met alleen IPv4 (enige verschil is dat het TCP is, IPv6 config is IPv4 + IPv6) ziet er als volgt uit.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
| local 10.1.0.1 port 1194 port-share 127.0.0.1 443 proto tcp dev tun ca server/example.com/pki/ca.crt cert server/example.com/pki/issued/vpn.example.com.crt key server/example.com/pki/private/vpn.example.com.key dh server/example.com/dh.pem tls-auth server/example.com/ta.key 0 crl-verify server/example.com/pki/crl.pem server 10.1.1.0 255.255.255.0 push "route 10.1.0.0 255.255.255.0" client-config-dir server/example.com/ccd ccd-exclusive topology subnet learn-address /usr/local/sbin/learn-address.sh script-security 2 push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 10.1.0.1" push "dhcp-option DOMAIN home.lan" push "dhcp-option DOMAIN home.vpn" keepalive 10 30 remote-cert-tls client auth SHA256 cipher AES-128-GCM tls-cipher TLS-DHE-RSA-WITH-AES-128-GCM-SHA256 tls-version-min 1.2 or-highest comp-lzo no push "comp-lzo no" user openvpn group nogroup persist-key persist-tun status /var/log/openvpn-status.log log-append /var/log/openvpn.log verb 3 sndbuf 0 rcvbuf 0 push "sndbuf 0" push "rcvbuf 0" |
Het volgende heb ik nu voor mijn UDP (IPv4 + IPv6) tunnel. De indented lines zijn de lines die toegevoegd zijn. Sommige lines zijn commented omdat ik ze (nog) niet nodig heb.
2001:aaaa:bbbb:1::/64 = Het subnet dat ik van XS4ALL heb gekregen.
2001:aaaa:bbbb:1:10:1:1::/112 = Het subnet dat ik voor mijn clients wil gebruiken (direct verbindbaar met 'de wereld').
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
| local 10.1.0.1 #local 2001:aaaa:bbbb:1:10:1:0:1 # Is voor IPv6 socket (activeer ik later) port 1194 proto udp #proto udp6 # Is voor IPv6 socket (activeer ik later) dev tun ca server/example.com/pki/ca.crt cert server/example.com/pki/issued/vpn.example.com.crt key server/example.com/pki/private/vpn.example.com.key dh server/example.com/dh.pem tls-auth server/example.com/ta.key 0 crl-verify server/example.com/pki/crl.pem server 10.1.1.0 255.255.255.0 server-ipv6 2001:aaaa:bbbb:1:10:1:1::/112 # Assign de tunnel een IPv6 IP push "route 10.1.0.0 255.255.255.0" push "route-ipv6 2001:aaaa:bbbb:1::/64" # Push de XS4ALL range naar de clients push "route-ipv6 2000::/3" # Push een default route naar het internet client-config-dir server/example.com/ccd ccd-exclusive topology subnet learn-address /usr/local/sbin/learn-address.sh script-security 2 push "redirect-gateway def1 bypass-dhcp" #push "redirect-gateway ipv6" # Is voor iOS, gebruik ik niet push "dhcp-option DNS 10.1.0.1" push "dhcp-option DOMAIN home.lan" push "dhcp-option DOMAIN home.vpn" keepalive 10 30 remote-cert-tls client auth SHA256 cipher AES-128-GCM tls-cipher TLS-DHE-RSA-WITH-AES-128-GCM-SHA256 tls-version-min 1.2 or-highest comp-lzo no push "comp-lzo no" user openvpn group nogroup persist-key persist-tun status /var/log/openvpn-status.log log-append /var/log/openvpn.log verb 5 sndbuf 0 rcvbuf 0 push "sndbuf 0" push "rcvbuf 0" |
Mijn mobiel heeft al een IPv6 adres via de UDP tunnel, door deze CCD config.
code:
1
2
| ifconfig-push 10.1.1.3 255.255.255.0 ifconfig-ipv6-push 2001:aaaa:bbbb:1:10:1:1:3/112 2001:aaaa:bbbb:1:10:1:1:1 |
eth0 is verbonden met het internet, die heb ik een vast IPv6 adres gegeven.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| source-directory /etc/network/interfaces.d auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 10.1.0.1 netmask 255.255.255.0 gateway 10.1.0.10 dns-nameservers 10.1.0.1 10.1.0.10 dns-search home.lan home.vpn iface eth0 inet6 static address 2001:aaaa:bbbb:1:10:1:0:1 netmask 64 gateway gateway fe80::7eff:aaaa:bbbb:cccc accept_ra 1 privext 2 |
Ik heb het volgende verder in sysctl.conf.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| #kernel.domainname = example.com #kernel.printk = 3 4 1 3 net.ipv4.conf.default.rp_filter=1 net.ipv4.conf.all.rp_filter=1 net.ipv4.tcp_syncookies=1 net.ipv4.ip_forward=1 #net.ipv6.conf.all.forwarding=1 #net.ipv4.conf.all.accept_redirects = 0 #net.ipv6.conf.all.accept_redirects = 0 #net.ipv4.conf.all.send_redirects = 0 #net.ipv4.conf.all.accept_source_route = 0 #net.ipv6.conf.all.accept_source_route = 0 net.ipv4.conf.all.log_martians = 1 #kernel.sysrq=1 #fs.protected_hardlinks=0 #fs.protected_symlinks=0 net.ipv4.tcp_rfc1337 = 1 net.ipv6.conf.all.forwarding=1 net.ipv6.conf.all.proxy_ndp=1 |
Mijn mobiel die verbonden is via de UDP (IPv4 + IPv6) tunnel heeft alleen internet via IPv4. Ik zie in iptables geen drops, ook geen accepts for that matter in de FORWARD chain. Client en server kunnen elkaar niet pingen, internet connectie via IPv6 is voor de client ook niet mogelijk.
Een paar configs/blogs die ik gecheckt heb.
https://community.openvpn.net/openvpn/wiki/IPv6
https://blog.apnic.net/2017/06/09/using-openvpn-ipv6/
https://cuzimageek.wordpr...6/09/21/openvpn-and-ipv6/
https://feeding.cloud.gee...v6-and-openvpn-on-linode/
https://techblog.synagila...-a-ipv6-tunnel-over-ipv4/
https://blog.kmp.or.at/ipv6-enabled-openvpn/
https://tomsalmon.eu/2013/04/openvpn-ipv6-with-tun-device/
https://blog.angenieux.in...n-ipv4-ipv6-nat-sans-ndp/
https://forums.openvpn.net/viewtopic.php?t=21051
https://www.bjoerns-techblog.de/2017/07/openvpn-und-ipv6/
Hoewel ze allemaal nuttig zijn en ik de benodigde config changes daar wel uit kan halen, werkt het alsnog niet. Mijn guess is dat het met routing te maken heeft, met name hoe de routes ingesteld staan in de server config.
Dit staat in de openvpn.log bijvoorbeeld.
code:
1
2
| rWRwRwRwRwRSat Aug 4 13:48:51 2018 us=319238 intrepid.home.vpn/62.251.111.222:44356 MULTI: bad source address from client [10.1.0.13], packet dropped RwRSat Aug 4 13:48:52 2018 us=640405 intrepid.home.vpn/62.251.111.222:44356 MULTI: bad source address from client [2001:aaa:bbbb:1:10:1:1:3], packet dropped |
Iemand tips?
...