gobgp open source bgp implementation ... · gobgp overview what sdn-native means 1. high...
TRANSCRIPT
![Page 1: GoBGP Open Source BGP implementation ... · GoBGP Overview What SDN-Native means 1. High Performance 2. API-first Architecture • Existing BGPd are mainly CLI-first • Automation/Integration](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec98c66677e3c7a135931e3/html5/thumbnails/1.jpg)
1Copyright©2015 NTT Corp. All Rights Reserved.
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
![Page 2: GoBGP Open Source BGP implementation ... · GoBGP Overview What SDN-Native means 1. High Performance 2. API-first Architecture • Existing BGPd are mainly CLI-first • Automation/Integration](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec98c66677e3c7a135931e3/html5/thumbnails/2.jpg)
2Copyright©2015 NTT Corp. All Rights Reserved.
Motivation�
Why another BGP implmentation? SDN Era has begun We need SDN-Native BGP implementation !
![Page 3: GoBGP Open Source BGP implementation ... · GoBGP Overview What SDN-Native means 1. High Performance 2. API-first Architecture • Existing BGPd are mainly CLI-first • Automation/Integration](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec98c66677e3c7a135931e3/html5/thumbnails/3.jpg)
3Copyright©2015 NTT Corp. All Rights Reserved.
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
![Page 4: GoBGP Open Source BGP implementation ... · GoBGP Overview What SDN-Native means 1. High Performance 2. API-first Architecture • Existing BGPd are mainly CLI-first • Automation/Integration](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec98c66677e3c7a135931e3/html5/thumbnails/4.jpg)
4Copyright©2015 NTT Corp. All Rights Reserved.
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
![Page 5: GoBGP Open Source BGP implementation ... · GoBGP Overview What SDN-Native means 1. High Performance 2. API-first Architecture • Existing BGPd are mainly CLI-first • Automation/Integration](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec98c66677e3c7a135931e3/html5/thumbnails/5.jpg)
5Copyright©2015 NTT Corp. All Rights Reserved.
GoBGP Overview �
![Page 6: GoBGP Open Source BGP implementation ... · GoBGP Overview What SDN-Native means 1. High Performance 2. API-first Architecture • Existing BGPd are mainly CLI-first • Automation/Integration](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec98c66677e3c7a135931e3/html5/thumbnails/6.jpg)
6Copyright©2015 NTT Corp. All Rights Reserved.
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
![Page 7: GoBGP Open Source BGP implementation ... · GoBGP Overview What SDN-Native means 1. High Performance 2. API-first Architecture • Existing BGPd are mainly CLI-first • Automation/Integration](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec98c66677e3c7a135931e3/html5/thumbnails/7.jpg)
7Copyright©2015 NTT Corp. All Rights Reserved.
GoBGP Overview �
What SDN-Native means 1. High Performance
• Go 2. API-first Architecture
• gRPC 3. Vendor-Neutral Configuration Model
• OpenConfig
![Page 8: GoBGP Open Source BGP implementation ... · GoBGP Overview What SDN-Native means 1. High Performance 2. API-first Architecture • Existing BGPd are mainly CLI-first • Automation/Integration](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec98c66677e3c7a135931e3/html5/thumbnails/8.jpg)
8Copyright©2015 NTT Corp. All Rights Reserved.
GoBGP Basics �
gobgpd (daemon)�
gobgp (CLI) � Your Software �
gRPC
• Comes with two binary • gobgpd : bgp daemon • gobgp : cli tool (uses gRPC
underneath)
![Page 9: GoBGP Open Source BGP implementation ... · GoBGP Overview What SDN-Native means 1. High Performance 2. API-first Architecture • Existing BGPd are mainly CLI-first • Automation/Integration](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec98c66677e3c7a135931e3/html5/thumbnails/9.jpg)
9Copyright©2015 NTT Corp. All Rights Reserved.
GoBGP Basics – show neighbors �
![Page 10: GoBGP Open Source BGP implementation ... · GoBGP Overview What SDN-Native means 1. High Performance 2. API-first Architecture • Existing BGPd are mainly CLI-first • Automation/Integration](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec98c66677e3c7a135931e3/html5/thumbnails/10.jpg)
10Copyright©2015 NTT Corp. All Rights Reserved.
GoBGP Basics – show neighbor �
![Page 11: GoBGP Open Source BGP implementation ... · GoBGP Overview What SDN-Native means 1. High Performance 2. API-first Architecture • Existing BGPd are mainly CLI-first • Automation/Integration](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec98c66677e3c7a135931e3/html5/thumbnails/11.jpg)
11Copyright©2015 NTT Corp. All Rights Reserved.
GoBGP Basics – show global rib �
![Page 12: GoBGP Open Source BGP implementation ... · GoBGP Overview What SDN-Native means 1. High Performance 2. API-first Architecture • Existing BGPd are mainly CLI-first • Automation/Integration](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec98c66677e3c7a135931e3/html5/thumbnails/12.jpg)
12Copyright©2015 NTT Corp. All Rights Reserved.
GoBGP Basics – monitor new best �
![Page 13: GoBGP Open Source BGP implementation ... · GoBGP Overview What SDN-Native means 1. High Performance 2. API-first Architecture • Existing BGPd are mainly CLI-first • Automation/Integration](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec98c66677e3c7a135931e3/html5/thumbnails/13.jpg)
13Copyright©2015 NTT Corp. All Rights Reserved.
GoBGP Basics - json option �
![Page 14: GoBGP Open Source BGP implementation ... · GoBGP Overview What SDN-Native means 1. High Performance 2. API-first Architecture • Existing BGPd are mainly CLI-first • Automation/Integration](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec98c66677e3c7a135931e3/html5/thumbnails/14.jpg)
14Copyright©2015 NTT Corp. All Rights Reserved.
GoBGP Basics – use from python�
• This snippet results in…
![Page 15: GoBGP Open Source BGP implementation ... · GoBGP Overview What SDN-Native means 1. High Performance 2. API-first Architecture • Existing BGPd are mainly CLI-first • Automation/Integration](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec98c66677e3c7a135931e3/html5/thumbnails/15.jpg)
15Copyright©2015 NTT Corp. All Rights Reserved.
GoBGP Basics – use from python�
• This! No more “expect”
![Page 16: GoBGP Open Source BGP implementation ... · GoBGP Overview What SDN-Native means 1. High Performance 2. API-first Architecture • Existing BGPd are mainly CLI-first • Automation/Integration](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec98c66677e3c7a135931e3/html5/thumbnails/16.jpg)
16Copyright©2015 NTT Corp. All Rights Reserved.
Main Target Application�
1. High performance Router Server for IX 2. Integration with data analysis systems 3. BGPd for whitebox switches
![Page 17: GoBGP Open Source BGP implementation ... · GoBGP Overview What SDN-Native means 1. High Performance 2. API-first Architecture • Existing BGPd are mainly CLI-first • Automation/Integration](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec98c66677e3c7a135931e3/html5/thumbnails/17.jpg)
17Copyright©2015 NTT Corp. All Rights Reserved.
Route Server for IX�GoBGP as a route server • supports multiple RIBs • flexible policy enforcement points
A � RIB for A �
RIB for B �
RIB for C �
B �
C �
Adj-RIB-In for A �
Adj-RIB-In for B �
Adj-RIB-In for C �
Adj-RIB-Out for A �
Adj-RIB-Out for B �
Adj-RIB-Out for C �
A �
B �
C �
: In Policy : Import Policy : Export Policy
![Page 18: GoBGP Open Source BGP implementation ... · GoBGP Overview What SDN-Native means 1. High Performance 2. API-first Architecture • Existing BGPd are mainly CLI-first • Automation/Integration](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec98c66677e3c7a135931e3/html5/thumbnails/18.jpg)
18Copyright©2015 NTT Corp. All Rights Reserved.
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
Route Server for IX�
![Page 19: GoBGP Open Source BGP implementation ... · GoBGP Overview What SDN-Native means 1. High Performance 2. API-first Architecture • Existing BGPd are mainly CLI-first • Automation/Integration](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec98c66677e3c7a135931e3/html5/thumbnails/19.jpg)
19Copyright©2015 NTT Corp. All Rights Reserved.
Main Target Application�
1. High performance Router Server for IX 2. Integration with data analysis systems 3. BGPd for whitebox switches
![Page 20: GoBGP Open Source BGP implementation ... · GoBGP Overview What SDN-Native means 1. High Performance 2. API-first Architecture • Existing BGPd are mainly CLI-first • Automation/Integration](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec98c66677e3c7a135931e3/html5/thumbnails/20.jpg)
20Copyright©2015 NTT Corp. All Rights Reserved.
Integration with data analysis systems �GoBGP as a BGP sub-system for data analysis e.g) BGPmon(Colorado State Univ.), FastNetMon
A �
B �
C �
GoBGP �BGP Peering gRPC λ �
stream processing BigData
Analysis
![Page 21: GoBGP Open Source BGP implementation ... · GoBGP Overview What SDN-Native means 1. High Performance 2. API-first Architecture • Existing BGPd are mainly CLI-first • Automation/Integration](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec98c66677e3c7a135931e3/html5/thumbnails/21.jpg)
21Copyright©2015 NTT Corp. All Rights Reserved.
Main Target Application�
1. High performance Router Server for IX 2. Integration with data analysis systems 3. BGPd for whitebox switches
![Page 22: GoBGP Open Source BGP implementation ... · GoBGP Overview What SDN-Native means 1. High Performance 2. API-first Architecture • Existing BGPd are mainly CLI-first • Automation/Integration](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec98c66677e3c7a135931e3/html5/thumbnails/22.jpg)
22Copyright©2015 NTT Corp. All Rights Reserved.
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
![Page 23: GoBGP Open Source BGP implementation ... · GoBGP Overview What SDN-Native means 1. High Performance 2. API-first Architecture • Existing BGPd are mainly CLI-first • Automation/Integration](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec98c66677e3c7a135931e3/html5/thumbnails/23.jpg)
23Copyright©2015 NTT Corp. All Rights Reserved.
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
Linux Networking Subsystem �
ospfd�
zebra �
Linux Kernel Space
Linux User Space
netlink
gobgpd �
zapi
![Page 24: GoBGP Open Source BGP implementation ... · GoBGP Overview What SDN-Native means 1. High Performance 2. API-first Architecture • Existing BGPd are mainly CLI-first • Automation/Integration](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec98c66677e3c7a135931e3/html5/thumbnails/24.jpg)
24Copyright©2015 NTT Corp. All Rights Reserved.
BGPd for whitebox switches �• Usecase: EVPN+VXLAN
• mac address exchange occers in BGP • Interoperability with Cisco/Juniper! @Interop Tokyo 2015
![Page 25: GoBGP Open Source BGP implementation ... · GoBGP Overview What SDN-Native means 1. High Performance 2. API-first Architecture • Existing BGPd are mainly CLI-first • Automation/Integration](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec98c66677e3c7a135931e3/html5/thumbnails/25.jpg)
25Copyright©2015 NTT Corp. All Rights Reserved.
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)
![Page 26: GoBGP Open Source BGP implementation ... · GoBGP Overview What SDN-Native means 1. High Performance 2. API-first Architecture • Existing BGPd are mainly CLI-first • Automation/Integration](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec98c66677e3c7a135931e3/html5/thumbnails/26.jpg)
26Copyright©2015 NTT Corp. All Rights Reserved.
Summary �
Please try it out ! Your comment, feedback, patch and star on github is very welcome ;)