customized bgp route selection using bgp/mpls vpnsjrex/talks/cisconag09.pdf · customized bgp route...

29
Customized BGP Route Selection Using BGP/MPLS VPNs Cisco Systems, Routing Symposium Monday, Oct. 5 2009 Laurent Vanbever Université catholique de Louvain, BE !"#$%&’()"&*%+%$,#-./#+"0&(*% Pierre Francois (UCLouvain, BE), Olivier Bonaventure (UCLouvain, BE) and Jennifer Rexford (Princeton, USA)

Upload: others

Post on 30-May-2020

16 views

Category:

Documents


0 download

TRANSCRIPT

Customized BGP Route Selection Using BGP/MPLS VPNs

Cisco Systems, Routing Symposium

Monday, Oct. 5 2009

Laurent VanbeverUniversité catholique de Louvain, BE

!"#$%&'()"&*%+%$,#-./#+"0&(*%

Pierre Francois (UCLouvain, BE), Olivier Bonaventure (UCLouvain, BE) and Jennifer Rexford (Princeton, USA)

Introduction and motivation

Implementing CRS

Practical considerations and solutions

Conclusion

Customized BGP Route Selection Using BGP/MPLS VPNs

Introduction and motivation

Implementing CRS

Practical considerations and solutions

Conclusion

Customized BGP Route Selection Using BGP/MPLS VPNs

BGP Route Selection:One-route-fits-all model

A BGP router selects one best route for each destination

Globally, AS E knows 4 paths towards D

Locally, some routers only know one path (e.g., C1...C3)

C1

C2

C3

A

B

C

DR1

R2

R4

R5

E

R9

R8

R7

R6

R3

4

Many ISPs have a rich path diversity

It is common to have 5-10 paths per prefix

Different paths have different properties

It could be in terms of security, policies, etc.

C1

C2

C3

A

B

C

DR1

R2

R3

R4

R5

E

R9

R8

R7

R6

prop.4

prop.3

prop.1

prop.2

BGP Route Selection:One-route-fits-all model

5

Clients may want different paths to the same prefix

If C1 is a competitor of C, he’d prefer to reach D via A or B

C1 may even want to pay an extra fee for that

C1

C2

C3

A

B

C

DR1

R2

R4

R5

E

R9

R8

R7

R6

I’d prefer 1

I’d prefer 4

I’d prefer 3

BGP Route Selection:One-route-fits-all model

prop.4

prop.3

prop.1

prop.2

R3

6

With vanilla BGP, you can’t match customers’

preferences to available paths

Customers of a given PE receive the same path

C1

C2

C3

A

B

C

DR1

R2

R3

R4E

R9

R8

R7

R6

R5

BGP Route Selection:One-route-fits-all model

I’d prefer 1

I’d prefer 4

I’d prefer 3

prop.4

prop.3

prop.1

prop.2

7

CRS: Customized Route Selection

Under CRS, one router can offer different interdomain

routes to different neighbors

C1 reaches D via B, C2 reaches D via C

C1

C2

C3

A

B

C

D

R2

R3

R4

R5

E

R9

R8

R7

R6

R1

I’d prefer 1

I’d prefer 4

I’d prefer 3

prop.4

prop.3

prop.1

prop.2

8

Introduction and motivation

Implementing CRS

Potential issues and solutions

Conclusion

Customized BGP Route Selection Using BGP/MPLS VPNs

Two notions:class and service

A class is a set of routes sharing a property

e.g., all the routes learned via provider X

One route can belong to more than one class

A service is the union of one or more classes

Some classes can be preferred over others

e.g., service Y is the union of class 1 and class 2

where preference is given to class 1

10

What do we need to implementCRS with BGP MPLS VPNs ?

Mechanisms to disseminate and differentiate paths

Multiprotocol BGP is used as dissemination protocol

Route Targets (RT) are used to identify classes

Route Distinguishers (RD) are used to ensure diversity

Customized route selection mechanisms at ASBR

Use Virtual Routing and Forwarding (VRF) instances

to build services

Traffic forwarding on the chosen paths

MPLS tunneling

11

C1

C2

C3

A

B

C

D

R1

R2

R3

R4

R5

E

R9

R8

R7

R6

How do we implement CRS with BGP MPLS VPNs ?

C1 wants to reach D via B, C2 via C

Define two services on R1: prefer B (resp. C) routes

Define three classes: learned via A, B or C12

C1

C2

C3

A

B

C

D

R1

R2

R3

R4

R5

E

R9

R8

R7

R6

How do we implement CRS with BGP MPLS VPNs ?

13

C1

C2

C3

A

B

C

D

R1

R2

R3

R4

R5

E

R9

R8

R7

R6

How do we implement CRS with BGP MPLS VPNs ?

Consider peers as VPNs and put them in VRFs

13

C1

C2

C3

A

B

C

D

R1

R2

R3

R4

R5

E

R9

R8

R7

R6

How do we implement CRS with BGP MPLS VPNs ?

