So I have 2 scenario's that I need to find a solution for
Scenario A: 1 hop selective routing
RouterA & RouterB are running OSPF to each other, the 60ghz path is set to the default cost of 10 and is running BFD, the 5ghz path is a cost of 15
This works perfectly fine for fairly rapid failover for when the 60ghz link dies. Traffic successfully fails over to the 5ghz, all good for the most part
However it never just instantly drops out and remains dropped out when there's rain or a partial obstruction. What actually happens is the link flaps, or just performs like crap, this is very noticeable and very disruptive with VoIP. So what I would rather do is have all VoIP traffic permanently routed across the 5ghz link so it never has to deal with a flapping link situation
I can accomplish this with a simple mangle rule that changes to i.e. 'BackupRoutingTable' which just has 1 route in it - a default route to the IP address on RouterA's 5ghz interface.
Great........ until the 5ghz link fails. RouterB will keep sending VoIP traffic out that interface unless the physical interface goes down, since its a local IP address it's not a loopback
So how do I solve this problem?
Scenario B: multi-hop selective routing
If we can figure out Scenario A it might solve Scenario B as well, but there a potential problem especially if we are using mangle rules
At RouterC it's pretty straightforward to influence the path. If I want all traffic from Customer X to go via Internet1, it'll send to RouterB who will then send to RouterA and out the internet
And all traffic from Customer Y to go via Internet2, it'll send to RouterD->RouterE. This is very simple because RouterB just looks at its routing table and see's the closest path to the internet is via RouterA, and the same with RouterD to RouterE, easy
But what about for CustomerZ? If I have a rule on RouterE that say I want all of his traffic to go via Internet1, it will send to RouterD. But RouterD will see that the closest path to the internet is via RouterE so it'll just send the data back, and then RouterE will send the traffic out Internet2 (or cause a loop by routing it back to RouterD)
Mangle cannot be used here, because connection/packet data does not carry across so there is no way for RouterD to know for sure "oh, this traffic is supposed to go via Internet1" it's just going to look at its normal routing database, it won't use mangle
So what are the possibilities here?