Fully Scalable Networking with MidoNet
Sandro MathysCommunity Manager
Sandro Mathys
⚫ Swiss but living in Tokyo, Japan⚫ MidoNet Community Manager at Midokura⚫ Former Linux Systems Engineer⚫ Long standing contributor to Fedora & RDO⚫ Twitter / IRC: red_trela, Slack: red⚫ E-Mail: [email protected]
Agenda
1. Self Introduction2. Open vSwitch vs MidoNet3. MidoNet Advantages4. Understanding MidoNet5. MidoNet Community
Open vSwitchvs MidoNet
Neutron Plugin Comparison
Neutron Open vSwitch (OVS) Plugin Architecture
MidoNet (MN) Architecture
OVS: Centralized Controller Model (I)
MN: Distributed Controller Model
OVS: Centralized Controller Model (II)
MN: Distributed Edge Model
OVS: Active / Standby Gateway Model
MN: Fully Distributed Gateway Model
MidoNet Advantages
Overview
Distributed Networking Services
⚫ Logical Switching⚫ Logical Routing⚫ Logical Firewall⚫ Logical Layer 4 Load Balancer⚫ MidoNet API
Distributed Controller
⚫ Resiliency: No Single Point of Failure (SPOF)⚫ Scalability: Fully Distributed Architecture⚫ Performance: Single Virtual Hop
Distributed Architecture
⚫ SDN intelligence at edges⚫ Resource usage at edge⚫ Grows with the cloud⚫ Fully Distributed Gateways
⚪ L3 GW: Multiple BGP Border Nodes⚪ L2 GW: Multiple HW VXLAN Tunnel End-Points
(VTEP)
Additional Features
⚫ Only L3 connectivity required⚫ Firewall bound to each vPort
⚪ Filtered before reaching physical network⚫ Docker Networking via nova-docker⚫ Puppet Modules (others upcoming)⚫ Apache License 2.0⚫ many many more...
Understanding MidoNet
MidoNet 101
MidoNet Topology
Gatew
ay
Physical Topology (Underlay)
ExistingInfrastructure
Exis
ting
Infr
astr
uctu
re
ExternalNetwork
Physical Topology (Underlay)
ExistingInfrastructure
Exis
ting
Infr
astr
uctu
re
ExternalNetwork
MidoN
etG
ateway
Gatew
ay
MidoN
etG
ateway
Physical Topology (Underlay)
ExistingInfrastructure
Exis
ting
Infr
astr
uctu
re
ExternalNetwork
Net
wor
kSt
ate
Dat
abas
e
ExternalNetwork
Virtual Topology (Overlay)
Virtual Topology (Overlay)
ProviderRouter
ExternalNetwork
Virtual Topology (Overlay)
ProviderRouter
TenantRouter
ExternalNetwork
Virtual Topology (Overlay)
ProviderRouter
TenantRouter
TenantNetwork
ExternalNetwork
Virtual Topology (Overlay)
ProviderRouter
TenantRouter
TenantNetwork
10.0.0.0/24(subnet)
ExternalNetwork
Virtual Topology (Overlay)
ProviderRouter
TenantRouter
TenantNetwork
10.0.0.0/24(subnet)
NAT: 10.0.0.0/24<-> external
ExternalNetwork
Virtual Topology (Overlay)
ProviderRouter
TenantRouter
TenantNetwork
10.0.0.1
10.0.0.0/24(subnet)
NAT: 10.0.0.0/24<-> external
ExternalNetwork
Virtual Topology (Overlay)
ProviderRouter
TenantRouter
TenantNetwork
10.0.0.1
10.0.0.0/24(subnet)
NAT: 10.0.0.0/24<-> external
ExternalNetwork
Virtual Topology (Overlay)
ProviderRouter
TenantRouter
TenantNetwork
10.0.0.310.0.0.2
10.0.0.1
10.0.0.0/24(subnet)
NAT: 10.0.0.0/24<-> external
ExternalNetwork
ExistingInfrastructure
MidoN
etG
atewayN
etw
ork
Stat
eD
atab
ase
Exis
ting
Infr
astr
uctu
re
ExternalNetwork
ProviderRouter
TenantRouter
TenantNetwork
10.0.0.310.0.0.2
10.0.0.1
10.0.0.0/24(subnet)
NAT: 10.0.0.0/24<-> external
ExternalNetwork
Virtual Topology Stored in NSDB
Let’s send a package from VM1 to VM2
ProviderRouter
TenantRouter
TenantNetwork
ExternalNetwork
Let’s send a package from VM1 to VM2
ProviderRouter
TenantRouter
TenantNetwork
ExternalNetwork
ExistingInfrastructure
MidoN
etG
atewayN
etw
ork
Stat
eD
atab
ase
Exis
ting
Infr
astr
uctu
re
ExternalNetwork
Query Topology, Simulate Data Flow
ExistingInfrastructure
MidoN
etG
atewayN
etw
ork
Stat
eD
atab
ase
Exis
ting
Infr
astr
uctu
re
ExternalNetwork
Query Topology, Simulate Data Flow
ExistingInfrastructure
MidoN
etG
atewayN
etw
ork
Stat
eD
atab
ase
Exis
ting
Infr
astr
uctu
re
ExternalNetwork
Query Topology, Simulate Data Flow
ExistingInfrastructure
MidoN
etG
atewayN
etw
ork
Stat
eD
atab
ase
Exis
ting
Infr
astr
uctu
re
ExternalNetwork
Query Topology, Simulate Data Flow
ProviderRouter
TenantRouter
TenantNetwork
ExternalNetwork
ExistingInfrastructure
MidoN
etG
atewayN
etw
ork
Stat
eD
atab
ase
Exis
ting
Infr
astr
uctu
re
ExternalNetwork
Query Topology, Simulate Data Flow
ProviderRouter
TenantRouter
TenantNetwork
ExternalNetwork
ExistingInfrastructure
MidoN
etG
atewayN
etw
ork
Stat
eD
atab
ase
Exis
ting
Infr
astr
uctu
re
ExternalNetwork
Query Topology, Simulate Data Flow
ProviderRouter
TenantRouter
TenantNetwork
ExternalNetwork
ExistingInfrastructure
MidoN
etG
atewayN
etw
ork
Stat
eD
atab
ase
Exis
ting
Infr
astr
uctu
re
ExternalNetwork
Query Topology, Simulate Data Flow
ExistingInfrastructure
MidoN
etG
atewayN
etw
ork
Stat
eD
atab
ase
Exis
ting
Infr
astr
uctu
re
ExternalNetwork
Establish Tunnel & Route Packet
ExistingInfrastructure
MidoN
etG
atewayN
etw
ork
Stat
eD
atab
ase
Exis
ting
Infr
astr
uctu
re
ExternalNetwork
Establish Tunnel & Route Packet
ExistingInfrastructure
MidoN
etG
atewayN
etw
ork
Stat
eD
atab
ase
Exis
ting
Infr
astr
uctu
re
ExternalNetwork
Establish Tunnel & Route Packet
ExistingInfrastructure
MidoN
etG
atewayN
etw
ork
Stat
eD
atab
ase
Exis
ting
Infr
astr
uctu
re
ExternalNetwork
Establish Tunnel & Route Packet
ExistingInfrastructure
MidoN
etG
atewayN
etw
ork
Stat
eD
atab
ase
Exis
ting
Infr
astr
uctu
re
ExternalNetwork
Establish Tunnel & Route Packet
ExistingInfrastructure
MidoN
etG
atewayN
etw
ork
Stat
eD
atab
ase
Exis
ting
Infr
astr
uctu
re
ExternalNetwork
Subsequent Packages Travel Near Line-Speed
ExistingInfrastructure
MidoN
etG
atewayN
etw
ork
Stat
eD
atab
ase
Exis
ting
Infr
astr
uctu
re
ExternalNetwork
Subsequent Packages Travel Near Line-Speed
ExistingInfrastructure
MidoN
etG
atewayN
etw
ork
Stat
eD
atab
ase
Exis
ting
Infr
astr
uctu
re
ExternalNetwork
Same for Traffic to/from External Network
ExistingInfrastructure
MidoN
etG
atewayN
etw
ork
Stat
eD
atab
ase
Exis
ting
Infr
astr
uctu
re
ExternalNetwork
Same for Traffic to/from External Network
ExistingInfrastructure
MidoN
etG
atewayN
etw
ork
Stat
eD
atab
ase
Exis
ting
Infr
astr
uctu
re
ExternalNetwork
Same for Traffic to/from External Network
ExistingInfrastructure
MidoN
etG
atewayN
etw
ork
Stat
eD
atab
ase
Exis
ting
Infr
astr
uctu
re
ExternalNetwork
Same for Traffic to/from External Network
ProviderRouter
TenantRouter
TenantNetwork
ExternalNetwork
ExistingInfrastructure
MidoN
etG
atewayN
etw
ork
Stat
eD
atab
ase
Exis
ting
Infr
astr
uctu
re
ExternalNetwork
Same for Traffic to/from External Network
ExistingInfrastructure
MidoN
etG
atewayN
etw
ork
Stat
eD
atab
ase
Exis
ting
Infr
astr
uctu
re
ExternalNetwork
Same for Traffic to/from External Network
MidoNet Community
Join us to find out more!
Mission
The MidoNet Community strives to create the best (vendor neutral) SDN solution available, and for MidoNet to become the default networking plugin in OpenStack and Docker.
Learn More
⚫ Homepage: http://www.midonet.org/⚫ Documentation: http://doc.midonet.org/⚫ Wiki: http://wiki.midonet.org/⚫ Blog: http://blog.midonet.org/⚫ Planet: http://planet.midonet.org/
Communication
⚫ Slack: https://slack.midonet.org/⚫ Mailing Lists: https://lists.midonet.org/⚫ Ask: https://ask.midonet.org/⚫ Twitter: @midonet
Contribute
⚫ GitHub: https://github.org/midonet⚫ GerritHub: https://review.gerrithub.io/
#/admin/projects/?filter=midonet%252F⚫ JIRA: http://bugs.midonet.org/⚫ Howto: https://github.com/midonet/
midonet/wiki/Contributing-to-MidoNet
Questions?ask.midonet.org