As I’ve previously mentioned I’m in the market for a cellular data plan that supports IPv6.
The only mainstream provider in the UK that offers any IPv6 support is EE, but only for their pay monthly plans and I want something for more occasional usage.
While I wait for the UK mobile operators to catch up, I’ve been using OpenVPN on my phone to allow it to behave as if it’s actually on my local network at least from a IPv4 point of view.
This just about works, but it did mean that I have the DNS reply with internal addresses when queried from within and external addresses when queried from addresses outside. Again this is possible to do with bind9 using views, but it leads to a bunch more administration when ever anything needs changing.
It also doesn’t solve the need to access other people’s/organisation’s resources that are only available via IPv6.
OpenVPN can also route IPv6 over the tunnel and hand out IPv6 addresses to the clients that connect. Instructions for how to set it up can be found on the OpenVPN Wiki here.
By adding the following to the OpenVPN server.conf file
tun-ipv6 push tun-ipv6 ifconfig-ipv6 2001:8b0:2c1:xxx::1 2001:8b0:2c1:xxx::2 ifconfig-ipv6-pool 2001:8b0:2c1:xxx::4/64 push "route-ipv6 2000::/3"
I initially was trying to work out how to carve a section out of the initial /64 IPv6 subnet that my ISP had assigned to me. My plan was to take a /112 block (which maps to 65536 addresses) but as a general rule you are not meant to try and use IPv6 subnets smaller than /64.
Luckily A&A assign each customer a /48 range that can be split up across multiple sites/lines. Or you can assign extra /64 or /60 blocks to an existing line.
I choose to add a second /64 to my existing line and then configured my Ubiquiti Edgerouter X.
set protocols static route6 2001:8b0:2c1:xxx::/64 next-hop fe80::92fb:a6ff:fe2e:28a2
Where fe80::92fb:a6ff:fe2e:28a2 is the link local address of the machine running the OpenVPN server.
The added bonus is that I now can get IPv6 access on both my mobile phone and on my laptop when away from home.