OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

46
Bridges and Tunnels: A Drive Through OpenStack Networking Mark McClain [email protected] @gtwmm Salvatore Orlando [email protected] @taturiello

Transcript of OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

Page 1: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

Bridges and Tunnels: A Drive Through OpenStack

Networking

Mark McClain [email protected]

@gtwmm

Salvatore Orlando [email protected]

@taturiello

Page 2: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

Why Create Neutron?

Rich Topologies

Technology Agnostic

Extensible

Advance Services Support

Load Balancing, VPN, Firewall

Page 3: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

Challenges in the Cloud

High-density multi-tenancy

VLANs have trouble scaling

On-demand provisioning

traditional solutions require manual configuration

Need to place / move workloads

state tied (IP address) tied to location

© Malcolm Leman | Dreamstime.com

Page 4: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

Tackling these Challenges

Network virtualization

Overlay tunneling

VXLAN, GRE, STT

Software Defined Networking (SDN)

OpenFlow

L2 Fabric Solution

???

CC BY-ND 2.0

https://flic.kr/p/epZUi

CC BY-ND 2.0

Adam Kubalica

https://flic.kr/p/epZUi

Page 5: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

The Basics

Page 6: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

What does the user see?

Compute API

Network API

Storage APIGUI, CLI, API Libs

KVM

ML2 Plugin

Ceph

Page 7: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

Abstractions

Net1 10.0.0.0/24

Nova

Neutron

L2 virtual network

virtual port

virtual server

virtual interface (VIF)

virtual subnet

VM1 10.0.0.2

VM2 10.0.0.2

Page 8: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

Using the API…

VM1 10.0.0.2

VM2 10.0.0.2/172.16.

VM3 172.16.77.1

Tenant A Net1 192.168.0.0/24

Tenant A Net2 172.16.77.0/24

Public Net 10.0.0.0/8

VM1 10.0.0.2

VM2 10.0.0.2/172.16.

VM3 172.16.77.1

Tenant B Net1 192.168.0.0/24

Tenant B Net2 172.16.77.0/24

Router Router

Page 9: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

Design Goals

Unified API

Small Core

Pluggable Open Architecture

Extensible

Page 10: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

Common Features

Support for Overlapping IPs

Tenant A: 192.168.0.0/24

Tenant B: 192.168.0.0/24

Configuration

DHCP/Metadata

Floating IPs

Page 11: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

Security Groups

Support Overlapping IPs

Ingress/Egress Rules

IPv6

VMs with multiple VIFs

Page 12: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

Architecture

Page 13: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

OpenStackThe Operator View

Page 14: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

Basic Deployment

neutron-server

L2 AgentL2 AgentL2 AgentL2 AgentL2 AgentL2 Agent

L3 AgentL3 Agent

L3 AgentL3 Agent

Database

L3 Agent

DHCP Agent

L2 Agent

Message Queue

Adv Services

neutron-server

Page 15: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

Monolithic Plugin

Full implementation of core resources

Two types:

Proxy

Direct control

PLUGIN

Page 16: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

ML2: Modular Layer 2 Plugin

Full V2 Plugin Implementation

Delegates calls to proper L2 drivers

Two kinds of drivers

Type Driver

Mechanism Driver

Mech Mgr

PLUGIN

Type Mgr

PLUGIN

Page 17: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

Plugin Extensions

Add logical resources to the REST API

Discovered by server at startup

REST: /v2.0/extensions

Common Extensions

Binding, DHCP, L3, Provider, Quota, Security Group

Other Extensions

Allowed Addresses, Extra Routes, Metering

Page 18: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking
Page 19: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

L2 Agent

Runs on hypervisor

Communicates with server via RPC

Watch and notify when devices added/removed

Wires new devices

Proper network segment

Security Group Rules

Page 20: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

OVS L2 Agent

Open vSwitch

Open Source Virtual Switch

http://openvswitch.org

Tenant Isolation

VLAN, GRE, VXLAN

OVSDB

Neutron Server

OVS Agent

OVS

RPC

Page 21: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

Isolation

VLAN

802.1Q

