BGP A study into the BGP protocol as well as BGP ... · One route server Simulate link-flap Many...

25
BGP Parallelization A study into the BGP protocol as well as BGP implementations to improve Route Server scalability. Jenda Brands Patrick de Niet

Transcript of BGP A study into the BGP protocol as well as BGP ... · One route server Simulate link-flap Many...

Page 1: BGP A study into the BGP protocol as well as BGP ... · One route server Simulate link-flap Many peers ... ExaBGP daemons Testbed About our company info ONE route server ROUTE SERVER

BGP

ParallelizationA study into the BGP protocol as well as BGP implementations to

improve Route Server scalability.

Jenda Brands

Patrick de Niet

Page 2: BGP A study into the BGP protocol as well as BGP ... · One route server Simulate link-flap Many peers ... ExaBGP daemons Testbed About our company info ONE route server ROUTE SERVER

B Active BGP entries in FIB

From cidr-report.org

The internet is growing

Insert content in this area

• De-aggregation of prefixes

• Thus, more prefixes announced

• Currently 673,602 prefixes (03-07-17)

• More interconnections are made

More prefixes announced

NETWORKS

More routes to prefixes announced

ROUTES

2

Page 3: BGP A study into the BGP protocol as well as BGP ... · One route server Simulate link-flap Many peers ... ExaBGP daemons Testbed About our company info ONE route server ROUTE SERVER

I Internet Exchange

All nodes in the same layer-2 domain

Introduction to internet exchanges

Flat fee from IX

Negotiate peering terms with neighbours

Benefits of IX

IX

3

Internet Exchange (IX)

Enterprise

Content Provider

Enterprise

EnterpriseContent Provider

Enterprise

• Internet Exchanges reduce peering costs and administration

Costs of peering

PEERING

Page 4: BGP A study into the BGP protocol as well as BGP ... · One route server Simulate link-flap Many peers ... ExaBGP daemons Testbed About our company info ONE route server ROUTE SERVER

Introduction to route servers

Insert content in this area4

I Traditional BGP

Full-mesh peering

21 Peerings in full-mesh required (N(N-1)/2)

6 sessions per node

Same layer 2 network

Lot of administration/configuration for all peers

Without Route Server

BGP

Enterprise

Content Provider

Enterprise

Enterprise

EnterpriseContent Provider

Enterprise

Page 5: BGP A study into the BGP protocol as well as BGP ... · One route server Simulate link-flap Many peers ... ExaBGP daemons Testbed About our company info ONE route server ROUTE SERVER

5

I Current BGP

Peering with route server

14 Peerings required (N2)

2 sessions per node, each route server has 7

Less administration/configuration needed for peering

Private peering possible

Route Server reduces load on clients

Maximum CPU usage on route server

Aged routes on the clients

With route server

BGP

Convergence time

Problem

Introduction to route servers

Enterprise

Content Provider

Enterprise

Enterprise

EnterpriseContent Provider

Enterprise

Route server

Routeserver

Page 6: BGP A study into the BGP protocol as well as BGP ... · One route server Simulate link-flap Many peers ... ExaBGP daemons Testbed About our company info ONE route server ROUTE SERVER

6

Problem summary

Route servers are doing the heavy lifting and pushing BGP capabilities

As a result convergence times are increasing

The exact cause of this behaviour within BGP is unidentified

Page 7: BGP A study into the BGP protocol as well as BGP ... · One route server Simulate link-flap Many peers ... ExaBGP daemons Testbed About our company info ONE route server ROUTE SERVER

Research question

Insert content in this area7

What improvements can be made to the Border Gateway Protocol (BGP) or

its implementations to resolve current CPU bottlenecks when processing

updates?

Why are current BGP implementations (inherently) single-threaded?

What past work has been done to solve this specific issue?

What optimizations can be done to resolve this issue?

Page 8: BGP A study into the BGP protocol as well as BGP ... · One route server Simulate link-flap Many peers ... ExaBGP daemons Testbed About our company info ONE route server ROUTE SERVER

General BGP architecture

Insert content in this area8

Page 9: BGP A study into the BGP protocol as well as BGP ... · One route server Simulate link-flap Many peers ... ExaBGP daemons Testbed About our company info ONE route server ROUTE SERVER

BGP specification (phase 1)

Insert content in this area9

IRoute server

Peer 1

Peer 2

Peer n

Peer 1

Peer 2

Peer n

Adj-RIB-In P1

Adj-RIB-In P2

Adj-RIB-In Pn

Loc-RIB

Adj-RIB-Out P1

Adj-RIB-Out P2

Adj-RIB-Out Pn

IN-POLICY

OUT-POLICY

UPDATE

Best Path Calc.

