The upstream router is not a FritzBox. The upstream router broadcasts its own RAs correctly but it cannot advertise a route via another router (in my case the OpenWRT router). As far as I know (which is not much :-)), RAs cannot advertise routes via another router than the one sending the RA.
Put differently, in IPv4 the upstream router provides with DHCP a static route to the OpenWRT downstream network (this route is via the OpenWRT router). But this cannot be done in IPv6 (to my knowledge). Only the OpenWRT router could advertise a route via itself, and in this case it should do so on its WAN interface.
Alright. So as we established above, the current version of odhcpd doesn't support just sending out route information according to RFC4191 without advertising a prefix as well. Why isn't that feasible in your situation to have the OpenWRT "do all the work"?
I use the OpenWRT router to isolate its downstream subnet from its upstream subnet (i.e., to have full control on the traffic in-between). It's the way I've proceeded in the past with IPv4 (using either NAT on the OpenWRT router, or a DHCP-provided static route in the upstream network). I'm now moving to IPv6 and I would like to use the OpenWRT router in a similar fashion. It turns out to be more complex than I imagined... Which I find surprising as I thought this would be a pretty common situation.
It's probably that you're thinking IPv4-ways in an IPv6-world, which only makes it seem difficult or complex.
I still don't see why the upstream router can't handle the prefix delegation to the OpenWRT. The upstream router should learn this and route traffic to the OpenWRT's LAN segment to the OpenWRT box. Isolation of network segments should be up to the firewall, which you can configure on OpenWRT.
You're right, the upstream router does route traffic to the OpenWRT's LAN segment to the OpenWRT box. But this is not the best route for traffic that originates from a machine on the upstream router's LAN segment. And so the upstream router sends ICMP redirects to let the machine know that there is a better route. This is what I meant by sub-optimal solution in my first post. It's not optimal but it works.
Yes, now thinking about it you are right. Not all traffic needs to go through the upstream router if there's a better/direct path available.
ICMPv6-Redirect should be the way to go, but depends on the capabilities of your upstream router. No idea how common this feature is.
If you just want to send route information without advertising a prefix, I fear this is not supported in the current versions of odhcpd and you would have to implement the above mentioned patch.
Indeed the upstream router does send ICMPv6 redirects. This updates the host's routing table cache but only for a short time. And the host needs to accept ICMPv6 redirects for this to work. This is not always the case (such messages are often filtered out by the host's firewall).
Edited to answer treysis: the upstream router is a Technicolor TG788vn.
I know this is a very old thread , but i give it a try anyway.
Did you ever solve this? i am in a same situation where i need to have the nodes in a lan automatic receive the route to a subnet that comes from the wan side of a openwrt router
when i do
it does not solve it as the default route is to the wan side of router that is connected to the internet and there is no route advertised to a subnet on the wanside of the router that is a client in my subnet and holds a different subnet on its lan side. Clients on the network are windows 10 and debian .