2. WHO AM I
• Hung-Wei Chiu (邱宏瑋)
• hwchiu@linkernetworks.com
• hwchiu.com
• Experience
• Software Engineer at Linker Netowrks
• Software Engineer at Synology (2014~2017)
• Co-Found of SDNDS-TW
• Open Source experience
• SDN related projects (mininet, ONOS, Floodlight, awesome-sdn)
3. OUTLINE
• Before SDN
• Open Source Networking
• Open Compute Project
• What is SDN and ONF
• Experiment
• ONOS
• OVS
• Mininet
7. OPEN COMPUTER PROJECT
• OCP
• Founded 2011
• Global community for Open IT hardware
Network
Storage
Telco
Data Center Server
Open Rack
Hardware
Management
8.
9. OCP, NETWORKING (SCOPE)
• Fully disaggregated and open networking HW & SW
• Operating System – Linux based operating system & developer tools, and ReST API’s
• Fully automated configuration management & bare metal provisioning
• Universal & Multi-Form Factor Switch motherboard hardware
• Fully open integration & connectivity
• Energy efficient power & cooling designs
• Software Defined Networking (SDN)
10. SUB PROJECTS
• Subprojects of OCP Networking
• Open Network Install Environment (ONIE)
• Open Network Linux (ONL)
11. EXAMPLE: WEDGE 100
Facebook Design
CPU intel/AMD/…
ASIC Broadcom/Mellanox/…
Hardware Software
NOS: Open Network Linux
Forwarding Agent: FBOSS
BMC: OpenBMC
Switch as a Server
12. OCP NETWORKING SOFTWARE
• Switch Abstraction Interface – SAI
• Define API to provide a vendor-independent way of controlling forwarding elements, such as a switching ASIC,
and NPU or a software switch in a uniform manner.
• Open Network Linux – ONL
• Linux distribution (Debian) with added driver and configuration for running bare metal switches.
• Open Optical Monitoring – OOM
• Contents of optical module EEEROM accessible to python programmers.
• Open Network Install Environment – ONIE
• Open install environment for bare metal network switch
• ONIE enable a bare metal network switch ecosystem where end users have a choice among different network
operation systems
13. BUILDING ON BARE METAL
Bare metal
switch
Bare metal
switch
U-Boot & ONIE
Bare metal
switch
U-Boot & ONIE
Network OS
Bare metal
switch
U-Boot & ONIE
Network OS
Application
Bare metal
switch
Bare metal
server
U-Boot & PXE
Bare metal
server
U-Boot & PXE
Linux,Windows, etc
Bare metal
server
U-Boot & PXE
Linux,Windows, etc
Application
Server
Switch
19. WHITE BOX SWITCH MODEL
Switch
Data Plane
Control Plane
Applications
Switch
Data Plane
Switch
Data Plane
Linux OS
Applications
Switch
Control Plane
Applications
Control
Protocol
Traditional Switch
SDN-based System
Open Networking Switch
20. SDN
• Software-Defined Networking (SDN)
• The physical separation of the network control plane from the forwarding plane, and
where a control plane controls several devices.
21. THE SDN ARCHITECTURE
• DIRECTLY PROGRAMMABLE
• AGILE
• CENTRALLY MANAGED
• PROGRAMMATICALLY CONFIGURED
• OPEN STANDARDS-BASED AND
VENDOR-NEUTRAL
22. BASIC MODEL OF SDN
• Service Customer
• Manage-control network services via
SDN controller
• Send/receive data using network
resources.
• Network/Service Provider
24. ONF
• Open Networking Foundation
• Non-profit organization
• Led consortium driving transformation of network infrastructure.
• Serves as the umbrella for a number of projects building solutions
• Leveraging network disaggregation
• White box economics
• Open source software
• Software defined standards
29. THE ECOSYSTEM
• 200+ Members Strong
Vibrant Operator Led Consortium Positioned for Success
• PARTNER
• COLLABORATING INNOVATOR
• INNOVATOR
• COLLABORATOR
30. THE ECOSYSTEM
Partner
Innovator 110+
VolunteerVolunteers
Collaborator
Operators (7) Vendors (10)
70+
100s
ONF (& Stanford) Guru Parulkar
Network Operators
AT&T Andre Fuetsch – CTO
Google Urs Hölzle – SVP
NTT Comm Dai Kashiwa – Director
Comcast Rob Howald– VP
Verizon Srini Kalapala – VP
China Unicom Shao Guanglu - SVP
Research & Vendor Community
Nick McKeown Stanford
Fabian Schneider NEC
New ONF Board
Including 14 Operators:
Argela/Turk Telecom Microsoft
China Mobile Swisscom
SK Telecom Telecom Italia
ECI Telecom Telefonica
Facebook TELUS
Globe Telecom Vodafone
Goldman Sachs Yahoo
38. ARCHITECTURAL TENETS
• High-availability, scalability and performance
• Strong abstractions and simplicity to develops apps and solutions
• Protocol and device behavior independence
• Separation of concerns and modularity
40. OPENFLOW
• Appear in 2008
• The most famous northbound API in SDN
• OpenFlow not equal SDN
• Just a communication protocol in SDN.
• Defined how control plan talk to forward plan.
41.
42. OPENFLOW RULE
L2 headers L3 headers L4 headersSwitch port
● Forward/Flood
● Drop
● Modify header
● Local
● Forward to Controller
Packer bytes/counts
Match Action Statistics
43. L2 FORWARDING
src_MAC L3 headers L4 headersSwitch port dst_MAC Action
* * 00:11:32:aa:bb:cc * * Forward port 6
src_MAC L3 headers L4 headersSwitch port dst_MAC Action
* * * * * Normal
44. L3 FORWARDING
L2 headers dst_ip L4 headersSwitch port src_ip Action
1 * 140.113.123.234 140.114.123.234 *
Forward port
4
47. HISTORY
• 2008
• First paper about OpenFlow (SDN)
• OpenFlow: enabling innovation in campus networks
• Nick McKeown setup a Nicira company
• Open vSwitch + OpenFlow = NVP (NetworkVirtualization Platform)
49. INTRODUCTION
• Hypervisors need to bridge traffic.
• We can use Linux bridge do it.
• So,Why do we need Open vSwitch
• Targeted multi-server virtualization.
• Responding to network dynamics
• Maintenance of logical tags
• Hardware integration
53. ALL IN ONE
• Iptables/ebtables won’t work anymore
• Packet won’t pass netfilter now.
• Use Openflow to control packets.
• Also support some complicated operation in native port (without openflow)
• VLAN
• Bonding
• Overlay network
54. HOW OPENVSWITCH WORKS.
• Control Packets by OpenFlow
• Support different port types
• Bonding
• Overlay netwokrs
• VLAN/MPLS
• Some features support by linux kernel
• Traffic Control (Queue)
• Conntrack
• NAT
55. WHO CONTROL RULES
• For OpenvSwitch, you can use following approaches
• Command line tool
• ovs-ofctl add-flows
• Openflow controller
• Push openflow rules via tcp
56. COMMAND LINE
• ovs-ofctl add-flow br1 “xxxxxxxxxxxxxxxxxxxxxxxx”
• ovs-ofctl add-flows br1 filename
• You can put all flows in a file and inert them at once.
• ovs-ofctl del-flows br1 “xxxxxxx”
57. SDN CONTROLLER
• SDN Brain
• Centralized control all SDN network devices.
• Communicate with network devices via northbound API
• OpenFlow/SNMP/OVSDB/NetConf/gRPC
• OpenFlow != SDN again.
59. OPENVSWITCH
• Support connection mode
• Standalone
• Without Controller, OVS has a default rules.
• Controller
• Need to setup controller’s IP:Port
60. STANDALONE MODE
• Default rules is
• Match: any
• Do: action:Normal
• Normal means L2 forwarding.
• Open vSwitch will be same as the Linux Bridge if it’s in standalone mode.
61. HOW TO USE OPENVSWITCH
• Create ovs bridge (we call it datapath)
• ovs-vsctl add-br br0
• Attach existing port to OVS
• ovs-vsctl add-port br0 eth0
• Dump flows
• ovs-ofctl dump-flows br0
63. WHAT
• Mininet is a network emulator
• Mininiet create a realistic virtul network, running real kernel, switch and application code,
on a single machine (VM, cloud or natvie)
70. RESET
• Reset your environment and start the ONOS controller
• Click ONOS GUI
71. MININET
• Click the miniet icon to simulate a network topology and connect all switches to ONOS
controller.
• Switch to the ONOS GUI and you can see six switches there.
• Use ‘l’ to show the switch id.
• In the mininet terminal, type h11 ping h41
• In the ONOS Gui, type ‘h’ to show host.
72. ONOS
• Click the ONOS terminal icon to start ONOS CLI
• Type “apps –a –s “ to see all activated applications.
• Type “app activate org.onosproject.fwd” to enable forwarding function for ONOS.
• Back to miniet prompt and you can see the ping works now.
• You can also see second hosts on ONOS GUI.
73. MININT
• Useful command
• links
• link s2 s11 down (down the link and you can see that change it ONOS GUI)
• nodes
• node name + ${common command}
• h11 ifconfig
• iperf h11 h4
• Use iperf to generate traffic.
74. ONOS
• Commands
• Show devices
• devices
• Show links
• links
• Show know hosts
• hosts
• Show flow rules
• flows
• Show shortest paths between each node
• Paths {node1} {node2}
75. OVS
• You can also create new tab and type following command to see ovs status.
• sudo ovs-vsctl show
• sudo ovs-ofctl dump-flows s11
76. SDNDS + CLOUD NATIVE USER GROUP
• Do you have interested in
• SDN
• Ceph
• OpenStack
• Kubernetes
• Join this meetup to learn more about.
• https://www.meetup.com/Cloud-Native-User-Group-Taiwan/events/245495423/