Slides on BGPsep

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