73

Multicast in OpenStack - d2zmdbbm9feqrf.cloudfront.netd2zmdbbm9feqrf.cloudfront.net/2016/usa/pdf/DEVNET-2055.pdf · Multicast in OpenStack Internals, Limitations and Requirements

Embed Size (px)

Citation preview

Multicast in OpenStack

Internals, Limitations and Requirements for Media Workloads

Vikram Hosakote

Sr. Software Engineer, Cisco Systems

DEVNET-2055

• Multicast Concepts and Internals

• Multicast Use Cases

• Multicast in OpenStack

• Requirements and Limitations

• Multicast for Media Workloads

• Q & A

Agenda

Multicast Concepts and Internals

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 5DEVNET-2055

What is multicast?

• One-to-many communication

• Packet duplication

• Driven by receivers

• A multicast “group” is identified by a multicast IP address

• Analogy: TV and radio broadcasting

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 6DEVNET-2055

What is multicast?

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 7DEVNET-2055

Lots of multicast RFCs!• RFC 2236 Internet Group Management Protocol

• RFC 2365 Administratively Scoped IP Multicast

• RFC 2858 Multiprotocol Extensions for BGP-4

• RFC 3376 Internet Group Management Protocoll

• RFC 3446 Anycast Rendezvous Point (RP) mechanism using Protocol Independent Multicast (PIM) and Multicast Source Discovery Protocol (MSDP)

• RFC 3569 An Overview of Source-Specific Multicast (SSM)

• RFC 3618 Multicast Source Discovery Protocol (MSDP)

• RFC 4291 IP Version 6 Addressing Architecture

• RFC 4541 Considerations for Internet Group Management Protocol (IGMP) and Multicast Listener Discovery (MLD) Snooping Switches

• RFC 4601 Protocol Independent Multicast - Sparse Mode (PIM-SM): Protocol Specification (Revised)

• RFC 4610 Anycast-RP Using Protocol Independent Multicast (PIM)

• RFC 5059 Bootstrap Router (BSR) Mechanism for Protocol Independent Multicast (PIM)

• RFC 5132 IP Multicast MIB

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 8DEVNET-2055

Network without multicast

• Sender must duplicate each packet

• Network congestion

• No group management

• Packet drop

• No difference between one-to-many and unicast communication

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 9DEVNET-2055

Components of multicast

• Multicast addressing

• Multicast group management (IGMP)

• Multicast routing

• Multicast clients

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 10DEVNET-2055

Components of multicast

• Multicast addressing

• Multicast group management (IGMP)

• Multicast routing

• Multicast clients

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 11DEVNET-2055

Multicast addressing

• Multicast group addresses range from 224.0.0.0 to 239.255.255.255 (class D addresses)

• Clients join or leave a multicast group address

• Multicast traffic is sent to all members of a group

• Multicast is unreliable (uses UDP)

• No Multicast with TCP!

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 12DEVNET-2055

Multicast addressing

• First four bits of a class D address are 1110

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 13DEVNET-2055

Multicast addressing – reserved addresses

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 14DEVNET-2055

Multicast addressing – reserved addresses

• 224.0.0.1 All hosts on a subnet

• 224.0.0.2 All routers on a subnet

• 224.0.0.5 OSPF

• 224.0.0.6 OSPF DR

• 224.0.0.9 RIP

• 224.0.0.10 EIGRP

• 224.0.0.13 PIM

• 224.0.1.1 NTP

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 15DEVNET-2055

Multicast addressing – layer-2 MAC address

• Mac addresses range from 01-00-5E-00-00-00 to 01-00-5E-7F-FF-FF

• The most significant 25 bits of the 48-bit mac address are fixed

• The lower 23 bits are variable and derived from the lower 23 bits of the multicast IP address

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 16DEVNET-2055

Components of multicast

• Multicast addressing

• Multicast group management (IGMP)

• Multicast routing

• Multicast clients

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 17DEVNET-2055

Internet Group Management Protocol (IGMP)

• IGMP is used for group management of clients (receivers)

• Used by multicast routers to keep track of group membership

• Three versions – v1, v2, v3

