BGP Configuration Problem

We are having a BGP configuration problem which looks trivial but is not
working the way we expect. I'm going to throw myself on the mercy of
the court and ask for help.

There are three routers A, B and C. These are in ASa, ASb and ASc,
respectively. B imports 10.1.64/19 from A and 10.1/16 from C. What
we were expecting was for B's route to the /19 to be via A, just because
this is the more specific route. However, the only route (both in the
BGP and routing tables on B) is for the entire /16 via C.

Even if it isn't the best route, you should see the table of choices
(in a Crisco) if you do 'sho ip bgp x.y.z.0'. You'll only see the most
specific choices that match with that - you could also do a 'sho ip bgp' and
watch (presumably 10/8 should be near the top) for's range to show up
and see what choices are presented.

I have a hunch that what is happening is that B is saying "gee, I can
get to the entire /16 by going through C, so why bother with A". If I'm
not mistaken, this can be fixed by introducing local_pref for both peers.
Could someone please comment on this?

No, what you're describing would be "anti-specificity" (a term I just made up).
And there is no such concept.

Remember: Routing is combinations of tens or hundreds of extremely simple
concepts, hooked together in sometimes strange and wonderious ways. It always
helps to play router. Either "ok, I have this packet, now what do I do with
it? Well, the router will examine the source address and ..." or "Hmm,
obviously the route hasn't made it into the IGP. Well, it's not in the BGP
either. But it's in the remote router and that router has no outgoing
IP or AS-PATH filter lists. Ah, the local router has an AS-PATH filter list
with a mis-typed entry. Bingo".



Good luck,