So my /etc/network/interfaces looks like
auto eth0
iface eth0 inet static
address 198.51.100.50
netmask 255.255.255.0
gateway 198.51.100.1
# VPN Subnet
auto eth0:1
iface eth0:1 inet static
address 10.0.1.1
netmask 255.255.255.0
# ipv6 tunnel
auto tunnel
iface tunnel inet6 v4tunnel
address 2001:db8:1:1::2
netmask 64
endpoint 203.0.113.26
ttl 64
mtu 1280
gateway 2001:db8:1:1::1
using openswan and xl2tpd I have a working L2TP/IPSec vpn that successfully assigns from the 10.0.1.x range and clients have full ipv4 connectivity. (Used this as a guide)
The part I cannot figure out is how to do the same with with ipv6. I have a /64 with ::1 being the remote endpoint and ::2 being the local machine. ipv6 works fine on the local machine (I can ping ipv6.google.com). I installed radvd, but all the tutorials I can find use it to hand out addresses on a single interface. I'm not too clear on how "router advertisement" works. I figured out that I need profiles for each pppX connection, like so:
/etc/radvd.conf
interface ppp0 {
AdvSendAdvert on;
IgnoreIfMissing on;
prefix 2001:db8:1:2::/64 {
};
};
interface ppp1
...
where 2001:db8:1:2::/64 is the routed /64 subnet (different from the tunnel subnet) I set it up so that each time a ppp client connected it would get a link local address and then reload radvd so it would broadcast on the new interface. This successfully assigned an ipv6 address from my 2001:db8:1:2::1/64, but there would not be any ipv6 connectivity. I'm not really familiar with any of this, but does anyone know if I'm attacking this from the right direction? Or do I need to do something with bridging or adding routes. This looked similar, but their setup was more complex than mine and just confused me.