• Receivers send IGMP reports (join and leave messages)

• Multicast routers send IGMP query messages to query group membership

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 18DEVNET-2055

IGMP packet format

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 19DEVNET-2055

IGMP snooping

• Network switch listens for IGMP messages and maintains a map of which links need which IP multicast streams

• Prevents hosts on a local network from receiving traffic for a multicast group they have not explicitly joined

• RFC 4541

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 20DEVNET-2055

IGMP snooping

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 21DEVNET-2055

Components of multicast

• Multicast addressing

• Multicast group management (IGMP)

• Multicast routing

• Multicast clients

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 22DEVNET-2055

Multicast routing

• Multicast routing is done by layer-3 devices between the multicast source and the receivers

• PIM (Protocol Independent Multicast)

• PIM Dense Mode (DM)

• PIM Sparse Mode (SM)

• PIM works with any unicast routing protocol

• EIGRP, OSPF, BGP, RIP, static routes

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 23DEVNET-2055

Multicast routing – other protocols

• Distance Vector Multicast Routing Protocol (DVMRP)

• Multicast Open Shortest Path First (MOSPF)

• Core Based Tree (CBT)

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 24DEVNET-2055

Multicast routing objectives

• Members should not receive duplicate multicast packets

• Non-members must not receive any multicast packets

• No routing loops

• Shortest best path from source to destination

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 25DEVNET-2055

Multicast routing – PIM DM

• Push mechanism

• Flood-and-prune model

• Initially floods all multicast packets to all members

• Non-members send “prune” messages and do not receive packets over time

• Builds a source-based tree

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 26DEVNET-2055

Multicast routing – PIM DM - join

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 27DEVNET-2055

Multicast routing – PIM DM - flood

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 28DEVNET-2055

Multicast routing – PIM DM - prune

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 29DEVNET-2055

Multicast routing – PIM DM - routing

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 30DEVNET-2055

Multicast routing – PIM DM - Cisco configuration

config terminal

ip multicast-routing

interface interface-id

ip pim dense-mode

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 31DEVNET-2055

Multicast routing – PIM SM

• Pull mechanism

• Rendezvous Point (RP) is the meeting point for the senders and the receivers

• Receivers send IGMP join messages to RP

• Sender sends multicast packets to RP

• RP can be static or dynamic (Auto RP)

• Builds a shared-tree with RP

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 32DEVNET-2055

Multicast routing – PIM SM - join

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 33DEVNET-2055

Multicast routing – PIM SM - register and routing

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 34DEVNET-2055

Multicast routing – PIM SM- Cisco configuration

config terminal

ip multicast-routing

ip pim rp-address <IP address of RP>

interface interface-id

ip pim sparse-mode

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 35DEVNET-2055

Multicast routing – auto RP

• Cisco’s proprietary technology

• Used for dynamic RP election

• Primary and Secondary RP

• Reserved addresses:

• 224.0.1.39 The Cisco multicast router AUTO-RP-ANNOUNCE

• 224.0.1.40 The Cisco multicast router AUTO-RP-DISCOVERY

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 36DEVNET-2055

Multicast routing – Reverse Path Forwarding (RPF)

• Unicast forwarding decision is based on the destination address

• Multicast forwarding decision is based on the source address found in the reverse path (from the receiving router back to the source along the unicast best path to the multicast source)

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 37DEVNET-2055

Multicast routing – Reverse Path Forwarding (RPF)

• Without RPF check, R3 would forward packets it got from R1 to R2, R2 would forward packets back to R1, and R1 would forward packets again to R3

• This creates routing loops, and generates multicast storms that waste bandwidth and router resources

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 38DEVNET-2055

Components of multicast

• Multicast addressing

• Multicast group management (IGMP)

• Multicast routing

• Multicast clients

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 39DEVNET-2055

Multicast clients

• Send IGMP join message

• Receive / consume multicast UDP traffic

• If clients / receivers are slower than the multicast source, packets are dropped

• Know that they receive unreliable traffic and do not expect retransmitted packets

• Send IGMP leave message (IGMP v2) when leaving a multicast group

