BGP A study into the BGP protocol as well as BGP implementations to - - PowerPoint PPT Presentation

bgp
SMART_READER_LITE
LIVE PREVIEW

BGP A study into the BGP protocol as well as BGP implementations to - - PowerPoint PPT Presentation

BGP A study into the BGP protocol as well as BGP implementations to improve Route Server scalability. Parallelization Jenda Brands Patrick de Niet Insert content in this area 2 The internet is growing B Active BGP entries in FIB From


slide-1
SLIDE 1

BGP Parallelization

A study into the BGP protocol as well as BGP implementations to improve Route Server scalability.

Jenda Brands Patrick de Niet

slide-2
SLIDE 2

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

slide-3
SLIDE 3

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 Enterprise Content Provider Enterprise

  • Internet Exchanges reduce peering costs and administration

Costs of peering

PEERING

slide-4
SLIDE 4

Introduction to route servers

Insert content in this area 4

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 Enterprise Content Provider Enterprise

slide-5
SLIDE 5

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 Enterprise Content Provider Enterprise Route server Route server

slide-6
SLIDE 6

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

slide-7
SLIDE 7

Research question

Insert content in this area 7

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?
slide-8
SLIDE 8

General BGP architecture

Insert content in this area 8

slide-9
SLIDE 9

BGP specification (phase 1)

Insert content in this area 9

I

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- POLICY UPDATE Best Path Calc.

slide-10
SLIDE 10

Insert content in this area 10

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- POLICY Best Path Calc.

slide-11
SLIDE 11

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- POLICY Best Path Calc.

slide-12
SLIDE 12
  • 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

slide-13
SLIDE 13
  • 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

slide-14
SLIDE 14
  • 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

slide-15
SLIDE 15
  • 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

slide-16
SLIDE 16

Observations

Insert content in this area 16

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

100 200 300 400 500 600 3 10 100 200 300 400 500 600 700 800

Time in seconds Number of peers

Convergence time

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

slide-17
SLIDE 17

Observations

Insert content in this area 17

E

Turning off export of routes

Phase 3

NO EXPORT

50 100 150 200 250 300 350 400 450 500

Time in seconds 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

slide-18
SLIDE 18
  • 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

slide-19
SLIDE 19

Protocol solution

Insert content in this area 19

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

slide-20
SLIDE 20

Protocol solution

Insert content in this area 20

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 3 Peer 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

slide-21
SLIDE 21

Implementation solution

Insert content in this area 21

L

Load balancing

Customers do peering with load-balancer

eBGP

BEFORE LB Content Provider Enterprise Enterprise Content Provider Enterprise Load balancer

  • Customers peer through load balancer
  • Peer with route server behind load balancer
slide-22
SLIDE 22

Implementation solution

Insert content in this area 22

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

slide-23
SLIDE 23

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

1

Go 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

slide-24
SLIDE 24

THANK YOU

Any further questions?

slide-25
SLIDE 25

THANK YOU

Any further questions? Let’s have a beer