OpenWrt Failover & Repeater with non-WRT router?

Now that I have new hardware, I'd very much appreciate input on the best configuration. This is roughly what I'm working with:

In the image, I currently have Link A and Link C hardwired to the proprietary router (WAN), with OpenWRT 1 and OpenWRT 2 set up as APs. This works as expected , but not how I want it to (Link B doesn't exist, etc.).

WAN and OpenWRT 1 are in separate buildings. OpenWRT 2 is basically acting as a range extender, and connected via POE.

In general, I plan to leave OpenWRT 1 and OpenWRT 2 always on. However, due to idiosyncrasies with my DIY power grid, it will occasionally be the case that one or the other goes offline.

¿What's the best way to configure this so that:

  1. When WAN is powered off, OpenWRT 1 and OpenWRT 2 can still be on the same LAN (Link B)
  2. If WAN is off and either OpenWRT 1 or OpenWRT 2 is powered off, there is still some wifi for the WLAN devices which can still connect.
  3. If WAN is on and either OpenWRT 1 or OpenWRT 2 is powered off, there is still WAN from the other OpenWRT (Link A or C).
  4. Same SSID with seamless roaming between OpenWRT 1 and OpenWRT 2
  5. Bonus: All 3 are on the same SSID with seamless roaming.
  6. If there's no path to 5, then I might as well switch off the wireless on the proprietary router. I'm okay with that.

Sorry, I'm still not clear on the differences between relayd, WDS, 802.11r, etc.

OpenWRT 2 only has one eth port, so my thinking is that I need to wirelessly connect OpenWRT 1 for Link B. I could also disconnect the wire on Link C, and move that to Link B.

I tried setting up both OpenWRTs with 802.11r, but couldn't get that to work, and my guess is that if it did, I'd lose scenario 1 above (Link B LAN). And when I think through WDS, it seems as though I'd lose scenario 3 above (Link C WAN). But again, none of this is very clear to me, and the wiki didn't get me up the learning curve.

So... I set this up:

  • OpenWRT 1 as AP with WDS, and 802.11r
  • OpenWRT 2 as WDS client on one interface
  • OpenWRT 2 AP with 802.11r on another interface

All of the above have the same WiFi settings. Roaming works. Internet works, and I can still connect to OpenWRT 2 and get internet if OpenWRT 1 goes offline.

Link A and Link C are wired as previously discussed, and Link B is the WDS/802.11r connection.

I'm still getting DHCP from the dumb AP, which I can't turn off without disabling the entire interface. But that seems to only happen when I'm connected to the WDS Client node. As such, it's messing with IPs in the LAN — different subnet, dnsmasq/mDNS, etc.

How do I keep DHCP on the OpenWRT routers, but not have the dumb AP override it? I don't envision having more than 30 clients. I could put all the APs on the same subnet and divide the 255 IPs into DHCP blocks of 80 between them, and reserve 15 IPs for infrastructure (dumb AP won't allow changing netmask). Any downsides to this approach? I suspect it will at minimum cause issues with dnsmasq/mDNS on clients of the dumb AP.

I realize that I'm 95% of the way there, and that switching off the wireless on the HughesNet box would eliminate some of the issues. But I have a feeling I'm just missing something that would allow it all to work together. Since the APs each have different power sources depending on conditions (solar, main battery bank, and isolated battery backups), it hurts my brain to disable the wireless on the dumb AP because I measure no power savings when disabling the wireless. It feels like I'm sacrificing resiliency because I have it set up wrong.