A Network in a Laptop: Rapid Prototyping for So7ware- Defined Networks



Similar documents
Getting to know OpenFlow. Nick Rutherford Mariano Vallés

Teaching Computer Networking with Mininet

How SDN will shape networking

WHITE PAPER. SDN Controller Testing: Part 1

OpenFlow: Load Balancing in enterprise networks using Floodlight Controller

Tutorial. Reference for more thorough Mininet walkthrough if desired

Programming Assignment 2: Using Mininet and Mininet Python API: Instructions

Network Programmability Using POX Controller

Implementation of Address Learning/Packet Forwarding, Firewall and Load Balancing in Floodlight Controller for SDN Network Management

Open Source Network: Software-Defined Networking (SDN) and OpenFlow

MuL SDN Controller HOWTO for pre-packaged VM

Assessing the Performance of Virtualization Technologies for NFV: a Preliminary Benchmarking

EstiNet OpenFlow Network Simulator and Emulator

How Linux kernel enables MidoNet s overlay networks for virtualized environments. LinuxTag Berlin, May 2014

Dynamic Controller Deployment in SDN

Datacenter Network Virtualization in Multi-Tenant Environments

Architecture (SOSP 2011) 11/11/2011 Minsung Jang

OpenFlow: Concept and Practice. Dukhyun Chang

Xperience of Programmable Network with OpenFlow

NETWORK EMULATION AND NETKIT

SDN software switch Lagopus and NFV enabled software node

Large-scale Network Protocol Emulation on Commodity Cloud

Chandelle: Principles of integration wireless controller and SDN controller. Sergey Monin, Alexander Shalimov, Ruslan Smeliansky

TCP Labs. WACREN Network Monitoring and Measurement Workshop Antoine Delvaux perfsonar developer

13.1 Backup virtual machines running on VMware ESXi / ESX Server

Wave Relay System and General Project Details

Software Defined Networks (SDN)

Open Source Tools & Platforms

SDN CENTRALIZED NETWORK COMMAND AND CONTROL

Intro to Virtualization

Emulation of Software Defined Networks Using Mininet in Different Simulation Environments

Lightweight Virtualization: LXC Best Practices

OpenFlow Based Load Balancing

ON THE IMPLEMENTATION OF ADAPTIVE FLOW MEASUREMENT IN THE SDN-ENABLED NETWORK: A PROTOTYPE

Cloud Simulator for Scalability Testing

Lab 7: Software Defined Networking

A collaborative model for routing in multi-domains OpenFlow networks

Network performance in virtual infrastructures

STRATEGIC WHITE PAPER. The next step in server virtualization: How containers are changing the cloud and application landscape

Network Virtualization

Status of OpenFlow research and test facilities in Europe

Software Defined Networking (SDN)

PARALLELS SERVER BARE METAL 5.0 README

Kerrighed / XtreemOS cluster flavour

Steroid OpenFlow Service: Seamless Network Service Delivery in Software Defined Networks

OpenFlow: History and Overview. Demo of routers

Network Virtualization and Software-defined Networking. Chris Wright and Thomas Graf Red Hat June 14, 2013

Programmable Networking with Open vswitch

SIDN Server Measurements

Software Defined Networking What is it, how does it work, and what is it good for?

The Lagopus SDN Software Switch. 3.1 SDN and OpenFlow. 3. Cloud Computing Technology

Enabling Bandwidth and Low Latency in Data Centres Using Open Flow

OSHI - Open Source Hybrid IP/SDN networking (and its emulation on Mininet and on distributed SDN testbeds)

CDH installation & Application Test Report

LCMON Network Traffic Analysis

Networking Virtualization Using FPGAs

Altor Virtual Network Security Analyzer v1.0 Installation Guide

THE CHANGING FACE OF SDN. Guido Appenzeller 2014

Week Overview. Installing Linux Linux on your Desktop Virtualization Basic Linux system administration

Axon: A Flexible Substrate for Source- routed Ethernet. Jeffrey Shafer Brent Stephens Michael Foss Sco6 Rixner Alan L. Cox

GUI Tool for Network Designing Using SDN

Example of Standard API

