What would you do if you had access to all the routing data from the Internet? In this talk, we will introduce a new framework for collecting, storing, and parsing routing data in a way that can be made available to network engineers and application developers through a simple and clean REST API. This API presents a new opportunity for network engineers to understand, visualize, and analyze their network in a way consistent with today’s software engineering practices.
1. Cisco Live 2015 San Diego
BGP Enabled Application
Development
Serpil Bayraktar
serpil@cisco.com
June 2015
2. • BGP is used in almost every IP network to exchange reachability
information
• The data carried by BGP is a collection of IP addresses and their
attributes
• These attributes carry an underappreciated amount of intelligence
about the network
• Developers can use this data to create a variety of applications to
monitor and manage the network
• Routing analysis is a hard task (lots of PhD thesis)
BGP Enabled Application Development
3. • A framework to observe and learn network behavior
• Contains real time and historical data
• Has for main components: Collect store analyze present
• Expose all BGP data
• BGP IPv4, IPv6, VPNv4, VPNv6 … and IGP (topology)
• IS-IS and OSPF topologies utilizing BGP Link-State
• Support
• Scripter – can use curl and bash to interact with the data, super simple
• Developer – full suite of API’s
Cisco Internet Data Analytics
4. Applications
Where Does It Fit in the World of SDN?
Software
Defined
Network
Big Data
Analyze Data
Data
Collection
Service
Assurance
Initial and ongoing service monitoring
Service
Orchestration
Analytics
Monitoring and Decision Making
Push policies back to the network
5. Culmination of a group of key technologies:
• BGP Monitoring Protocol (BMP)
• BGP-LS (Topology View)
• High Performance Collector (OpenBMPd)
• Database (SQL)
• Modern APIs (REST/json) and App Development Methods
What took us so long?
6. • BGP Monitoring Protocol (BMP)
encapsulates BGP messages from one
or more BGP peers into a single TCP
stream to one or more collectors
• Efficient, [near] real-time, low memory/CPU
on router, little to no service impact with
peering
• Simplified configuration (one-time setup)
with granular controls per peer
• All address families supported
• https://tools.ietf.org/html/draft-ietf-grow-bmp-08
Key Technology: BMP
TCP BMP BGPIP
BMP Router
XE/XR/JunOS
BGP Peers
BMP Collector
Single stream
eBGP/iBGP
7. How Does It Work?
Network
BMP Collector
Database
BMP Enabled
Edge Router
Network Edge Network Edge
Network Edge
BGP Peer1
BGP Peer2
BGP Peer3
BGP Peer3
BGP Peer3
BGP Peerx
DatabaseDatabase
Rest API/Plugin
Network Data Management and Analysis Applications
UI
BMP
9. Edge Router
BMP Collector
BMP
eBGP
All Peers
Pre-RIB and Post RIB - All
Prefixes regardless of edge
router ingress/egress route
policies
Pre-Rib
Ingress filters do not
effect Pre-RIB via
BMP. The router
could filter 100% of
the routes and BMP
would still get a copy
of them all.
BGP with BMP
Peer1 Peer2 Peer3
11. • OpenBMP is an open-source collector that
implements BMP to store and maintain
multiple address family topologies in both
real-time and point-in-time (historical)
• BGP data is decoded and stored in a
database for simplified consumption to
universally enable granular analytics on BGP
data
• Access to the database is via standard
ODBC/MySQL drivers or via the API
• RAW BGP UPDATES are binary logged per
peer to support replay of BGP streams (if
enabled)
• www.openbmp.org and github.com/openbmp
Collector: OpenBMP
OpenBMP
Collector
MySQ
L
BMP Router
XE/XR/JunOS
Peers
RA OpenBMP
API
Apps
(Analytics
)
Optionally
to DB
Data
notifications
12. Hundreds of BMP routers, thousands of
peers, 100 million plus prefixes with <= 5
second response times for most queries
• RA OpenBMP API
• Aggregates multiple databases
• Implements parallel queries to support multiple
cores/vCPU’s
• Is aware of the shard/partitioning plan being used
• MySQL servers do not have to be equal, they
only need to scale for their partition/sharding plan
• OpenBMP BMP collectors support address family
(afi/safi) & optionally per-peer sharding as well as
replication/mirroring
• BMP routers can send to one or more collectors,
but only one is needed
Scale
RA OpenBMP
API
Peers Peers
OpenBMP
Collectors
BMP Routers
MySQL
Servers
All familiesIPv6, etc.IPv
4
13. • Endless applications for operations,
design/engineering, research, SDN
• Applications implement either BMP
REST/Json API or ODL/restconf YANG
models
• RA OpenBMP API server provides an
abstract view of data that is
shard/partitioned in distributed databases
• ODL RA BMP plugin interfaces with the RA
OpenBMP API to provide YANG based
restconf interface and notifications
Apps
RA OpenBMP
API
Apps
(Analytics)
NB/SB
ODL Apps
MySQL (n)
ODL/Restconf
MySQL (2)MySQL (1)
Direct
Apps
NETWORK
Operations,
Design/Engineering/Capac
ity, Research, Traffic
Shifting, Visualization, etc.
14. • RA OpenBMP User Interface is a Web
based GUI interface that implements the
RA OpenBMP API
Dashboards (includes geo-location/maps)
• Global router view with peer browser
• Peer view with rib and AS browser
• Link state view with on-demand topology and SPF
• Looking glass
Analysis/Reporting
• Peers
• ASNs
• Prefixes
GUI/User Interface
RA OpenBMP
API
Web/User Interface (App)
MySQL (n)
ODL/Restconf
MySQL (2)MySQL (1)
Direct
Apps
NETWORK
Operations,
Design/Engineering/Capac
ity, Research, Traffic
Shifting, Visualization, etc.
15. Using data provided by RA API, you can:
• Measure network performance
• Asses security vulnerabilities
• Analyze capacity
• Monitor stability and health of the network
• Predictive analysis of network behavior
Applications
Editor's Notes
RA is a framework to observe and learn network behavior.
It has both real time and historical analysis components and can be used for a wide range of use cases
In order to do the analysis, we collect BGP data which is essentially network reachability information with a rich set of network intelligence embedded as path attributes.
We also collect network topology or IGP data using BGP-LS.
We have a very large set of data with 1000s of BGP peers and 100s of million of prefixes
With this project we aim to support botth the scripter who is the traditional netop as well as the developer or devops throuh a set of APIS
When we talk about data what we have is 1000s of poeer and
It is a framework to:
collect, store and analyze all BGP data and make it available to scripters and developers
An efficient and scalable system:
makes data consumable by application developers by using modern APIs
Data Collection: Big Data
Analytics: Sift through the sand
Applications: Decision Making
Service Orchestration: Push decisions and policies back to the network. YANG model driven with generic REST API
Service Assurance: Check initial service setup. Check ongoing service
If it is so great, why hasn’t it been deployed yet?
BMP router is existing router, process runs on existing router.
This is different than BGP peering… Pre-RIB, peer stat reports, open messages for the peer, peer down notifications,
OPEN
LOW OVERHEAD/IMPACT
CAPACITY
STABILITY
HEALTH
Supports standard – Yang, etc..
Slide goes over how BGP peering is not enough since the feed via a BGP peer is scoped to the router advertising it.
Highlights how BMP provides an unbiased view of peers, even if the router that terminates the peers filters the prefixes.
OpenBMP is a software program that runs on Linux x86/64bit platforms. Can run within docker/containers.
It does more than just store a BGP message in the DB.
Read only mysql servers can dramatically improve the performance of each partition/shard
SSD or SSD/high performing SAN can dramatically improve the MySQL write and read times.
BGP/BMP has a high volume of transactions, has a high write requirement for initial peer dump/connection and high read/access requirement for reporting/ui/api