whats new in neutron for open stack havana

49
Neutron developers at Cisco Systems Boxborough office Brian Bowen, Henry Gessau, Dane LeBlanc, Paul Michali, Abishek Subramanian, et. al. What’s new in Neutron for Havana

Upload: kamesh-pemmaraju

Post on 06-May-2015

6.122 views

Category:

Technology


0 download

DESCRIPTION

The Havana release of OpenStack, came out in October 2013, contains several significant changes and new features in the networking component. OpenStack Networking has changed name from 'quantum' to 'neutron'. It lays the foundation for supporting heterogeneous network components with the introduction of the ML2 (modular layer 2) plugin. The first implementations of FireWall as a Service (FWaaS) and VPN as a Service (VPNaaS) are now included. These features were demonstrated by Cisco developers at the OpenStack meetup in Boston in Oct 2013.

TRANSCRIPT

Page 1: Whats new in neutron for open stack havana

Neutron developers at Cisco Systems

Boxborough office

Brian Bowen, Henry Gessau, Dane LeBlanc,

Paul Michali, Abishek Subramanian, et. al.

What’s new in

Neutron

for Havana

Page 2: Whats new in neutron for open stack havana

• Modular Layer 2 plugin (ML2)

• ML2 demo with Cisco Nexus driver

• FireWall as a Service (FWaaS)

• FWaaS demo

• VPN as a Service (VPNaaS)

• VPNaaS demo

• Cisco plugin with N1000V

• Demo of Dashboard to control N1000V

Agenda

Page 3: Whats new in neutron for open stack havana

Modular Layer 2 in

OpenStack Neutron

Robert Kukura, Red Hat

Kyle Mestery, Cisco

Page 4: Whats new in neutron for open stack havana

Motivations For a

Modular Layer 2 Plugin

Page 5: Whats new in neutron for open stack havana

Before Modular Layer 2 ...

Neutron Server

Open vSwitch Plugin

OR

Neutron Server

Linuxbridge Plugin

OR ...

Page 6: Whats new in neutron for open stack havana

Before Modular Layer 2 ...

Neutron Server

Cisco Plugin

Open vSwitch

Sub-Plugin

Nexus

Sub-Plugin

Compute node

Open vSwitch agent

Cisco Nexus switch

Page 7: Whats new in neutron for open stack havana

ML2 Architecture Diagram

Neutron Server

ML2 Plugin

Type Manager Mechanism Manager

API Extensions

GR

E

Typ

eD

rive

r

Aris

ta

VL

AN

Typ

eD

rive

r

VX

LA

N

Typ

eD

rive

r

Cis

co

Ne

xu

s

Hyp

er-V

L2

Po

pu

latio

n

Lin

uxb

ridg

e

Open

vS

witc

h

Ta

il-F N

CS

Page 8: Whats new in neutron for open stack havana

TypeDrivers in Havana

The following are supported segmentation

types in ML2 for the Havana release:

● local

● flat

● VLAN

● GRE

● VXLAN

Page 9: Whats new in neutron for open stack havana

MechanismDrivers in Havana

The following ML2 MechanismDrivers exist in

Havana:

● Arista

● Cisco Nexus

● Hyper-V

● L2 Population

● Linuxbridge

● Open vSwitch

● Tail-f NCS

Page 10: Whats new in neutron for open stack havana

ML2 Futures: Deprecation Items

• The future of the Open vSwitch and

Linuxbridge plugins o These are planned for deprecation in Icehouse

o ML2 supports all their functionality

o ML2 works with the existing OVS and Linuxbrige

agents

Page 11: Whats new in neutron for open stack havana

ML2 With Current Agents

Neutron Server

ML2

Plugin

Host A

Linuxbridge

Agent

Host B

Linuxbridge

Agent

Host C

Open vSwitch

Agent

Host D

Open vSwitch

Agent

API Network

● ML2 Plugin works with existing

agents

● Separate agents for Linuxbridge

and Open vSwitch

● Can also use physical switches

from different vendors

Page 12: Whats new in neutron for open stack havana

ML2 demo, showing ...

● ML2 running with multiple MechanismDrivers ○ openvswitch

○ cisco_nexus

● Booting multiple VMs on multiple compute

hosts

● Configuration of VLANs across both virtual