Using Red Hat Network Satellite Server to Manage Dell PowerEdge Servers

SERVER CLUSTERING TECHNOLOGY & CONCEPT

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Real-time Virtual NIC on KVM for Real-Time Network with OpenFlow

SDN Software Defined Networks

Network Virtualization for the Enterprise Data Center. Guido Appenzeller Open Networking Summit October 2011

Project 4: SDNs Due: 11:59 PM, Dec 11, 2014

Open vswitch and the Intelligent Edge

Performance of Host Identity Protocol on Nokia Internet Tablet

ns-3 development overview ns-3 GENI Eng. Conf., Nov

D1.2 Network Load Balancing

Ethernet-based Software Defined Network (SDN) Cloud Computing Research Center for Mobile Applications (CCMA), ITRI 雲 端 運 算 行 動 應 用 研 究 中 心

Performance of Network Virtualization in Cloud Computing Infrastructures: The OpenStack Case.

OpenFlow based Load Balancing for Fat-Tree Networks with Multipath Support

Software Defined Networking

Emulation of SDN-Supported Automation Networks

Developing OpenDaylight Apps with MD-SAL. J. Medved, E. Warnicke, A. Tkacik. R. Varga Cisco Sample App: M. Rehak, Cisco February 04, 2014

Computer Systems and Networks. ECPE 170 Jeff Shafer University of the Pacific. Linux Basics

Dynamically Reconfigurable Network Nodes in Cloud Computing Systems

Switch Chip panel discussion. Moderator: Yoshihiro Nakajima (NTT)

Best Practices for Monitoring Databases on VMware. Dean Richards Senior DBA, Confio Software

System administration basics


The Future of Networking, and the Past of Protocols

Disaster-Resilient Backbone and Access Networks

Design and Management of DOT: A Distributed OpenFlow Testbed

VMware Server 2.0 Essentials. Virtualization Deployment and Management

Benchmarking the Performance of XenDesktop Virtual DeskTop Infrastructure (VDI) Platform

Where IT perceptions are reality. Test Report. OCe14000 Performance. Featuring Emulex OCe14102 Network Adapters Emulex XE100 Offload Engine

Getting Started Using Project Photon on VMware Fusion/Workstation

Desktop virtualization using SaaS Architecture

SDN AND SECURITY: Why Take Over the Hosts When You Can Take Over the Network

V-NetLab: A Cost-Effective Platform to Support Course Projects in Computer Security

Scalability and Classifications

Design and implementation of server cluster dynamic load balancing in virtualization environment based on OpenFlow

Parallels Cloud Server 6.0 Readme

White Paper. Recording Server Virtualization

Software Defined Networking (SDN)

Transcription:

A Network in a Laptop: Rapid Prototyping for So7ware- Defined Networks Bob Lantz, Brandon Heller, Nick McKeown Stanford University HotNets 2010, 10/20/10 1

2

Wouldn t it be amazing if systems papers were runnable. 3

Wouldn t it be amazing If systems papers made replicasng their results, modifying the described system, and sharing it with others as easy as downloading a file. 4

Wouldn t it be amazing if network systems papers were more than runnable. share with others idea prototype deploy on hardware with no code changes!?! 5

Mininet: a playorm for rapid network prototyping. scales to usefully large nets runs unmodified applica4ons provides path to hardware facilitates sharing 6

openflow.org/mininet 140+ users 45+ on mailing list 20+ insstusons open source (BSD license) [don t download now! save the WiFi!] 7

Demo 8

Demo Topology: Fat Tree &"'($ )**'(*+,"-$,--'(-./"0$ 1#-($.#*($!"#$%$!"#$/$!"#$)$!"#$0$!"#$*$!"#$1$!"#$+$ described in Scalable Commodity Data Center, SIGCOMM 2008, Al Fares et al. 9

(1) share- able (2) runs on hardware 10

11

Date Nov 2009: deadline in 3 months [based on a true story] 12

Resources: a laptop 13

Goal: build/eval/demo a realissc new networked system 14

Why not a real system? switch s1 + as real as it gets - a pain to reconfigure host h2 host h3 15

Why not networked virtual machines? VM1 switch s1 + easier topology changes - scalability VM2 VM3 host h2 host h3 16