limited

underlay must support

GRE/VXLAN

L2 encapsulated in L3

routable

overlay independence

Page 22: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

Tunneling

A

D

CB

Page 23: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

… with L2 Population

A

D

CB

Page 24: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

L3 Agents

Page 25: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

Run on Network Node

Uses Namespaces

Metadata Agent (if enabled)

Network Node

L3 Agent

Network Node

Core

Hypervisor Hypervisor Hypervisor

Page 26: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

L3 Agent How it’s implemented

Manages Collection of Network Namespaces

Isolated IP Stacks

Forwarding Enabled net.ipv4.ip_forward=1

net.ipv6.conf.all.forwarding=1

Static Routing

Metadata Proxy

lo

eth1

eth0

lo

eth1

eth0

lo

eth1

eth0

Host A B

br-int

Page 27: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

Load Balancer as a Service

Service Plugin

Driver based

Agent w/Driver

Agent communicates over RPC

Open Source requires namespaces

Others interact with other systems

LB Agent

HAProxy

Page 28: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

What’s New in Juno

CC BY-ND 2.0

"Amicalola Falls" by Sean Morgan

https://www.flickr.com/photos/seanm1025/3646862123

Page 29: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

IPv6

Page 30: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

IPv6: Basics

Router Advertisement Support

IPAM Algorithms:

SLAAC

Sequential

RA secured with security groups

Page 31: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

IPv6: SLAAC

RA Autoconfiguration

IPv6 address generated from EUI-64 address

No DHCP

Page 32: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

IPv6: DHCPv6 Stateless

Same as SLAAC

IP Address from EUI-64 address

DHCP enables clients to review extra options

Page 33: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

IPv6: DHCPv6 Stateful

Most similar to existing v4 support

Backed by dnsmasq and radvd

Page 34: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

IPv6: Dual vs Single Stack

Dual Stack

Applications have both v4/v6 access

Support by latest long term support releases

Single Stack v6

Metadata service does not work

Config drive required*

Page 35: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

Distributed Virtual Routing

Page 36: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

DVR: Overview

L3 Service run on Network Node

Uses Namespaces

Metadata Agent (if enabled)

Network Node

Core

Hypervisor Hypervisor Hypervisor

Network Node

Page 37: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

DVR: How it works

1) Operator deploys DVR L3 Agent

Agent runs on each Hypervisor

2) Associate floating IP with instance

3) Profit!!!

Page 38: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

DVR: How it works

1) Operator deploys DVR L3 Agent

Agent runs on each Hypervisor

2) Associate floating IP with instance

3) Profit!!!

3) All N/S instance traffic is NAT’d directly from hypervisor

Page 39: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

DVR: East/West

L3 Service run on Network Node

Uses Namespaces

Metadata Agent (if enabled)

Network Node

Core

Hypervisor Hypervisor Hypervisor

Page 40: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

DVR: North/South SNAT w/o Floating IP

L3 Service run on Network Node

Uses Namespaces

Metadata Agent (if enabled)

Network Node

Core

Hypervisor Hypervisor Hypervisor

Page 41: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

DVR: North/South SNAT w/ Floating IP

L3 Service run on Network Node

Uses Namespaces

Metadata Agent (if enabled)

Network Node

Core

Hypervisor Hypervisor Hypervisor

Page 42: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

Other Improvements

Security Groups

Now uses IPsets

L3 Agent HA

via Namespace Pairs

Page 43: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

Looking Ahead to Kilo

Paying Down Technical Debt

IPv6

Prefix delegation

Metadata Service

IPAM

Facilitate Dynamic Routing

Enabling NFV Applications

Page 44: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

Summary

Open vSwitch / Linux

Ryu OpenFlow Controller

Unified API

Small Core

Pluggable Open Architecture

Multiple Vendor Support

Extensible

Page 45: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

More Information

Cloud Administrator Guide

http://docs.openstack.org/admin-guide-cloud/content/ch_networking.html

OpenStack Network v2.0 API

http://developer.openstack.org/api-ref-networking-v2.html

Page 46: OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networking

Thank You