BRKIPM-1261-rev5 Introduction to IP Multicast Beau Williamson CCIE R/S #1346 Emeritus CiscoLive Distinguished Speaker Twitter: @Mr_Multicast BRKIPM-1261 Cisco Spark Questions? Use Cisco Spark to communicate with the speaker after the session How 1. Find this session in the Cisco Live Mobile App 2. Click “Join the Discussion” 3. Install Spark or go directly to the space 4. Enter messages/questions in the space Cisco Spark spaces will be available until July 3, 2017. cs.co/clus17/#session ID E.g: session ID = BRKCOL-1800 BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Other IP Multicast Sessions @ CiscoLive • BRKIPM-2264 – Troubleshooting Multicast • • BRKIPM-2249 – Segment Routing and Multicast • • Monday, Jun 26, 8:00 a.m. - 12:00 p.m. | MGM Grand, Level 1, Room 108 BRKIPM-3017 – Advanced mVPN Deployment Models • • M,Tu,W,Th, 10:00 a.m. - 10:45 a.m. | WISP 78 LTRMPL-3103 – Next Generation Multicast VPN • • M,Tu,W,Th, 10:00 a.m. - 10:45 a.m. | WISP 77 LABMPL-2005 – Introduction to Multicast Label Distribution (mLDP) • • Monday, Jun 26, 4:00 p.m. - 5:30 p.m. | Level 3, Palm D LABCCIE-3010 – CCIE SP - Multicast VPN • • Wednesday, Jun 28, 8:00 a.m. - 10:00 a.m. | Level 2, Mandalay Bay A Tuesday, Jun 27, 4:00 p.m. - 5:30 p.m. | Level 3, South Seas BRKSPV-2919 – Video Transport Architectures • Wednesday, Jun 28, 1:30 p.m. - 3:30 p.m. | Level 2, Reef B BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 4 Session Goals • To provide you with an understanding of the concepts, mechanics and protocols used to build IP multicast networks. • To enable you to ask the right questions, and make the correct architectural decisions in deploying and maintaining an IP Multicast enabled network. • To prove that Multicast doesn’t have to be: • Hard • Scary BRKIPM-1261 Agenda • Multicast Fundamentals • Source-Specific Multicast (SSM) • Bidirectional Multicast (Bidir) • Any-Source Multicast (ASM) • ASM Redundant RP Choices • Multicast at Layer 2 • Multicast over MPLS – mLDP • Bit-Indexed Explicit Replication – BIER • Inter-domain IP Multicast • IPv6 Multicast Geekometer BRKIPM-1261 Multicast Fundamentals BRKIPM-1261 7 Why Multicast Unicast vs. Multicast Scaling Unicast Server Router Number of Streams Multicast Server Router BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 8 Multicast Uses • Any applications with multiple receivers • One-to-many or many-to-many • Live video distribution • Collaborative groupware • Periodic data delivery—“push” technology • • Stock quotes, sports scores, magazines, newspapers, adverts Inter Data Center L2 Underlay • VXLAN, etc. for BUM • Server/Website replication • Reducing network/resource overhead • More than multiple point-to-point flows • Resource discovery • Distributed interactive simulation (DIS) • War games • Virtual reality BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 9 Multicast Considerations Multicast Is UDP-Based • Best effort delivery: Drops are to be expected; multicast applications should not expect reliable delivery of data and should be designed accordingly; reliable multicast is still an area for much research; expect to see more developments in this area; PGM, FEC, QoS • No congestion avoidance: Lack of TCP windowing and “slow-start” mechanisms can result in network congestion; if possible, multicast applications should attempt to detect and avoid congestion conditions • Duplicates: Some multicast protocol mechanisms (e.g., asserts, registers, and SPT transitions) result in the occasional generation of duplicate packets; multicast applications should be designed to expect occasional duplicate packets • Out of order delivery: Some protocol mechanisms may also result in out of order delivery of packets BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 10 Multicast Fundamentals Multicast Myth Busters “Multicast is complicated, scary and hard to understand!” BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 11 Unicast vs. Multicast Addressing 12.1.1.1 11.1.1.1 src addr: 10.1.1.1 src addr: 10.1.1.1 A unique packet addressed to each destination IP Address. 13.1.1.1 Multicast Group Address e.g. 224.1.1.1 Same packet addressed to “Group” destination address... BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 12 Unicast vs. Multicast Addressing 12.1.1.1 11.1.1.1 src addr: 10.1.1.1 src addr: 10.1.1.1 A unique packet addressed to each destination IP Address. 13.1.1.1 Multicast Group Address e.g. 224.1.1.1 ..replicated at each node along the tree. BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 13 Multicast MulticastAddressing Addressing IPv4 Header Version IHL Type of Service Identification Time to Live Total Length Flags Protocol Fragment Offset Header Checksum Source Source Source Always Addressthe unique unicast origin address of the packet – same as unicast 1.0.0.0 - 232.255.255.255 (Class A, B, C) Destination Destination Destination Address 224.0.0.0 - 239.255.255.255 (Class D) Multicast Group Options Address Range Padding BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 14 Multicast Addressing Class D Group addresses – 224/4 • Multicast Group addresses are NOT in the unicast route table. • A separate multicast route table is maintained for active multicast trees. • Multicast trees are initiated by receivers signaling their request to join a group. • Sources do not need to join, they just send! • Multicast routing protocols build the trees: • Hop-by-hop, from the receivers (tree leaves) to the source (tree root). • Tree path follows the unicast route table backward to the source using source address. • i.e. Multicast relies on a dependable unicast infrastructure! BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 15 Multicast Addressing—224/4 • Reserved link-local addresses • • • 224.0.0.0–224.0.0.255 Transmitted with TTL = 1 Examples • • • • • • 224.0.0.1 224.0.0.2 224.0.0.5 224.0.0.13 224.0.0.22 All systems on this subnet All routers on this subnet OSPF routers PIMv2 routers IGMPv3 Other IANA reserved addresses • • • 224.0.1.0–224.0.1.255 Not local in scope (transmitted with TTL > 1) Examples • • • 224.0.1.1 224.0.1.32 224.0.1.78 NTP (Network Time Protocol) Mtrace routers Tibco Multicast1 BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 16 Multicast Addressing—224/4 • Administratively scoped addresses • 239.0.0.0–239.255.255.255 • Private address space • • • Similar to RFC1918 unicast addresses Not used for global Internet traffic—scoped traffic SSM (Source Specific Multicast) range • 232.0.0.0–232.255.255.255 • Primarily targeted for Internet-style broadcast BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 17 Multicast Addressing IP Multicast MAC Address Mapping 32 Bits 28 Bits 1110 239.255.0.1 5 Bits Lost 01-00-5e-7f-00-01 25 Bits 23 Bits 48 Bits BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 18 Multicast Addressing IP Multicast MAC Address Mapping Be Aware of the 32:1 Address Overlap 32–IP Multicast Addresses 224.1.1.1 224.129.1.1 225.1.1.1 225.129.1.1 . . . 238.1.1.1 238.129.1.1 239.1.1.1 239.129.1.1 1–Multicast MAC Address 0x0100.5E01.0101 BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 19 How are Multicast Flows Identified • Every Multicast Flow can be identified by two components: • Source IP Address • • Multicast Group Address • • The address of the Sender 224/4 (Class D) IP Address Multicast Flow from Source 2.2.2.2 to Group 232.1.1.1 Example (2.2.2.2, 232.1.1.1), 3w1d/00:02:40, flags: s Incoming interface: Ethernet 0/0, RPF nbr 207.109.83.33 Outgoing interface list: Ethernet 1/0, Forward/Sparse, 3w1d/00:02:40 Ethernet 2/0, Forward/Sparse, 2w0d/00:02:33 • How do Hosts Signal to Routers which flow they want? • IPv4: IGMP • IPv6: MLD BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 20 Host-Router Signaling: IGMP • IGMP Version 3 is current version • • RFC3376 Oct 2002 (Over 10 years old!) Uses 224.0.0.22 (IGMPv3 routers) Link-Local Multicast Address • All IGMP hosts send Membership Reports to this address • All IGMP routers listen to this address • Hosts do not listen or respond to this address (unlike previous IGMP versions) • Membership Reports • Sent by Hosts • Contain list of Multicast (Source, Group) pairs to Include/Exclude (Join/Leave) • Membership Queries • Sent by Routers to refresh/maintain list of Multicast traffic to deliver. BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 21 IGMPv3 – Membership Report Packet Format 7 Type = 0x22 15 Reserved 31 Checksum Reserved # of Group Records (M) 7 15 Record Type Aux Data Len 31 # of Sources (N) Multicast Group Address Group Record [1] Source Address [1] Source Address [2] . . Source Address [N] Group Record [2] . . . Auxiliary Data Group Record [M] # of Group Records (M) Number of Group Records in Report Group Records 1 - M Group address plus list of zero or more sources to Include/Exclude (See Group Record format) Record Type Include, Exclude, Chg-to-Include, Chg-to-Exclude, Allow New Srcs, Block Old Srcs # of Sources (N) Number of Sources in Record Source Address 1- N Address of Source BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 22 IGMPv3 – Query Packet Format Type = 0x11 IGMP Query Max. Resp. Time Max. time to send a response if < 128, Time in 1/10 secs if > 128, FP value (12.8 - 3174.4 secs) Group Address: Multicast Group Address (0.0.0.0 for General Queries) 7 Type = 0x11 15 31 Max. Resp. Code Checksum Group Address S QRV QQIC Number of Sources (N) S Flag Suppresses processing by routers Source Address [1] QRV (Querier Robustness Value) Affects timers and # of retries Source Address [2] . . . QQIC (Querier’s Query Interval) Same format as Max. Resp. Time Number of Sources (N) (Non-zero for Group-and-Source Query) Source Address [N] Source Address Address of Source BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 23 IGMPv3 – Joining Group “G” Source “S” 192.168.102.10 192.168.102.11 H1 H2 192.168.102.12 Type: Allow New (5) Group: 232.1.1.1 Source: {2.2.2.2} Report (224.0.0.22) H3 show ip igmp groups 232.1.1.1 detail Flags: L - Local, U - User, SG - Static Group, VG - Virtual Group, SS - Static Source, VS - Virtual Source, Ac - Group accounted towards access control limit Interface: GigabitEthernet3/3 Group: 232.1.1.1 Flags: SSM Uptime: 00:01:14 Group mode: INCLUDE Last reporter: 192.168.102.11 Group source list: (C - Cisco Src Report, U - URD, R - Remote, S - Static, V - Virtual, M - SSM Mapping, L - Local, Ac - Channel accounted towards access control limit) Source Address Uptime v3 Exp CSR Exp Fwd Flags 2.2.2.2 00:01:14 00:02:08 stopped Yes R Hn Member Group: 232.1.1.1 Source: 2.2.2.2 (Destination IP Address) BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 24 IGMPv3 – Maintaining State 192.168.102.10 H1 192.168.102.11 Type: Include (1) Group: 232.1.1.1 Source: {2.2.2.2} Report (224.0.0.22) H2 192.168.102.12 Type: Include (1) Group: 232.1.1.1 Source: {2.2.2.2} Report (224.0.0.22) H3 Type: Include (1) Group: 232.1.1.1 Source: {2.2.2.2} Report (224.0.0.22) (224.0.0.1) Query Group: 0.0.0.0 Source: {} • Router sends periodic General Queries to All Hosts • • General Query: Group=0, #Srcs=0 Member Group: 232.1.1.1 Source: 2.2.2.2 All IGMP members respond Hn • (Destination IP Address) Reports can contain multiple Group State records BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 25 IGMPv3 – Leaving Group “G” Source “S” 192.168.102.10 H1 192.168.102.11 1 H2 192.168.102.12 2 Type: Block Old (6) Group: 232.1.1.1 Source: {2.2.2.2} Report (224.0.0.22) H3 (232.1.1.1) Query Group: 232.1.1.1 Source: {2.2.2.2} H2 leaves Group-Source 2. Sends “Block Old” Membership Report 3. Router sends Group-Source Query 3 1. • Hn Group-Source Query: Group=G, #Srcs=N Member Group: 232.1.1.1 Source: 2.2.2.2 (Destination IP Address) BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 26 IGMPv3 – Leaving Group “G” Source “S” 192.168.102.10 192.168.102.11 192.168.102.12 H1 H2 H3 Type: Include Group: 232.1.1.1 Source: {2.2.2.2} 4 Report (224.0.0.22) 5 H2 leaves Group-Source Sends “Block Old” Membership Report 3. Router sends Group-Source Query 4. A remaining member host sends report 5. Group-Source flow remains active 1. 2. Hn Member Group: 232.1.1.1 Source: 2.2.2.2 (Destination IP Address) BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 27 IGMPv3 – Leaving Group “G” Source “S” 192.168.102.10 192.168.102.11 H1 H2 192.168.102.12 6 H3 Type: Block Old (6) Group: 232.1.1.1 Source: {2.2.2.2} Report 7 (224.0.0.22) (232.1.1.1) Query 8 Group: 232.1.1.1 Source: {2.2.2.2} H3 leaves Group-Source 7. Sends “Block Old” Membership Report 8. Router sends Group-Source Query 6. Hn Member Group: 232.1.1.1 Source: 2.2.2.2 (Destination IP Address) BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 28 IGMPv3 – Leaving Group “G” Source “S” 192.168.102.10 192.168.102.11 192.168.102.12 H1 H2 H3 9 H3 leaves Group-Source 7. Sends Remove Membership Report 8. Router sends Group-Source specific query 9. State times out. Group-Source flow pruned. 6. Hn Member Group: 232.1.1.1 Source: 2.2.2.2 (Destination IP Address) BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 29 Unicast vs. Multicast Routing/Forwarding Unicast Routing/Forwarding • Destination IP address directly indicates where to forward packet • Unicast Routing protocols build a table of destination/interface/next-hop triples • Unicast Forwarding is hop-by-hop simply based on these entries • Unicast routing table determines interface and next-hop router to forward packet BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 30 Unicast vs. Multicast Routing/Forwarding Multicast Routing & Forwarding • Destination Group address doesn’t directly indicate where to forward packet. • • Forwarding State must be created to build trees to describe forwarding path. Multicast Routing is Backwards from Unicast Routing • Multicast Routing builds a tree backwards from the receivers to the source. • • Concerned with “Where the packet will come from?” More specifically, “What’s the route back to the Source?” Trees are built via connection requests (Joins) “sent” toward the source. • Joins follow the unicast routing table backwards toward the source. • Joins create Multicast tree/forwarding state in the routers along the tree. • • • Trees are rebuilt dynamically in case of network topology changes. Only when a tree is completely built from receiver backwards to the source can source traffic flow down the tree to the receivers. • Say that over and over to yourself when working with Multicast! BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 31 Unicast vs. Multicast Routing/Forwarding Multicast Routing & Forwarding All of this can easily lead to “thinking with your Unicast Lizard Brain!” • If you ever get confused by Multicast, just remember to . . . “Stand on your head!” • BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 32 Source-Specific Multicast (SSM) BRKIPM-1261 33 Source Specific Multicast (SSM) Concepts • Assumes one-to-many model • Most Internet multicast fits this model • IP/TV also fits this model • Hosts responsible for source discovery • Typically via some out-of-band mechanism • • Web page, Content Server, etc. Hosts join a specific source within a group • Content identified by specific (S,G) • Dissimilar content sources can use same group “G” without fear of interfering with each other • Last-hop router sends (S,G) join toward source • Only specified (S,G) flow is delivered to host BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 34 Multicast Tree Building 1. Multicast packet’s source address is checked against the unicast routing table 2. Determines interface & next-hop multicast router in the direction of the source • This is where the Joins are to be sent This interface becomes the “Incoming” interface 3. Often referred to as the “RPF” (Reverse Path Forwarding) interface • A router forwards a multicast datagram only if received on the Incoming/RPF interface • • A bit of History The term “RPF” is actually a left-over from early Dense mode Multicast days • Multicast traffic was flooded everywhere (i.e. no explicit Join signaling to build trees) • Traffic was only accepted on the “RPF” interface to avoid loops • We still tend to use the term to indicate the calculation of the Incoming interface. • BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 35 Multicast Routing & Forwarding Traffic to 232.1.1.1 Source 2.2.2.2 Receiver Multicast Traffic BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 36 Multicast Routing & Forwarding Traffic to 232.1.1.1 Source 2.2.2.2 IGMP “Join” (2.2.2.2, 232.1.1.1) Receiver Forwarding State Multicast Traffic Mroute Entry BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 37 Multicast Routing & Forwarding Traffic to 232.1.1.1 Source 2.2.2.2 PIM Join (2.2.2.2, 232.1.1.1) Receiver Forwarding State Multicast Traffic Mroute Entry Mroute Entry BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 38 Multicast Routing & Forwarding Traffic to 232.1.1.1 PIM Join (2.2.2.2, 232.1.1.1) Source 2.2.2.2 Mroute Entry Receiver Forwarding State Multicast Traffic Mroute Entry Mroute Entry BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 39 Multicast Routing & Forwarding Traffic to 232.1.1.1 Source 2.2.2.2 Mroute Entry Receiver Forwarding State Multicast Traffic Mroute Entry Mroute Entry BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 40 Multicast Routing & Forwarding Traffic to 232.1.1.1 IGMP “Join” (2.2.2.2, 232.1.1.1) Receiver Source 2.2.2.2 Mroute Entry Mroute Entry Receiver Forwarding State Multicast Traffic Mroute Entry Mroute Entry BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 41 Multicast Routing & Forwarding Traffic to 232.1.1.1 PIM Join (2.2.2.2, 232.1.1.1) Receiver Source 2.2.2.2 Mroute Entry Mroute Entry Receiver Forwarding State Multicast Traffic Mroute Entry Mroute Entry BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 42 Multicast Routing & Forwarding Traffic to 232.1.1.1 Receiver Source 2.2.2.2 Mroute Entry Mroute Entry Receiver Forwarding State Multicast Traffic Mroute Entry Mroute Entry BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 43 Multicast Routing & Forwarding Mroute Entry Traffic to 232.1.1.1 show ip mroute 232.1.1.1 (2.2.2.2, 232.1.1.1), 3w1d/00:02:40, flags: s Incoming interface: Ethernet 0/0, RPF nbr 207.109.83.33 Outgoing interface list: Ethernet 0/1, Forward/Sparse, 3w1d/00:02:40 Ethernet 0/2, Forward/Sparse, 2w0d/00:02:33 Receiver Source 2.2.2.2 Mroute Entry Mroute Entry Receiver Forwarding State Multicast Traffic Mroute Entry BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 44 Multicast Routing & Forwarding Mroute Entry Traffic to 232.1.1.1 show ip mroute 232.1.1.1 (2.2.2.2, 232.1.1.1), 3w1d/00:02:40, flags: s Incoming interface: Ethernet 0/0, RPF nbr 207.109.83.33 Outgoing interface list: Ethernet 1/0, Forward/Sparse, 3w1d/00:02:40 Ethernet 2/0, Forward/Sparse, 2w0d/00:02:33 Receiver Source 2.2.2.2 Receiver Forwarding State Multicast Traffic This type of Multicast has a special name: Source Specific Multicast (SSM) BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 45 Multicast Tree Building RPF Calculation • Based on source address • Best path to source found in unicast route table SRC 10.1.1.1 A • Determines where to send join • Joins continue towards source to build multicast tree • Multicast data flows down tree Join C B D Join E0 E1 E E2 Unicast Route Table Network Interface 10.1.0.0/24 E0 BRKIPM-1261 R1 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 46 Multicast Tree Building RPF Calculation • Based on source address • Best path to source found in unicast route table SRC 10.1.1.1 A • Determines where to send join • Joins continue towards source to build multicast tree • Multicast data flows down tree Join C B Join D E0 R2 E1 E E2 R1 BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 47 Multicast Tree Building RPF Calculation • What if we have equal-cost paths? • • SRC We can’t use both Tie-breaker • 10.1.1.1 A Use highest next-hop IP address B C D 1.1.1.1 E0 Unicast Route Table Network Intfc Nxt-Hop 10.1.0.0/24 E0 1.1.1.1 10.1.0.0/24 E1 1.1.2.1 BRKIPM-1261 E 1.1.2.1 Join E1 F E2 R1 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 48 Multicast State Multicast route entries are in (S,G) form. rtr-a#show ip mroute 232.1.1.1 (2.2.2.2, 232.1.1.1), 3w1d/00:02:40, flags: s Incoming interface: Ethernet 0/0, RPF nbr 207.109.83.33 Outgoing interface list: Ethernet 1/0, Forward/Sparse, 3w1d/00:02:40 Ethernet 2/0, Forward/Sparse, 2w0d/00:02:33 Incoming interface points upstream toward the root of the tree (i.e. Source) OIL entries are refreshed by downstream receivers roughly every 3 minutes or the entry times out. [i.e. Soft State] Outgoing interface list (OIL) is where receivers have joined downstream and where packets will be replicated and forwarded downstream. BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 49 Multicast State rtr-a#show ip mroute 232.1.1.1 (2.2.2.2, 232.1.1.1), 3w1d/00:02:40, flags: s Incoming interface: Ethernet 0/0, RPF nbr 207.109.83.33 Outgoing interface list: Ethernet 1/0, Forward/Sparse, 3w1d/00:02:40 Ethernet 2/0, Forward/Sparse, 2w0d/00:02:33 rtr-b#show ip route 232.1.1.109 % Network not in table Multicast Group addresses are NEVER in the unicast route table. BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 50 Multicast State rtr-a#show ip mroute 232.1.1.1 (2.2.2.2, 232.1.1.1), 3w1d/00:02:40, flags: s Incoming interface: Ethernet 0/0, RPF nbr 207.109.83.33 Outgoing interface list: Ethernet 1/0, Forward/Sparse, 3w1d/00:02:40 Ethernet 2/0, Forward/Sparse, 2w0d/00:02:33 POP QUIZ QUESTION #1!! How is the Incoming Interface and RPF Neighbor determined? ANSWER: The best route to the Source IP Address is looked up in the route table and the RPF Neighbor is the next upstream PIM neighbor. BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 51 Multicast State rtr-a#show ip mroute 232.1.1.1 (2.2.2.2, 232.1.1.1), 3w1d/00:02:40, flags: s Incoming interface: Ethernet 0/0, RPF nbr 207.109.83.33 Outgoing interface list: Ethernet 1/0, Forward/Sparse, 3w1d/00:02:40 Ethernet 2/0, Forward/Sparse, 2w0d/00:02:33 POP QUIZ QUESTION #2!! What causes interfaces to be added to the Outgoing Interface List? ANSWER: IGMP “Joins” or PIM Joins that are received on that interface. BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 52 Basic SSM only Multicast Configuration Assumes only 1:Many Multicast • Enable Multicast Routing on every router ip multicast routing • Configure every interface for Multicast • IOS-XR – On by default • • • When ip multicast routing is configured IOS – ip pim sparse mode Configure SSM for all Multicast groups ip pim ssm range 10 access-list 10 permit 224.0.0.0 15.255.255.255 • Use DNS SSM-Mapping for non-IGMPv3 compatible apps on edge interfaces ip igmp ssm-map enable • Static config-based SSM Mapping is also possible BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 53 SSM Mapping – DNS Example DNS Record Format: 3.2.1.232 PIM (S,G) join PIM (S,G) join IN A 172.23.20.70 Reverse DNS lookup for group G DNS response: Group G -> Source S IGMPv2 join Set Top Box (STB) BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 54 Multicast Routing & Forwarding • Key Point • If you ever get confused by Multicast . . . . . . just remember to “Stand on your head”. (Because Multicast is an Upside-down world where we are interested in where the packet came from, not its destination address.) BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 55 Multicast Fundamentals Multicast Myth Busters “Multicast is complicated, scary and hard to understand!” BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 56 Multicast Fundamentals See there . . . . . . that wasn’t so hard, was it? BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 57 Multicast Fundamentals But wait, my network has Many:Many Multicast applications! How do I support them? BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 58 Bidirectional Multicast i.e. Bidir PIM BRKIPM-1261 59 Bidirectional (BiDir) PIM Concepts Idea: • Use a common “Shared” Tree to connect all Sources and Receivers. • Root this “Shared” Tree at a point in the network called the Rendezvous Point (RP) • Traffic flows up the tree from Sources to the RP and then down the tree to Receivers • Data traveling from Source toward RP is moving UPSTREAM • Data traveling from RP toward Receivers is moving DOWNSTREAM BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 60 Bidirectional (BiDir) PIM Concepts Implementation Details: • Designated Forwarders (DF) • One DF per link • • • • BiDir (*,G) forwarding rules: • • Router with best path to the RP is elected DF Election mechanism insures all routers on link agree on who is DF Prevents route loops from forming DF is the only router that picks-up upstream traveling packets off the link to forward towards the RP This is like a constrained L3 Spanning-Tree for the Group • Constrained because it only “spans” to Sources and Receivers for the Group BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 61 How do hosts Join a Shared Tree using IGMPv3? BRKIPM-1261 62 IGMPv3 – Joining a Shared Tree for All Sources 192.168.102.10 192.168.102.11 H1 H2 192.168.102.12 Type: Exclude (2) Group: 239.1.2.21 Source List: {} Report (224.0.0.22) H3 Router#sh ip igmp groups 239.1.2.21 detail Flags: L - Local, U - User, SG - Static Group, VG - Virtual Group, SS - Static Source, VS - Virtual Source, Ac - Group accounted towards access control limit Interface: GigabitEthernet3/3 Group: 239.1.2.21 Flags: Uptime: 00:00:22 Group mode: EXCLUDE (Expires: 00:02:49) Last reporter: 192.168.102.11 Source list is empty BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 63 Bidir Forwarding/Tree Building RP E0 (DF) E0 E0 E F E1 (DF) E0 A E1 (DF) E0 B E1 (DF) E0 E0 C E1 (DF) D E1 (DF) E1 (DF) IGMP (*,G) Join Receiver 1 BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 64 Bidir Forwarding/Tree Building RP E0 (DF) E0 E0 E F E1 (DF) E0 A E1 (DF) E0 B E1 (DF) E0 E0 C E1 (DF) D E1 (DF) E1 (DF) (*, 224.1.1.1), 00:00:04/00:00:00, RP 172.16.21.1, flags: BC Bidir-Upstream: Ethernet0, RPF nbr 172.16.9.1 Outgoing interface list: Ethernet0, Bidir-Upstream/Sparse-Dense, 00:00:04/00:00:00 Ethernet1, Forward/Sparse-Dense, 00:00:04/00:02:55 Receiver 1 Bidir State created in “D” BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 65 Bidir Forwarding/Tree Building RP E0 (DF) E0 E0 E F E1 (DF) E0 A E1 (DF) E0 B E1 (DF) E0 E0 C E1 (DF) PIM (*,G) Join D E1 (DF) E1 (DF) (*, 224.1.1.1), 00:00:04/00:00:00, RP 172.16.21.1, flags: BC Bidir-Upstream: Ethernet0, RPF nbr 172.16.7.1 Outgoing interface list: Ethernet0, Bidir-Upstream/Sparse-Dense, 00:00:04/00:00:00 Ethernet1, Forward/Sparse-Dense, 00:00:04/00:02:55 Receiver 1 Bidir State created in “F” BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 66 Bidir Forwarding/Tree Building RP PIM (*,G) Join E0 (DF) E0 E0 E F E1 (DF) E0 A E1 (DF) E0 B E1 (DF) E0 E0 C E1 (DF) D E1 (DF) E1 (DF) (*, 224.1.1.1), 00:32:20/00:02:59, RP 172.16.21.1, flags: B Bidir-Upstream: Null, RPF nbr 0.0.0.0 Outgoing interface list: Ethernet0, Forward/Sparse-Dense, 00:00:04/00:02:55 Receiver 1 Branch of Shared Tree is now built from RP down to Receiver 1 BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 67 Bidir Forwarding/Tree Building RP E0 (DF) E0 E0 E F E1 (DF) E0 A E0 B E1 (DF) Source E1 (DF) E0 E0 C E1 (DF) D E1 (DF) E1 (DF) (*, 224.1.1.1), 00:32:20/00:02:59, RP 172.16.21.1, flags: BP Bidir-Upstream: Ethernet0, RPF nbr 172.16.7.1 Outgoing interface list: Receiver 1 Ethernet0, Bidir-Upstream/Sparse-Dense, 00:32:20/00:00:00 Arriving Traffic from Source causes Router “A” to create (*, G) State BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 68 Bidir Forwarding/Tree Building RP E0 (DF) E0 E0 E F E1 (DF) E0 A E0 B E1 (DF) Source E1 (DF) E0 E0 C E1 (DF) D E1 (DF) E1 (DF) (*, 224.1.1.1), 00:32:20/00:02:59, RP 172.16.21.1, flags: BP Bidir-Upstream: Ethernet0, RPF nbr 172.16.7.1 Outgoing interface list: Ethernet0, Bidir-Upstream/Sparse-Dense, 00:32:20/00:00:00 Receiver 1 Arriving Traffic Causes Router “E” to create (*, G) State BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 69 Bidir Forwarding/Tree Building RP E0 (DF) E0 E0 Bidir State in RP E E1 (DF) E0 A E0 B E1 (DF) (*, 224.1.1.1),F 00:32:20/00:02:59, RP 172.16.21.1, flags: B E1 (DF) Bidir-Upstream: Null, RPF nbr 0.0.0.0 Outgoing interface list: E0 E0 Ethernet0, Forward/Sparse-Dense, 00:00:04/00:02:55 C E1 (DF) D E1 (DF) E1 (DF) Receiver 1 Source RP already has (*, G) State BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 70 Bidir Forwarding/Tree Building RP E0 (DF) E0 E0 E F E1 (DF) E0 A E1 (DF) E0 B E1 (DF) E0 E0 C E1 (DF) D E1 (DF) E1 (DF) Receiver 1 Source Traffic flows up the Shared Tree . . . . . . and then back down the Shared Tree BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 71 Basic Bidir only Multicast Configuration • Enable Multicast Routing on every router ip multicast routing • Configure every interface for Multicast • IOS-XR – On by default • • • When ip multicast routing is configured IOS – ip pim sparse mode Enable Bidir Multicast Routing on every router ip pim bidir enable • Configure address of Bidir RP for all Multicast groups ip pim rp-address <ip-address> bidir BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 72 Bidir RP Redundancy using Phantom RP Static route config option Primary injecting RP Secondary injecting RP Phantom RP 1.1.1.1 ip multicast-routing ip multicast-routing interface Loopback0 ip address 11.0.0.1 255.255.255.255 ip pim sparse-mode interface Loopback0 ip address 11.0.0.2 255.255.255.255 ip pim sparse-mode router ospf 11 redistribute static subnets router ospf 11 redistribute static subnets ip route 1.1.1.1 255.255.255.255 Loopback0 ip route 1.1.1.0 255.255.255.254 Loopback0 ip pim bidir-enable ip pim rp-address 1.1.1.1 bidir ip pim bidir-enable ip pim rp-address 1.1.1.1 bidir BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 73 What Makes Multicast Complicated? BRKIPM-1261 74 Biggest Multicast Complicating Factor Network-Based Source Discovery • Lazy One-to-Many Application Developers • • “Let’s just let the Network do all the work to keep track of Sources.” Uses old and outdated IGMPv2 methods to join (*,G) only. • Really!!!! IGMPv3 has been out for 10+ years!! • Even Apple OS supports IGMPv3 • • Suffers from Capt. Midnight stream hijacking Complicates Multicast Address management/allocation • • Ad-Hoc Multicast Applications • • • Now you have to worry about what application uses what Multicast Address No “good” way to know or predict who will become a source. Sometimes you just have to support Network-Based Source Discovery Requires complex Any-Source Multicast (ASM) & Rendezvous Point Engineering/Mgmt • Or maybe just BiDir Multicast? BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 75 Multicast Complicating Factor Network-Based Source Discovery • Requires Any-Source Multicast (ASM) • • • • • • Much, much more complicated than SSM or Bidir Requires physical Rendezvous Point (RP) router(s) & RP Redundancy methods Uses Shortest-Path Trees (ala SSM) to first deliver traffic to RP Then uses a common “Shared Tree” rooted at RP to deliver all Multicast traffic Routers w/directly connected receivers then learn about new sources via Shared Tree Then join Shortest-Path Tree to all the sources. . . . or maybe just use Bidir Multicast (Bidir) • A bit more complicated than Source Specific Multicast but easier than ASM. BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 76 Any-Source Multicast i.e. ASM PIM BRKIPM-1261 77 PIM-SM Shared Tree Join RP (*, G) State Created Only Along the Shared Tree (*, G) Join Shared Tree Receiver BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 78 PIM-SM Sender Registration RP Source Traffic Flow Shared Tree Source Tree (S, G) Register (S, G) Join (S, G) State Created Only Along the Source Tree (unicast) Receiver BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 79 PIM-SM Sender Registration RP Source Traffic Flow Shared Tree Source Tree (S, G) Register (S, G) Register-Stop (S, G) Traffic Begins Arriving at the RP via the Source Tree (unicast) (unicast) Receiver BRKIPM-1261 RP Sends a Register-Stop Back to the First-Hop Router to Stop the Register Process © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 80 PIM-SM Sender Registration RP Source Source Traffic Flows Natively Along SPT to RP Traffic Flow Shared Tree Source Tree From RP, Traffic Flows Down the Shared Tree to Receivers Receiver BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 81 PIM-SM SPT Switchover RP Source Traffic Flow Shared Tree Source Tree (S, G) Join Last-Hop Router Joins the Source Tree Receiver BRKIPM-1261 Additional (S, G) State Is Created Along New Part of the Source Tree © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 82 PIM-SM SPT Switchover RP Source Traffic Flow Shared Tree Source Tree (S, G)RP-bit Prune Receiver BRKIPM-1261 Traffic Begins Flowing Down the New Branch of the Source Tree Additional (S, G) State Is Created Along the Shared Tree to Prune Off (S, G) Traffic © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 83 PIM-SM SPT Switchover RP Source (S, G) Traffic Flow Is Now Pruned Off of the Shared Tree and Is Flowing to the Receiver via the Source Tree Traffic Flow Shared Tree Source Tree Receiver BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 84 PIM-SM SPT Switchover RP Source Traffic Flow Shared Tree Source Tree (S, G) Prune (S, G) Traffic Flow Is No Longer Needed by the RP so It Prunes the Flow of (S, G) Traffic Receiver BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 85 PIM-SM SPT Switchover RP Source (S, G) Traffic Flow Is Now Only Flowing to the Receiver via a Single Branch of the Source Tree Traffic Flow Shared Tree Source Tree Receiver BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 86 Basic ASM-Only Multicast Configuration • Enable Multicast Routing on every router ip multicast routing • Configure every interface for Multicast • IOS-XR – On by default • • • When ip multicast routing is configured IOS – ip pim sparse mode Configure address of ASM RP for all Multicast groups ip pim rp-address <ip-address> BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 87 The default behavior of PIM-SM (ASM) is that routers with directly connected members will join the shortest path tree as soon as they detect a new multicast source.” – PIM Frequently Forgotten Fact BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 88 But what about PIM Dense Mode?? “Fuggidaboudit!” “Fuggidaboudit!” Click to edit Source: “Thesource Wiseguys’s Guide to IP Multicast”, ©2005, T. Soprano It does “Flood & Prune” without any Joins! It can meltdown your network and blackhole your traffic! BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 89 Inter-domain IP Multicast BRKIPM-1261 90 MP-BGP Overview MP-BGP: Multiprotocol BGP • Originally defined in RFC 2858 (extensions to BGP) • Can carry different types of routes • Unicast • Multicast • Both routes carried in same BGP session • Does not propagate multicast state info • • That’s PIM’s job Same path selection and validation rules • AS-Path, LocalPref, MED… BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 91 MP-BGP Overview • Separate BGP tables maintained • Unicast prefixes for Unicast forwarding • Unicast prefixes for Multicast RPF calculation • AFI = 1, Sub-AFI = 1 • Contains Unicast prefixes for Unicast forwarding • Populated with BGP Unicast NLRI • AFI = 1, Sub-AFI = 2 • Contains Unicast prefixes for Multicast RPF calculation • Populated with BGP Multicast NLRI BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 92 MBGP Overview MBGP Allows Divergent Paths and Policies • Same IP address holds dual significance • Unicast Routing information • Multicast RPF information • For same IPv4 address two different NLRI with different next-hops • Can therefore support both congruent and incongruent topologies BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 93 Inter-domain Multicast – Simple. Use SSM! Domain E MP-BGP Peering Domain C Receiver Receiver Learns S and G Out of Band, i.e., Webpage Domain B Domain D Source in 232/8 Source “S” Domain A BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 94 Inter-domain Multicast – Simple. Use SSM! Domain E MP-BGP Peering Multicast Traffic Domain C Receiver Data flows natively along the interdomain source tree Domain B Domain D Source in 232/8 Source “S” Domain A BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 95 Inter-domain Bidir? – Not really Historical Issues: • Deciding who (what SP/ASN) owns RP was problematic. • Some SP’s wanted their own RP. • Other SP’s didn’t want RP’s in their network. • No consensus was ever reached. • Inter-domain Bidir never got off the ground. • Don’t hold your breath looking for Inter-domain Bidir support from Vendors/SPs BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 96 Inter-domain ASM Issues • Global Group Address Allocation/Management • With ASM we have to make sure that we use unique Groups • • Otherwise we start mixing up the Multicast flows Solution(?): GLOP Addressing • • • 233.0.0.0–233.255.255.255 Put your ASN in the middle two Octets Provides /24 group prefix per ASN BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 97 Inter-domain ASM Issues • How do we do Inter-domain Source Discovery? • Can we all agree on what domain “owns” the RP? • And for which Global Multicast Group?? • GLOP Addressing? • Why not have RP’s in each domain “share” Source information? • Solution: Multicast Source Discovery Protocol (MSDP) BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 98 MSDP – Multicast Source Discovery Protocol • RFC 3618 - Multicast Source Discovery Protocol (MSDP) • PIM ASM only solution • RPs knows about all Sources in their domain • • • Sources cause a “PIM Register” to the RP RP tells RPs in other domains of it’s Sources • Uses “MSDP SA” (Source Active) messages RPs know about existence of Receivers in their domain • • Receivers cause a “(*, G) Join” to the RP RP can join the Source tree in the peer domain • Uses normal PIM “(S, G) Join” BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 99 MSDP Overview MSDP Example Domain E RP MSDP Peers Join (*, 233.3.2.1) Receiver Domain C RP Domain B RP RP Domain D ASN770 GLOP: 233.3.2.0/24 RP Domain A BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 100 MSDP Overview MSDP Example Domain E RP MSDP Peers Source Active Messages SA SA Receiver Domain C RP SA SA Domain B SA RP SA SA SA Message 8.1.1.1, 233.3.2.1 ASN770 RP Source RP SA Message GLOP: 233.3.2.0/24 8.1.1.1, 233.3.2.1 Domain D Domain A Register 8.1.1.1, 233.3.2.1 BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 101 MSDP Overview MSDP Example Domain E RP MSDP Peers Receiver Domain C RP Domain B RP RP Domain D ASN770 GLOP: 233.3.2.0/24 RP Source Domain A BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 102 MSDP Overview MSDP Example Domain E RP MSDP Peers Multicast Traffic Receiver Domain C RP Domain B RP RP Domain D ASN770 GLOP: 233.3.2.0/24 RP Source Domain A BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 103 MSDP Overview MSDP Example Domain E RP MSDP Peers Multicast Traffic Receiver Domain C RP Domain B RP RP Domain D ASN770 GLOP: 233.3.2.0/24 RP Source Domain A BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 104 MSDP Overview MSDP Example Domain E RP MSDP Peers Multicast Traffic Receiver Domain C RP Domain B RP RP Domain D ASN770 GLOP: 233.3.2.0/24 RP Source Domain A BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 105 ASM Redundant RP Choices BRKIPM-1261 106 C-RP 1.1.1.1 C Announce B Announce Announce A MA Announce Announce MA D Announce Announce Auto-RP – From 10,000 Feet Announce C-RP 2.2.2.2 RP-Announcements Multicast to the Cisco Announce (224.0.1.39) Group Announce BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 107 Auto-RP – From 10,000 Feet MA A C-RP 1.1.1.1 MA B C D C-RP 2.2.2.2 RP-Discoveries Multicast to the Cisco Discovery (224.0.1.40) Group Discovery BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 108 Auto-RP Configuration Global Configuration Commands • Candidate RPs ip pim send-rp-announce <interface> scope <ttl> [group-list <acl>] [interval <rp-announce-interval>] [ bidir ] • • Primary address of <interface> is used as RP-address • If <interface> goes down, C-RP messages are not sent (use Loopback) Mapping Agents ip pim send-rp-discovery [<interface>] scope <ttl> [interval <interval>] • • Configure <interface> as Loopback Interface. • Same reason recommended for C-RP Auto-RP Listeners ip pim autorp listener • • Enable on all routers (even MA and C-RPs) Enables all routers to listen to (and forward) RP-Announce and RP-Discover messages • Allowing us to move away from old IOS sparse-dense operation. BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 109 BSR – From 10,000 Feet BSR Election Process G C-BSR C-BSR D C-BSR A F B BSR Msgs C E BSR Msgs Flooded Hop-by-Hop BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 110 BSR – From 10,000 Feet Highest Priority C-BSR Is Elected as BSR G BSR D A F B C E BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 111 BSR – From 10,000 Feet G BSR D C-RP A F B C C-RP E BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 112 BSR – From 10,000 Feet G BSR D C-RP A F B BSR Msgs C C-RP E BSR Msgs Containing RP-SET Flooded Hop-by-Hop BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 113 BSR Configuration Global Configuration Commands • Candidate-BSR (C-BSR) ip pim bsr-candidate <interface> <hash-length> <priority> [accept-rp-candidate <acl>] • BSR election: • • • • C-BSR with highest <priority> becomes BSR Tie-breaker: Highest-IP-Address Preemption by better C-BSR at any time Candidate RP (C-RP) ip pim rp-candidate <interface> [group-list <acl> | bidir | interval <rp-announce-interval> | priority <priority>] • All parameters as in AutoRP C-RP – except <priority> BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 114 Anycast-RP w/MSDP: Intra-domain use of MSDP • Anycast-RP w/MSDP • • Redundant RP technique for ASM which uses MSDP for RP synchronization Uses single defined RP address • Two or more routers have same RP address • • • First/Last hop Routers Join/Register with closest RP • • • RP address defined as a loopback interface Loopback address advertised as a host route Closest RP determined from the unicast routing table Because RP is statically defined MSDP session(s) run between all RPs • Informs RPs of Sources in other parts of network • RPs join SPT to active Sources as necessary BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 115 Anycast RP w/MSDP – Overview Src RP1 RP2 X MSDP A 10.1.1.1 Rec Src SA B 10.1.1.1 SA Rec Rec BRKIPM-1261 Rec © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 116 Anycast RP w/MSDP – Overview Src Src RP2 A 10.1.1.1 B 10.1.1.1 X RP1 Rec Rec Rec BRKIPM-1261 Rec © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 117 Anycast RP w/MSDP – Basic Configuration Src RP1 A 10.1.1.1 Src MSDP (Established via TCP) RP2 B 10.1.1.1 interface Loopback1 description -> anycast RP ip address 10.1.1.1 255.255.255.255 ip pim sparse-mode interface Loopback1 description -> anycast RP ip address 10.1.1.1 255.255.255.255 ip pim sparse-dense-mode interface Loopback2 ip address 10.10.10.1 255.255.255.255 interface Loopback2 ip address 10.10.10.2 255.255.255.255 ip msdp peer 10.10.10.2 connect-source Loopback10 ip msdp originator-id Loopback2 ip msdp peer 10.10.10.1 connect-source Loopback20 ip msdp originator-id Loopback2 ip pim rp-address 10.1.1.1 ip pim rp-address 10.1.1.1 Rec Rec Rec BRKIPM-1261 Rec © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 118 Anycast-RP w/PIM only Goal: Anycast RP without using another protocol i.e. MSDP • RFC4610 – Anycast-RP w/PIM only • • Redundant RP technique for ASM which uses PIM Registers for RP synchronization Uses single defined RP address • Two or more routers have same RP address • • • First/Last hop Routers Join/Register with closest RP • • • RP address defined as a loopback interface Loopback address advertised as a host route Closest RP determined from the unicast routing table Because RP is statically defined PIM Register messages exchanged between all RPs • Informs RPs of Sources in other parts of network • RPs join SPT to active Sources as necessary BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 119 Anycast RP w/PIM Registers – Overview Src RP1 A 10.1.1.1 Rec RP2 PIM Anycast RP Neighbors PIM Register PIM Register Stop Rec Rec BRKIPM-1261 B 10.1.1.1 Rec © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 120 Anycast RP w/PIM Registers – Overview Src X RP1 RP2 PIM Anycast RP Neighbors A 10.1.1.1 Rec Src PIM Register Stop B 10.1.1.1 PIM Register Rec Rec BRKIPM-1261 Rec © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 121 Anycast RP w/PIM Registers – Overview Src Src RP2 A 10.1.1.1 B 10.1.1.1 X RP1 Rec Rec Rec BRKIPM-1261 Rec © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 122 Anycast RP w/PIM Registers – Basic Configuration RP1 PIM Anycast RP Neighbors A 10.1.1.1 RP2 B 10.1.1.1 interface Loopback1 description -> anycast RP ip address 10.1.1.1 255.255.255.255 ip pim sparse-mode interface Loopback1 description -> anycast RP ip address 10.1.1.1 255.255.255.255 ip pim sparse-mode interface Loopback2 ip address 10.10.10.1 255.255.255.255 interface Loopback2 ip address 10.10.10.2 255.255.255.255 ip pim anycast-rp 10.1.1.1 10.10.10.1 ip pim anycast-rp 10.1.1.1 10.10.10.2 ip pim anycast-rp 10.1.1.1 10.10.10.1 ip pim anycast-rp 10.1.1.1 10.10.10.2 ip pim rp-address 10.1.1.1 ip pim rp-address 10.1.1.1 BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 123 Multicast at Layer 2 BRKIPM-1261 124 L2 Multicast Frame Switching Problem: Layer 2 Flooding of Multicast Frames • Typical L2 switches treat multicast traffic as unknown or broadcast and must “flood” the frame to every port • Static entries can sometimes be set to specify which ports should receive which group(s) of multicast traffic • Dynamic configuration of these entries would cut down on user administration BRKIPM-1261 PIM Multicast M © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 125 IGMP Snooping • L2 switches now “listen to” and intercept IGMP & PIM packets • Builds “multicast mac table”. Prevents flooding (like unicast) • Mrouter Ports: Ports connected to a PIM Router • • Dynamically learned upon hearing IGMP Queries or PIM Hellos Forward IGMP joins, leaves & mcast data to this port towards PIM router PIM Switch# show ip igmp snooping mrouter Type: S - Static, D – Dynamic Vlan 143 Router-port Eth8/11 Type D Uptime 4w1d Expires 00:04:59 e8/11 Po1 BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 126 IGMP Snooping • L2 switches now “listen to” and intercept IGMP & PIM packets • Builds “multicast mac table”. Prevents flooding (like unicast) • Mrouter Ports: Ports connected to a PIM Router • • Dynamically learned upon hearing IGMP Queries or PIM Hellos Forward IGMP joins, leaves & mcast data to this port towards PIM router PIM • Member Ports: Ports that have received an IGMP join • Vlan: Vlan in which the above Member Port belongs • Multicast Group: Group the member port has joined. Switch# show ip igmp snooping groups Type: S - Static, D - Dynamic, R - Router port Vlan Group Address Ver Type Port list 143 225.131.38.2 v2 D Po1 BRKIPM-1261 e8/11 Po1 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 127 Multicast over MPLS with mLDP The 60,000’ View BRKIPM-1261 128 Multipoint Label Distribution Protocol – mLDP Why mLDP? • Customers running MPLS in their network want to run Multicast natively over MPLS • MPLS forwarding plane is shared between unicast and multicast • • i.e. unicast MPLS features are applied to multicast Separation of data plane and control plane has advantages BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 129 Multipoint Label Distribution Protocol – mLDP Terminology • P2MP - Point to Multi-point • • Like a PIM SSM tree MP2MP – Multi-Point to Multi-Point • Like a PIM Bidir tree • MP LSP – Multi-Point LSP, either P2MP or MP2MP • Label Mapping • • Like a PIM Join Label Withdraw • Like a PIM Prune BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 130 Multipoint Label Distribution Protocol – mLDP Why mLDP? • Simplification compared to PIM • • • • • • • No shared tree / source tree switchover No (S,G,R) prune’s No DR election No PIM registers No Asserts No Periodic messaging No Auto-RP/BSR BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 131 Multipoint Label Distribution Protocol – mLDP Extensions to LDP • mLDP is an extension to the IETF LDP RFC 3036. • Procedures are documented in IETF RFC 6388 • Joined effort by multiple vendors and customers. • mLDP reuses LDP protocol packets and neighbor adjacencies. • mLDP is a client of the LDP infrastructure. • mLDP allows the creation of P2MP and MP2MP LSPs • We refer to these as Multipoint LSPs (MP LSPs). BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 132 BIER – Bit-Indexed Explicit Replication BRKIPM-1261 133 BIER history • A team was formed to investigate solutions for multicast in the context of Segment Routing. • Encoding a Sourced routed Multicast tree path using MPLS labels is difficult. • The packet header would get very large, and its very hard to parse such header. BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 134 The BIER Epiphany • Only encode the end-receivers in the packet header. • • Assign end-receivers a Bit Position from a Bit String. • • Using some sort of encapsulation. Create a Bit Forwarding Table on all BIER nodes to allow multicast packet forwarding using the Bit String in the packet. • • The smallest identifier possible. Encode the Bit String in the packet header. • • Not the intermediate nodes. Derived from the RIB, SPF based. We call it, Bit Indexed Explicit Replication (BIER). BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 135 BIER – Basic Idea A/32 B/32 BIER Domain D/32 6 5 4 3 2 1 BitString/BFR-ID C/32 E/32 F/32 1. Assign a unique Bit Position/BFR-ID1 from a BitString to each BFER2 in the domain. 1Bit-Position 2BFER = BIER Forwarding Router-ID = Bit-Forwarding Egress Router BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 136 BIER – Basic Idea A/32 B/32 LSA 6 - A/32 LSA 5 – B/32 LSA 4 – C/32 BIER Domain LSA 3 – E/32 LSA 1 – E/32 D/32 LSA 2 – D/32 6 5 4 3 2 1 BitString/BFR-ID C/32 E/32 F/32 1. Assign a unique Bit Position/BFR-ID1 from a BitString to each BFER2 in the domain. 2. BFERs flood their BFR-Id/BFR Prefix to the Domain using the IGP (OSPF, ISIS) 1Bit-Position 2BFER = BIER Forwarding Router-ID = Bit-Forwarding Egress Router BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 137 BIER – Basic Idea A/32 B/32 BitMask Nbr 0011 A 0100 B 1000 C D/32 C/32 E/32 F/32 3. Each router in the BIER Domain builds Bit-Mask to BFR Prefix mapping table 1Bit-Position 2BFER = BIER Forwarding Router-ID = Bit-Forwarding Egress Router BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 138 BIER Bit-Mask Forwarding Table BIER Bit-Mask Forwarding Table is based on shortest path to each BFR-ID BM Nbr 0111 B BM Nbr BM Nbr 0011 C 0001 D 0100 E 0010 F D BFR-ID 1 BS:0001 A C B F E BM 0011 Nbr C BFR-ID 3 BS:0100 BFR-ID 2 BS:0010 B BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 139 Forwarding Packets BM Nbr 0111 B AND BM Nbr BM Nbr 0011 C 0001 D 0100 E 0010 F D BFR-ID 1 BS:0001 0001 A C B Suppose A leans about D’s interest, (via BGP, SDN, STATIC, etc…) F E in the blue multicast flow. BM 0011 Nbr C BFR-ID 3 BS:0100 BFR-ID 2 BS:0010 B BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 140 Forwarding Packets BM Nbr 0111 B BM &0111 AND Nbr BM Nbr 0011 C 0001 D 0100 E 0010 F BFR-ID 1 BS:0001 0001 0001 A C B • Result from the bitwise AND (&) between the Bit Mask in the packet and the Forwarding table is copied in the packet for each neighbor. • This is the key mechanism to prevent duplication. D F E BM 0011 Nbr C BFR-ID 3 BS:0100 BFR-ID 2 BS:0010 B BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 141 Forwarding Packets BM Nbr 0111 B AND BM &0111 Nbr 0011 AND C 0100 A &0011 AND E 0001 0001 BM 0001 D 0010 F &0001 D BFR-ID 1 BS:0001 0001 C B • Result from the bitwise AND (&) between the Bit Mask in the packet and the Forwarding table is copied in the packet for each neighbor. • This is the key mechanism to prevent duplication. Nbr F E BM 0011 Nbr C BFR-ID 3 BS:0100 BFR-ID 2 BS:0010 B BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 142 Forwarding Packets BM Nbr 0111 B AND BM Nbr BM Nbr 0011 C 0001 D 0100 E 0010 F D BFR-ID 1 BS:0001 0111 A C B Suppose A leans about D, E and F’s interest, (via BGP, SDN, STATIC, etc…) F E in the blue multicast flow. BM 0011 Nbr C BFR-ID 3 BS:0100 BFR-ID 2 BS:0010 B BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 143 Forwarding Packets Nbr 0111 B AND Nbr &0111 0011 AND C 0100 E Nbr &0011 &0100 0111 0111 A AND 0001 D &0001 0010 F &0010 D BFR-ID 1 BS:0001 0011 C B • Result from the bitwise AND (&) between the Bit Mask in the packet and the Forwarding table is copied in the packet for each neighbor. F E • This is the key mechanism to prevent duplication. BM 0011 AND Nbr C BFR-ID 3 BS:0100 BFR-ID 2 BS:0010 B BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 144 Failure to reset bits when Forwarding Packets Nbr 0111 B AND Nbr &0111 0011 AND C 0100 E Nbr &0011 &0100 0111 A 0001 D &0001 0010 F &0010 D BFR-ID 1 BS:0001 0111 C B 0111 0111 AND Duplicate Packets!! F E Nbr 0011 AND C BFR-ID 3 BS:0100 BFR-ID 2 BS:0010 B BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 145 IPv6 Multicast BRKIPM-1261 146 IPv4 vs. IPv6 Multicast IP Service IPv4 Solution IPv6 Solution Address Range 32-Bit, Class D 128-Bit (112-Bit Group) Routing Protocol-Independent Protocol-Independent All IGPs and GBP4+ All IGPs and BGP4+ with v6 Mcast SAFI Forwarding PIM-DM, PIM-SM: ASM, SSM, BiDir PIM-SM: ASM, SSM, BiDir Group Management IGMPv1, v2, v3 MLDv1, v2 Domain Control Boundary/Border Scope Identifier Interdomain Source Discovery MSDP Across Independent PIM Domains Single RP Within Globally Shared Domains BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 147 IPv6 Multicast Addresses per RFC 4291 128 bits 8 FF 4 4 Flags Scope 1111 1111 F 8 bits F Group-ID Flags R P T Scope Flags = 8 bits Scope = T or Lifetime, 0 if Permanent, 1 if Temporary P for Unicast-based Assignments R for Embedded RP Others Are Undefined and Must Be Zero 1 = interface-local 2 = link 4 = admin-local 5 = site 8 = organization E = global 0, 3, F = reserved BRKIPM-1261 Note: Other scopes (6, 7, 9-D) are unassigned but can be used © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 148 IPv6 Layer 2 Multicast Addressing Mapping RFC 2464 IPv6 Multicast Address 112 Bits 8 FF 4 4 Flags Scope 80 High-Order 32 Low-Order 80 Bits Lost • Similar to IPv4: 5 bits are lost • • More than 1 multicast address (in fact 2^80) will map to the same MAC address. • • (28 significant L3 multicast bits are mapped into 23 L2 MAC bits) 33-33-xx-xx-xx-xx 48 Bits Ethernet MAC Address For example: FF02::1 33-33-00-00-00-01 FF3E::1 33-33-00-00-00-01 Pick multicast group addresses that give distinct multicast MAC addresses BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 149 Unicast-based Multicast addresses RFC 3306 8 FF 4 4 Flags Scope 8 Rsvd 8 Plen 64 Network-Prefix 32 Group-ID • RFC 3306 – Unicast-based Multicast Addresses – Similar to IPv4 GLOP Addressing (233/8 + ASN = 256 group addresses) – Solves IPv6 global address allocation problem. – Flags = 00PT P = 1, T = 1 => Unicast-based Multicast address – Example Content provider’s unicast prefix 1234:5678:9abc::/48 Multicast address FF3E:0030:1234:5678:9abc::1 (hex “30” is 48 bits) BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 150 IPv6 Multicast Tree Building & Forwarding • PIM-Sparse Mode (PIM-SM) • • RFC4601 PIM Source Specific Mode (SSM) • RFC3569 SSM overview (v6 SSM needs MLDv2) • Unicast, prefix-based multicast addresses ff30::/12 • SSM range is ff3X::/96 • PIM Bi-Directional Mode (BiDir) • RFC5015 – Bidirectional PIM (BIDIR-PIM) BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 151 RP Mapping Mechanisms for IPv6 • Static RP assignment • BSR • Embedded RP • No Auto-RP! • • No current plans for Auto-RP at Cisco or IETF No Anycast RP w/MSDP! • Because MSDP is not supported in IPv6 • No current plans for IPv6 MSDP at Cisco or IETF BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 152 Embedded RP Addressing Multicast Address with Embedded RP address – RFC3956 8 FF • 4 4 4 4 Flags Scope Rsvd RPadr 8 Plen 64 Network-Prefix 32 Group-ID Proposed new multicast address type • Uses unicast-based multicast addresses (RFC 3306) • RP address is embedded in multicast address • Flag bits = 0RPT • R = 1, P = 1, T = 1 Embedded RP address • Network-Prefix::RPadr = RP address • For each unicast prefix you own, you now also own: • 16 RPs for each of the 16 multicast scopes (256 total) with 2^32 multicast groups assigned to each RP (2^40 total) BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 153 Embedded RP Addressing – Example Multicast Address with Embedded RP address 8 FF 4 4 4 Flags Scope Rsvd 4 8 RPadr Plen 64 Network-Prefix 32 Group-ID FF76:0130:1234:5678:9abc::4321 1234:5678:9abc::1 Resulting RP address BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 154 Multicast Listener Discover—MLD • MLD is equivalent to IGMP in IPv4 • MLD messages are transported over ICMPv6 • Version number confusion • MLDv1 corresponds to IGMPv2 • • MLDv2 corresponds to IGMPv3, needed for SSM • • RFC 2710 RFC 3810 MLD snooping • RFC4541 – Considerations for IGMP & MLD Snooping Switches BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 155 Conclusion BRKIPM-1261 156 Now You Know… • Multicast Fundamentals • Source-Specific Multicast (SSM) • Bidirectional Multicast (Bidir) • Any-Source Multicast (ASM) • ASM Redundant RP Choices • Multicast at Layer 2 • Multicast over MPLS – mLDP • Bit-Indexed Explicit Replication – BIER • Inter-domain IP Multicast • IPv6 Multicast BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 157 Complete Your Online Session Evaluation • Give us your feedback to be entered into a Daily Survey Drawing. A daily winner will receive a $750 gift card. • Complete your session surveys through the Cisco Live mobile app or on www.CiscoLive.com/us. Don’t forget: Cisco Live sessions will be available for viewing on demand after the event at www.CiscoLive.com/Online. BRKIPM-1261 © 2017 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 BRKIPM-1261 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 159 Please join us for the Service Provider Innovation Talk featuring: Yvette Kanouff | Senior Vice President and General Manager, SP Business Joe Cozzolino | Senior Vice President, Cisco Services Thursday, July 14th, 2016 11:30 am - 12:30pm, In the Oceanside A room What to expect from this innovation talk • Insights on market trends and forecasts • Preview of key technologies and capabilities • Innovative demonstrations of the latest and greatest products • Better understanding of how Cisco can help you succeed Register to attend the session live now or watch the broadcast on cisco.com BRKIPM-1261 Thank you BRKIPM-1261