| 8 comments ]

Internet is a set of Autonomous Systems (AS) that interconnect each other.  Autonomous System is a network under the same administration.
Autonomous System use Exterior Gateway Protocol(EGP) to connect and exchange information each other.  Information in this term is routing information.  Today, BGP is the only EGP used in the internet.  Comapred with IGP that only used inside AS, BGP can be used outside and inside AS (IBGP).  Current version is BGP-4.  BGP is defined in RFC-1771.  BGP using port 179 TCP to connect.
BGP is classified as distance vector routing protocol, but with some enhancement called attributes.

BGP characteristics:

  • Distance vector routing protocol
  • Keep alternative routes
  • Loop free routing

When a connection established initially between AS's, BGP speakers exchange the whole table, but then their only send only update.  BGP update consist of prefix length, network prefix, and attributes, such as as-path, next-hop, origin, local-preference, med, etc.  AS path is a series of AS that need to be traversed to reach a destination or prefix.
BGP consist of IBGP and EBGP.  IBGP neighbor is in inside AS, and require fully meshed.  EBPG neighbor is in different AS, and must be reachable, either it's directly connected or multihop.

BGP Updates
BGP updates characteristic is different between IBGP and EBGP.  When a router receives an update from external neighbor, it will send to all internal neighbor.  When a router receives update from internal neighbor, it will not send back to others internal neighbor.  This mechanism is used as loop avoidance.  As the consequence, IBGP need full mesh between all routers in the AS.  Later, we will discuss about route reflector that will break this rule.  Router reflector is used to overcome need of full mesh connection.

BGP Path Selection Algorithm
BGP uses complex mechanism to choose what routes is the best.
  • Do not consider path if no route to next hop
  • Do not consider iBGP path if not synch
  • Highest weight (local to router)
  • Highest local preference (global within AS)
  • Prefer locally originated route
  • Shortest AS path
  • Lowest origin code
  • IGP < EGP < incomplete
  • Lowest Multi-Exit Discriminator (MED)
      • If bgp deterministic-med, order the paths before comparing 
      • If bgp always-compare-med, then compare for all paths otherwise MED only considered if paths are from the same AS (default)
  • Prefer eBGP path over iBGP path
  • Path with lowest IGP metric to next-hop
  • For eBGP paths:
      • If multipath is enabled, install N parallel paths in forwarding table
      • If router-id is the same, go to next step If router-id is not the same, select the oldest path
  • Lowest router-id (originator-id for reflected routes)
  • Shortest cluster-list
      • Client must be aware of Route Reflector attributes
  • Lowest neighbour address
To be continued.

8 comments

lidia said... @ January 31, 2011 at 4:39 AM

Im not very goot at blogging. Im only starting it. But thanks to ur blog I learnt a lof new things. thanks for a great post!

Precious said... @ February 1, 2011 at 3:32 AM

Interesting entry. I was terribly impressed and felt had to induce a valuable expertise when reading your info. Bookmarked this page, will come back for more and subscribed in Google Reader as well.

Regards
Evelina

Please visit some of my sites below

stop smoking
quit smoking
snuff
ex back

Printer - Tips said... @ February 15, 2011 at 1:17 PM

Hallo. Your blog is so cool. I like it. Thanks for sharing a nice article.

Ink Info

Printer - Tips said... @ February 15, 2011 at 1:22 PM

Hallo, thanks for sharing a great article.

certified financial planner houston said... @ February 16, 2011 at 4:04 PM

It is very informative post. I will help me in my project. Thank you so much for this valuable post.

rizwan said... @ February 24, 2011 at 7:02 PM

LOVELY WEBSITE

call Australia said... @ March 13, 2011 at 11:42 PM

This truly is a very important blog. Thanks for sharing this valuable information with us.

Stefan Liviu said... @ April 15, 2011 at 4:11 PM

Thanks for the tutorial :)

Post a Comment