4. 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
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
• OpenStack Neutron 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)
12. 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
13. 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
14. NSDB and Cluster API
NSDB NSDB
NSDB
dd/remove flows
Store virtual
topology
information
NSDB and Cluster API
15. 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
16. 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