Page 10: BGP A study into the BGP protocol as well as BGP ... · One route server Simulate link-flap Many peers ... ExaBGP daemons Testbed About our company info ONE route server ROUTE SERVER

Insert content in this area10

BGP specification (phase 2)Route server

Peer 1

Peer 2

Peer n

Peer 1

Peer 2

Peer n

Adj-RIB-In P1

Adj-RIB-In P2

Adj-RIB-In Pn

Loc-RIB

Adj-RIB-Out P1

Adj-RIB-Out P2

Adj-RIB-Out Pn

IN-POLICY

OUT-POLICYBest

Path Calc.

Page 11: BGP A study into the BGP protocol as well as BGP ... · One route server Simulate link-flap Many peers ... ExaBGP daemons Testbed About our company info ONE route server ROUTE SERVER

11

BGP specification (phase 3)Route server

Peer 1

Peer 2

Peer n

Peer 1

Peer 2

Peer n

Adj-RIB-In P1

Adj-RIB-In P2

Adj-RIB-In Pn

Loc-RIB

Adj-RIB-Out P1

Adj-RIB-Out P2

Adj-RIB-Out Pn

IN-POLICY

OUT-POLICYBest

Path Calc.

Page 12: BGP A study into the BGP protocol as well as BGP ... · One route server Simulate link-flap Many peers ... ExaBGP daemons Testbed About our company info ONE route server ROUTE SERVER

Three peers

One route server

Simulate link-flap

Many peers

One route server

Simulate link-flap

Many peers

One route server

Overlapping prefixes

Simulate link-flap

Testing scenarios

About our company info

THREE to ONE

SCENARIO 1

MANY to ONE

SCENARIO 2

REAL WORLD

SCENARIO 3

12

Page 13: BGP A study into the BGP protocol as well as BGP ... · One route server Simulate link-flap Many peers ... ExaBGP daemons Testbed About our company info ONE route server ROUTE SERVER

Peer 1

1.0.0.0/24

1.0.1.0/24

1.0.2.0/24

Peer 2

1.0.0.0/24

1.0.1.0/24

1.0.2.0/24

Peer n

1.0.0.0/24

1.0.1.0/24

1.0.2.0/24

Peer 1

1.0.0.0/24

1.0.1.0/24

1.0.2.0/24

Peer 2

1.0.3.0/24

1.0.4.0/24

1.0.5.0/24

Peer n

1.0.6.0/24

1.0.7.0/24

1.0.8.0/24

Peer 1

1.0.0.0/20

1.0.16.0/20

1.0.32.0/20

Peer 2

1.0.4.0/23

1.0.6.0/23

1.0.8.0/23

Peer n

1.0.5.0/24

1.0.7.0/24

1.0.8.0/24

Testing scenarios

About our company info

All peers SAME prefix

SAME

All peers UNIQUE prefix

UNIQUE

REAL WORLD

REAL-WORLD

13

Page 14: BGP A study into the BGP protocol as well as BGP ... · One route server Simulate link-flap Many peers ... ExaBGP daemons Testbed About our company info ONE route server ROUTE SERVER

Intel(R) Xeon(R) CPU E3-1220L V2 @ 2.30GHz (4 cores)

7.7GB RAM

BIRD BGP daemon

Intel(R) Xeon(R) CPU L3426 @ 1.87GHz (8 cores)

7.7GB RAM

Docker used for containers

ExaBGP daemons

Testbed

About our company info

ONE route server

ROUTE SERVER

EIGHT servers for peers

PEER SERVERS

800 peers max

PEERS

14

Page 15: BGP A study into the BGP protocol as well as BGP ... · One route server Simulate link-flap Many peers ... ExaBGP daemons Testbed About our company info ONE route server ROUTE SERVER

Either

Got END-OF-RIB for last peer

Stops sending UPDATES

Simulate flapping link

Bring link to RS down

CPU Utilization

Memory Utilization

Bandwidth

Definitions

About our company info

What defines CONVERGED state

CONVERGENCE

All peers UNIQUE prefix

LINK FLAP

What was MEASURED

METRICS

15

Page 16: BGP A study into the BGP protocol as well as BGP ... · One route server Simulate link-flap Many peers ... ExaBGP daemons Testbed About our company info ONE route server ROUTE SERVER

Observations

Insert content in this area16

C Convergence time

Convergence time vs number of peers

Convergence times

RESULTS

Lower numbers show lower convergence times

Higher numbers show increasingly higher times

10,000 prefixes with 800 peers significantly

higher

0

100

200

300

400

500

600

3 10 100 200 300 400 500 600 700 800

Tim

e in

sec

on

ds

Number of peers

Convergence time

100 prefixes per peer 1,000 prefixes per peer 10,000 prefixes per peer

Page 17: BGP A study into the BGP protocol as well as BGP ... · One route server Simulate link-flap Many peers ... ExaBGP daemons Testbed About our company info ONE route server ROUTE SERVER