• Respond to IGMP queries from upstream routers

Multicast Use Cases

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 41DEVNET-2055

Multicast Use Cases

• One-to-many corporate communications such as:

• Employee training videos

• Quarterly company meetings

• Company-wide corporate communications

• Executive announcements

• Music / media streaming

• Video podcasts

• IPTV services

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 42DEVNET-2055

Multicast Use Cases

• One-to-many software updates / patches

• Social networking (Facebook, Twitter feeds, Instagram)

• Financial services, banks, stock exchange

• Government / Federal agencies

• RTP (Real Time Protocol) applications

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 43DEVNET-2055

Multicast Use Cases – Cisco’s Music on Hold (MoH)

• Music on hold (MoH) is an integral feature of the Cisco Unified Communications system

• This feature provides music to callers when their call is placed on hold or transferred

Multicast in OpenStack

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 45DEVNET-2055

Multicast in OpenStack – what is OpenStack?

• OpenStack is an open source cloud operating system that controls large pools of compute, storage, and networking resources in a datacenter.

• Managed through a dashboard that gives administrators control to provision resources through a web interface.

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 46DEVNET-2055

Multicast in OpenStack

• No multicast available out-of-the-box

• Virtual layer-2 switches support IGMP snooping:

• Open vSwitch 2.5 supports IGMP snooping

• http://openvswitch.org/features/

• https://github.com/openvswitch/ovs/blob/master/FAQ.md

• Linux Bridge 2.4 supports IGMP snopping

• http://www.linuxfoundation.org/collaborate/workgroups/networking/bridge#Snooping

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 47DEVNET-2055

Multicast in OpenStack – virtual L-2 switch

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 48DEVNET-2055

Multicast in OpenStack – virtual L-3 router

• Neutron is OpenStack’s networking-as-a-service

• Neutron-L3-Agent is OpenStack virtual layer-3 router

• Neutron-L3-Agent does not support multicast routing, PIM and querying

• No Neutron CLI or API to configure multicast routing

• Multicast routing cannot be configured in the OpenStack Horizon GUI

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 49DEVNET-2055

Multicast in OpenStack – virtual L-3 router

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 50DEVNET-2055

Multicast in OpenStack – recommendations

• Neutron provider network – Don’t use Neutron-L3-Agent (OpenStack’s virtual router)

• Cisco’s ASR1k plugin for OpenStack Neutron instead of Neutron-L3-Agent

• Cisco’s ACI and APIC driver for Neutron

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 51DEVNET-2055

Multicast in OpenStack – recommendations

• Neutron provider network:

• Don’t use Neutron-L3-Agent (OpenStack’s virtual router not used)

• Neutron does not route any multicast traffic

• Use Neutron provider network

• Use lab-routable public VLAN configured on top-of-rack switches

• Use lab router outside OpenStack

• Use lab gateway outside OpenStack

• Attach Nova instances directly to provider network

• Configure multicast routing / PIM on the lab router

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 52DEVNET-2055

Multicast in OpenStack – provider network

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 53DEVNET-2055

Multicast in OpenStack – provider network

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 54DEVNET-2055

Multicast in OpenStack – recommendations

• Cisco’s ASR1k plugin for OpenStack Neutron :

• Neutron-L3-Agent (OpenStack’s virtual router) not used

• ASK1k plugin does both unicast and multicast routing

• Two ASR1000s used in VPC pair

• Neutron talks to ASR1k using Cisco’s config agent

• Neutron does not route any multicast traffic

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 55DEVNET-2055

Multicast in OpenStack – Cisco’s ASR1k plugin

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 56DEVNET-2055

Multicast in OpenStack – Cisco’s ASR1k plugin

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 57DEVNET-2055

Multicast in OpenStack – Cisco’s ACI and APIC driver

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 58DEVNET-2055

Multicast in OpenStack – UCSM multicast policy

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 59DEVNET-2055

Multicast in OpenStack – UCSM multicast policy

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 60DEVNET-2055

Multicast in OpenStack – ACI / APIC multicast policy

Requirements and Limitations

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 62DEVNET-2055

Multicast requirements