and physical infrastructure

Page 13: Whats new in neutron for open stack havana

Cisco Nexus ML2

Mechanism Driver

Demonstration

Page 14: Whats new in neutron for open stack havana

Cisco Nexus ML2 Mechanism

Driver

• Manages VLAN creation/removal on Cisco Nexus 3K/5K/7K switches as instances are launched, migrated, or terminated

• Works with Open vSwitch (OVS) mechanism driver

OVS: virtual switching

Cisco Nexus: physical switching

• Ported from original Cisco Nexus OpenStack Plugin

• Available in Havana release

Page 15: Whats new in neutron for open stack havana

Topology

Controller /

Network Node Compute Host 1 Compute Host 2

VM 1 VM 4 VM 2 VM 3

VLAN 810

VLAN 812

Management Network

eth1/1 eth1/2 eth1/3

Nexus 3K

mgmt

External

Network Data

Network

Page 16: Whats new in neutron for open stack havana

DevStack Configuration

Add to localrc File:

Q_PLUGIN=ml2

Q_ML2_PLUGIN_MECHANISM_DRIVERS=openvswitch,

cisco_nexus

Q_ML2_PLUGIN_TYPE_DRIVERS=vlan

Q_PLUGIN_EXTRA_CONF_PATH=(/home/leblancd/devstack)

Q_PLUGIN_EXTRA_CONF_FILES=(ml2_conf_cisco.ini)

ML2_VLAN_RANGES=physnet1:810:819

ENABLE_TENANT_VLANS=True

PHYSICAL_NETWORK=physnet1

OVS_PHYSICAL_BRIDGE=br-eth1

Page 17: Whats new in neutron for open stack havana

Cisco Mechanism Driver Config

• Create a file, e.g. “ml2_conf_cisco.ini”: o[ml2_mech_cisco_nexus:10.86.1.118]

oComputeHost-1=1/2

oComputeHost-2=1/3

ossh_port=22

ousername=admin

opassword=MyPassword

• File name and path are arbitrary, but these

configs in localrc must point to it: Q_PLUGIN_EXTRA_CONF_PATH

Q_PLUGIN_EXTRA_CONF_FILES

• Template in Neutron branch: o

/opt/stack/neutron/etc/neutron/plugins/ml2/ml2_conf

_cisco.ini

Page 18: Whats new in neutron for open stack havana

Neutron Server Startup Command

cd /opt/stack/neutron && pyth /usr/local/bin/neutron-

server --config-file /etc/neutron/neutron.conf --config-

file /etc/neutron/plugins/ml2/ml2_conf.ini --config-file

//home/leblancd/devstack/ml2_conf_cisco.ini || echo

"q-svc failed to start" | tee "/opt/stack/status/stack/q-

svc.failure"

Page 19: Whats new in neutron for open stack havana

Demo

Page 20: Whats new in neutron for open stack havana

Resources

• README files:

o /opt/stack/neutron/neutron/plugins/ml2/README

o /opt/stack/neutron/neutron/plugins/ml2/drivers/cisco/README

• Template .ini Files:

o /opt/stack/neutron/etc/neutron/plugins/ml2/ml2_conf.ini

o /opt/stack/neutron/etc/neutron/plugins/ml2/ml2_conf_cisco.ini

• Wiki Pages:

o https://wiki.openstack.org/wiki/Neutron/ML2

o https://wiki.openstack.org/wiki/Neutron/ML2/MechCiscoNexus

• Google Doc:

o https://docs.google.com/document/d/1FXo0Hlc5c0myvBk99Bw51yOdHmEXHS

aFKUhEGNEuDo4

Page 21: Whats new in neutron for open stack havana

Virtual Private Networking as a Service

Havana Release

Paul Michali MAIL [email protected] IRC pcm_ (irc.freenode.net) TW @pmichali

Page 22: Whats new in neutron for open stack havana

Virtual Private Network as a Service

• Initial Release Goals

• Site to site VPN (~AWS).

• Considered “experimental” w/limited functionality.

• Only Pre-Shared Keys, no certificates.

• Future releases to address other use cases.

• SSL-VPN, MPLS/BGP

• Certificate support

• Service insertion/chaining

Page 23: Whats new in neutron for open stack havana

OpenSwan Driver

