In each rack, I've got a pair of leaf switches with every host connected to both and running OSPF with BIRD.
Originally, I intended for each rack (the links between the switches and hosts) to be its own area, and the links between leaves and spines to be the backbone area.
However, as the two spine switches are connected through the hosts and share an area, an intra-area route is generated. And since (TIL) intra-area routes always take precedence over inter-area routes, each leaf switch then uses the hosts as next hops to reach the other switch's subnet, rather than going through the spine switch.
At first glance, it seems like not a huge deal, because under normal operation, traffic between those two subnets wouldn't be a thing. But in the failure scenario that two hosts each lost a link on opposite switches, this means that the other hosts would carry the traffic between those two hosts, rather than it flowing through the spines as intended. Or, more correctly, it would be dropped, because I will have the hosts configured not to allow that.
One thing I tried was to make each switch it's own area, and configure BIRD on the hosts to put one interface in each area. But BIRD seemingly will not generate ECMP routes when the equal cost routes are in different areas. So this won't work.
I am tempted to just make the whole network one big area 0, but I'd really like to have the route summarization between racks.
Any suggestions?
No comments:
Post a Comment