Two routers to share a bridge modem that gives 1 dynamic IPv4

Problem: I have a guest coming by to stay a while, but my main router is too weak to run QoS on it. I need QoS so that we both can occasionally max out bandwidth without introducing much latency or jitter.

I have a router/switch that I use most of the time, but it runs on hwnat and turning on QoS would lower its performance to below the bandwidth that my ISP/WAN gives.

I also have a beefy server that could totally handle it, but it's a power hog. I don't want to keep it on most of the time, but I like the idea of occasionally powering it on and letting it automatically become the primary router.

The setup is the router/switch connects all of the devices and is both a router and managed switch, so I can set up VLANs on it. It connects the ISP modem. The modem hands out an IPv6 prefix and one public IPv4 to the first MAC that claims it via DHCP. Then, it commits to that one MAC until power cycling it. The server is connected to one of the ports of that router/switch.

It doesn't work that way, at least not easily.

Your ISP and modem won't tolerate two routers being connected concurrently - and neither will appreciate regular switching between them. The only sensible solution is to get a router that can cope with sqm at the desired throughput, be that by throttling the sqm settings to a value it can handle or by upgrading the router hardware to something that can cope with full speed.

Yes, enterprise solutions for high-availability and dynamic switching exist, and OpenWrt can facilitate that - but you don't want to go there, the complexity doesn't favour your use case and the necessary additional hardware exceeds the cost of a decent router. If you want/ need to switch your router (e.g. with the server) more frequently than once or twice, for at least a week's stretch, it really becomes inconvenient (and your ISP might penalize you as well, be it by having you wait for the old lease to expire or reducing your throughput because of the frequent 'failures').

Either get a fast enough router or solve it on the social level by telling your guest that you aren't a business and can't provide full service, so everyone needs to deal with the existing capabilities. Yes, technology 'can' sort this, but at a cost - either financially (hardware) or serious effort/ time to fine-tune your setup within the constraints of its capabilities; the former almost always tends to be cheaper (unless you want to make this your job and hobby at the same time).

I appreciate your thoughtful answer.

It so happens that I do want to make this my job and hobby. I just renewed my CCNA today.

I have a Dell PowerEdge 730XD--that's the beefy server.

The easy way would be to just socially agree limit bandwidth use via our own PCs and their apps, but I'd like to dive into something like VRRP or CARP. I want to press into automating a solution--regardless of cost/time benefit.

Another would be to take down the modem facing interface from the lighter router, set a trunk to the heavy router so it interfaces on one VLAN with just the modem and another interface on a new point to point network on a VLAN with the just lighter router, and set a static route from the lighter router to the heavy one, but I've done that already.

CCNA covered VRRP, but that dealt moreso with static addresses and routes.

Here, I'd like to set a dedicated private VLAN for the routers to trade keepalive(?) messages away from the modem segment (so the modem can't possibly snoop), and for each router to share a MAC address on that modem segment that I figure one of them will have to do first and then hand over the info to the other. Then, with each router communicating so only one is actively running until there's a handover or some kind of timeout/failover.

Yes, it's overly complicated, but it sounds like a fun puzzle to me.

Honestly, I wasn't entirely sure it was possible, but since you say it is, I find it encouraging.

Now, I'm just worried that it isn't a matter of configuring existing packages, and that I'll have to pull some kind of layered scripting that I've heard InitV used to be like.

I'd welcome instruction or a point in the right direction.

I just came here to say "good luck" :joy:

VRRP will not help you, since then you'll have 3 MACs instead of 1 competing for the attention of the ISP CPE.

If you really want to try this then just set the same static MAC and IP on both routers? Easy to do and then you can test exactly how much this will go wrong. :slight_smile:

Hardware-wise, you would need a hub, not a switch, since a switch between the two routers and the CPE would just flip-flop between sending frames to one router or the other once they have a duplicated MAC address.

I imagine you would also need to supress DAD logic on the routers, disable broadcast and multicast routes to avoid potential broadcast storms, create nftables rules to immediately drop datagrams that are not part of an established connection coming from the inside so that you don't get duplicate flows established on both routers, etc. etc.

Sounds like quite the adventure... Do keep us updated on the progress if you do this. :slight_smile:

An old desktop even as old as a Core 2 will work fine for gigabit household lines. Using a managed switch you can run "router on a stick" sharing the single Ethernet port for lan and wan. Desktops do guzzle electricity in a relative way but not nearly as much as rack servers.

If you set the MAC and IPv6 clientid the same, but connect only one at a time, the ISP should not notice that you have switched. It's pointless to have both on at the same time when the big one could do it all if it's on anyway.

Another approach is to set SQM to what the CPU in your small router can handle and just not use the full ISP speed. This still delivers a better user experience than no SQM.

1 Like