Introduction to Ryu SDN framework - GitHub...

14
© 2013 NTT Software Innovation Center Introduction to Ryu SDN framework FUJITA Tomonori NTT

Transcript of Introduction to Ryu SDN framework - GitHub...

Page 1: Introduction to Ryu SDN framework - GitHub Pagesosrg.github.io/ryu/slides/ONS2013-april-ryu-intro.pdf · Ryu SDN framework FUJITA Tomonori NTT ... •Ryu provides a bunch of components

© 2013 NTT Software Innovation Center

Introduction to Ryu SDN framework

FUJITA Tomonori NTT

Page 2: Introduction to Ryu SDN framework - GitHub Pagesosrg.github.io/ryu/slides/ONS2013-april-ryu-intro.pdf · Ryu SDN framework FUJITA Tomonori NTT ... •Ryu provides a bunch of components

2 © 2013 NTT Software Innovation Center

• Agile

• Framework for SDN application development instead of all-purpose big monolithic ‘controller’.

• Flexible

• Vendor-defined “Northbound” APIs are not enough to differentiate.

Philosophy

Page 3: Introduction to Ryu SDN framework - GitHub Pagesosrg.github.io/ryu/slides/ONS2013-april-ryu-intro.pdf · Ryu SDN framework FUJITA Tomonori NTT ... •Ryu provides a bunch of components

3 © 2013 NTT Software Innovation Center

• Your application consists of component(s)

• Ryu provides a bunch of components useful for SDN applications.

• You can modify the existing components and implement your new components.

• Combines the components to build your application.

Ryu: Component-based framework

Page 4: Introduction to Ryu SDN framework - GitHub Pagesosrg.github.io/ryu/slides/ONS2013-april-ryu-intro.pdf · Ryu SDN framework FUJITA Tomonori NTT ... •Ryu provides a bunch of components

4 © 2013 NTT Software Innovation Center

• Component is separation unit

• Provides interface for control and state and generates events.

• Communicates by message passing instead of directly referenced.

• Uses language-independent communication (for now uses python-specific messaging but soon move to such as JSON-RPC).

What’s ‘component’?

Page 5: Introduction to Ryu SDN framework - GitHub Pagesosrg.github.io/ryu/slides/ONS2013-april-ryu-intro.pdf · Ryu SDN framework FUJITA Tomonori NTT ... •Ryu provides a bunch of components

5 © 2013 NTT Software Innovation Center

• Use favorite language

• Your component can work together with the existing components with Ryu’s ‘standard’ messaging way.

• You can run the existing software (such as routing protocol daemons) as Ryu component with some modification.

• Components included in Ryu

• Implemented in Python.

• A component consists of python thread(s) or OS process(s).

Component implementation

Page 6: Introduction to Ryu SDN framework - GitHub Pagesosrg.github.io/ryu/slides/ONS2013-april-ryu-intro.pdf · Ryu SDN framework FUJITA Tomonori NTT ... •Ryu provides a bunch of components

6 © 2013 NTT Software Innovation Center

Components and libraries included in Ryu

OF-wire Netconf OF-conf

VRRP

OVSDB

JSON

Topology

OpenStack

Quantum

Stats

Endpoint

OF REST

CLI

Topology

Viewer

NetFlow sFlow

HA with

Zookeeper

Firewall

component

library

legend

Libraries consist of functions called directly by components.

L2 switch

Snort

Page 7: Introduction to Ryu SDN framework - GitHub Pagesosrg.github.io/ryu/slides/ONS2013-april-ryu-intro.pdf · Ryu SDN framework FUJITA Tomonori NTT ... •Ryu provides a bunch of components

7 © 2013 NTT Software Innovation Center

• OF-wire

• OpenFlow 1.0, 1.2, 1.3 and Nicira extensions.

• Topology

• Builds topology and tracks links.

• Path calculation feature will be supported soon.

• VRRP

• Adds Virtual Router Redundancy Protocol (v3) support to OFS.

• OF REST

• You can configure OF switches via REST APIs.

Component description

Page 8: Introduction to Ryu SDN framework - GitHub Pagesosrg.github.io/ryu/slides/ONS2013-april-ryu-intro.pdf · Ryu SDN framework FUJITA Tomonori NTT ... •Ryu provides a bunch of components

8 © 2013 NTT Software Innovation Center

• Support two ways to isolate tenants

• GRE tunnel and VLAN

OpenStack Quantum

Quantum db: (Network id, key (vlan id or tunnel id))

Quantum Server

Vif driver

Ryu agent

OVS

Quantum API

Ryu REST API Ryu server (Network id, key)

L3 agent

Ryu agent

OVS

Compute node Network node

OpenFlow &

OVS DB JSON

Page 9: Introduction to Ryu SDN framework - GitHub Pagesosrg.github.io/ryu/slides/ONS2013-april-ryu-intro.pdf · Ryu SDN framework FUJITA Tomonori NTT ... •Ryu provides a bunch of components

9 © 2013 NTT Software Innovation Center

• Stores stats to data store

• visualizes and analyzes.

• The prototype stores switch stats to Hbase.

Stats component

Page 10: Introduction to Ryu SDN framework - GitHub Pagesosrg.github.io/ryu/slides/ONS2013-april-ryu-intro.pdf · Ryu SDN framework FUJITA Tomonori NTT ... •Ryu provides a bunch of components

10 © 2013 NTT Software Innovation Center

• Show topology and flows dynamically

Topology viewer

Page 11: Introduction to Ryu SDN framework - GitHub Pagesosrg.github.io/ryu/slides/ONS2013-april-ryu-intro.pdf · Ryu SDN framework FUJITA Tomonori NTT ... •Ryu provides a bunch of components

11 © 2013 NTT Software Innovation Center

• Make SDN development more agile

• Adds more components (protocols, IaaS, stats, security, etc).

• Introducing network abstraction model (hide southbound difference, etc).

• Improves distributed deployment component (cluster support).

• New testing methods (Ryu has more than 15,000 lines test code).

Future work

Page 12: Introduction to Ryu SDN framework - GitHub Pagesosrg.github.io/ryu/slides/ONS2013-april-ryu-intro.pdf · Ryu SDN framework FUJITA Tomonori NTT ... •Ryu provides a bunch of components

12 © 2013 NTT Software Innovation Center

• Ryu project needs more developers

• NTT team wants to make Ryu usable for many organizations.

• The development is truly open and Ryu already has some code from non NTT developers.

• NTT team would like to help you to use Ryu in production.

Ryu is an ongoing project

Page 13: Introduction to Ryu SDN framework - GitHub Pagesosrg.github.io/ryu/slides/ONS2013-april-ryu-intro.pdf · Ryu SDN framework FUJITA Tomonori NTT ... •Ryu provides a bunch of components

© 2013 NTT Software Innovation Center

Thanks! Looking forward to your participation

http://osrg.github.com/ryu/

Page 14: Introduction to Ryu SDN framework - GitHub Pagesosrg.github.io/ryu/slides/ONS2013-april-ryu-intro.pdf · Ryu SDN framework FUJITA Tomonori NTT ... •Ryu provides a bunch of components

14 © 2013 NTT Software Innovation Center

• You need scalability probably

• Language runtime efficiency can’t solve scalability problem

• Scalability about the whole system architecture.

• Still need to improve runtime efficiency

• Pypy: anothr python runtime using JIT.

• Using C for such components.

Python Performance?