I am trying to get my home Linux router to also support ipv6 on the home network.
I have a NVG599 DSL router acting as a GW to the public internet, and then my Linux router with two interfaces: eth0 towards the home network and eth1 towards the DSL router.
HOME network <----eth0-----> LinuxRouter <------eth1------>DSLrouter -->>>>>
The DSL router is configured with a /64 network prefix from my ISP (assume it is 2001:0:0:1234::/64) and the DSL router has an ipv6 global address of 2001:0:0:1234::1. I have setup the Linux router with radvd to advertise this same /64 network prefix to eth0 towards the home LAN, and indeed I see the hosts on the LAN are able to auto configure their IP addresses. The advertisement also lists the Linux router as the default router for ::/0, and forwarding is setup so that it will send the packets to the DSL router.
The issue I have is that the DSL router is sending neighbor solicitations packets on eth1 when it gets inbound packets from the internet, and those neighbor solicitations are not being passed from eth1 -> eth0 on the Linux router. I am thinking that this is occurring because the DSL router thinks it is directly connected to the home network (which is how it would normally be in 99% of home networks without a Linux router in the middle).
After spending 2 days trying to figure it out, the answer so far has eluded me. I am hoping that there is some way to send a router advertisement using radvd to the DSL router to tell it to route all packets for the /64 prefix via the Linux Router. Currently the router advertisement sent by the Linux Router is configured with the /64 prefix being sent towards the DSL router with:
interface eth1
{
AdvSendAdvert on;
MinRtrAdvInterval 3;
MaxRtrAdvInterval 10;
route 2001:0:0:1234::/64 {
};
};
I would think that this should be enough to get the DSL router to forward all packets to the network, but I still see the neighbor soliciations.
I see the DSL router has IP pass through settings with ability to set a "default server", but those seem to apply only to IPv4. Assuming that the DSL router is not honoring my RA, I suppose I could setup ipv6 multicast forwarding using 'xorb' on my Linux router but wondering if there are other options.