• OpenSwan: open source VPN process

• Supports several encryption/auth algorithms, modes of operation (Remote Access, Site2Site, Host2Host).

• Designed to support a single connection.

• Uses configuration files to control operation • /opt/stack/data/neutron/ipsec/<router-UUID>/…

Page 24: Whats new in neutron for open stack havana

Current Status

• Reference implementation released

• Horizon dashboard access released

• CLI and REST APIs available

• API reference documentation published • http://docs.openstack.org/api/openstack-network/2.0/content/vpnaas_ext.html

• Feature documentation in progress

• Ongoing: bug fixes & enhancements (Icehouse)

Page 25: Whats new in neutron for open stack havana

Site to Site VPN

West Private: 10.2.0.0/24 Br-ex: 172.24.4.21

East Private: 10.1.0.0/24 Br-ex: 172.24.4.11

Router 10.2.0.1

172.24.4.21

10.1.0.5 10.1.0.4

10.1.0.1

172.24.4.11

VM VM VM

Router

10.2.0.4

VPN

172.24.4.0/24

Page 26: Whats new in neutron for open stack havana

Ubuntu 12.04 (VM) Ubuntu 12.04 (VM)

Site to Site VPN (physical)

Private: 10.2.0.0/24 Private: 10.1.0.0/24

Internal Network

Br-ex: 172.24.4.20

Admin Network

Public Network (172.24.4.222/28)

NAT/host

Br-ex: 172.24.4.10

eth1 eth1 eth0 eth0

Host

Page 27: Whats new in neutron for open stack havana

Reference Info

• How To:

https://wiki.openstack.org/wiki/Neutron/VPNaaS/HowToInstall

• Main page (API is in OS doc wiki):

http://docs.openstack.org/api/openstack-network/2.0/content/vpnaas_ext.html

https://wiki.openstack.org/wiki/Neutron/VPNaaS

• OpenSwan & StrongSwan:

https://github.com/xelerance/Openswan/wiki

http://www.strongswan.org/ and http://wiki.strongswan.org/projects/strongswan

Blueprint

Page 28: Whats new in neutron for open stack havana

Backup Slides

Page 29: Whats new in neutron for open stack havana

Devstack-32 (UCS) Devstack-33 (UCS)

Site to Site VPN (physical)

Private: 10.2.0.0/24 Private: 10.1.0.0/24

C6500

172.24.4.225

Br-ex: 172.24.4.232

Admin Network (14.0.3.0/24)

14.0.3.32 14.0.3.33

Public Network (172.24.4.222/28)

Switch

Br-ex: 172.24.4.225

eth1 eth3 eth2 eth4

Page 30: Whats new in neutron for open stack havana

Multi-node DevStack

• To do site-to-site VPN, needed to share the public net.

• Solution: Config DevStack (localrc) GW IP to be specified. Also added naming for easier config.

devstack-33 enable_service q-vpn PUBLIC_SUBNET_NAME=yoursubnet PRIVATE_SUBNET_NAME=mysubnet PUBLIC_NETWORK_GATEWAY=172.24.4.232 Q_FLOATING_ALLOCATION_POOL="start=172.24.4.233,end=172.24.4.238” Q_USE_SECGROUP=False FIXED_RANGE=10.2.0.0/24 NETWORK_GATEWAY=10.2.0.1

devstack-32 enable_service q-vpn PUBLIC_SUBNET_NAME=yoursubnet PRIVATE_SUBNET_NAME=mysubnet PUBLIC_NETWORK_GATEWAY=172.24.4.225 Q_FLOATING_ALLOCATION_POOL=“start=172.24.4.226,end=172.24.4.231” Q_USE_SECGROUP=False FIXED_RANGE=10.1.0.0/24 NETWORK_GATEWAY=10.1.0.1

Page 31: Whats new in neutron for open stack havana

Modifications for VPNaaS

• Make localrc modifications as shown on previous page. • Connect two systems with a switch (L2) for public net. • Manually bring up eth# used for public network link. • Add br-ex and add eth# to br-ex.

Page 32: Whats new in neutron for open stack havana

Object Diagram

Service

IPSec Policy

Router

IPSec Site Connection

IKE Policy

Subnet

1

1

1

1

1 N

N

1

N

1

used by used by

is associated with

is associated with

