SlideShare a Scribd company logo
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

More Related Content

What's hot

04 android
04 android04 android
04 android
guru472
 
Open Source Swift Under the Hood
Open Source Swift Under the HoodOpen Source Swift Under the Hood
Open Source Swift Under the Hood
C4Media
 
03 Make Things Talk
03 Make Things Talk03 Make Things Talk
03 Make Things Talk
Mr.Nukoon Phimsen
 
IPSN 2009 Contiki / uIP tutorial
IPSN 2009 Contiki / uIP tutorialIPSN 2009 Contiki / uIP tutorial
IPSN 2009 Contiki / uIP tutorial
adamdunkels
 
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
markmcclain
 
Swift - Under the Hood
Swift - Under the HoodSwift - Under the Hood
Swift - Under the Hood
C4Media
 
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
Alex Blewitt
 
Understanding OpenFlow
Understanding OpenFlowUnderstanding OpenFlow
Understanding OpenFlow
Saurabh Agarwal
 
OpenFlow tutorial
OpenFlow tutorialOpenFlow tutorial
OpenFlow tutorial
openflow
 
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
Juergen Brendel
 
ONOS Open Network Operating System
ONOS Open Network Operating SystemONOS Open Network Operating System
ONOS Open Network Operating System
ON.Lab
 
Implementing MPLS Services using Openflow
Implementing MPLS Services using OpenflowImplementing MPLS Services using Openflow
Implementing MPLS Services using Openflow
APNIC
 
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
Stefano Salsano
 
Yang in OpenDaylight
Yang in OpenDaylightYang in OpenDaylight
Yang in OpenDaylight
Gunjan Patel
 
SDN – Hybrid architecture
SDN – Hybrid architectureSDN – Hybrid architecture
SDN – Hybrid architecture
Elena Verizhnikova
 
Scalable Networking
Scalable NetworkingScalable Networking
Scalable Networking
l xf
 
Operating System fo IoT
Operating System fo IoTOperating System fo IoT
Operating System fo IoT
Pradeep Kumar TS
 
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
SensePost
 
Ryu: network operating system
Ryu: network operating systemRyu: network operating system
Ryu: network operating system
Isaku Yamahata
 
Bgpcep odl summit 2015
Bgpcep odl summit 2015Bgpcep odl summit 2015
Bgpcep odl summit 2015
Giles Heron
 

What's hot (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
 

Similar to 第2回クラウドネットワーク研究会 「OpenFlowコントローラとその実装」

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
Stefano Salsano
 
FlowER Erlang Openflow Controller
FlowER Erlang Openflow ControllerFlowER Erlang Openflow Controller
FlowER Erlang Openflow Controller
Holger Winkelmann
 
Introduction to OpenNetwork and SDN
Introduction to OpenNetwork and SDNIntroduction to OpenNetwork and SDN
Introduction to OpenNetwork and SDN
HungWei Chiu
 
CloudStack and SDN
CloudStack and SDNCloudStack and SDN
CloudStack and SDN
Sebastien Goasguen
 
Harmonia open iris_basic_v0.1
Harmonia open iris_basic_v0.1Harmonia open iris_basic_v0.1
Harmonia open iris_basic_v0.1
Yongyoon Shin
 
Open vSwitch Introduction
Open vSwitch IntroductionOpen vSwitch Introduction
Open vSwitch Introduction
HungWei Chiu
 
Open stack with_openflowsdn-torii
Open stack with_openflowsdn-toriiOpen stack with_openflowsdn-torii
Open stack with_openflowsdn-torii
Hui Cheng
 
Introduction to OpenFlow
Introduction to OpenFlowIntroduction to OpenFlow
Introduction to OpenFlow
Joel 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 bottlenecks
Anne Nicolas
 
Integrating OpenStack To Existing Infrastructure
Integrating OpenStack To Existing InfrastructureIntegrating OpenStack To Existing Infrastructure
Integrating OpenStack To Existing Infrastructure
Hui Cheng
 
neutron_icehouse_update
neutron_icehouse_updateneutron_icehouse_update
neutron_icehouse_update
Akihiro Motoki
 
OpenFlow Tutorial
OpenFlow TutorialOpenFlow Tutorial
OpenFlow Tutorial
Ja-seop Kwak
 
Virt july-2013-meetup
Virt july-2013-meetupVirt july-2013-meetup
Virt july-2013-meetup
nvirters
 
Openstack Cactus Survey
Openstack Cactus SurveyOpenstack Cactus Survey
Openstack Cactus Survey
Pjack 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 Sensor
michaelpigg
 
Networking in Docker Containers
Networking in Docker ContainersNetworking in Docker Containers
Networking in Docker Containers
Attila Kanto
 
Kubernetes Workshop
Kubernetes WorkshopKubernetes Workshop
Kubernetes Workshop
loodse
 
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
Dan Wendlandt
 
Presentation11
Presentation11Presentation11
Presentation11
KellyCheah
 
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
mestery
 

Similar to 第2回クラウドネットワーク研究会 「OpenFlowコントローラとその実装」 (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
 

Recently uploaded

LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 

Recently uploaded (20)

LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 

第2回クラウドネットワーク研究会 「OpenFlowコントローラとその実装」

  • 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 •