Consider peers as VPNs and put them in VRFs

Route Targets

101: learned via A

102: learned via B

103: learned via C

Use RT to identify classes

13

C1

C2

C3

A

B

C

D

R1

R2

R3

R4

R5

E

R9

R8

R7

R6

How do we implement CRS with BGP MPLS VPNs ?

Consider peers as VPNs and put them in VRFs

Route Targets

101: learned via A

102: learned via B

103: learned via C

Use RT to identify classes

RD 1

RD 4

RD 3

RD 2

Use different RD to differentiate routes 13

C1

C2

C3

A

B

C

D

R1

R2

R3

R4

R5

E

R9

R8

R7

R6

How do we implement CRS with BGP MPLS VPNs ?

Route Targets

101: learned via A

102: learned via B

103: learned via C

import RT: 101,102,103;

from 102: set pref:=200;

import RT:101,102,103;

from 103: set pref:=200;

prefer C routes

prefer B routes

Define services by using VRFs’ import filters

14

C1

C2

C3

A

B

C

D

R1

R2

R3

R4

R5

E

R9

R8

R7

R6

How do we implement CRS with BGP MPLS VPNs ?

Route Targets

101: learned via A

102: learned via B

103: learned via C

MPLS is used for forwarding

Two levels label stack

R3 only knows label to reach the PEs15

PEER

CRS applied to classical policies

CUST CUST

PROV PROV

R1 R2

R3

Define three classes

Providers (RT 100)

Peers (RT 101)

Customers (RT 102)

Define two services

VRF Provider/Peer ( )

import RT 102;

VRF Customers ( )

import RT 100,101,102;

Thanks to VRF isolation,

policies violations vanish16

Introduction and motivation

Implementing CRS

Practical considerations and solutions

Conclusions

Customized BGP Route Selection Using BGP/MPLS VPNs

Is CRS pushing a M120to the limit ?

UUT

MP-iBGP, OSPF, LDPeBGP

RT:100

RT:101

RT:102

RT:103

Four services are defined on the Unit Under Test (UUT)

Each service is fed with one class (one RT)

In each class, ~300k routes (1 path per route)

In the end, 1.200.000 routes in RIB & FIB18

UUT was a Juniper M120 [JunOS 9.3R2.8]

Routing Engine (RE) has 4 GB DRAM

Forwarding Engine Boards (FEB) have 512 MB DRAM

RE FEB

empty 17% 9%

fully-loaded(1.200.000 routes)

38% 39%

FIB could handle more than 2.000.000 routes

Enough to support a few services without modifications

19

Is CRS pushing a M120to the limit ?

More services ?scalability and...scalability

Routes dissemination overhead

All PEs receive all VPN routes

Routes storage overhead

RIB

Modest performance demand

Add more DRAM to support CRS ?

FIB

CRS’s biggest challenge

Sharing between the VRFs in the FIB ?

20

How could we improve CRSFIB’s scaling: Selective VRF Download

Customers ask for the same services ?

Connect them on the same line card

Download VRFs only to line cards that need them

It could be a management nightmare...

1111111111111111111112%341156717'0.08"'0/&19:;111<%3/$=11117'0.08"'0/&19:;

>./'1>'"'%11111111111195;112/'".11?&'%$$#4'111111@AB<19<C;1D%"411111C#EE%$

11F11G&.0&%111111111111FH111111I1111111111J1111111KIF11111111!"111111111KL

11M11G&.0&%111111111111FN111111I1111111111J1111111KIF11111111!"111111111KL

By default, all VRFs are installed on all line cards

21

How could we improve CRSFIB’s scaling: Cross-VRF Lookup

Specific routing for a small set of prefixes ?

Create one small VRF per service

Add default entry towards a default VRF

The price to pay is 2 IP lookups

Default

*>10/8 via R3...

...

VRF1

*>10/8 via R10/0 via default

VRF2

*>10/8 via R20/0 via default

R1 R2

R3R

22

How could we improve CRS FIB’s scaling: Distributed VRF

Distribute VRFs among routers which can

afford extra load

PEs do not maintain complete VRFs anymore

PEs default route traffic towards these routers

Increase in latency and load

Distributed version of Cross-VRF Lookup

R2 R1

R

R maintain small VRFsand default rest to R1 or R2

detour pathdirect path

23

Introduction and motivation

Implementing CRS

Practical considerations and solutions

Conclusion

Customized BGP Route Selection Using BGP/MPLS VPNs

CRS is feasible

1 Proof in SIGMETRICS'09 paper by Y. Wang, M. Schapira, and J. Rexford

Implementable

It can be realized on today’s routers

It uses well known BGP MPLS/VPNs techniques

Scalable (for a few services)

“Modest” message and storage overhead

Lab experiments tend to confirm that

Guaranteed interdomain convergence

Extra flexibility does not compromise global

routing stability1

25

Customized BGP Route Selection Using BGP/MPLS VPNs

Questions ?

Cisco Systems, Routing Symposium

Monday, Oct. 5 2009