Introduction to
midonet
Taku Fukushima
Agenda
1. What is MidoNet?
2. Architecture
3. Community
4. Summary
What is MidoNet?
Why do we need MidoNet?
• Demands for the virtualised networking
• Faster and more flexible provisioning
• Cloud IaaS requires virtualised networking
• Multi-tenancy
• Complete software-based solution
MidoNet Features
• L2- L3 Logical Switching
• Logical Routing
• State-less and Stateful NAT
• Logical and distributed Firewall
• L4 Load Balancing
• BGP and its ECMP multiplexing
• GRE and VXLAN tunneling
MidoNet Features
• OpenStack Neutron integration and MidoStack
• REST API
• VTEP support with OVSDB protocol
• Partial Docker integration
History of MidoNet (a dev’s perspective)
• Started with Midolman written in Python,
OpenStack Austin, Open vSwitch (including
userland)
• MidoNet 1.x
• Re-written with Java
• Scala was partially introduced
• Open-sourced in Nov, 2014 New!
• MidoNet 2.0 (WIP)
Architecture
Architecture
Overview
Datapath control via Netlink by Midolman
Open vSwitch Datapath
IF IF
Interfaces on the host
IF
VM VM VM Midolman
(MidoNet
agent)
Flow Table
Watch/modify
Add/remove flows
Host
Cache
Store virtu
Nova compute
GRE/VXLAN Tunneling
NSDB NSDB
NSDB
Private
Network
Host
Midol
man
Cache
Datapath
VM VM VM
Flow Table
Nova compute
MidoNet APINova
API
Neutron API
MidoNet Plugin
Host
Midol
man
Cache
Datapath
VM VM VM
Flow Table
Nova compute
BGP Gateway
Midol
man
Datapath
Flow Table
BGP Gateway
Midol
man
Datapath
Flow Table
GRE/VXLAN Tunneling
Internet
NSDB and Cluster API
NSDB NSDB
NSDB
dd/remove flows
Store virtual
topology
information
NSDB and Cluster API
OpenStack integration and APIs
NSDB
NSDB
Network
MidoNet APINova
API
Horizon MidoNet CLI
Add/remove flows
Neutron API
MidoNet Plugin
Host
Clients / Users
OpenStack
integration
and
MidoNet API
BGP with ECMP
NSDB NSDB
NSDB
Private
Network
Host
Midol
man
Cache
Datapath
VM VM VM
Flow Table
Nova compute
MidoNet APINova
API
Neutron API
MidoNet Plugin
Host
Midol
man
Cache
Datapath
VM VM VM
Flow Table
Nova compute
BGP Gateway
Midol
man
Datapath
Flow Table
BGP Gateway
Midol
man
Datapath
Flow Table
GRE/VXLAN Tunneling
Internet
Community
Entering MidoNet community
• Slack (midonet.slack.com)
• Mailing list
• Midolman code walkthrough
• Code walk-through videos
• GerritHub
• Code review + CI with several tests
Documentation and help
• Wiki
• wiki.midonet.org
• Documentations
• docs.midonet.org
• JIRA (Issue Tracker)
• https://midonet.atlassian.net/
http://lists.midonet.org/pipermail/midonet-dev/
Summary
MidoNet rocks
• True distributed architecture
• Intelligence at the edge
• Open-sourced under Apache License v2
• Growing community and ecosystem
The end of slides.
Any questions?

Introduction to MidoNet

  • 1.
  • 2.
    Agenda 1. What isMidoNet? 2. Architecture 3. Community 4. Summary
  • 3.
  • 4.
    Why do weneed MidoNet? • Demands for the virtualised networking • Faster and more flexible provisioning • Cloud IaaS requires virtualised networking • Multi-tenancy • Complete software-based solution
  • 5.
    MidoNet Features • L2-L3 Logical Switching • Logical Routing • State-less and Stateful NAT • Logical and distributed Firewall • L4 Load Balancing • BGP and its ECMP multiplexing • GRE and VXLAN tunneling
  • 6.
    MidoNet Features • OpenStackNeutron integration and MidoStack • REST API • VTEP support with OVSDB protocol • Partial Docker integration
  • 7.
    History of MidoNet(a dev’s perspective) • Started with Midolman written in Python, OpenStack Austin, Open vSwitch (including userland) • MidoNet 1.x • Re-written with Java • Scala was partially introduced • Open-sourced in Nov, 2014 New! • MidoNet 2.0 (WIP)
  • 9.
  • 11.
  • 12.
    Datapath control viaNetlink by Midolman Open vSwitch Datapath IF IF Interfaces on the host IF VM VM VM Midolman (MidoNet agent) Flow Table Watch/modify Add/remove flows Host Cache Store virtu Nova compute
  • 13.
    GRE/VXLAN Tunneling NSDB NSDB NSDB Private Network Host Midol man Cache Datapath VMVM VM Flow Table Nova compute MidoNet APINova API Neutron API MidoNet Plugin Host Midol man Cache Datapath VM VM VM Flow Table Nova compute BGP Gateway Midol man Datapath Flow Table BGP Gateway Midol man Datapath Flow Table GRE/VXLAN Tunneling Internet
  • 14.
    NSDB and ClusterAPI NSDB NSDB NSDB dd/remove flows Store virtual topology information NSDB and Cluster API
  • 15.
    OpenStack integration andAPIs NSDB NSDB Network MidoNet APINova API Horizon MidoNet CLI Add/remove flows Neutron API MidoNet Plugin Host Clients / Users OpenStack integration and MidoNet API
  • 16.
    BGP with ECMP NSDBNSDB NSDB Private Network Host Midol man Cache Datapath VM VM VM Flow Table Nova compute MidoNet APINova API Neutron API MidoNet Plugin Host Midol man Cache Datapath VM VM VM Flow Table Nova compute BGP Gateway Midol man Datapath Flow Table BGP Gateway Midol man Datapath Flow Table GRE/VXLAN Tunneling Internet
  • 19.
  • 20.
    Entering MidoNet community •Slack (midonet.slack.com) • Mailing list • Midolman code walkthrough • Code walk-through videos • GerritHub • Code review + CI with several tests
  • 21.
    Documentation and help •Wiki • wiki.midonet.org • Documentations • docs.midonet.org • JIRA (Issue Tracker) • https://midonet.atlassian.net/
  • 23.
  • 26.
  • 27.
    MidoNet rocks • Truedistributed architecture • Intelligence at the edge • Open-sourced under Apache License v2 • Growing community and ecosystem
  • 28.
    The end ofslides. Any questions?