If you haven’t touched BGP Communities I want to start out by saying that they rock, they’re actually my favorite BGP feature, especially when all of your upstream providers support blackhole communities. I’ll get into that on a later tutorial though..
Last night I was laying in bed not sleeping and I started to let my mind wander. I started to think about a recent client that for some reason when I was working on their config I had written some route-maps that I later realized re-implemented part of the BGP route selection algorithm. I had lost sight of my original thoughts, and for some reason, it came back to me last night.
For the larger ISPs I do work for, the normal head end design I like to see basically consists of a ‘medium sized’ router for each ingress point, and at least 2 ‘large’ routers to use as route servers / reflectors. This allows you to control traffic easily at each router, setting your own policies there and letting them trickle down into the network.
Network local-preference is usually dynamic in that it depends on where the traffic is coming from, and if the customer has set a local-preference themselves. My list usually looks something like this.
- xxx:70 Local Preference to 70
- xxx:80 Local Preference to 80
- xxx:90 Local Preference to 90 (Peer Default)
- xxx:100 Local Preference to 100 (Customer Default)
- xxx:110 Local Preference to 110
- xxx:120 Local Preference to 120
This is normally pretty good, but what if you want more granularity with your outgoing traffic? That’s where my idea comes into play. A lot of politics unfortunately comes into play when dealing with your network traffic, and usually that means preferring one network over another, sometimes with little to no consideration for distance. Using the above example, lets define some new communities. Instead of having :90 as the peer default, lets setup a few extra.
- xxx:90 Local Preference to 90 (Peer Default – low preference)
- xxx:95 Local Preference to 95 (Peer Default)
- xxx:97 Local Preference to 97 (max 2 paths)
- xxx:99 Local Preference to 99 (max 1 path)
What I want to accomplish here is matching short paths and assigning them a better local pref. This allows us to have a neighbor set to a low preference by default, but if they’re directly connected to a network we need to reach, we will still prefer their path… I think that is a very good thing.
Please let me know what you think, I would love to hear everyone’s thoughts on this one..



{ 2 comments… read them below or add one }
Do communities vary by backbone provider or is there a standard?
Each provider sets their own BGP communities policy. I wish there was a standard that was mandatory to follow, but unfortunately there is not. AT&T for instance wanted to charge me to allow community blackholing, which IMHO is absurd. Level3 has a very good offering of communities available to their customers.. You can check out a list of what communities differnt providers offer at http://www.onesc.net/communities/