Introduction to MidoNet

Post on 15-Jul-2015

501 views 2 download

Tags:

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/

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?