I spent most of last night and most of this morning reconfiguring everything, which has been somewhat of a nightmare. I have particular services which expect particular IPv6 addresses to be up and running after I send everything for a reboot, so took me a while to actually suss out what is going on and how I need to configure things.
So in a nutshell, here it is:
1) Firstly I had to enable the ppp tools to recognise and configure IPv6 link level address on ppp interface. This is done by adding a single line to my "options" file that looks like this:
I already had this in from my time at A&A (left it as is when I migrated to Zen) so this part was already done.
2) I then had to explicitly tell the kernel to accept RA (Routing Advertisement) notifications on the ppp interface: sysctl net.ipv6.conf.ppp0.accept_ra=2
3) Then I have to wait. After a while, when Zen send a RA down the ppp link under the ND /64 prefix, the interface automatically sets itself up with a random IPv6 address under this prefix.
4) Then DHCP6C runs on ppp0, requesting that I want the first /64 of the /48 delegated prefix they've assigned me. That config looks like this:
| Text |
1
23
45
67
89
1011
1213
| interface ppp0 {
send ia-na 0; send ia-pd 0;
};
id-assoc na 0 { };
id-assoc pd 0 { prefix-interface eth0 {
sla-id 0; sla-len 16;
};}; |
The "sla-len" value of 16 creates a /64 which is /48 (what Zen delegate) + 16 bits to create a local /64 my side. DHCP6C then creates an address (based on the MAC address of eth0) and sets that up on eth0 (my LAN) for me.
I've also manually configured 2 other addresses under this /64 prefix, on eth0, when Linux brings up the interface (totally independent of this process) so dnsmasq doesn't complain on bootup that it can't find configured IPv6 address to bind to because none of the above has actually run yet.
Once all of the above settles down, it works like a charm.
Not sure why Zen have opted to go this route. It seems overly complicated. Statically routing like what A&A does is so much simpler (no need to run dhcp6c or explicitly telling the kernel to accept RA on ppp0 etc). Maybe they have their reasons, maybe they've been trialling this with common IPv6 enabled routers, but A&A was much much simpler than this.
Edited by deleted (Tue 18-Aug-15 12:43:36)