• Multicast source

• UDP streams

• Multicast routing (PIM, RP, IGMP querier)

• Unicast routing (EIRGP, OSPF, BGP, RIP, etc)

• IGMP snooping

• No filters / ACLs that drop multicast traffic

• Multicast clients (IGMPv1, IGMPv2, IGMPv3)

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 63DEVNET-2055

Multicast limitations

• IGMP snooping affects performance of the layer-2 switch as the switch must read the destination IP address of each incoming packet

• High bandwidth multicast traffic affects performance of unicast routing

• Needs plugin (ASR1k, APIC) integration with OpenStack

• Best-effort delivery (UDP is unreliable)

• Out-of-sequence delivery

• Lack of TCP windowing results in network congestion

• Duplicate packets and occasional loops when unicast routing is broken

Multicast for Media Workloads

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 65DEVNET-2055

Multicast for media applications

• Cisco Video conferencing – Telepresence, Webex, Jabber

• Cisco video and collaborations applications – Virtualized Video Processing (V2P), Videoscape AnyRes, IPTV devices, video encoders, video surveillance, etc

• VLC player• http://www.videolan.org/projects/multicat.html

• https://wiki.videolan.org/Documentation:Streaming_HowTo/Advanced_streaming_with_samples,_multiple_files_streaming,_using_multicast_in_streaming/

• https://wiki.videolan.org/Documentation:Streaming_HowTo/Receive_and_Save_a_Stream/

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 66DEVNET-2055

Multicast tools

• Iperf - https://iperf.fr

• Nuttcp - http://www.nuttcp.net

• OpenStack VMTP - https://github.com/openstack/vmtp

• OpenStack Kloudbuster - https://github.com/openstack/kloudbuster

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 67DEVNET-2055

References

• https://supportforums.cisco.com/document/128461/understanding-basics-multicast-rpf-reverse-path-forwarding

• http://www.slideshare.net/engineerrd/multicast-routing-protocols?qid=ed2afefe-3169-406d-a379-adcf491121d5&v=&b=&from_search=2

• http://www.cisco.com/c/en/us/td/docs/switches/datacenter/sw/nx-os/multicast/configuration/guide/b_multicast/b_multicast_chapter_0101.html

• http://www.cisco.com/c/en/us/td/docs/switches/datacenter/aci/apic/sw/1-x/api/openstack/b_Cisco_APIC_OpenStack_Driver_Install_Guide/b_Cisco_APIC_OpenStack_Driver_Install_Guide_chapter_00.html

• https://ask.openstack.org/en/question/24679/can-we-launch-an-instance-that-behaves-as-a-router-in-openstack/

• http://superuser.openstack.org/articles/provisioning-neutron-networks-with-the-nsx-v-plugin

• http://blogs.cisco.com/cloud/openstack-asr1000-plugin-new-features

• http://blogs.cisco.com/datacenter/scaling-openstack-l3-using-cisco-asr1k-platform

• http://www.cisco.com/c/en/us/td/docs/switches/datacenter/aci/apic/sw/1-x/api/openstack/b_Cisco_APIC_OpenStack_Driver_Install_Guide/b_Cisco_APIC_OpenStack_Driver_Install_Guide_chapter_00.html

• http://www.cisco.com/c/en/us/td/docs/switches/datacenter/aci/apic/sw/1-x/virtualization/b_ACI_Virtualization_Guide/b_ACI_Virtualization_Guide_chapter_0100.html

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

Complete Your Online Session Evaluation

Don’t forget: Cisco Live sessions will be available for viewing on-demand after the event at CiscoLive.com/Online

• Give us your feedback to be entered into a Daily Survey Drawing. A daily winner will receive a $750 Amazon gift card.

• Complete your session surveys through the Cisco Live mobile app or from the Session Catalog on CiscoLive.com/us.

68DEVNET-2055

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

Continue Your Education

• Demos in the Cisco campus

• Walk-in Self-Paced Labs

• Lunch & Learn

• Meet the Engineer 1:1 meetings

• Related sessions

69DEVNET-2055

Thank you

Please fill out survey and give feedback!

Q & A