Observations

Insert content in this area17

ETurning off export of routes

Phase 3

NO EXPORT

0

50

100

150

200

250

300

350

400

450

500

Tim

e in

sec

on

ds

Export on/off

Convergence time

Export on

Export off

Sending UPDATES disabled

“export none”

No significant difference

Phase 3 (sending UPDATES) can not be the

issue

Unable to conclusively rule out remaining

phases

Page 18: BGP A study into the BGP protocol as well as BGP ... · One route server Simulate link-flap Many peers ... ExaBGP daemons Testbed About our company info ONE route server ROUTE SERVER

Snapshot of Adj-RIB-In

Sorted on prefix

Calculate hash on peer side

With OPEN message send hash

RS compares hash

If hash is the same no need for full UPDATE

Load balance route servers

Single endpoint for customers

iBGP for internal convergence

eBGP for peering

Solutions

About our company info

PROTOCOL improvements

PROTOCOL

IMPLEMENTATION improvements

IMPLEMENTATION

18

Page 19: BGP A study into the BGP protocol as well as BGP ... · One route server Simulate link-flap Many peers ... ExaBGP daemons Testbed About our company info ONE route server ROUTE SERVER

Protocol solution

Insert content in this area19

P Protocol modifications

Create prefix based RIB-In

PREFIX BASED

Route server

Peer 1

Peer 2

Peer n

Peer 1

Peer 2

Peer n

Peer

Adj-RIB-In P1

Peer

Adj-RIB-In P2

Peer

Adj-RIB-In Pn

Loc-RIB

Adj-RIB-Out P1

Adj-RIB-Out P2

Adj-RIB-Out Pn

IN-POLICY

OUT-POLICY

Best Path Calc.

Prefix

Adj-RIB-In

Prefix

Adj-RIB-In

Prefix

Adj-RIB-In Pn

Create table per prefix

Add all paths to that prefix

When starting Phase 2 calculation only lock

that specific RIB

Page 20: BGP A study into the BGP protocol as well as BGP ... · One route server Simulate link-flap Many peers ... ExaBGP daemons Testbed About our company info ONE route server ROUTE SERVER

Protocol solution

Insert content in this area20

P Protocol modifications

Compare hash before full UPDATE

HASHING

Calculate hash of RIB on peer-side

After link-flap send hash in OPEN message

RS compares hashes, if match, no need for full

UPDATE

Calculate hash of RIB-Out

Receive OPEN message

End of Phase 3Peer x

Send OPEN message to Route

Server(Incl hash)

Compare hash

Match?

Send NOTIFICATION(request RIB)

No

Send NOTIFICATION(not request RIB)

Yes

Peer x Route Server

Page 21: BGP A study into the BGP protocol as well as BGP ... · One route server Simulate link-flap Many peers ... ExaBGP daemons Testbed About our company info ONE route server ROUTE SERVER

Implementation solution

Insert content in this area21

L Load balancing

Customers do peering with load-balancer

eBGP

BEFORE LB

Content Provider

Enterprise

EnterpriseContent Provider

Enterprise

Load balancer

Customers peer through load balancer

Peer with route server behind load balancer

Page 22: BGP A study into the BGP protocol as well as BGP ... · One route server Simulate link-flap Many peers ... ExaBGP daemons Testbed About our company info ONE route server ROUTE SERVER

Implementation solution

Insert content in this area22

L Load balancing

Load-balancer balances between route servers IX

Load balancer

Route server

Route server

Route server

Route server

Route server

iBGP

eBGP

iBGP full mesh

eBGP to load-balancer

iBGP

BEHIND LB

Page 23: BGP A study into the BGP protocol as well as BGP ... · One route server Simulate link-flap Many peers ... ExaBGP daemons Testbed About our company info ONE route server ROUTE SERVER

Narrow down the problem as much as possible

Good chances phase 1 is also not the issue

Set up a proof of concept of the proposed hashing mechanism

1Go through (open-source) code

Put timestamps, find delaying pieces of code

Narrow down bottleneck

Set up a proof of concept with load balancing

Measure convergence time gain

Find any caveats not identified yet

2

1

2

Future work

Insert content in this area

Rule out phase 1 Benchmarking of code

PoC of hashing mechanism PoC of load balancing

23

Page 24: BGP A study into the BGP protocol as well as BGP ... · One route server Simulate link-flap Many peers ... ExaBGP daemons Testbed About our company info ONE route server ROUTE SERVER

THANK YOU Any further questions?

Page 25: BGP A study into the BGP protocol as well as BGP ... · One route server Simulate link-flap Many peers ... ExaBGP daemons Testbed About our company info ONE route server ROUTE SERVER

THANK YOU Any further questions?

Let’s have a beer