How to Construct a Correct and Scalable iBGP Configuration Mythili Vutukuru Joint work with Paul Valiant, Swastik Kopparty and Hari Balakrishnan BGP eBGP and iBGP 18.0.0.0/8 eBGP B A iBGP Border router/ Egress Autonomous System (AS) C Route D Our contribution Status quo in configuring iBGP Full-mesh (not scalable) Route reflection (no correctness guarantees) New approach (“BGPSep”) to configure iBGP that is both correct and scalable Uses the results on graph separators from graph theory Outline of the talk More background What is the status quo? What are the problems with it? Problem statement Our solution Background - iBGP 18.0.0.0/8 B A iBGP C Route IGP D iBGP sessions run on TCP Overlay over the intradomain routing protocol or Interior Gateway Protocol (IGP) like OSPF Routing messages and data packets forwarded via IGP within AS iBGP Rule to avoid routing loops: Routes from iBGP session not propagated to another iBGP session Approach#1: Full-mesh iBGP 18.0.0.0/8 B A D Every router has an iBGP session to every border router Large number of iBGP sessions: not scalable C iBGP session Route Scalable alternative: Route reflection Route reflector B 18.0.0.0/8 A “Reflects” routes to and from client iBGP sessions Avoids full-mesh Hierarchy of reflectors C D Client iBGP session Route Problems with route reflection: #1 Problem #1: Routers may not choose best route Why? Route reflector reflects only its best route B A 18.0.0.0/8 Client session Route D Data packets C B chooses the sub-optimal route through C Lower cost to egress In full-mesh B would have chosen route through A Sub-optimal path assignments Problem#2: Forwarding loops 18.0.0.0/8: goto A B To: 18.0.0.1 R1 18/8 R2 18/8 D A IGP To: 18.0.0.1 C 18.0.0.0/8: goto D Client iBGP session Route IGP link Data packets Background - Summary iBGP configuration Correctness √ Full-mesh Route reflection × √ We need Scalability × √ √ 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 Key insight for emulating full-mesh For every BGP 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 A 18.0.0.0/8 B 18.0.0.0/8 R C 18/8 A Our solution – “BGPSep” S D ? B G1 18/8 G2 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 Recursion terminates when component small enough Evaluation 2.5 to 5X fewer iBGP sessions on ISP topologies [Source: Rocketfuel] 14000 Number of iBGP sessions 12000 10000 8000 Full-mesh 6000 BGPSep 4000 2000 0 AS1221 AS1755 AS3257 AS3967 AS6461 Features of BGPSep Efficient implementation Convenient to use ~100 lines of Matlab Runs in a few seconds Need not be re-run when link costs change or nodes/links fail Small number of top-level route reflectors Not incremental – need to be re-run when nodes/links added Conclusion First algorithm to construct correct iBGP configurations with route reflection. Reduces # iBGP sessions compared to full-mesh Efficient implementation Convenient and practical to use Questions? Questions? 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 Packets do not make progress towards egress and loop forever Not robust to IGP changes Some router along the forwarding path chooses a different egress IGP link failures trigger forwarding loops Full-mesh iBGP has none of these problems 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 B R: goto D R R R1 R2 D To: R To: R A Client iBGP session Route R: goto A C IGP link Data packets
© Copyright 2026 Paperzz