introduction to controllers / network operating...

40
Introduction to Controllers / Network Operating Systems SDN/NFV Core Network Department of Computer Science & Information Engineering National Cheng Kung University 2015 Fall

Upload: dangphuc

Post on 18-May-2018

217 views

Category:

Documents


3 download

TRANSCRIPT

備註:

若要變更此投影片的圖像,請選取該圖片點選變更圖片,已插入自訂圖像。

Introduction to Controllers / Network Operating Systems

SDN/NFV Core Network

Department of Computer Science & Information Engineering

National Cheng Kung University

2015 Fall

Background

• Networks have so far been managed and configured using lower level, device-specific instruction sets and mostly closed proprietary NOSs (e.g., Cisco IOS and Juniper JunOS).

• SDN is promised to facilitate network management and ease the burden of solving networking problems by means of the logically centralized control offered by a NOS.

• With NOSs, to define network policies a developer no longer needs to care about the low-level details of data distribution among routing elements.

2

How many flows exist in real networks/datacenters?

• NOX handles around 30k flow initiation events per second while maintaining a sub-10ms flow install time.

• Kandula et al. found that a 1500-server cluster has a median flow arrival rate of 100k flows per second.

• Benson et al. show that a network with 100 switches can have spikes of 10M flows arrivals per second in the worst case.

3

Centralized Controllers

• A centralized controller is a single entity that manages all forwarding devices of the network.

• Naturally, it represents a single point of failure and may have scaling limitations.

• Centralized controllers are designed as highly concurrent systems (i.e., multithreaded design for multicore computer) to achieve required throughput.

• Beacon can deal with more than 12 million flows per second by using Amazon cloud service.

• List of centralized controllers: NOX-MT, Maestro, Beacon, Floodlight, Trema, Ryu, Meridian, ProgrammableFlow, Rosemary

4

Effect of Multi-threading on Throughput

5

Source: A. Tootoonchian, S. Gorbunov, Y. Ganjali, M. Casado, and R. Sherwood. On controller performance in software-defined

networks. In USENIX Workshop on Hot Topics in Management of Internet, Cloud, and Enterprise Networks and Services (Hot-ICE),

2012.

Distributed Controllers

• A distributed NOS can be scaled up to meet the requirements of potentially any environment.

• Most distributed controllers offer weak consistency semantics, which implies that there is a period of time in which distinct nodes may read different values.

• Another common property is fault tolerance. However, SDN resiliency as a whole is an open challenge.

• List of distributed controllers: Onix, HyperFlow, HP VAN SDN, ONOS, DISCO, yanc, PANE, SMaRt-Light, Fleet

6

Architectural and Design Elements of SDN Controllers

7

8

• NOX/POX

• Ryu

• Floodlight

• OpenDaylight

• Pyretic

• Frenetic

• Procera

• RouteFlow

• Trema

Many Different SDN Controllers

9

NOX: Overview

• First-generation OpenFlow controller

• Open source, stable, widely used

• Two “flavors” of NOX

• NOX-Classic: C++/Python. No longer supported.

• NOX (the “new NOX”)

• C++ only

• Fast, clean codebase

• Well maintained and supported

10

http://www.noxrepo.org/

NOX: Characteristics

• Users implement control in C++

• Supports OpenFlow v.1.0

• A fork (CPqD) supports 1.1, 1.2, and 1.3

• Programming model

• Controller registers for events

• Programmer writes event handler

When to Use NOX

• You know C++

• You are willing to use

low-level facilities and

semantics of OpenFlow

• You need good

performance

11

POX: Overview

• NOX in Python

• Supports OpenFlow v. 1.0 only

• Advantages

• Widely used, maintained, supported

• Relatively easy to read and write code

• Disadvantages: Performance

When to Use POX

• You know Python

• You are are not

concerned about

controller

performance

• Rapid prototyping

and experimentation

12

Ryu

• Open source Python controller • Supports OpenFlow 1.0, 1.2, 1.3, 1.4, 1.5, Nicira extensions

• Works with OpenStack

• Aims to be an “Operating System” for SDN

• Advantages • OpenStack integration

• OpenFlow 1.2, 1.3, 1.4, 1.5

• Good documentation

• Disadvantages: Performance

http://osrg.github.io/ryu/

13

Ryu means "flow" in Japanese. Ryu is pronounced "ree-yooh".

Floodlight

• Open-source Java controller

• Supports OpenFlow v. 1.0 and v. 1.3

• Fork from the Beacon Java OpenFlow controller

• Maintained by Big Switch Networks

• Advantages

• Good documentation

• Integration with REST API

• Production-level, OpenStack/Multi-Tenant Clouds

• Disadvantages: Steep learning curve

http://www.projecEloodlight.org/floodlight/

14

OpenDaylight

2

OpenDaylight Consortium

• Heavy industry involvement and backing

• Focused on having an open framework for building upon SDN/NFV innovations

• Not limited to OpenFlow innovations

17

18

Hydrogen Release

Java, Maven, OSGi, Interface

• Java chosen as an enterprise-grade,

cross-platform compatible language

• Maven – build system for Java

• OSGi:

• Allows dynamically loading bundles

• Allows registering dependencies and services exported

• For exchanging information across bundles

• Java Interfaces are used for event listening, specifications, and forming patterns

OSGi Framework

(Equinox)

App1 App2 SAL …

19

• A packet arriving at Switch1 will be sent to the

appropriate plugin managing the switch

• The plugin will parse the packet, generate an

event for SAL

• SAL will dispatch the packet to the modules

