SlideShare ist ein Scribd-Unternehmen logo
1 von 48
Downloaden Sie, um offline zu lesen
OpenFlow


        (osho@galibier.org)
@oshothebig
•
• OpenFlow
• OpenFlow
•
•
•
•              (Twitter: oshothebig)

•
    •
•
    •                     , GMPLS, VLAN Tag Swapped
        Ethernet,                      , etc.
OpenFlow
• 4, 5
• Galibier OpenFlow Controller
•
    • 300                     Java    OpenFlow
             (http://bit.ly/qXoMGM)

    • OpenFlow                             Java
     (http://bit.ly/pbI3Or)
OpenFlow
• NOX (Nicira)
• Trema (NEC)
• Beacon (David Erickson, Stanford University)
• Floodlight (BigSwitch Networks?)
• Maestro (Rice University)
• Nettle (Yale University)
NOX
• Nicira Networks
• http://noxrepo.org/
• C++/Python
• GPLv3
•
Trema
•   NEC
•   https://github.com/trema/trema
•   C/Ruby
•   GPLv2
•
•
Beacon
•   David Erickson (Stanford University)
•   http://www.beaconcontroller.net/
•   Java
•   GPL v2 and the Stanford University FOSS License
    Exception v1.0
•                             , Web

• 2011/9/12 Ver. 1.0.0
Floodlight
• Big Switch Networks?
• http://www.openflowhub.org/display/Floodlight/
  Floodlight+is+a+Java-based+OpenFlow+Controller
• Java
• Apache License
• git://github.com/bigswitch/floodlight.git
  •
Beacon            Floodlight
• Floodlight Beacon
  • OSS                      OSGi

• Big Switch Networks
  • git://github.com/bigswitch/BeaconMirror.git (   )

  • git://github.com/bigswitch/floodlight.git
Maestro
• Rice University
• http://code.google.com/p/maestro-platform/
• Java
• LGPL v2.1
• DAG
Nettle
•   Yale University
•   http://haskell.cs.yale.edu/?page_id=376
•   Haskell
•   BSD3
•   Nettle: Functional Reactive Programming of OpenFlow
    Networks
    http://haskell.cs.yale.edu/wp-content/uploads/2011/03/
    NettlePADL2011.pdf
OpenFlow
Applicatioin        Application

API
                     Controller
                            OpenFlow


Open vSwitch          Switch
OpenFlow
• Ver. 1.0.0
  http://www.openflow.org/documents/openflow-spec-
  v1.0.0.pdf
               Header
ver.   type    length       xid         payload


        22
• Symmetric Message
  • Hello, Echo,       ,

• Controller/Switch Message
  •                ,           ,

• Async Message
  • Packet in,             ,
Switch   Controller
Switch   Controller
Switch           Controller


         HELLO
         HELLO
Switch                     Controller


             HELLO
             HELLO

         FEATURE_REQUEST

          FEATURE_REPLY
Switch   Controller
Switch                  Controller


         ECHO_REQUEST
          ECHO_REPLY
Switch                  Controller


         ECHO_REQUEST
          ECHO_REPLY


         ECHO_REQUEST
          ECHO_REPLY
Switch   Controller
Switch   Controller
Switch               Controller



         PACKET_IN
Switch               Controller



         PACKET_IN



   PACKET_OUT or FLOW_MOD
Galibier OpenFlow Controller
•
    • Mac
• Java
• OpenFlow              : openflowj

•           IO: Netty

• http://github.com/oshothebig/galibier
•
•
•   API
Header
ver.   type      length     xid   payload


       22
• length (2 bytes)
• LengthFieldBasedFrameDecoder
Controller
ChannelPipeline

    OpenFlowControllerHandler     OpenFlow


        OpenFlowEncoder


        OpenFlowDecoder


  LengthFieldBasedFrameDecoder



     Netty Internal I/O Threads
OpenFlow
•                 → HELLO

• HELLO    → FEATURE_REQUEST

• FEATURE_REPLY     →

• ECHO_REQUEST       → ECHO_REPLY

•         ECHO_REQUEST
HELLO


private void handleHello(OFHello in) {
    send(factory.getMessage(OFType.FEATURES_REQUEST));
}
API
•   switchConnected(Switch sw)
•   switchDisconnected(Switch sw)
•   handlePacketIn(Switch sw, OFPacketIn msg)
•   handleFlowRemoved(Switch sw, OFFlowRemoved msg)
•   handlePortStatus(Switch sw, OFPortStatus msg)
Controller Performance ?
http://www.openflow.org/wk/index.php/
Controller_Performance_Comparisons
Benchmark for controller
• Cbench
 http://www.openflow.org/wk/index.php/Oflops

      Cbench                          Controller
Benchmark for controller
• Cbench
 http://www.openflow.org/wk/index.php/Oflops

      Cbench                          Controller
                     PACKET_IN
                    PACKET_OUT
Benchmark for controller
• Cbench
 http://www.openflow.org/wk/index.php/Oflops

      Cbench                          Controller
                     PACKET_IN
                    PACKET_OUT

                     PACKET_IN
                    PACKET_OUT
ChannelPipeline

   OpenFlowBenchmarkHandler


        OpenFlowEncoder


        OpenFlowDecoder


  LengthFieldBasedFrameDecoder



     Netty Internal I/O Threads
•
• OpenFlow
    •          Open vSwitch

•
•            API
•
•


• OpenFlow
    • Logically centralized
Onix
• OSDI’10
    Onix: A Distributed Control Platform for Large-scale
    Production Networks
    http://www.usenix.org/event/osdi10/tech/full_papers/
    Koponen.pdf
• Nicira Networks, Google, NEC
•
Onix
                             Server 1                                                         Server N

                     Network Control Logic                                          Network Control Logic


                                  NIB                                                           NIB
  Onix




         Switch Import / Export           Distribution I / E             Distribution I / E           Switch Import / Export




                                        Management Connectivity Network Infrastructure

                                           Managed Physical Network Infrastructure




Figure 1: There are four components in an Onix controlled
network:                managed physical infrastructure, connectivity
Onix
• Network Information Base (NIB)
    •
                               Forwarding   1   n   Forwarding                  Category
                   Host                                                  Link
                                                      Table
                                 Engine
                                                                                Query
                                                                                Create, dest
                                                                     1
                                                                 2

                  Network        Node
                                            1   n
                                                       Port
                                                                                Access attri
                                                                                Notification
              Figure 2: The default network entity classes provided by          Synchronize
•           Onix’s API. Solid lines represent inheritance,DB dashed lines
                                                          while
                                                                             Configuratio
            correspond to referential relation between entity instances. The
            numbers on the dashed lines show the quantitative mapping
    •   Transactional(e.g., one Linkdatabase Ports, and two
            relationship persistent maps to two                              Pull
            Ports can map to the same Link). Nodes, ports and links
    •   One-hop, eventually-consistent, memory-only DHT
            constitute the network topology. All entity classes inherit the
            same base class providing generic key-value pair access.          Table 1: Fu
OpenFlow
•
    • OpenFlow
• OpenFlow
    •
•        API

    •            =OS
•    OpenFlow

• OpenFlow
• OpenFlow
•               Onix

•
Thank you!

osho@galibier.org

Weitere ähnliche Inhalte

Was ist angesagt?

04 android
04 android04 android
04 androidguru472
 
Open Source Swift Under the Hood
Open Source Swift Under the HoodOpen Source Swift Under the Hood
Open Source Swift Under the HoodC4Media
 
IPSN 2009 Contiki / uIP tutorial
IPSN 2009 Contiki / uIP tutorialIPSN 2009 Contiki / uIP tutorial
IPSN 2009 Contiki / uIP tutorialadamdunkels
 
ONUG Tutorial: Bridges and Tunnels Drive Through OpenStack Networking
ONUG Tutorial: Bridges and Tunnels Drive Through OpenStack NetworkingONUG Tutorial: Bridges and Tunnels Drive Through OpenStack Networking
ONUG Tutorial: Bridges and Tunnels Drive Through OpenStack Networkingmarkmcclain
 
Swift - Under the Hood
Swift - Under the HoodSwift - Under the Hood
Swift - Under the HoodC4Media
 
Swift 2 Under the Hood - Gotober 2015
Swift 2 Under the Hood - Gotober 2015Swift 2 Under the Hood - Gotober 2015
Swift 2 Under the Hood - Gotober 2015Alex Blewitt
 
OpenFlow tutorial
OpenFlow tutorialOpenFlow tutorial
OpenFlow tutorialopenflow
 
Simplifying the OpenStack and Kubernetes network stack with Romana
Simplifying the OpenStack and Kubernetes network stack with RomanaSimplifying the OpenStack and Kubernetes network stack with Romana
Simplifying the OpenStack and Kubernetes network stack with RomanaJuergen Brendel
 
ONOS Open Network Operating System
ONOS Open Network Operating SystemONOS Open Network Operating System
ONOS Open Network Operating SystemON.Lab
 
Implementing MPLS Services using Openflow
Implementing MPLS Services using OpenflowImplementing MPLS Services using Openflow
Implementing MPLS Services using OpenflowAPNIC
 
OSHI - Open Source Hybrid IP/SDN networking @EWSDN14
OSHI - Open Source Hybrid IP/SDN networking @EWSDN14OSHI - Open Source Hybrid IP/SDN networking @EWSDN14
OSHI - Open Source Hybrid IP/SDN networking @EWSDN14Stefano Salsano
 
Yang in OpenDaylight
Yang in OpenDaylightYang in OpenDaylight
Yang in OpenDaylightGunjan Patel
 
Scalable Networking
Scalable NetworkingScalable Networking
Scalable Networkingl xf
 
Pushing a camel through the eye of a needle
Pushing a camel through the eye of a needlePushing a camel through the eye of a needle
Pushing a camel through the eye of a needleSensePost
 
Ryu: network operating system
Ryu: network operating systemRyu: network operating system
Ryu: network operating systemIsaku Yamahata
 
Bgpcep odl summit 2015
Bgpcep odl summit 2015Bgpcep odl summit 2015
Bgpcep odl summit 2015Giles Heron
 

Was ist angesagt? (20)

04 android
04 android04 android
04 android
 
Open Source Swift Under the Hood
Open Source Swift Under the HoodOpen Source Swift Under the Hood
Open Source Swift Under the Hood
 
03 Make Things Talk
03 Make Things Talk03 Make Things Talk
03 Make Things Talk
 
IPSN 2009 Contiki / uIP tutorial
IPSN 2009 Contiki / uIP tutorialIPSN 2009 Contiki / uIP tutorial
IPSN 2009 Contiki / uIP tutorial
 
ONUG Tutorial: Bridges and Tunnels Drive Through OpenStack Networking
ONUG Tutorial: Bridges and Tunnels Drive Through OpenStack NetworkingONUG Tutorial: Bridges and Tunnels Drive Through OpenStack Networking
ONUG Tutorial: Bridges and Tunnels Drive Through OpenStack Networking
 
Swift - Under the Hood
Swift - Under the HoodSwift - Under the Hood
Swift - Under the Hood
 
Swift 2 Under the Hood - Gotober 2015
Swift 2 Under the Hood - Gotober 2015Swift 2 Under the Hood - Gotober 2015
Swift 2 Under the Hood - Gotober 2015
 
Understanding OpenFlow
Understanding OpenFlowUnderstanding OpenFlow
Understanding OpenFlow
 
OpenFlow tutorial
OpenFlow tutorialOpenFlow tutorial
OpenFlow tutorial
 
Simplifying the OpenStack and Kubernetes network stack with Romana
Simplifying the OpenStack and Kubernetes network stack with RomanaSimplifying the OpenStack and Kubernetes network stack with Romana
Simplifying the OpenStack and Kubernetes network stack with Romana
 
ONOS Open Network Operating System
ONOS Open Network Operating SystemONOS Open Network Operating System
ONOS Open Network Operating System
 
Implementing MPLS Services using Openflow
Implementing MPLS Services using OpenflowImplementing MPLS Services using Openflow
Implementing MPLS Services using Openflow
 
OSHI - Open Source Hybrid IP/SDN networking @EWSDN14
OSHI - Open Source Hybrid IP/SDN networking @EWSDN14OSHI - Open Source Hybrid IP/SDN networking @EWSDN14
OSHI - Open Source Hybrid IP/SDN networking @EWSDN14
 
Yang in OpenDaylight
Yang in OpenDaylightYang in OpenDaylight
Yang in OpenDaylight
 
SDN – Hybrid architecture
SDN – Hybrid architectureSDN – Hybrid architecture
SDN – Hybrid architecture
 
Scalable Networking
Scalable NetworkingScalable Networking
Scalable Networking
 
Operating System fo IoT
Operating System fo IoTOperating System fo IoT
Operating System fo IoT
 
Pushing a camel through the eye of a needle
Pushing a camel through the eye of a needlePushing a camel through the eye of a needle
Pushing a camel through the eye of a needle
 
Ryu: network operating system
Ryu: network operating systemRyu: network operating system
Ryu: network operating system
 
Bgpcep odl summit 2015
Bgpcep odl summit 2015Bgpcep odl summit 2015
Bgpcep odl summit 2015
 

Ähnlich wie OpenFlow Controller Performance Benchmarking and Distributed Control

Dataplane programming with eBPF: architecture and tools
Dataplane programming with eBPF: architecture and toolsDataplane programming with eBPF: architecture and tools
Dataplane programming with eBPF: architecture and toolsStefano Salsano
 
FlowER Erlang Openflow Controller
FlowER Erlang Openflow ControllerFlowER Erlang Openflow Controller
FlowER Erlang Openflow ControllerHolger Winkelmann
 
Introduction to OpenNetwork and SDN
Introduction to OpenNetwork and SDNIntroduction to OpenNetwork and SDN
Introduction to OpenNetwork and SDNHungWei Chiu
 
Harmonia open iris_basic_v0.1
Harmonia open iris_basic_v0.1Harmonia open iris_basic_v0.1
Harmonia open iris_basic_v0.1Yongyoon Shin
 
Open vSwitch Introduction
Open vSwitch IntroductionOpen vSwitch Introduction
Open vSwitch IntroductionHungWei Chiu
 
Open stack with_openflowsdn-torii
Open stack with_openflowsdn-toriiOpen stack with_openflowsdn-torii
Open stack with_openflowsdn-toriiHui Cheng
 
Introduction to OpenFlow
Introduction to OpenFlowIntroduction to OpenFlow
Introduction to OpenFlowJoel W. King
 
Kernel Recipes 2015: Solving the Linux storage scalability bottlenecks
Kernel Recipes 2015: Solving the Linux storage scalability bottlenecksKernel Recipes 2015: Solving the Linux storage scalability bottlenecks
Kernel Recipes 2015: Solving the Linux storage scalability bottlenecksAnne Nicolas
 
Integrating OpenStack To Existing Infrastructure
Integrating OpenStack To Existing InfrastructureIntegrating OpenStack To Existing Infrastructure
Integrating OpenStack To Existing InfrastructureHui Cheng
 
neutron_icehouse_update
neutron_icehouse_updateneutron_icehouse_update
neutron_icehouse_updateAkihiro Motoki
 
Virt july-2013-meetup
Virt july-2013-meetupVirt july-2013-meetup
Virt july-2013-meetupnvirters
 
Openstack Cactus Survey
Openstack Cactus SurveyOpenstack Cactus Survey
Openstack Cactus SurveyPjack Chen
 
Building a Wireless Mesh Network Temperature Sensor
Building a Wireless Mesh Network Temperature SensorBuilding a Wireless Mesh Network Temperature Sensor
Building a Wireless Mesh Network Temperature Sensormichaelpigg
 
Networking in Docker Containers
Networking in Docker ContainersNetworking in Docker Containers
Networking in Docker ContainersAttila Kanto
 
Kubernetes Workshop
Kubernetes WorkshopKubernetes Workshop
Kubernetes Workshoploodse
 
Openstack Quantum yahoo meetup 1 23-13
Openstack Quantum yahoo meetup 1 23-13Openstack Quantum yahoo meetup 1 23-13
Openstack Quantum yahoo meetup 1 23-13Dan Wendlandt
 
Presentation11
Presentation11Presentation11
Presentation11KellyCheah
 
OpenStack and OpenDaylight Workshop: ONUG Spring 2014
OpenStack and OpenDaylight Workshop: ONUG Spring 2014OpenStack and OpenDaylight Workshop: ONUG Spring 2014
OpenStack and OpenDaylight Workshop: ONUG Spring 2014mestery
 

Ähnlich wie OpenFlow Controller Performance Benchmarking and Distributed Control (20)

Dataplane programming with eBPF: architecture and tools
Dataplane programming with eBPF: architecture and toolsDataplane programming with eBPF: architecture and tools
Dataplane programming with eBPF: architecture and tools
 
FlowER Erlang Openflow Controller
FlowER Erlang Openflow ControllerFlowER Erlang Openflow Controller
FlowER Erlang Openflow Controller
 
Introduction to OpenNetwork and SDN
Introduction to OpenNetwork and SDNIntroduction to OpenNetwork and SDN
Introduction to OpenNetwork and SDN
 
CloudStack and SDN
CloudStack and SDNCloudStack and SDN
CloudStack and SDN
 
Harmonia open iris_basic_v0.1
Harmonia open iris_basic_v0.1Harmonia open iris_basic_v0.1
Harmonia open iris_basic_v0.1
 
Open vSwitch Introduction
Open vSwitch IntroductionOpen vSwitch Introduction
Open vSwitch Introduction
 
Open stack with_openflowsdn-torii
Open stack with_openflowsdn-toriiOpen stack with_openflowsdn-torii
Open stack with_openflowsdn-torii
 
Introduction to OpenFlow
Introduction to OpenFlowIntroduction to OpenFlow
Introduction to OpenFlow
 
Kernel Recipes 2015: Solving the Linux storage scalability bottlenecks
Kernel Recipes 2015: Solving the Linux storage scalability bottlenecksKernel Recipes 2015: Solving the Linux storage scalability bottlenecks
Kernel Recipes 2015: Solving the Linux storage scalability bottlenecks
 
Integrating OpenStack To Existing Infrastructure
Integrating OpenStack To Existing InfrastructureIntegrating OpenStack To Existing Infrastructure
Integrating OpenStack To Existing Infrastructure
 
neutron_icehouse_update
neutron_icehouse_updateneutron_icehouse_update
neutron_icehouse_update
 
OpenFlow Tutorial
OpenFlow TutorialOpenFlow Tutorial
OpenFlow Tutorial
 
Virt july-2013-meetup
Virt july-2013-meetupVirt july-2013-meetup
Virt july-2013-meetup
 
Openstack Cactus Survey
Openstack Cactus SurveyOpenstack Cactus Survey
Openstack Cactus Survey
 
Building a Wireless Mesh Network Temperature Sensor
Building a Wireless Mesh Network Temperature SensorBuilding a Wireless Mesh Network Temperature Sensor
Building a Wireless Mesh Network Temperature Sensor
 
Networking in Docker Containers
Networking in Docker ContainersNetworking in Docker Containers
Networking in Docker Containers
 
Kubernetes Workshop
Kubernetes WorkshopKubernetes Workshop
Kubernetes Workshop
 
Openstack Quantum yahoo meetup 1 23-13
Openstack Quantum yahoo meetup 1 23-13Openstack Quantum yahoo meetup 1 23-13
Openstack Quantum yahoo meetup 1 23-13
 
Presentation11
Presentation11Presentation11
Presentation11
 
OpenStack and OpenDaylight Workshop: ONUG Spring 2014
OpenStack and OpenDaylight Workshop: ONUG Spring 2014OpenStack and OpenDaylight Workshop: ONUG Spring 2014
OpenStack and OpenDaylight Workshop: ONUG Spring 2014
 

Kürzlich hochgeladen

Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 

Kürzlich hochgeladen (20)

Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 

OpenFlow Controller Performance Benchmarking and Distributed Control

  • 1. OpenFlow (osho@galibier.org) @oshothebig
  • 3. (Twitter: oshothebig) • • • • , GMPLS, VLAN Tag Swapped Ethernet, , etc.
  • 4. OpenFlow • 4, 5 • Galibier OpenFlow Controller • • 300 Java OpenFlow (http://bit.ly/qXoMGM) • OpenFlow Java (http://bit.ly/pbI3Or)
  • 5. OpenFlow • NOX (Nicira) • Trema (NEC) • Beacon (David Erickson, Stanford University) • Floodlight (BigSwitch Networks?) • Maestro (Rice University) • Nettle (Yale University)
  • 6. NOX • Nicira Networks • http://noxrepo.org/ • C++/Python • GPLv3 •
  • 7. Trema • NEC • https://github.com/trema/trema • C/Ruby • GPLv2 • •
  • 8. Beacon • David Erickson (Stanford University) • http://www.beaconcontroller.net/ • Java • GPL v2 and the Stanford University FOSS License Exception v1.0 • , Web • 2011/9/12 Ver. 1.0.0
  • 9. Floodlight • Big Switch Networks? • http://www.openflowhub.org/display/Floodlight/ Floodlight+is+a+Java-based+OpenFlow+Controller • Java • Apache License • git://github.com/bigswitch/floodlight.git •
  • 10. Beacon Floodlight • Floodlight Beacon • OSS OSGi • Big Switch Networks • git://github.com/bigswitch/BeaconMirror.git ( ) • git://github.com/bigswitch/floodlight.git
  • 11. Maestro • Rice University • http://code.google.com/p/maestro-platform/ • Java • LGPL v2.1 • DAG
  • 12. Nettle • Yale University • http://haskell.cs.yale.edu/?page_id=376 • Haskell • BSD3 • Nettle: Functional Reactive Programming of OpenFlow Networks http://haskell.cs.yale.edu/wp-content/uploads/2011/03/ NettlePADL2011.pdf
  • 14. Applicatioin Application API Controller OpenFlow Open vSwitch Switch
  • 15. OpenFlow • Ver. 1.0.0 http://www.openflow.org/documents/openflow-spec- v1.0.0.pdf Header ver. type length xid payload 22
  • 16. • Symmetric Message • Hello, Echo, , • Controller/Switch Message • , , • Async Message • Packet in, ,
  • 17. Switch Controller
  • 18. Switch Controller
  • 19. Switch Controller HELLO HELLO
  • 20. Switch Controller HELLO HELLO FEATURE_REQUEST FEATURE_REPLY
  • 21. Switch Controller
  • 22. Switch Controller ECHO_REQUEST ECHO_REPLY
  • 23. Switch Controller ECHO_REQUEST ECHO_REPLY ECHO_REQUEST ECHO_REPLY
  • 24. Switch Controller
  • 25. Switch Controller
  • 26. Switch Controller PACKET_IN
  • 27. Switch Controller PACKET_IN PACKET_OUT or FLOW_MOD
  • 28. Galibier OpenFlow Controller • • Mac • Java • OpenFlow : openflowj • IO: Netty • http://github.com/oshothebig/galibier
  • 29.
  • 30. • • • API
  • 31. Header ver. type length xid payload 22 • length (2 bytes) • LengthFieldBasedFrameDecoder
  • 32. Controller ChannelPipeline OpenFlowControllerHandler OpenFlow OpenFlowEncoder OpenFlowDecoder LengthFieldBasedFrameDecoder Netty Internal I/O Threads
  • 33. OpenFlow • → HELLO • HELLO → FEATURE_REQUEST • FEATURE_REPLY → • ECHO_REQUEST → ECHO_REPLY • ECHO_REQUEST
  • 34. HELLO private void handleHello(OFHello in) { send(factory.getMessage(OFType.FEATURES_REQUEST)); }
  • 35. API • switchConnected(Switch sw) • switchDisconnected(Switch sw) • handlePacketIn(Switch sw, OFPacketIn msg) • handleFlowRemoved(Switch sw, OFFlowRemoved msg) • handlePortStatus(Switch sw, OFPortStatus msg)
  • 37. Benchmark for controller • Cbench http://www.openflow.org/wk/index.php/Oflops Cbench Controller
  • 38. Benchmark for controller • Cbench http://www.openflow.org/wk/index.php/Oflops Cbench Controller PACKET_IN PACKET_OUT
  • 39. Benchmark for controller • Cbench http://www.openflow.org/wk/index.php/Oflops Cbench Controller PACKET_IN PACKET_OUT PACKET_IN PACKET_OUT
  • 40. ChannelPipeline OpenFlowBenchmarkHandler OpenFlowEncoder OpenFlowDecoder LengthFieldBasedFrameDecoder Netty Internal I/O Threads
  • 41. • • OpenFlow • Open vSwitch • • API
  • 42. • • • OpenFlow • Logically centralized
  • 43. Onix • OSDI’10 Onix: A Distributed Control Platform for Large-scale Production Networks http://www.usenix.org/event/osdi10/tech/full_papers/ Koponen.pdf • Nicira Networks, Google, NEC •
  • 44. Onix Server 1 Server N Network Control Logic Network Control Logic NIB NIB Onix Switch Import / Export Distribution I / E Distribution I / E Switch Import / Export Management Connectivity Network Infrastructure Managed Physical Network Infrastructure Figure 1: There are four components in an Onix controlled network: managed physical infrastructure, connectivity
  • 45. Onix • Network Information Base (NIB) • Forwarding 1 n Forwarding Category Host Link Table Engine Query Create, dest 1 2 Network Node 1 n Port Access attri Notification Figure 2: The default network entity classes provided by Synchronize • Onix’s API. Solid lines represent inheritance,DB dashed lines while Configuratio correspond to referential relation between entity instances. The numbers on the dashed lines show the quantitative mapping • Transactional(e.g., one Linkdatabase Ports, and two relationship persistent maps to two Pull Ports can map to the same Link). Nodes, ports and links • One-hop, eventually-consistent, memory-only DHT constitute the network topology. All entity classes inherit the same base class providing generic key-value pair access. Table 1: Fu
  • 46. OpenFlow • • OpenFlow • OpenFlow • • API • =OS
  • 47. OpenFlow • OpenFlow • OpenFlow • Onix •