Modular Layer 2 In OpenStack Neutron

Slides:



Advertisements
Similar presentations
Scaling The Edge Bridge Address Table In Datacenter Networks June-2012.
Advertisements

LAN Segmentation Virtual LAN (VLAN).
© 2006 Cisco Systems, Inc. All rights reserved. ICND v2.3—2-1 Extending Switched Networks with Virtual LANs Introducing VLAN Operations.
Copyright © 2004 Juniper Networks, Inc. Proprietary and Confidentialwww.juniper.net 1 E-VPN and Data Center R. Aggarwal
© 2012 IBM Corporation Architecture of Quantum Folsom Release Yong Sheng Gong ( 龚永生 ) gongysh #openstack-dev Quantum Core developer.
Bringing Together Linux-based Switches and Neutron
© 2006 Cisco Systems, Inc. All rights reserved.Cisco PublicITE I Chapter 6 1 Implement Inter- VLAN Routing LAN Switching and Wireless – Chapter 6.
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 1 Kyle Mestery Principal Engineer, Office of the Cloud CTO, Cisco.
Neutron What’s new in Havana? Arvind Somya Software Engineer Cisco Systems Inc.
DOT – Distributed OpenFlow Testbed
Network Virtualization Overlay Control Protocol Requirements draft-kreeger-nvo3-overlay-cp-00 Lawrence Kreeger, Dinesh Dutt, Thomas Narten, David Black,
Seamless migration from Nova-network to Neutron in eBay production Chengyuan Li, Han Zhou.
Introduction into VXLAN Russian IPv6 day June 6 th, 2012 Frank Laforsch Systems Engineer, EMEA
A 5 minutes intro to Openstack (and a few more minutes on Openstack Networking) Salvatore Orlando 3 rd OSUG Italy Meetup Rome, May 9 th 2013.
Implementing Inter-VLAN Routing
SDN in Openstack - A real-life implementation Leo Wong.
7th OpenSTACK USER group nordics
CCU EE&CTR1 Software Architecture Overview Nick Wang & Ting-Chao Hou National Chung Cheng University Control Plane-Platform Development Kit.
Shivkumar KalyanaramanRensselaer Q1-1 ECSE-6600: Internet Protocols Quiz 1 Time: 60 min (strictly enforced) Points: 50 YOUR NAME: Be brief, but DO NOT.
Jennifer Rexford Princeton University MW 11:00am-12:20pm SDN Software Stack COS 597E: Software Defined Networking.
(part 3).  Switches, also known as switching hubs, have become an increasingly important part of our networking today, because when working with hubs,
Microsoft Virtual Academy Module 4 Creating and Configuring Virtual Machine Networks.
Virtual LANs. VLAN introduction VLANs logically segment switched networks based on the functions, project teams, or applications of the organization regardless.
Data Center Network Redesign using SDN
Virtualization Infrastructure Administration Network Jakub Yaghob.
Cisco – Chapter 11 Routers All You Ever Wanted To Know But Were Afraid to Ask.
Virtual Infrastructure 3 Best Practices for a secure installation. Jeff Mayrand.
Traffic Management - OpenFlow Switch on the NetFPGA platform Chun-Jen Chung( ) Sriram Gopinath( )
VLAN V irtual L ocal A rea N etwork VLAN Network performance is a key factor in the productivity of an organization. One of the technologies used to.
Hubs to VLANs Cisco Networking Academy Program © Cisco Systems, Inc From Hubs to VLANs.
Chapter 8: Virtual LAN (VLAN)
CON Software-Defined Networking in a Hybrid, Open Data Center Krishna Srinivasan Senior Principal Product Strategy Manager Oracle Virtual Networking.
Author: Bill Buchanan. 1. Broadcast: What is the MAC address of this network address? 2. Requested host: All the hosts read the broadcast and checks.
© 2002, Cisco Systems, Inc. All rights reserved..
Chapter Overview Bridging Switching Routing.
1 © 2003, Cisco Systems, Inc. All rights reserved. CCNA 3 v3.0 Module 9 Virtual Trunking Protocol.
Virtual Machines Created within the Virtualization layer, such as a hypervisor Shares the physical computer's CPU, hard disk, memory, and network interfaces.
EXPOSING OVS STATISTICS FOR Q UANTUM USERS Tomer Shani Advanced Topics in Storage Systems Spring 2013.
Switching Topic 2 VLANs.
Chapter 4 Version 1 Virtual LANs. Introduction By default, switches forward broadcasts, this means that all segments connected to a switch are in one.
Cisco Confidential © 2013 Cisco and/or its affiliates. All rights reserved. 1 Cisco Networking Training (CCENT/CCT/CCNA R&S) Rick Rowe Ron Giannetti.
VS (Virtual Subnet) draft-xu-virtual-subnet-03 Xiaohu Xu IETF 79, Beijing.
XRBLOCK IETF 85 Atlanta Network Virtualization Architecture Design and Control Plane Requirements draft-fw-nvo3-server2vcenter-01 draft-wu-nvo3-nve2nve.
Level 300 Windows Server 2012 Networking Marin Franković, Visoko učilište Algebra.
Co-ordination & Harmonisation of Advanced e-Infrastructures for Research and Education Data Sharing Grant.
Atrium Router Project Proposal Subhas Mondal, Manoj Nair, Subhash Singh.
Virtual Local Area Networks In Security By Mark Reed.
Network Virtualization Ben Pfaff Nicira Networks, Inc.
2V0-641 Dumps VMware Certified Professional 6 - Network Virtualization Beta Exam PDF File Download :
SDN controllers App Network elements has two components: OpenFlow client, forwarding hardware with flow tables. The SDN controller must implement the network.
Security Virtualization
Heitor Moraes, Marcos Vieira, Italo Cunha, Dorgival Guedes
ETHANE: TAKING CONTROL OF THE ENTERPRISE
Planning and Troubleshooting Routing and Switching
Welcome! Thank you for joining us. We’ll get started in a few minutes.
1.
Braindumps4IT Braindumps Ream Exam Questions Answers
VLANs: Virtual Local Area Networks
Virtual LANs.
Red Hat User Group June 2014 Marco Berube, Cloud Solutions Architect
OpenStack Ani Bicaku 18/04/ © (SG)² Konsortium.
Aled Edwards, Anna Fischer, Antonio Lain HP Labs
Marrying OpenStack and Bare-Metal Cloud
Routing and Switching Essentials v6.0
Network Virtualization
Virtual LAN VLAN Trunking Protocol and Inter-VLAN Routing
Attilla de Groot | Sr. Systems Engineer, HCIE #3494 | Cumulus Networks
MICROSOFT NETWORK VIRTUALIZATION
VLANS The Who, What Why, And Where's to using them
Presentation transcript:

