On 27 mrt 2009, at 2:23, Danny McPherson wrote:

You mentioned some really large numbers in your talk which seem atypical to me: in a network large enough to have RRs I would assume that most routers are only responsible for a relatively small number of best prefixes in the global table.

Those numbers are likely to be reflective of the aggregate
set of unique prefixes (best routes) from ALL external peers
in an Internet table, as the local eBGP route is _usually
the best.

Yes, a router thinks its own eBGP route is best--but the RR wouldn't necessarily agree. Suppose 4 eBGP routers and an RR, the average backreflection would be 25%. Now maybe it's 85% for one and 5% for the three others, but the average can only be 25%.

In the case where a router would indeed get back 100k if its own prefixes from RRs it would make more sense to make that router a non client peer of the RRs and make the problem go away in that way.

I don't grok that?

If a router is responsible for a very large number of best prefixes that are then reflected back to that router by the route reflectors, it would make sense to make that router NOT a route reflector client. If the router in question isn't an RR client, the RRs don't reflect any information back to the router. Of course this means that the router in question must have a full iBGP mesh with other other non-RR- client routers as well as with all the RRs.

1) all best paths learned from the client are reflected
back to the client

Right. Note that the average number of those paths is (table size) / (# eBGP routers).

2) this is multiplied by the number of RRs to which that
client peers

Right again, but since EVERYTHING multiplies by the number of RRs this is not unexpected or worthy of special concern, especially as backreflected paths actually use up less resources than other paths.

3) client processing of updates results in placement of ALL
updates in [serialized?] BGP input processing queue with ALL
other updates {m, 1..n}

Depends on implementation. Again, other paths require more processing than backreflected ones so I don't see the issue.

4) if n is sufficiently large, many of these updates may
very well still be in the process of being learned from
the external peer(s) (r) and initial convergence function,
and processed behind extraneous reflected routes

See above.

5) Serialized processing means all Address Families likely
effected.

See above.

6) Reflected route MAY be legitimate withdraw if alternative
best previously advertised from RR - therefore it must be
processed normally IF received - this is likely one of the
more interesting bits for the RR implementer.

Yes, the whole notion that a BGP router must track which updates were sent to which peer is a big design flaw.

I believe this is AN issue that implementers should
look at.  I understand that there may be efficiencies
in some implementations to copy and it's more complex
to not reflect to client IF Originator == client RID.

Agree with that, but what action do you suggest?

I think the issue is sufficiently complex and unexpected that a good writeup would benefit the community, but I don't think imposing any new rules would be helpful, if only because implementations must expect the current behavior for many years to come anyway.
_______________________________________________
GROW mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/grow

Reply via email to