How to Construct a Correct and Scalable iBGP Configuration
Download
Report
Transcript How to Construct a Correct and Scalable iBGP Configuration
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
R
eBGP
R
B
A
iBGP
BGP routers
F
Autonomous
System (AS)
E
Border routers/
Egress
Internal routers
D
C
R
Route
R
R
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
Background - iBGP
R
B
A
iBGP
F
E
C
Route
IGP
D
iBGP sessions run on TCP
Overlay over the intradomain 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
Approach#1: Full-mesh iBGP
R
R
B
A
F
E
D
Every router has an iBGP
session to every border
router
Not scalable
R
C
R
R
iBGP session
Route
Approach#2: Route reflection
R
Route reflector
B
A
F
E
“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
R
F
E
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
Problem#2: Forwarding loops
R: goto A
To: R
B
R1
R2
R
D
R
A
IGP
To: R
R: goto D C
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 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
Our solution
R
A
S
D
?
B
G1
R
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
Evaluation
2.5 to 5X fewer iBGP sessions on ISP topologies
[Source: Rocketfuel]
14000
Number of iBGP sessions
12000
10000
Full-mesh
8000
Our algorithm
6000
4000
2000
0
AS1221 AS1755 AS3257 AS3967 AS6461
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
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