Modular Layer 2 In OpenStack Neutron Robert Kukura, Red Hat Kyle Mestery, Cisco

I’ve heard the Open vSwitch and Linuxbridge Neutron Plugins are being deprecated. I’ve heard ML2 does some cool stuff! I don’t know what ML2 is but want to learn about it and what it provides.

What is Modular Layer 2? A new Neutron core plugin in Havana Modular Drivers for layer 2 network types and mechanisms - interface with agents, hardware, controllers, ... Service plugins and their drivers for layer 3+ Works with existing L2 agents openvswitch linuxbridge hyperv Deprecates existing monolithic plugins

Motivations For a Modular Layer 2 Plugin Combine next few slides, one animation/graphic per use case mapping to “why ML2”

Before Modular Layer 2 ... OR OR ... Neutron Server Neutron Server Open vSwitch Plugin Linuxbridge Plugin

Before Modular Layer 2 ... I want to write a Neutron Plugin. What a pain. :( Neutron Server But I have to duplicate a lot of DB, segmentation, etc. work. Vendor X Plugin

ML2 Use Cases Replace existing monolithic plugins New features Eliminate redundant code Reduce development & maintenance effort New features Top-of-Rack switch control Avoid tunnel flooding via L2 population Many more to come... Heterogeneous deployments Specialized hypervisor nodes with distinct network mechanisms Integrate *aaS appliances Roll new technologies into existing deployments

Modular Layer 2 Architecture

The Modular Layer 2 (ML2) Plugin is a framework allowing OpenStack Neutron to simultaneously utilize the variety of layer 2 networking technologies found in complex real-world data centers.

What’s Similar? ML2 is functionally a superset of the monolithic openvswitch, linuxbridge, and hyperv plugins: Based on NeutronDBPluginV2 Models networks in terms of provider attributes RPC interface to L2 agents Extension APIs Notes: Based on NeutronDBPluginV2 - create/update/delete networks, subnets, and ports via same code Models networks in terms of provider attributes: network_type, physical_network, segmentation_id RPC interface to L2 agents Extension APIs - agent, binding, provider, quotas, security-groups, ...

What’s Different? ML2 introduces several innovations to achieve its goals: Cleanly separates management of network types from the mechanisms for accessing those networks Makes types and mechanisms pluggable via drivers Allows multiple mechanism drivers to access same network simultaneously Optional features packaged as mechanism drivers Supports multi-segment networks Flexible port binding L3 router extension integrated as a service plugin Possibly collapse the initial bullet’s points RPC and DB layer comments

ML2 Architecture Diagram Neutron Server ML2 Plugin API Extensions Type Manager Mechanism Manager Possibly add DB and RPC into this diagram GRE TypeDriver VLAN TypeDriver VXLAN TypeDriver Arista Cisco Nexus Hyper-V L2 Population Linuxbridge Open vSwitch Tail-F NCS

Multi-Segment Networks VXLAN 123567 physnet1 VLAN 37 physnet2 VLAN 413 VM 1 VM 2 VM 3 Created via multi-provider API extension Segments bridged administratively (for now) Ports associated with network, not specific segment Ports bound automatically to segment with connectivity

Type Driver API Talk about pooling class TypeDriver(object): @abstractmethod def get_type(self): pass @abstractmethod def initialize(self): pass @abstractmethod def validate_provider_segment(self, segment): pass @abstractmethod def reserve_provider_segment(self, session, segment): pass @abstractmethod def allocate_tenant_segment(self, session): pass @abstractmethod def release_segment(self, session, segment): pass Talk about pooling

Mechanism Driver API Methods for each core resource class MechanismDriver(object): @abstractmethod def initialize(self): pass def create_network_precommit(self, context): pass def create_network_postcommit(self, context): pass def update_network_precommit(self, context): pass def update_network_postcommit(self, context): pass def delete_network_precommit(self, context): pass def delete_network_postcommit(self, context): pass def create_subnet_precommit(self, context): pass def create_subnet_postcommit(self, context): pass def update_subnet_precommit(self, context): pass def update_subnet_postcommit(self, context): pass def delete_subnet_precommit(self, context): pass def delete_subnet_postcommit(self, context): pass def create_port_precommit(self, context): pass def create_port_postcommit(self, context): pass def update_port_precommit(self, context): pass def update_port_postcommit(self, context): pass def delete_port_precommit(self, context): pass def delete_port_postcommit(self, context): pass def bind_port(self, context): pass def validate_port_binding(self, context): return False def unbind_port(self, context): pass class NetworkContext(object): @abstractproperty def current(self): pass @abstractproperty def original(self): pass @abstractproperty def network_segments(self): pass Methods for each core resource TX precommit/postcommit variance Methods for port binding Context objects

Port Binding Determines values for port’s binding:vif_type and binding:capabilities attributes and selects segment Occurs when binding:host_id set on port or existing valid binding ML2 plugin calls bind_port() on registered MechanismDrivers, in order listed in config, until one succeeds or all have been tried Driver determines if it can bind based on: context.network.network_segments context.current[‘binding:host_id’] context.host_agents() For L2 agent drivers, binding requires live L2 agent on port’s host that: Supports the network_type of a segment of the port’s network Has a mapping for that segment’s physical_network if applicable If it can bind the port, driver calls context.set_binding() with binding details If no driver succeeds, port’s binding:vif_type set to BINDING_FAILED class PortContext(object): @abstractproperty def current(self): pass @abstractproperty def original(self): pass @abstractproperty def network(self): pass @abstractproperty def bound_segment(self): pass @abstractmethod def host_agents(self, agent_type): pass @abstractmethod def set_binding(self, segment_id, vif_type, cap_port_filter): pass Animated diagram?

Havana Features

Type Drivers in Havana The following are supported segmentation types in ML2 for the Havana release: local flat VLAN GRE VXLAN

Mechanism Drivers in Havana The following ML2 MechanismDrivers exist in Havana: Arista Cisco Nexus Hyper-V Agent L2 Population Linuxbridge Agent Open vSwitch Agent Tail-f NCS Add a slide for L2 Population

Before ML2 L2 Population MechanismDriver “VM A” wants to talk to “VM G.” “VM A” sends a broadcast packet, which is replicated to the entire tunnel mesh. VM A VM B Host 1 VM I VM C Host 1 Host 2 VM H Host 4 Host 3 VM G VM F VM E VM D

With ML2 L2 Population MechanismDriver The ARP request from “VM A” for “VM G” is intercepted and answered using a pre-populated neighbor entry. Traffic from “VM A” to “VM G” is encapsulated and sent to “Host 4” according to the bridge forwarding table entry. VM A VM B Host 1 Proxy Arp VM I Host 2 VM C Host 1 VM H Host 4 Host 3 VM G VM F VM E VM D

Modular Layer 2 Futures

ML2 Futures: Deprecation Items The future of the Open vSwitch and Linuxbridge plugins These are planned for deprecation in Icehouse ML2 supports all their functionality ML2 works with the existing OVS and Linuxbrige agents No new features being added in Icehouse to OVS and Linuxbridge plugins Migration Tool being developed Move this to the beginning of the presentation: “Why do you care about ML2?” Add a slide on migrations from OVS and Linuxbridge into ML2

Plugin vs. ML2 MechanismDriver? Advantages of writing an ML2 Driver instead of a new monolithic plugin Much less code to write (or clone) and maintain New neutron features supported as they are added Support for heterogeneous deployments Vendors integrating new plugins should consider an ML2 Driver instead Existing plugins may want to migrate to ML2 as well

ML2 With Current Agents Neutron Server ML2 Plugin Host A Host B Host C Existing ML2 Plugin works with existing agents Separate agents for Linuxbridge, Open vSwitch, and Hyper-V Neutron Server ML2 Plugin API Network Host A see if we can combiner these slides into an animation/build, maybe also include DHCP & L3 Host B Host C Host D Linuxbridge Agent Hyper-V Agent Open vSwitch Agent Open vSwitch Agent

ML2 With Modular L2 Agent Neutron Server ML2 Plugin Host A Host B Future direction is to combine Open Source Agents Have a single agent which can support Linuxbridge and Open vSwitch Pluggable drivers for additional vSwitches, Infiniband, SR-IOV, ... Neutron Server ML2 Plugin API Network Host A Host B Host C Host D Modular Agent Modular Agent Modular Agent Modular Agent

ML2 Demo

What the Demo Will Show ML2 running with multiple MechanismDrivers openvswitch cisco_nexus Booting multiple VMs on multiple compute hosts Hosts are running Fedora Configuration of VLANs across both virtual and physical infrastructure

ML2 Demo Setup Host 1 Host 2 Cisco Nexus Switch VLAN is added on the VIF for VM1 and also on the br-eth2 ports by the ML2 OVS MechanismDriver. Host 2 VLAN is added on the VIF for VM2 and also on the br-eth2 ports by the ML2 OVS MechanismDriver. nova api nova compute ... neutron server neutron ovs agent nova compute neutron ovs agent neutron dhcp neutron l3 agent vm1 vm2 VM1 can ping VM2 … we’ve successfully completed the standard network test. br-int br-int br-eth2 br-eth2 eth2 eth2 Mention Nexus MD during port binding The ML2 Cisco Nexus MechanismDriver trunks the VLAN on eth2/1. The ML2 Cisco Nexus MechanismDriver trunks the VLAN on eth2/2. Cisco Nexus Switch eth2/1 eth2/2

Questions?