210 likes | 356 Views
How to Construct a Correct and Scalable iBGP Configuration. Mythili Vutukuru Joint work with Paul Valiant, Swastik Kopparty and Hari Balakrishnan. BGP. R. B. A. F. E. D. C. R. R. R. eBGP and iBGP. R. eBGP. iBGP. Border routers/ Egress. BGP routers. Autonomous System (AS).
E N D
How to Construct a Correct and Scalable iBGP Configuration Mythili Vutukuru Joint work with Paul Valiant, Swastik Kopparty and Hari Balakrishnan
BGP R B A F E D C R R R eBGP and iBGP R eBGP iBGP Border routers/ Egress BGP routers Autonomous System (AS) Internal routers Route
Our contribution • Status quo in configuring iBGP • Full-mesh(not scalable) • Route reflection(no correctness guarantees) • Problems with both approaches • New approach to configure iBGP that is both correct and scalable • Uses elegant results from graph theory
Outline of the talk • More background • What is the status quo? • What are the problems with it? • Problem statement • Our solution
iBGP sessions run on TCP Overlay over the intra-domain routing protocol (IGP) like OSPF Routing messages and data packets forwarded via IGP within AS Routes from iBGP session not propagated to another iBGP session B A F E D C Background - iBGP R iBGP IGP Route
R R R R Approach#1: Full-mesh iBGP R B A F E D • Every router has an iBGP session to every border router • Not scalable C iBGP session Route
Approach#2: Route reflection • “Reflects” routes to and fromclient iBGP sessions • Avoids full-mesh • Hierarchy of reflectors R Route reflector B A F E D C Client iBGP session Route
Problem #1: Routers may not choose best route Why? Route reflector reflects only its best route B chooses the sub-optimal route through C In full-mesh B would have chosen route through A R Problems with route reflection: #1 B A F E Client session D Route Data packets C Lower cost to egress
B R2 R1 R D R A C Problem#2: Forwarding loops R: goto A To: R IGP To: R Client iBGP session R: goto D Route IGP link Data packets
Outline of the talk • More background • What is the status quo? • What are the problems with it? • Problem statement • Our solution
Problem Statement • Input: IGP (IP-level connectivity) graph • Output: iBGP configuration • Route reflectors and clients • iBGP sessions • Constraints • Emulate full-mesh • More scalable than full-mesh • Previous work [GW02] – how to check for correctness, not how to construct correct configurations [GW02] T. Griffin and G. Wilfong, “On the Correctness of iBGP Configuration”, In Proc. ACM SIGCOMM 2002, Pittsburg, PA, August 2002.
Outline of the talk • More background • What is the status quo? • What are the problems with it? • Problem statement • Our solution
B R2 R1 D A C Key insight for emulating full-mesh • For every router P, every egress E • P and E have iBGP session, OR • P should be the client of a route reflector on the shortest path between P and E To: R R: goto D R R To: R To: R Client iBGP session Route R: goto A IGP link Data packets
S is graph separator Nodes in graph separator S are route reflectors u in G1 or G2, v in S: u is a client of v Full-mesh in G1, G2 Recurse on G1, G2 Our solution R S D A ? B G2 G1 R
2.5 to 5X fewer iBGP sessions on ISP topologies [Source: Rocketfuel] Evaluation
Conclusion • First algorithm to construct correct iBGP configurations with route reflection. • Efficient implementation • 2.5 to 10X fewer iBGP sessions compared to full-mesh iBGP
Best route selection • BGP best route selection rules • Local Pref • AS path length • MED • IGP cost to egress • Best route selected by route reflector might not be the best route for the client
Route reflection • 2 types of iBGP sessions • Client iBGP session • Normal (“peer”) iBGP session • Route from client → all clients and peers • Route from peer → all clients • Multiple route reflectors • Hierarchy of route reflectors
Problems with route reflection • Lack of complete visibility: every router is not guaranteed to see its best available route. • Forwarding loops • Some router along the forwarding path chooses a different egress • Packets do not make progress towards egress and loop forever • Not robust to IGP changes • IGP link failures trigger forwarding loops • Full-mesh iBGP has none of these problems