Folks,
It looks to me as though your level 4A FIB aggregation algorithm has a
bug... at least if you agree that "may create forwarding loops" is a
bug. Two routers aggregating across holes can end up in a forwarding
loop. Here's an example. Consider this network, with X and A in one
AS and B and Y in another:
X --- A --- B --- Y
Router A receives the following routes:
- From X, 10.32/11 and 10.192/11
- From B, 10.0/11 and 10.224/11
Using algorithm 4A, it creates the aggregate 10/8 with nexthop B
(randomly chosen)
Router B receives the following routes:
- From A, 10.32/11 and 10.192/11
- From Y, 10.0/11 and 10.224/11
- Using algorithm 4A, it creates the aggregate 10/8 with nexthop A
(randomly chosen)
Packets to 10/8 other than the listed prefixes will loop (e.g. to
10.64.1.1). Of course, they have to reach A or B first but it's not
difficult to imagine a scenario in which they could.
This problem arises from the case where you randomly pick a next hop.
If two adjacent routers do this, they may end up picking each other.
I haven't worked this through for the 4B algorithm, but considering
that it has a similar random selection step, I would guess the same
problem could arise.
This leads me to reflect that my biggest concern with the draft as it
stands is that the correctness condition as stated ("after longest
match lookup, if a destination address has a non-NULL next-hop in the
un-aggregated FIB, it should have the same next-hop in the aggregated
FIB") is a tad questionable. IMO the base correctness condition is
"has black-box identical behavior to a router not using FIB
compression", which is stronger than what's stated. You'd need to
drop the "has a non-NULL next-hop" caveat. This seems to be what your
Level 1 and 2 algorithms provide (or anyway, are intended to
provide). I think you need to state clearly what the correctness
conditions are for the other levels. (And given a clear statement of
the correctness conditions, proof of correctness would be very
desirable!)
Regards,
--John
_______________________________________________
GROW mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/grow