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