0% found this document useful (0 votes)
108 views26 pages

135-RIPE71 GoBGP

Go BGP application

Uploaded by

hotsync101
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
108 views26 pages

135-RIPE71 GoBGP

Go BGP application

Uploaded by

hotsync101
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 26

GoBGP

•  Open Source BGP implementation


•  https://github.com/osrg/gobgp

•  Written in Go

•  Main Target Applications


1.  High performance Route Server for IX
2.  Integration with data analysis systems
3. BGPd for white box switches

Copyright©2015 NTT Corp. All Rights Reserved. 1


Motivation

Why another BGP implmentation?

SDN Era has begun

We need SDN-Native BGP implementation !

Copyright©2015 NTT Corp. All Rights Reserved. 2


GoBGP Overview

What SDN-Native means

1.  High Performance


•  Existing OSS BGPd are mainly single-
threaded
•  GoBGP can exploit multicore
•  Aimed to be run on modern/commodity
hardwares

Copyright©2015 NTT Corp. All Rights Reserved. 3


GoBGP Overview

What SDN-Native means

1.  High Performance


2.  API-first Architecture
•  Existing BGPd are mainly CLI-first
•  Automation/Integration using
“expect” is painful…
•  GoBGP uses gRPC
•  10 languages binding
•  Integration with your software is smooth
Copyright©2015 NTT Corp. All Rights Reserved. 4
GoBGP Overview

Copyright©2015 NTT Corp. All Rights Reserved. 5


GoBGP Overview

What SDN-Native means

1.  High Performance


2.  API-first Architecture
3.  Vendor-Neutral Configuration Model
•  Existing BGPd configuration varies
•  GoBGP uses OpenConfig
•  YANG model for BGP
•  draft-ietf-idr-bgp-model-00
•  Cisco’s support just announced
Copyright©2015 NTT Corp. All Rights Reserved. 6
GoBGP Overview

What SDN-Native means

1.  High Performance


•  Go
2.  API-first Architecture
•  gRPC
3.  Vendor-Neutral Configuration Model
•  OpenConfig

Copyright©2015 NTT Corp. All Rights Reserved. 7


GoBGP Basics

gobgp (CLI) Your Software

gRP
C
gobgpd (daemon)

•  Comes with two binary


•  gobgpd : bgp daemon
•  gobgp : cli tool (uses gRPC
underneath)
Copyright©2015 NTT Corp. All Rights Reserved. 8
GoBGP Basics – show neighbors

Copyright©2015 NTT Corp. All Rights Reserved. 9


GoBGP Basics – show neighbor

Copyright©2015 NTT Corp. All Rights Reserved. 10


GoBGP Basics – show global rib

Copyright©2015 NTT Corp. All Rights Reserved. 11


GoBGP Basics – monitor new
best

Copyright©2015 NTT Corp. All Rights Reserved. 12


GoBGP Basics - json option

Copyright©2015 NTT Corp. All Rights Reserved. 13


GoBGP Basics – use from python

•  This snippet results in…


Copyright©2015 NTT Corp. All Rights Reserved. 14
GoBGP Basics – use from python
•  This! No more “expect”

Copyright©2015 NTT Corp. All Rights Reserved. 15


Main Target Application

1. High performance Router Server for IX

2. Integration with data analysis systems

3. BGPd for whitebox switches

Copyright©2015 NTT Corp. All Rights Reserved. 16


Route Server for IX
GoBGP as a route server
•  supports multiple RIBs
•  flexible policy enforcement points

Adj-RIB-In Adj-RIB-Out
A RIB for A A
for A for A

Adj-RIB-In Adj-RIB-Out
B RIB for B B
for B for B

Adj-RIB-In Adj-RIB-Out
C RIB for C C
for C for C

: In Policy : Import Policy : Export Policy


Copyright©2015 NTT Corp. All Rights Reserved. 17
Route Server for IX
Supported Policy Condition/Action
•  Condition
•  Prefix, Source neighbor
•  AS Path (contents, length)
•  Community, Extended Community
•  RPKI validation result
•  Action
•  Permit/Deny
•  Add/Replace/Remove (extended) community, med,
aspath
•  Arithmetic operation of med

Copyright©2015 NTT Corp. All Rights Reserved. 18


Main Target Application

1. High performance Router Server for IX

2. Integration with data analysis systems

3. BGPd for whitebox switches

Copyright©2015 NTT Corp. All Rights Reserved. 19


Integration with data analysis systems
GoBGP as a BGP sub-system for data
analysis
e.g) BGPmon(Colorado State Univ.), FastNetMon

BGP
B
Peering
GoBGP
gRPC
λ
stream
processing BigData
Analysis
C

Copyright©2015 NTT Corp. All Rights Reserved. 20


Main Target Application

1. High performance Router Server for IX

2. Integration with data analysis systems

3. BGPd for whitebox switches

Copyright©2015 NTT Corp. All Rights Reserved. 21


BGPd for whitebox switches
•  BIG wave of open-networking
•  Network commoditization
•  Expansion of the use of whitebox
switches

•  GoBGP can be run on top of whitebox


switches
•  Ported on Cumulus and Open Network
Linux

Copyright©2015 NTT Corp. All Rights Reserved. 22


BGPd for whitebox switches
•  FIB modification via zapi and netlink
•  zapi : api for zebra and quagga routing daemons
•  IPv4/IPv6 unicast FIB modification is done via zapi
•  Other FIB modification is done via netlink
•  e.g) zapi doesn’t support mac fdb modification

ospfd gobgpd

zapi Linux
zebra
User
Space
netlink
Linux
Linux Networking Kernel
Subsystem Space

Copyright©2015 NTT Corp. All Rights Reserved. 23


BGPd for whitebox switches
•  Usecase: EVPN+VXLAN
•  mac address exchange occers in BGP
•  Interoperability with Cisco/Juniper! @Interop Tokyo 2015

Copyright©2015 NTT Corp. All Rights Reserved. 24


Other features
•  Full route MRT injection less than 1min
•  For testing your new gear
•  Route monitoring (MRT dump)
•  BMP is also on the roadmap
•  Route Reflector
•  Addpath is also on the roadmap
•  RPKI validation
•  Flowspec
•  VPN support (L2VPN(EVPN), L3VPN, VRF, RTC)

Copyright©2015 NTT Corp. All Rights Reserved. 25


Summary

Please try it out !

Your comment, feedback, patch

and star on github is very welcome ;)

Copyright©2015 NTT Corp. All Rights Reserved. 26

You might also like