BGP Confederation config problem...

I have a problem I cannot solve. If anyone is running confederations like
mine, I would appreciate some help :slight_smile:

We have a 4-memberAS confederation, each with two IBGP peers. The
arrangement looks sort of like an octagon. the "r" is AS3 is an internal
hop, not a BGP peer.

   _______ ______
  > R-----R---r |
  > / | | | |
  >AS2 R | |AS3 R |
   ----|-- ----|-
       > >
   ____|__ ____|_
  >AS4 R | |AS1 R |
  > \ | | / |
  > R-------R |
   ------- ------

The problem is this: How do you get BGP to choose the shortest "AS PATH",
since internal AS paths are ignored in selecting BGP routes? Right now,
to top router in AS4 will always choose a route through (2 3 1) instead of
(1), because it prefers "external" routes (even external confederation
routes) over internal routes.

So, when given a choice, the router on the distant side of the AS will
ALWAYS prefer the three-AS-hop path, because it is external. Is there a
way around this?!?

Avi Freedman suggested using a +1 metric when leaving each member-AS.
(Thanks Avi!) But it doesn't seem to help - perhaps I didn't do it right.
In fact, it doesn't look like the metrics are adjusted more than 1. for
example, from AS2, the lower router sees every route outside of AS2 as
having only metric 1! The top router in AS3 does not add 1 to the metrics
it readvertises to AS2.

I've been stewing over this problem for some time... I believe there is
some clue that I've missed. Any help would be greatly appreciated!


More info:

Per Avi's suggestion, I implemented this route map for all outbound

  route-map addone permit 10
    set metric +1

(assumes match all)

I'm running IOS 11.2 or 11.1(11) on the routers. The Command reference
for 11.1 and 11.2 does not mention the ability to use +1 to increment, but
the online command "help" shows:

Enter configuration commands, one per line. End with CNTL/Z.
router(config)#route-map addone
router(config-rou)#set metric ?
  +/-<metric> Add or subtract metric
  <0-4294967295> Metric value or IGRP bandwidth in Kbits per second

Does this really mean "Add one", or "Reset to Positive 1"?


This won't work because Cisco's bgp implementation skips over MED
from neighboring sub ASes inside a confederation in its decision

What you probably need is to get cisco to implement a knob that will
evaluate MEDs across sub-ASes inside a confederation.

Cisco is working on this, but I'm not sure what the ETA is.