Why not a simulator? process state switch s1 + good visibility - no path to hardware state state host h2 host h3 17

Problem 1: Want scale with unmodified applicasons. Use lightweight, OS- level virtualizason. 18

OS- level VirtualizaSon Same system, different view. Almost zero overhead. ex. IMUNES, Emulab user kernel process filesystem hostname user IDs network process filesystem hostname user IDs network one OS kernel 19

Problem 2: Want a smooth path to hardware deployment. Use So7ware- Defined Networking. 20

Feature Feature Network OS Feature OS Hardware Feature OS Feature OS Hardware Feature OS Hardware Feature Hardware OS Hardware 21

So7ware- Defined Network Feature Feature Network OS OpenFlow Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding 22

Mininet Walkthrough 23

controller switch s1 host h2 host h3 24

$> mn --topo minimal \! --switch ovsk \! --controller ref! run Mininet launcher root network namespace mn! 25

$> mn --topo minimal \! --switch ovsk \! --controller ref! root network namespace Hosts create bash processes mn! pipes /bin/bash! host h2 /bin/bash! host h3 26

$> mn --topo minimal \! --switch ovsk \! --controller ref! root network namespace Hosts unshare(clone_newnet)! mn! pipes /bin/bash! h2 namespace /bin/bash! h3 namespace 27

$> mn --topo minimal \! --switch ovsk \! --controller ref! root network namespace Links ip link add mn! pipes veth0 veth1 veth pairs veth2 veth3 /bin/bash! /bin/bash! h2 namespace h3 namespace 28

$> mn --topo minimal \! --switch ovsk \! --controller ref! root network namespace Links ip link set name mn! pipes s1- eth1 s1- eth2 veth pairs h2- eth0 h3- eth0 /bin/bash! h2 namespace /bin/bash! h3 namespace 29

$> mn --topo minimal \! --switch ovsk \! --controller ref! root network namespace Links ip link set netns mn! pipes s1- eth1 s1- eth2 veth pairs h2- eth0 h3- eth0 /bin/bash! h2 namespace /bin/bash! h3 namespace 30

$> mn --topo minimal \! --switch ovsk \! --controller ref! root network namespace Switch create OpenFlow Switch ofdatapath! unix socket ofprotocol! mn! pipes s1- eth1 raw sockets s1- eth2 veth pairs h2- eth0 h3- eth0 /bin/bash! h2 namespace /bin/bash! h3 namespace 31

$> mn --topo minimal \! --switch ovsk \! --controller ref! root network namespace Controller create controller ofdatapath! unix socket ofprotocol! mn! pipes h2- eth0 s1- eth1 raw sockets s1- eth2 veth pairs controller! h3- eth0 /bin/bash! h2 namespace /bin/bash! h3 namespace 32

Virtual Machine root network namespace ofdatapath! unix socket ofprotocol! mn! pipes h2- eth0 s1- eth1 raw sockets s1- eth2 veth pairs controller! h3- eth0 /bin/bash! h2 namespace /bin/bash! h3 namespace 33

Mininet example commands Create a network using mn launcher: mn --switch ovsk --controller nox --topo \ tree,depth=2,fanout=8 --test pingall! Interact with a network using CLI: mininet> h2 ping h3! mininet> h2 py dir(locals())! Customize a network w/api: from mininet.net import Mininet! from mininet.topolib import TreeTopo! tree4 = TreeTopo(depth=2,fanout=2)! net = Mininet(topo=tree4)! net.start()! h1, h4 = net.hosts[0], net.hosts[3]! print h1.cmd( ping -c1 %s % h4.ip())! net.stop()! 34

Apps made with the Mininet API 35

EvaluaSon 36

