SlideShare a Scribd company logo
OpenFlow



     (@oshothebig)
•
•
    •
•
    •               , GMPLS, VLAN tag swapped
        Ethernet,               , etc.
OpenFlow
• Galibier OpenFlow Controller
  • https://github.com/oshothebig/galibier
•
    • 300                     Java    OpenFlow
             (http://bit.ly/qXoMGM)

    • OpenFlow                               Java
     (http://bit.ly/pbI3Or)
OpenFlow
Application      Application      Application



                 Controller
                                   OpenFlow



Switch        Switch     Switch       Switch
OpenFlow

                  • NEC UNIVERGE PF5240/
                   PF5820
• Reference       • Pronto Systems
 Implementation
                   3240/3290
• Open vSwitch    • IBM RackSwitch G8264
                  • HP 3500/5400/8200
OpenFlow

      NOX                   NEC
     Trema            Nicira Networks
Beacon/Floodlight   Big Switch Networks
      Ryu                Midokura
   NodeFlow              NTT Data
      etc.                   etc.
NOX
•   http://noxrepo.org/
•   GPL v3
•   Nicira Networks
•   C++/Python
•
    •
•
    • 2011/1/1            53
Trema
•   https://github.com/trema/trema
•   GPL v2
•   NEC
•   C/Ruby
•
    • 1      PC
•
Beacon/Floodlight
• http://www.beaconcontroller.net/ (Beacon)
    http:// oodlight.open owhub.org/ (Floodlight)

            Beacon                         Floodlight

                     GPL v2        Apache License Version 2.0

                                Java

    David Erickson (Stanford)          Big Switch Networks

•          IO
    600   Flow req/sec        @4                  (Beacon)
Ryu
• http://www.osrg.net/ryu/
• GPL v3
• NTT(                       ?) VA Linux
• Pure Python
• OpenStack
NodeFlow
•   http://github.com/gaberger/NodeFLow
•   MIT Licenes
•   Gary Berger
•   JavaScript (for Node.js)
Openflow勉強会 「OpenFlowコントローラを取り巻く状況とその実装」
Trema
   NEC
             UNIVERGE PF


Big Switch    Floodlight   BigController?


                NOX
  Nicira
                NVP?
Floodlight
• 12
    https://github.com/ oodlight/ oodlight
• Beacon
  •
  • OSGi
  • Netty
•                →T
Floodlight
• 12
    https://github.com/ oodlight/ oodlight
• Beacon
  •
  • OSGi
  • Netty
•                →T
Nicira Networks
• 2                                    (by Publickey)
    http://www.publickey1.jp/blog/11/nicira_networks.html
• NTT
    http://www.ntt.co.jp/news2011/1108/110802a.html
•   Nicira Virtualization Platform (NVP)
    http://cn.teldevice.co.jp/product/nicira/nicira_nvp/
    index.html
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, UC Berkeley
•
    • Zookeeper
• 15         C++
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
    •   Transactionalthe dashed linesdatabase
            numbers on persistent show the quantitative mapping
            relationship (e.g., one Link maps to two Ports, and two          Pull
    •   One-hop, can map to the same Link). Nodes, ports and links DHT
            Ports eventually-consistent, memory-only
            constitute the network topology. All entity classes inherit the
            same base class providing generic key-value pair access.          Table 1: Fu
OpenFlow
•
•
•
•
• Symmetric Message
  • Hello, Echo,       ,

• Controller/Switch Message
  •                ,           ,

• Async Message
  • Packet in,             ,
Header
ver.   type      length        xid           payload


       22
• length (2 bytes)
• Netty       LengthFieldBasedFrameDecoder

  • Floodlight
Floodlight
ChannelPipeline                     Controller


        OFChannelHandler          OpenFlow


        OFMessageEncoder


       OFMessageDecoder



     Netty Internal I/O Threads
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
Controller.java (          OFChannelHandler)


protected void processOFMessage(OFMessage m)
        throws IOException, SwitchStateException {
  switch (m.getType()) {
    case HELLO: ....
    case ECHO_REQUEST: ....
    case FEATURES_REPLY: ....
    default: ....
}
※ Trema       src/switch_manager/ofpmsg_recv.c:
ofpmsg_recv()
Switch   Controller
Switch   Controller
Switch               Controller



         PACKET_IN
Switch               Controller



         PACKET_IN



   PACKET_OUT or FLOW_MOD
Controller.java

protected void handleMessage(
  IOFSwitch sw, OFMessage m,
  FloodlightContext bContext) {
  switch (m.getType()) {
    case PACKET_IN: ....
    default: ....
}

default
OpenFlow
• OpenFlow 1.1
  •                   1.0
• Ver. 1.1
  • Ver. 1.1
  •
•          Ver. 1.2
  •
• OpenFlow
•
• OpenFlow
    • Floodlight
•   Open vSwitch
Openflow勉強会 「OpenFlowコントローラを取り巻く状況とその実装」

More Related Content

PDF
第2回クラウドネットワーク研究会 「OpenFlowコントローラとその実装」
PDF
Openstack Networking and ML2
PPTX
OpenFlow Extensions
PDF
OpenStack Neutron new developers on boarding
PPTX
Open stackaustinmeetupsept21
PDF
rtnetlink
PDF
OpenStack Neutron 201 1hr
PDF
The Openflow Soft Switch
第2回クラウドネットワーク研究会 「OpenFlowコントローラとその実装」
Openstack Networking and ML2
OpenFlow Extensions
OpenStack Neutron new developers on boarding
Open stackaustinmeetupsept21
rtnetlink
OpenStack Neutron 201 1hr
The Openflow Soft Switch

What's hot (20)

PDF
OpenStack Neutron Liberty Updates
PPTX
How to write a Neutron Plugin - if you really need to
PDF
OpenStack Networking
PPTX
Openflow overview
PPTX
Building the Internet of Things with Thingsquare and Contiki - day 1, part 2
PPTX
2014 OpenStack Summit - Neutron OVS to LinuxBridge Migration
PPTX
OpenFlow
PPTX
OpenStack: Virtual Routers On Compute Nodes
PDF
An Overview of Linux Networking Options
PDF
Open Network Operating System
PPTX
Training open stack networking -neutron
PDF
Introduction to Software Defined Networking and OpenStack Neutron
PPTX
Networking in Openstack - Neutron 101
PPTX
Openstack Quantum Security Groups Session
PDF
IPSN 2009 Contiki / uIP tutorial
PDF
OpenStack Neutron Advanced Services by Akanda
PPTX
OpenFlow Switch Management using NETCONF and YANG
PDF
Network virtualization with open stack quantum
PPTX
PDF
03 Make Things Talk
OpenStack Neutron Liberty Updates
How to write a Neutron Plugin - if you really need to
OpenStack Networking
Openflow overview
Building the Internet of Things with Thingsquare and Contiki - day 1, part 2
2014 OpenStack Summit - Neutron OVS to LinuxBridge Migration
OpenFlow
OpenStack: Virtual Routers On Compute Nodes
An Overview of Linux Networking Options
Open Network Operating System
Training open stack networking -neutron
Introduction to Software Defined Networking and OpenStack Neutron
Networking in Openstack - Neutron 101
Openstack Quantum Security Groups Session
IPSN 2009 Contiki / uIP tutorial
OpenStack Neutron Advanced Services by Akanda
OpenFlow Switch Management using NETCONF and YANG
Network virtualization with open stack quantum
03 Make Things Talk
Ad

Similar to Openflow勉強会 「OpenFlowコントローラを取り巻く状況とその実装」 (20)

PPTX
FlowER Erlang Openflow Controller
PDF
Open stack with_openflowsdn-torii
PPT
CloudStack and SDN
PPTX
Harmonia open iris_basic_v0.1
PPTX
OpenStack and OpenFlow Demos
PDF
neutron_icehouse_update
PDF
software defined network, openflow protocol and its controllers
PPTX
OpenDaylight Netvirt and Neutron - Mike Kolesnik, Josh Hershberg - OpenStack ...
PDF
SDN & NFV Introduction - Open Source Data Center Networking
PDF
Network Virtualization & Software-defined Networking
PDF
Introduction to SDN
PPT
OpenFlow Tutorial
PPTX
Presentation11
PDF
Openstack Networking Internals - first part
PPT
PDF
Quantum - Virtual networks for Openstack
PDF
NFV Infrastructure Manager with High Performance Software Switch Lagopus
PPTX
Openstack Quantum yahoo meetup 1 23-13
PPTX
Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...
PPTX
OpenStack Introduction
FlowER Erlang Openflow Controller
Open stack with_openflowsdn-torii
CloudStack and SDN
Harmonia open iris_basic_v0.1
OpenStack and OpenFlow Demos
neutron_icehouse_update
software defined network, openflow protocol and its controllers
OpenDaylight Netvirt and Neutron - Mike Kolesnik, Josh Hershberg - OpenStack ...
SDN & NFV Introduction - Open Source Data Center Networking
Network Virtualization & Software-defined Networking
Introduction to SDN
OpenFlow Tutorial
Presentation11
Openstack Networking Internals - first part
Quantum - Virtual networks for Openstack
NFV Infrastructure Manager with High Performance Software Switch Lagopus
Openstack Quantum yahoo meetup 1 23-13
Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...
OpenStack Introduction
Ad

Recently uploaded (20)

PDF
Approach and Philosophy of On baking technology
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
TLE Review Electricity (Electricity).pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPT
Teaching material agriculture food technology
PPTX
Tartificialntelligence_presentation.pptx
PDF
Heart disease approach using modified random forest and particle swarm optimi...
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Getting Started with Data Integration: FME Form 101
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
A comparative study of natural language inference in Swahili using monolingua...
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Machine learning based COVID-19 study performance prediction
Approach and Philosophy of On baking technology
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Spectral efficient network and resource selection model in 5G networks
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
TLE Review Electricity (Electricity).pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
Teaching material agriculture food technology
Tartificialntelligence_presentation.pptx
Heart disease approach using modified random forest and particle swarm optimi...
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Getting Started with Data Integration: FME Form 101
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
Univ-Connecticut-ChatGPT-Presentaion.pdf
A comparative study of natural language inference in Swahili using monolingua...
Programs and apps: productivity, graphics, security and other tools
Digital-Transformation-Roadmap-for-Companies.pptx
Unlocking AI with Model Context Protocol (MCP)
Machine learning based COVID-19 study performance prediction

Openflow勉強会 「OpenFlowコントローラを取り巻く状況とその実装」

  • 1. OpenFlow (@oshothebig)
  • 2. • • • • • , GMPLS, VLAN tag swapped Ethernet, , etc.
  • 3. OpenFlow • Galibier OpenFlow Controller • https://github.com/oshothebig/galibier • • 300 Java OpenFlow (http://bit.ly/qXoMGM) • OpenFlow Java (http://bit.ly/pbI3Or)
  • 4. OpenFlow Application Application Application Controller OpenFlow Switch Switch Switch Switch
  • 5. OpenFlow • NEC UNIVERGE PF5240/ PF5820 • Reference • Pronto Systems Implementation 3240/3290 • Open vSwitch • IBM RackSwitch G8264 • HP 3500/5400/8200
  • 6. OpenFlow NOX NEC Trema Nicira Networks Beacon/Floodlight Big Switch Networks Ryu Midokura NodeFlow NTT Data etc. etc.
  • 7. NOX • http://noxrepo.org/ • GPL v3 • Nicira Networks • C++/Python • • • • 2011/1/1 53
  • 8. Trema • https://github.com/trema/trema • GPL v2 • NEC • C/Ruby • • 1 PC •
  • 9. Beacon/Floodlight • http://www.beaconcontroller.net/ (Beacon) http:// oodlight.open owhub.org/ (Floodlight) Beacon Floodlight GPL v2 Apache License Version 2.0 Java David Erickson (Stanford) Big Switch Networks • IO 600 Flow req/sec @4 (Beacon)
  • 10. Ryu • http://www.osrg.net/ryu/ • GPL v3 • NTT( ?) VA Linux • Pure Python • OpenStack
  • 11. NodeFlow • http://github.com/gaberger/NodeFLow • MIT Licenes • Gary Berger • JavaScript (for Node.js)
  • 13. Trema NEC UNIVERGE PF Big Switch Floodlight BigController? NOX Nicira NVP?
  • 14. Floodlight • 12 https://github.com/ oodlight/ oodlight • Beacon • • OSGi • Netty • →T
  • 15. Floodlight • 12 https://github.com/ oodlight/ oodlight • Beacon • • OSGi • Netty • →T
  • 16. Nicira Networks • 2 (by Publickey) http://www.publickey1.jp/blog/11/nicira_networks.html • NTT http://www.ntt.co.jp/news2011/1108/110802a.html • Nicira Virtualization Platform (NVP) http://cn.teldevice.co.jp/product/nicira/nicira_nvp/ index.html
  • 17. 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, UC Berkeley • • Zookeeper • 15 C++
  • 18. 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
  • 19. 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 • Transactionalthe dashed linesdatabase numbers on persistent show the quantitative mapping relationship (e.g., one Link maps to two Ports, and two Pull • One-hop, can map to the same Link). Nodes, ports and links DHT Ports eventually-consistent, memory-only constitute the network topology. All entity classes inherit the same base class providing generic key-value pair access. Table 1: Fu
  • 22. • Symmetric Message • Hello, Echo, , • Controller/Switch Message • , , • Async Message • Packet in, ,
  • 23. Header ver. type length xid payload 22 • length (2 bytes) • Netty LengthFieldBasedFrameDecoder • Floodlight
  • 24. Floodlight ChannelPipeline Controller OFChannelHandler OpenFlow OFMessageEncoder OFMessageDecoder Netty Internal I/O Threads
  • 25. Switch Controller
  • 26. Switch Controller
  • 27. Switch Controller HELLO HELLO
  • 28. Switch Controller HELLO HELLO FEATURE_REQUEST FEATURE_REPLY
  • 29. Switch Controller
  • 30. Switch Controller ECHO_REQUEST ECHO_REPLY
  • 31. Switch Controller ECHO_REQUEST ECHO_REPLY ECHO_REQUEST ECHO_REPLY
  • 32. Controller.java ( OFChannelHandler) protected void processOFMessage(OFMessage m) throws IOException, SwitchStateException { switch (m.getType()) { case HELLO: .... case ECHO_REQUEST: .... case FEATURES_REPLY: .... default: .... } ※ Trema src/switch_manager/ofpmsg_recv.c: ofpmsg_recv()
  • 33. Switch Controller
  • 34. Switch Controller
  • 35. Switch Controller PACKET_IN
  • 36. Switch Controller PACKET_IN PACKET_OUT or FLOW_MOD
  • 37. Controller.java protected void handleMessage( IOFSwitch sw, OFMessage m, FloodlightContext bContext) { switch (m.getType()) { case PACKET_IN: .... default: .... } default
  • 38. OpenFlow • OpenFlow 1.1 • 1.0 • Ver. 1.1 • Ver. 1.1 • • Ver. 1.2 •
  • 40. Open vSwitch