listening for DataPacket

• Module handles packet and sends packet_out

through IDataPacketService

• SAL dispatches the packet to the modules

listening for DataPacket

• OpenFlow message sent to appropriate switch 20

Life of a Packet

21

OpenDaylight Web Interface

Download SDN Hub's VM and

use the skeleton app in home

directory

Update dependencies and

services exported in the new

bundle’s pom.Xml

List dependencies imported

and interfaces implemented in

the module’s Activator.Java

Update set/unset bindings in

the module’s class so as to

access other bundle objects

Implement the interface funceons to

handle the async events or use other

bundle objects to edit state

Add needed northbound REST

API and associate with the web

bundle Done

22

Steps for Writing a new application

• Several similarities between Beacon and OpenDaylight

• This goes beyond just these two controller platforms

• The above three functions are basic to all controller platforms

23

Essential Code Constructs

A. Packet in event handling:

• public class TutorialL2Forwarding implements IListenDataPacket

• Indicates that the class will handle any packet_in events

• public PacketResult receiveDataPacket(RawPacket inPkt) { ... }

• Call-back function to implement in the class for receiving packets

B. Packet parsing

• Packet formattedPak = this.dataPacketService.decodeDataPacket(inPkt);

• byte[] srcMAC = ((Ethernet)formattedPak).getSourceMACAddress();

• long srcMAC_val = BitBufferHelper.toNumber(srcMAC);

C. Send message (packet_out or flow_mod) to switch

• RawPacket destPkt = new RawPacket(inPkt);

• destPkt.setOutgoingNodeConnector(p);

• this.dataPacketService.transmitDataPacket(destPkt); 24

Main Constructs

25

Useful Interfaces and Bundles

26

Useful Interfaces and Bundles

Summary

• OpenDaylight is an industry-backed effort to develop broader set of SDN solutions

• SDN is no longer just OpenFlow!

• Possible to integrate a broad set of cloud-based applications

• Set of functions is similar to other controllers

• Learning curve is significant.

SDN Hub has good starter kit!

27

ONOS – A Carrier Grade Controller

• Features of Open Network Operating System (ONOS)

• Highly available

• modular

• extensible,

• distributed,

• scalable

• multi-protocol controller infrastructure

• Supports OpenFlow (1.0, 1.3), NETCONF, OVSDB

• Protocol and device behavior independence

• Written in Java

• Apache 2.0 license

28

ONOS Board

• Service providers

• AT&T, China Unicom, NTT Communications, SK Telecom, Verizon

• Vendors

• Alcatel Lucent, Ciena, Cisco, Ericsson, Fujitsu, Huawei, Intel, NEC, ON.Lab

29

ONOS Architecture

30

ONOS Releases

Name VERSION Dates Name VERSION Dates

Junco 1.9.0 Mar. 6, 2017 Emu 1.4.0 Dec. 16, 2015

Ibis 1.8.0 Dec. 9, 2016 Drake 1.3.0 Sept. 18, 2015

Hummingbird 1.7.1 Oct. 25, 2016 Cardinal 1.2.2 Sept. 1, 2015

1.7.0 Sept. 23, 2016 1.2.1 June 25, 2015

Goldeneye 1.6.0 Jun. 24, 2016 1.2.0 June 5, 2015

Falcon 1.5.1 Apr. 20, 2016 Blackbird 1.1.0 Mar. 17, 2015

1.5.0 Mar. 10, 2016

Avocet

1.0.1 Jan 21st, 2015

1.0.0 Dec 5th, 2014

31

ONOS Web GUI

32

Global SDN-IP Deployment

33

Global SDN-IP Deployment Team Member

1. Internet2 • 40 OF switches around US, 5 sites connected

2. AmLight • 4 OF switches around South America and Miami

3. GEANT • Multiple end-points all around Europe

4. KREONET • 4 OF switches around US, 5 sites connected

5. AARENT • 40 OF switches distributed in two cities in Korea

6. NCTU • 4 OF switches in Taiwan

34

About SDN-IP

• Allows an SDN to connect to external networks on the Internet using standard Border Gateway Protocol (BGP)

• SDN-IP is just an ONOS application

• Uses ONOS services to install and update appropriate data forwarding rules

• Design Goal of SDN-IP

• Protocol Compatibility and Vendor Independence

• High Availability (HA) – Provides HA within SDN-IP itself

• Scalability – Using multiple ONOS clusters

35

Taiwan on ONOS

36

37

ONOS Voting Community 2016

38

Importance of ONOS

• Supports a wide variety of SBI protocols versions

• Active community

• Aligned with vendors and telcos

• Good documentation

• Easy deployment (OSGi)

• However…!

• Still in its early phases (some project are still under development and not fully supported)

39

Source: Telcaria (http://www.slideshare.net/opennebula/clash-of-titans-in-sdn-

opendaylight-vs-onos-elisa-rojas)

ODL vs. ONOS

• Cloud vs. Carrier-grade networks

• Legacy vs. “Pure” SDN

• Private companies vs. Academic

• Both in Linux Foundation!

• ONOS and ODL focused on different problems.

• ONOS has focused on service providers’ needs, which landed it a role as a local controller for AT&T.

• ODL was created to be the Linux of networking: one platform to have a very long life and enable people to build a wide range of solutions to solve a wide range of problems. AT&T is using ODL framework as the basis for its global SDN controller.

40 Source: Linux Foundation (https://www.sdxcentral.com/articles/news/onos-joins-the-linux-

foundation-becoming-an-opendaylight-sibling/2015/10/)