Post on 15-Jul-2015
transcript
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
NSDB NSDB
NSDB
Open vSwitch Datapath
IF IF
Interfaces on the hostIF
VM VM VM Midolman(MidoNet
agent)
Network
Flow Table
MidoNet APINova API
Horizon MidoNet CLI
Watch/modify
Add/remove flows
Neutron API
MidoNet Plugin
Host
Cache
Store virtual topology
information
Clients / Users
Nova compute
GRE/VXLAN Tunneling
NSDB NSDB
NSDB
PrivateNetwork
Host
Midolman
CacheDatapath
VM VM VM
Flow Table
Nova compute
MidoNet APINova API
Horizon MidoNet CLI
Neutron API
MidoNet Plugin
Clients / Users
Host
Midolman
CacheDatapath
VM VM VM
Flow Table
Nova compute
BGP Gateway
Midolman
Datapath
Flow Table
BGP Gateway
Midolman
Datapath
Flow Table
GRE/VXLAN Tunneling
Internet
NSDB and Cluster API
NSDB NSDB
NSDB
Open vSwitch Datapath
IF IF
Interfaces on the hostIF
VM VM VM Midolman(MidoNet
agent)
Network
Flow Table
MidoNet APINova API
Horizon MidoNet CLI
Watch/modify
Add/remove flows
Neutron API
MidoNet Plugin
Host
Cache
Store virtual topology
information
Clients / Users
Nova compute
NSDB and Cluster API
OpenStack integration and APIsNSDB NSDB
NSDB
Open vSwitch Datapath
IF IF
Interfaces on the hostIF
VM VM VM Midolman(MidoNet
agent)
Network
Flow Table
MidoNet APINova API
Horizon MidoNet CLI
Watch/modify
Add/remove flows
Neutron API
MidoNet Plugin
Host
Cache
Store virtual topology
information
Clients / Users
Nova compute
OpenStack integration
and MidoNet API
BGP with ECMP
NSDB NSDB
NSDB
PrivateNetwork
Host
Midolman
CacheDatapath
VM VM VM
Flow Table
Nova compute
MidoNet APINova API
Horizon MidoNet CLI
Neutron API
MidoNet Plugin
Clients / Users
Host
Midolman
CacheDatapath
VM VM VM
Flow Table
Nova compute
BGP Gateway
Midolman
Datapath
Flow Table
BGP Gateway
Midolman
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/
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?