establishes

Note: all of these are associated with a single tenant

Page 33: Whats new in neutron for open stack havana

VPN Archtecture

IPSec VPN Extension

Rest API

IPSec VPN Adv Srv Plugin

Common API

Core

Schedulers (not implemented)

DB

IPSec VPN Agent BP2

strong-swan driver

NameSpaceDevice

VMDevice

HardWareDevice

Page 34: Whats new in neutron for open stack havana

RPC API (Create VPN

Service1/2)

create vpn service

Select driver using type

create vpn service

create Ike policy

Store policy

create ipsec policy

Store policy

create vpn connection

create vpn connection

Ensure Add interface to the router

Set status BUILDING

Noop (do nothing)

User Neutron Agent Namespace Device IpSecDriver

StrongSwan DeviceDriver

Page 35: Whats new in neutron for open stack havana

RPC API (Create VPN Service

2/2)

fetch router host of associated router

vpn-service-updated

sync

sync

vpn connection info with related infos

sync

ensure_conf_file

ensure_process_running

this sync will be done pediolically, and boot time also

compair local state

User Neutron Agent Namespace Device IpSecDriver

StrongSwan DeviceDriver

Page 36: Whats new in neutron for open stack havana

RPC API (Update VPN

Service)

Update VPN or Update Serivce/IKE policy/IPSec or CUD of vpn connections

Select driver using type

vpn-service-updated

vpn-service-updated

sync sync

User Neutron Agent Namespace Device IpSecDriver

StrongSwan DeviceDriver

Page 37: Whats new in neutron for open stack havana

RPC API (Update VPN

Service)

Update or DeleteVPN Serivce/IKE policy/IPSec or CRUD of vpn connections

Select driver using type

vpn-service-updated

vpn-service-updated

sync sync

Remove interface

User Neutron Agent Namespace Device IpSecDriver

StrongSwan DeviceDriver

Page 38: Whats new in neutron for open stack havana

RPC API (Update VPN

Service)

Update VPN or Update Serivce/IKE policy/IPSec or CUD of vpn connections

Select driver using type

vpn-service-updated

vpn-service-updated

sync sync

User Neutron Agent Namespace Device IpSecDriver

StrongSwan DeviceDriver

Page 39: Whats new in neutron for open stack havana

RPC API (Update VPN

Service) User Neutron Agent

Namespace Device IpSecDriver

StrongSwan DeviceDriver

Update or DeleteVPN Serivce/IKE policy/IPSec or CRUD of vpn connections

Select driver using type

vpn-service-updated

vpn-service-updated

sync sync

Remove interface

Page 40: Whats new in neutron for open stack havana

Proposed IP Sec Object

Model

Page 41: Whats new in neutron for open stack havana

Amazon Object Model

Page 42: Whats new in neutron for open stack havana

Cisco Object Model

Page 43: Whats new in neutron for open stack havana

FWaaS

in OpenStack Havana

Page 44: Whats new in neutron for open stack havana

Contributors

• BigSwitch Sumit N, KC Wang

• Cisco Sridar K

• Dell Rajesh M

• PayPal Ravi C

Page 45: Whats new in neutron for open stack havana

Initial reference implementation

How: Service Plugin + Agent + Driver

Where: L3 only -- iptables rules on routers

Why: Complements security groups

What next? Vendor drivers

Page 46: Whats new in neutron for open stack havana
Page 47: Whats new in neutron for open stack havana

Entity Relationships

Tenant A

Tenant C

Firewall A

Tenant B Firewall B

Firewall C

Firewall Policy

X

Firewall Policy

Y

Allow ICMP

...

Allow TCP 80

...

...

Firewall Rules

Ordered (Routers)

Page 48: Whats new in neutron for open stack havana

Command Line Interface (CRUD)

Rules

firewall-rule-create

firewall-rule-list

firewall-rule-show

firewall-rule-update

firewall-rule-delete

Policies

firewall-policy-create

firewall-policy-list

firewall-policy-show

firewall-policy-update

firewall-policy-insert-rule

firewall-policy-remove-rule

firewall-policy-delete

Firewalls

firewall-create

firewall-list

firewall-show

firewall-update

firewall-delete

Page 49: Whats new in neutron for open stack havana

Demo Dashboard Interface

and CLI