Startup/Shutdown/Memory iperf nd kerin fig- I will entaerials, Topology H S Setup(s) Stop(s) Mem(MB) Minimal 2 1 1.0 0.5 6 Linear(100) 100 100 70.7 70.0 112 VL2(4, 4) 80 10 31.7 14.9 73 FatTree(4) 16 20 17.2 22.3 66 FatTree(6) 54 45 54.3 56.3 102 Mesh(10, 10) 40 100 82.3 92.9 152 Tree(4ˆ4) 256 85 168.4 83.9 233 Tree(16ˆ2) 256 17 139.8 39.3 212 Tree(32ˆ2) 1024 33 817.8 163.6 492 Table 2: Mininet topology benchmarks: setup time, stop time and memory usage lots for networks of switches of H hosts and & S hosts Open vswitch kernel switches, tested in a Debian 5/Linux 2.6.33.1 VM on VMware Fusion w/reasonable 3.0 a MacBook amounts Pro (2.4 GHz intel of Core memory 2 Duo/6 GB). Even in the largest configurations, hosts and switches start up in less than one second each. Operation Time (ms) 37

erf ker- fig- will taals, enine he dis- M ine is ely NS Tree(16ˆ2) 256 17 139.8 39.3 212 Tree(32ˆ2) 1024 33 817.8 163.6 492 Table 2: Mininet topology benchmarks: setup time, stop time and memory usage for networks of H hosts and S Open vswitch kernel switches, tested Microbenchmarks in a Debian 5/Linux 2.6.33.1 VM on VMware Fusion 3.0 on a MacBook Pro (2.4 GHz intel Core 2 Duo/6 GB). Even in the largest configurations, hosts and switches start up in less than one second each. Operation Time (ms) Create a node (host/switch/controller) 10 Run command on a host ( echo hello ) 0.3 Add link between two nodes 260 Delete link between two nodes 416 Start user space switch (OpenFlow reference) 29 Stop user space switch (OpenFlow reference) 290 Start kernel switch (Open vswitch) 332 Stop kernel switch (Open vswitch) 540 Table 3: Time for basic Mininet operations. Mininet s startup and shutdown performance is dominated by management of virtual Ethernet link management interfaces in the Linux (2.6.33.1) is slow kernel and ip link utility and Open vswitch startup/shutdown time. of topologies with Mininet. Larger topologies which 38

Bandwidth S (Switches) User(Mbps) Kernel(Mbps) 1 445 2120 10 49.9 940 20 25.7 573 40 12.6 315 60 6.2 267 80 4.15 217 100 2.96 167 RaSo Table 1: Mininet end-to-end bandwidth, measured with iperf through linear chains of user-space (OpenFlow reference) and kernel (Open vswitch) switches. graphical applications, two of which are shown in figures 2 and 3. The hope is that the Mininet API will prove useful for system-level testing and experimenta- ~5x ~50x usable amount of bandwidth 39 Top Min Lin VL2 Fat Fat Mes Tre Tre Tre Table mem switc Fusio Even less t

Case Studies 40

Research Examples Ripcord: modular data center Asterix: wide- area load balancing SCAFFOLD: new internet architecture Distributed snapshot demo 41

Unexpected Uses Tutorials Whole- network regression suites Bug replicason 42

LimitaSons 43

Inherent LimitaSons OS- level virtualizason one kernel only Linux containers Linux programs only Cannot match the introspecson of an event- driven simulason 44

Performance Fidelity switch process p processes c cores host process links links links p >> c? Sme mulsplexing Issues: performance predictability, isolason 45

Wouldn t it be amazing if systems papers were runnable. 46

Wouldn t it be amazing If systems papers made replicasng their results, modifying the described system, and sharing it with others as easy as downloading a file. 47

Wouldn t it be amazing if network systems papers were more than runnable. share with others idea prototype deploy on hardware with no code changes!?! 48

A Network in a Laptop is a runnable paper which itself describes how to make other runnable papers. 49

Mininet Rapid prototyping Scalable Shareable FuncSonally correct Path to hardware enables runnable papers for a subset of networking openflow.org/mininet 50

51

The SDN Approach Separate control from the datapath i.e. separate policy from mechanism Datapath: Define minimal network instrucson set A set of plumbling primisves A narrow interface: e.g. OpenFlow Control: Define a network- wide OS An API that others can develop on 52

How to get performance fidelity? Careful process- to- core allocason Bandwidth limits Scheduling priorises Real- Sme scheduling Scheduling groups w/resource isolason 53

Why not processes? process switch s1 + scales beser - breaks applicasons process process host h2 host h3 54