Professional Documents
Culture Documents
C#
DATA CENTERS
NETWORKS
SERVERS
ENERGY
SOFTWARE
SECURITY
Brain-Slug: a BGP-Only
SDN for Large-Scale
Data-Centers
Adel Abouchaev, Tim LaBerge,
Petr Lapukhov, Edet Nkposong
Presentation Outline
Problem Overview
Conclusions
Problem Overview
AS 64902
AS 64XXX
AS 64XXX
AS 64XXX
AS 64XXX
- Network virtualization or
segmentation, etc
traffic control
- Optimizing existing
protocols or inventing
new ones
aspects of network
behavior (low-level)
SDN Controller
Design
Network Setup
Controller
AS
64901
AS
64902
AS 64XXX
AS 64XXX
AS
65501
AS 64XXX
AS 64XXX
REST
API
BGP Speaker
Command
Center
Speaker
Thread
Decision
Thread
Network
Devices
BGP
Sessions
BGP Listener
Write
&
Notify
State
Sync Thread
Wakeup
&
Read
Shared
State
Database
Listener
Thread
Network
Graph
(bootstrap
information)
BGP Speaker/Listener
Inject Route Command:
Prefix + Next-Hop + Router-ID
BGP Speaker
BGP Listener
Receive Route Message:
Prefix + Router-ID
Inject
Prefix for R1
with one-hop
community
Expect
Prefix for R1
from R2
R1
R2
Prefix for R1
relayed
Prefix for R1
NOT relayed
R3
Inject
Prefix X/24
with Next-Hops:
N1, N2
Inject
Next-Hop
prefix N2 /32
Inject
Next-Hop
prefix N1/32
R2
R1
Next-hop prefix:
N1 /32
Next-hop prefix:
N2 /32
R3
S2
S1
R1
R2
R3
Handling Failure
Scenarios
Controller Intervention
needed when Primary fails
R2
Primary
R1
Backup
Backup
R3
R2
Primary
Primary
R4
R1
Backup
(ECMP)
Backup
(ECMP)
R3
Multiple Controllers
Run N+1 controllers in all active fashion
Any single controller may command the network
Inject routes with different MEDs according to priority
Controllers priority
Feature Roadmap
Multiple Topologies
Subset of edge prefixes mapped to a separate logical topology
API to create topologies/assign prefixes to topologies
API to overload links/devices per topology
Traffic Engineering
R4
100%
R3
R2
50%
50%
50%
R1
R4
50%
Congestion
alleviated
R3
R2
25%
This link
congested
75%
25%
75%
R1
Controller installs path with different ECMP
weights
66%
33%
Conclusions
Lessons learned
Clearly define use cases, dont look for silver bullets
Operational implications in front of everything else
BGP does not require new firmware or APIs
Some BGP extensions are nice to have
BGP code is pretty mature (for most vendors)
Easy to fail-back to regular routing
Controller code is very lightweight (<1000 LoC)
Solves our current problems and in future allows for much more
References
http://datatracker.ietf.org/doc/draft-lapukhov-bgp-routing-large-dc/
http://www.cs.princeton.edu/~jrex/papers/rcp-nsdi.pdf
http://code.google.com/p/exabgp/
http://datatracker.ietf.org/doc/draft-ietf-idr-link-bandwidth/
http://openreplica.org/
http://www.cs.cornell.edu/courses/cs7412/2011sp/paxos.pdf
http://www.retitlc.polito.it/mellia/corsi/05-06/Ottimizzazione/744.pdf
http://www.seas.upenn.edu/~guerin/Publications/split_hops-Dec19.pdf
2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or
trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because
Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee
the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
29