All - Renato and I noticed that zebra was not properly handling Admin distance correctly. As part of cleaenup we created this PR: https://github.com/FRRouting/frr/pull/1160 Which has this commit: https://github.com/FRRouting/frr/pull/1160/commits/c710b277cfde65fab8ae071fd... During discussion about this the other night, I guessed at an admin distance of 100 for Babel. In conversation this morning with Don Slice he indicated that a number of 100 might be a bit low as that do we really trust Babel more than OSPF? Do people have opinions on what the Admin Distance should be set too? thanks! donald
During discussion about this the other night, I guessed at an admin distance of 100 for Babel. In conversation this morning with Don Slice he indicated that a number of 100 might be a bit low as that do we really trust Babel more than OSPF? Do people have opinions on what the Admin Distance should be set too?
I don't tend to think of this as a matter of "trust," but rather just "we need to make an arbitrary decision in some places to keep things from blowing up." đ I would say that BABEL is a special purpose protocol, and I'd want to prefer the routes coming out of the ad hoc environment more than any possible "recycled" or "dual connected" routes coming out of what is likely to be the more fully connected "core" network. Of course, this isn't going to work in many SP environments, as eBGP might be on the "other side," but it "feels like" it would be better, in the general case, to prefer the BABEL route over the "normal" IGP route. This might actually argue for something lower than EIGRP, around 80, but I'll leave that question open for discussion... The other argument that might bear on this discussion would be around routing loops -- BABEL doesn't have a lot of protection against them in a redistribution situation, I don't think, where OSPF and IS-IS seem to be much less likely to cause a routing loop in mutual redistribution situations. I don't remember why, but I always seem to think the DV having a lower AD than the LS helps prevent redistribution loops -- I would need to sit and work it out, but maybe Don might remember something here. đ Russ
I agree that both OSPF and ISIS have better loop prevention techniques for external routes, but don't at all remember a reason to have DV lower than LS to make loops less likely. For example, RIP has a higher AD that OSPF. I'm fine with whatever the group decides, since I don't really have any compelling arguments either way. On Wed, Sep 13, 2017 at 8:16 AM, Russ White <russ@riw.us> wrote:
During discussion about this the other night, I guessed at an admin distance of 100 for Babel. In conversation this morning with Don Slice he indicated that a number of 100 might be a bit low as that do we really trust Babel more than OSPF? Do people have opinions on what the Admin Distance should be set too?
I don't tend to think of this as a matter of "trust," but rather just "we need to make an arbitrary decision in some places to keep things from blowing up." đ I would say that BABEL is a special purpose protocol, and I'd want to prefer the routes coming out of the ad hoc environment more than any possible "recycled" or "dual connected" routes coming out of what is likely to be the more fully connected "core" network. Of course, this isn't going to work in many SP environments, as eBGP might be on the "other side," but it "feels like" it would be better, in the general case, to prefer the BABEL route over the "normal" IGP route.
This might actually argue for something lower than EIGRP, around 80, but I'll leave that question open for discussion...
The other argument that might bear on this discussion would be around routing loops -- BABEL doesn't have a lot of protection against them in a redistribution situation, I don't think, where OSPF and IS-IS seem to be much less likely to cause a routing loop in mutual redistribution situations. I don't remember why, but I always seem to think the DV having a lower AD than the LS helps prevent redistribution loops -- I would need to sit and work it out, but maybe Don might remember something here.
đ
Russ
-- Don Slice Cumulus Networks
I agree that both OSPF and ISIS have better loop prevention techniques for external routes,
Could you please explain that?
I was sitting here trying to think of a specific example, but what it mostly comes down to is if I know the route is external or not, and hence whether I can prefer internals over externals. I can't really "remove" this information in a link state protocol other than passing through a flooding domain boundary, but I can remove this information in a distance vector pretty easily. When I'm setting up redistribution routing loops as examples, I always end up taking the information out of the D-V to create the loop. Perhaps more formally -- Routing loops form with multiple points of mutual redistribution because you lose the metric at the redistribution point, which means you can no longer compute loop free paths by assuming the shortest path will be loop free. If you replace the lost metric with a flag of some sort, you "can be" generally okay, except in some specific corner cases with timing (that I can't explain, I just have to think them through as examples). If you drop the "flag" in some way (aggregation is the prime example), then you lose all the information preventing the routing loop from forming. This is easier to do in a D-V than a link state. This goes back to "removing state _generally_ causes some form of suboptimization" -- in the case of mutual redistribution, the suboptimization can reach the point of a permanently formed routing loop (it's a double suboptimization in effect). State/Optimization/Surface -- removing the state introduces suboptimization. You can fix the problem by increasing the interaction surface between the two protocols and introducing a new flag and route preferences -- which increases protocol complexity and injects new state (of a different kind) as well. But if the added state is somehow lost (the interaction surface is flattened, in effect, and the newly created state is removed), the optimization (potentially) drops to null, and the network goes haywire. Some professor someplace needs to codify this better, as I can just barely and roughly outline this stuff (I did write a book on it, but it's mostly examples, rather than math!). I didn't do that well at math in school. I hope all that made sense. đ Russ
Added babel-users to CC.
During discussion about this the other night, I guessed at an admin distance of 100 for Babel. In conversation this morning with Don Slice he indicated that a number of 100 might be a bit low as that do we really trust Babel more than OSPF? Do people have opinions on what the Admin Distance should be set too?
Here are the real-world cases I know. Our Babel network here in Paris uses FRR on its edge routers, redistributing a default route from RIPng into Babel, and announcing a static route over RIPng to the rest of the universe. If there are two edge routers, we want the RIPng route to be used instead of the Babel route announced by the other edge router, so Babel must have a higher AD than RIPng. (My employer happens to use RIPng for IPv6 routing, but the same argument would apply to OSPF or IS-IS.) The Italian confederation of mesh networks uses a mixture of OLSR, BATMAN-adv and Babel in its individual meshes, and uses Babel for routing between the individual meshes (mainly due to the minuscule amount of traffic it generates as compared to the traditional mesh protocols). I'm not entirely clear how redistribution is done in the confederation, but I believe that they'd prefer Babel to have a lower AD than OLSR. The Slovenian mesh network (wlan-si) uses both Babel and OLSR. If a given prefix is carried by both Babel and OLSR, I believe that they prefer the Babel route. This, again, implies that Babel's AD should be smaller than that of OLSR. The Nexedi overlay network uses Babel for routing between LANs, mainly due to its ability to choose the best among a set of parallel tunnels. They don't do any routing within the LANs, so any AD will do for them. The above examples would seem to imply that Babel's AD should be between that of traditional IGPs and that of traditional mesh protocols. However, I don't see any reason why a deployment wouldn't use Babel to distribute externals between OSPF and IS-IS islands (e.g. in cases where Babel is being used to pick the best among parallel tunnels, as in Nexedi's case), so having Babel's AD lower than that of traditional IGPs would appear to make sense in some cases. -- Juliusz
participants (4)
-
Don Slice -
Donald Sharp -
Juliusz Chroboczek -
Russ White