16
RAVEL: A DATABASE-DEFINED NETWORK

RAVEL: A DATABASE-DEFINED NETWORK · RAVEL: A DATABASE-DEFINED NETWORK ravel |ˈravəl| verb 1 (ravel something out) untangle or unravel something 2 confuse or complicate (a question

  • Upload
    others

  • View
    26

  • Download
    0

Embed Size (px)

Citation preview

Page 1: RAVEL: A DATABASE-DEFINED NETWORK · RAVEL: A DATABASE-DEFINED NETWORK ravel |ˈravəl| verb 1 (ravel something out) untangle or unravel something 2 confuse or complicate (a question

RAVEL: A DATABASE-DEFINED NETWORK

Page 2: RAVEL: A DATABASE-DEFINED NETWORK · RAVEL: A DATABASE-DEFINED NETWORK ravel |ˈravəl| verb 1 (ravel something out) untangle or unravel something 2 confuse or complicate (a question

RAVEL: A DATABASE-DEFINED NETWORK

ravel |ˈravəl|

verb 1 (ravel something out) untangle or unravel something

2 confuse or complicate (a question or situation).

Ravel, Maurice |rəˈvel|

(1875–1937), French composer; full name Maurice Joseph Ravel. His works, which are noted for their colorful orchestration, have a distinctive tone and make use of unresolved dissonances.

© New Oxford American Dictionary

Page 3: RAVEL: A DATABASE-DEFINED NETWORK · RAVEL: A DATABASE-DEFINED NETWORK ravel |ˈravəl| verb 1 (ravel something out) untangle or unravel something 2 confuse or complicate (a question

PROBLEM

For SDNs to be useful, abstraction is necessary

…but what's the right kind of abstraction?

Authors’ argument: existing controller solutions are too rigid

difficult to fundamentally upgrade, or run a network with vastly different abstractions

Page 4: RAVEL: A DATABASE-DEFINED NETWORK · RAVEL: A DATABASE-DEFINED NETWORK ravel |ˈravəl| verb 1 (ravel something out) untangle or unravel something 2 confuse or complicate (a question

PROPOSED SOLUTION

Turn controller into SQL database

“SDN control fundamentally revolves around data representation”

Base tables contain low-level representation of controller / switch state

When modified by applications, propagate changes via e.g. OpenFlow

Incoming events from switches cause base table changes, invoke triggers / rules

Higher-level representations formed by views

Page 5: RAVEL: A DATABASE-DEFINED NETWORK · RAVEL: A DATABASE-DEFINED NETWORK ravel |ˈravəl| verb 1 (ravel something out) untangle or unravel something 2 confuse or complicate (a question

tp(sid, nid)

rm(fid, sid, nid, vol)

cf(fid, sid, nid)

Topology Switch ID Next hop ID

Reachability Matrix Source DestinationFlow ID Volume

(bandwidth)

BASE TABLES

Configuration Flow ID Switch ID Next hop ID

Page 6: RAVEL: A DATABASE-DEFINED NETWORK · RAVEL: A DATABASE-DEFINED NETWORK ravel |ˈravəl| verb 1 (ravel something out) untangle or unravel something 2 confuse or complicate (a question

STRUCTURE

Network

Topology Reachability Configuration Base Tables

Load BalancingRouting

Firewall

ApplicationsHorizontal

Orchestration

(Console) Interface

POX

control even

ts

Page 7: RAVEL: A DATABASE-DEFINED NETWORK · RAVEL: A DATABASE-DEFINED NETWORK ravel |ˈravəl| verb 1 (ravel something out) untangle or unravel something 2 confuse or complicate (a question

HORIZONTAL ORCHESTRATION

Mediation protocol

Requires global (total) ordering of application priorities

e.g. Firewall > Routing > Load Balancing – user-defined

When an application wants to change data in base table, other applications are “asked” whether their invariants / constraints are violated

How does that happen?

Page 8: RAVEL: A DATABASE-DEFINED NETWORK · RAVEL: A DATABASE-DEFINED NETWORK ravel |ˈravəl| verb 1 (ravel something out) untangle or unravel something 2 confuse or complicate (a question
Page 9: RAVEL: A DATABASE-DEFINED NETWORK · RAVEL: A DATABASE-DEFINED NETWORK ravel |ˈravəl| verb 1 (ravel something out) untangle or unravel something 2 confuse or complicate (a question

HORIZONTAL ORCHESTRATION

Higher priority → checked later

When is it run?

Page 10: RAVEL: A DATABASE-DEFINED NETWORK · RAVEL: A DATABASE-DEFINED NETWORK ravel |ˈravəl| verb 1 (ravel something out) untangle or unravel something 2 confuse or complicate (a question

EVALUATION

Various topologies (fat tree, ISP) with various (seemingly realistic) amounts of network devices

Three types of experiments

Ravel overhead – cost of database operations and orchestration

Scalability (of orchestration)

View optimization

Page 11: RAVEL: A DATABASE-DEFINED NETWORK · RAVEL: A DATABASE-DEFINED NETWORK ravel |ˈravəl| verb 1 (ravel something out) untangle or unravel something 2 confuse or complicate (a question

EVALUATION

Page 12: RAVEL: A DATABASE-DEFINED NETWORK · RAVEL: A DATABASE-DEFINED NETWORK ravel |ˈravəl| verb 1 (ravel something out) untangle or unravel something 2 confuse or complicate (a question

EVALUATION

Page 13: RAVEL: A DATABASE-DEFINED NETWORK · RAVEL: A DATABASE-DEFINED NETWORK ravel |ˈravəl| verb 1 (ravel something out) untangle or unravel something 2 confuse or complicate (a question

EVALUATION

Page 14: RAVEL: A DATABASE-DEFINED NETWORK · RAVEL: A DATABASE-DEFINED NETWORK ravel |ˈravəl| verb 1 (ravel something out) untangle or unravel something 2 confuse or complicate (a question

SHORTCOMINGS

What about distributed controllers?

Fault tolerance?

Inconsistencies in paper (non-existent columns, …)

Page 15: RAVEL: A DATABASE-DEFINED NETWORK · RAVEL: A DATABASE-DEFINED NETWORK ravel |ˈravəl| verb 1 (ravel something out) untangle or unravel something 2 confuse or complicate (a question
Page 16: RAVEL: A DATABASE-DEFINED NETWORK · RAVEL: A DATABASE-DEFINED NETWORK ravel |ˈravəl| verb 1 (ravel something out) untangle or unravel something 2 confuse or complicate (a question

THANKS FOR LISTENING!