Subject: [Idr] Is the best-path decision affected by congestion?

From: Robin Whittle <[email-masked]>
Date: Mon, 30 Jul 2007 18:30:26 +1000

If someone can help me with this, I would really appreciate it.

This more a question about BGP implementations and router behavior
than about the protocol itself.  I am thinking primarily of a
transit router in a mesh of other transit routers, with for some
reason this particular transit router being regarded by many
others as part of the "best-path" for one or more prefixes which
carry a lot of traffic.

Q1 - Does a BGP router ever change its best-path for any
     prefix (which it uses for forwarding itself, and which it
     tells its peers) based on traffic levels and congestion?

If so, then I could imagine a situation where changes in the way
one or more prefixes A, B etc. were forwarded by other routers,
(or changes in traffic on those prefixes) could affect congestion
on one link or one peer of a given router, which would cause it to
change its "best path" for some other prefixes N, M etc.

I think this could lead to ongoing instability and oscillation
throughout the network as other routers also adapted to the
changed traffic flows for prefixes N, M etc.

Q2 - Alternatively, if BGP routers never consider congestion when
     deciding on their best path, then doesn't this lead to
     problems unless everyone ensures, somehow, that their router
     and its datalinks are never congested?

The only way I could imagine this being achieved is by some manual
or automatic change to what best paths the router advertises,
based on traffic levels and actual, or potential, congestion -
which seems to be an instance of "yes" for the first question.

The funnelling of traffic to one router or another might change
from time to time without any action on the part of a particular
router - and traffic levels vary enormously.  I don't see how a
router operator could ensure their router remains uncongested at
all times, without some change to how the router announces best
routes, at least for some prefixes.

BTW, I am corresponding with one of the people at the iPlane
project:  http://iplane.cs.washington.edu

I wanted to know roughly how many BGP routers there are, and how
many of them are in the DFZ.  Apparently their "Lists of alias
clusters" doesn't quite show this, and they are going to get back
to me about this next week.  I will report whatever I find on this
list.

  - Robin

_______________________________________________
Idr mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/idr

---

From: Tony Li <[email-masked]>
Date: Mon, 30 Jul 2007 07:07:18 -0700

Hi Robin,

>      tells its peers) based on traffic levels and congestion?

Nope.

> changed traffic flows for prefixes N, M etc.

That's why...  We never figured out how to make it stable.  Someone
with enough background in control theory and development time
could conceivably install enough low pass filtering to make this
stable and conclusively prove that it's stable, but no one has done
this to date.  Maybe when I retire...  ;-)

> which seems to be an instance of "yes" for the first question.

Correct.  There are a slew of mechanisms for doing exactly this.  For
example, intra-domain traffic engineering with MPLS, manipulation
of IGP metrics, tweaks to local pref, etc.

> routes, at least for some prefixes.

... and then you hire a staff full of smart people, 24 x 7, to turn the
knobs.

Tony

---

From: Robin Whittle <[email-masked]>
Date: Tue, 31 Jul 2007 00:22:37 +1000

Hi Tony,

Thanks very much for your reply - which answers all my questions.

> ... and then you hire a staff full of smart people, 24 x 7, to turn the

I understand from this that routers which have too much traffic
are reconfigured to announce best-paths to their peers which are
longer than they otherwise would be, with the effect that more
traffic goes via other routers instead.

Ideally, I guess, this is done reasonably wisely and smoothly, so
there is no oscillations as other routers are reconfigured when
their traffic volumes go up.

  - Robin