73

Multicast in OpenStack

Embed Size (px)

Citation preview

Page 1: Multicast in OpenStack
Page 2: Multicast in OpenStack

Multicast in OpenStack

Internals, Limitations and Requirements for Media Workloads

Vikram Hosakote

Sr. Software Engineer, Cisco Systems

[email protected]

DEVNET-2055

Page 3: Multicast in OpenStack

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

• Multicast Concepts and Internals• Multicast Use Cases• Multicast in OpenStack• Requirements and Limitations• Multicast for Media Workloads• Q & A

Agenda

Page 4: Multicast in OpenStack

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

Multicast Concepts and Internals

Page 5: Multicast in OpenStack

© 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

Page 6: Multicast in OpenStack

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

What is multicast?

Page 7: Multicast in OpenStack

© 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

Page 8: Multicast in OpenStack

© 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

Page 9: Multicast in OpenStack

© 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

Page 10: Multicast in OpenStack

© 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

Page 11: Multicast in OpenStack

© 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!

Page 12: Multicast in OpenStack

© 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

Page 13: Multicast in OpenStack

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

Multicast addressing – reserved addresses

Page 14: Multicast in OpenStack

© 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

Page 15: Multicast in OpenStack

© 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

Page 16: Multicast in OpenStack

© 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

Page 17: Multicast in OpenStack

© 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

Page 18: Multicast in OpenStack

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

IGMP packet format

Page 19: Multicast in OpenStack

© 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

Page 20: Multicast in OpenStack

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

IGMP snooping

Page 21: Multicast in OpenStack

© 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

Page 22: Multicast in OpenStack

© 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

Page 23: Multicast in OpenStack

© 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)

Page 24: Multicast in OpenStack

© 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

Page 25: Multicast in OpenStack

© 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

Page 26: Multicast in OpenStack

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

Multicast routing – PIM DM - join

Page 27: Multicast in OpenStack

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

Multicast routing – PIM DM - flood

Page 28: Multicast in OpenStack

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

Multicast routing – PIM DM - prune

Page 29: Multicast in OpenStack

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

Multicast routing – PIM DM - routing

Page 30: Multicast in OpenStack

© 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

Page 31: Multicast in OpenStack

© 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

Page 32: Multicast in OpenStack

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

Multicast routing – PIM SM - join

Page 33: Multicast in OpenStack

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

Multicast routing – PIM SM - register and routing

Page 34: Multicast in OpenStack

© 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

Page 35: Multicast in OpenStack

© 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

Page 36: Multicast in OpenStack

© 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)

Page 37: Multicast in OpenStack

© 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

Page 38: Multicast in OpenStack

© 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

Page 39: Multicast in OpenStack

© 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

Page 40: Multicast in OpenStack

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

Multicast Use Cases

Page 41: Multicast in OpenStack

© 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

Page 42: Multicast in OpenStack

© 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

Page 43: Multicast in OpenStack

© 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

Page 44: Multicast in OpenStack

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

Multicast in OpenStack

Page 45: 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.

Page 46: Multicast in OpenStack

© 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

Page 47: Multicast in OpenStack

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

Multicast in OpenStack – virtual L-2 switch

Page 48: Multicast in OpenStack

© 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

Page 49: Multicast in OpenStack

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

Multicast in OpenStack – virtual L-3 router

Page 50: Multicast in OpenStack

© 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

Page 51: Multicast in OpenStack

© 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

Page 52: Multicast in OpenStack

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

Multicast in OpenStack – provider network

Page 53: Multicast in OpenStack

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

Multicast in OpenStack – provider network

Page 54: Multicast in OpenStack

© 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

Page 55: Multicast in OpenStack

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

Multicast in OpenStack – Cisco’s ASR1k plugin

Page 56: Multicast in OpenStack

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

Multicast in OpenStack – Cisco’s ASR1k plugin

Page 57: Multicast in OpenStack

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

Multicast in OpenStack – Cisco’s ACI and APIC driver

Page 58: Multicast in OpenStack

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

Multicast in OpenStack – UCSM multicast policy

Page 59: Multicast in OpenStack

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

Multicast in OpenStack – UCSM multicast policy

Page 60: Multicast in OpenStack

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

Multicast in OpenStack – ACI / APIC multicast policy

Page 61: Multicast in OpenStack

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

Requirements and Limitations

Page 62: Multicast in OpenStack

© 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)

Page 63: Multicast in OpenStack

© 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

Page 64: Multicast in OpenStack

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

Multicast for Media Workloads

Page 65: Multicast in OpenStack

© 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,_mu

ltiple_files_streaming,_using_multicast_in_streaming/

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

Page 66: Multicast in OpenStack

© 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

Page 67: Multicast in OpenStack

© 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

Page 68: Multicast in OpenStack

Thank you

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

Page 69: Multicast in OpenStack

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

Please fill out survey and give feedback!

Page 70: Multicast in OpenStack

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

Q & A

Page 71: Multicast in OpenStack
Page 72: Multicast in OpenStack

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

Additional slides

Page 73: Multicast in OpenStack

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

Multicast GLOP reserved addresses