1
IP Multicasting
Part of this presentation based on: Cisco, Forouzan TCP/IP textbook,
Anthony Chung, Dale Buchholz.
2
Topics
IP Class D Group Addressing
IGMP (Internet Group Management Protocol)
Multicast Strategies:
Broadcast/Flooding
Multiple Unicast
Distribution trees
Multicast forwarding (based on Reverse Path Forwarding)
Multicast Routing Protocols
DVMRP (Distance Vector Multicast Routing Protocol)
MOSPF (Multicast OSPF)
PIM (Protocol Independent Multicast)
MBONE (Multicast Backbone)
Implementation and Configuration (for Cisco)
3
Practical Applications of IP
Multicast
Multimedia: A number of users “tunes” to a video or audio transmission from a
multimedia source station.
Teleconferencing: A group of workstations form a multicast group such that a
transmission from any member is received by all other group members.
Database: All copies of a replicated file or database are updated at the same
time.
Distributed computation: Intermediate results are sent to all participants.
Real-time workgroup: Files, graphics, and message are exchanged among active
group members in real time.
MOST prevalent usage right now: trading – Used to multicast market data.
Can be VERY large; OPRA (Options Price Reporting Authority) feed is over 80 Mbps
SUSTAINED
Very latency sensitive. Trading platforms are trying to optimize at the micro-second
levels.
4
Multicasting within single LAN
In 802.3, MAC address can specify a broadcast/multicast
0xFFFF.FFFF.FFFF is for broadcast
Bit 0 of octet 0 indicates Broadcast/Multicast
Bit 1 of octet 0 indicates Locally Administer Address (LAA) vs use of Universally
Administered Addresses (UAA)
IANA was given MAC address block 01:00:5E IANA defined range available:
0100.5E00.0000 to 0100.5E7F.FFFF – That is 23 bits
Multicast IP address is defined by 28 bits (1110 defines class D)
The lowest 23 bits of the IP multicast address maps to a MAC address
All stations that recognise the MAC address of the multicast address accept
the packet – Done at L2 admission instead of L3 like it would be in
broadcast. (a broadcast is accepted by all stations, then sent to L3 for
processing where it will be dropped if no process uses it)
Works because of broadcast nature of LAN
Packet only sent once
Much harder on Internet or routed infrastructure
5
IP Class D Group Addressing (multicast address or group ID)
Mapping IP Multicast Address to Ethernet Address
Figure 10.10
This prefix is
given for multicast
MAC addresses
6
MAC address Ambiguities
Because upper 5 bits in IP multicast address are
dropped, result MAC address is not unique: 32
multicast group IDs map to a single MAC address.
Example all groups below maps to 0x0100.5E01.0101
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
9
Broadcast
Assume location of recipients not know
Send packet to every network
Packet addressed to N3 traverses N1, link L3,
N3
Router B translates IP multicast address to
MAC multicast address
Repeat for each network
Generates lots of packets
Delivery of packets done via Routing
Protocols
11
Multiple Unicast
Location of each member of multicast
group known to source
Table maps multicast address to list of
networks
Only need to send to networks
containing members of multicast group
Reduced traffic (a bit)
13
True Multicast
Least cost path from source to each network
containing member of group is determined
Gives spanning tree configuration
For networks containing group members only
Source transmits packet along spanning tree
Packet replicated by routers at branch points
of spanning tree
Reduced traffic
16
Requirements for Multicasting
Router must forward one or more copies of incoming
packet
Addressing
IPv4 uses class D
Start 1110 plus 28 bit group id
IPv6 uses 8 bit prefix of all 1s, 4 bit flags field, 4 bit scope field
112 bit group id
Router must translate between IP multicast address and
list of networks containing members of group – router
must keep track of membership subscriptions and tree.
Multicast addresses may be permanent or dynamic
17
Requirements for Multicasting
Individual hosts may join or leave dynamically
Need mechanism to inform routers
Routers exchange information on which subnets
contain members of groups
Routers exchange information to calculate shortest
path to each network
Need routing protocol and algorithm
Routes determined based on source and destination
addresses
Avoids unnecessary duplication of packets
18
IGMP Operation
Host uses IGMP (Internet Group Management Protocol) to make itself
know as member of group to other hosts and routers
To join, send IGMP membership report message
Send to multicast destination of group being joined
Routers periodically issue IGMP query
To all-hosts multicast address
Hosts respond with report message for each group to which it belongs
Only one host in group needs to respond to keep group alive
Host keeps timer and responds if no other reply heard in time
Host sends leave group message
Group specific query from router determines if any members remain
Note IGMP v1 did not include “leave”: Multicast would be sent until a timer
expires
19
IGMP – a protocol designed to help a multicast router identify the
hosts in a LAN that are the members of a group.
Figure 10.2 IGMP (v2) message types
20
IGMP – a protocol designed to help a multicast router identify the
hosts in a LAN that are the members of a group.
From routers to hosts. Asking
for group membership info
From hosts to routers.
Reporting group membership
info
21
Reserved Link Local Addresses
IANA reserved 224.0.0.0 through
224.0.0.255 for routing protocols on
local networks. These packets should
NEVER be forwarded and should have
TTL of 1.
22
IP multicast address Description
224.0.0.0 Base address (reserved)
224.0.0.1
The All Hosts multicast group that contains all systems on the same
network segment
224.0.0.2
The All Routers multicast group that contains all routers on the same
network segment
224.0.0.5
The Open Shortest Path First (OSPF) AllSPFRouters address. Used to
send Hello packets to all OSPF routers on a network segment
224.0.0.6
The OSPF AllDRouters address. Used to send OSPF routing information
to OSPF designated routers on a network segment
224.0.0.9
The RIP version 2 group address. Used to send routing information using
the RIP protocol to all RIP v2-aware routers on a network segment
224.0.0.10
EIGRP group address. Used to send EIGRP routing information to all
EIGRP routers on a network segment
224.0.0.13 PIM Version 2 (Protocol Independent Multicast)
224.0.0.18 Virtual Router Redundancy Protocol
224.0.0.19 - 21 IS-IS over IP
224.0.0.22 IGMP Version 3 (Internet Group Management Protocol)
224.0.0.102 Hot Standby Router Protocol Version 2
224.0.0.251 Multicast DNS address
224.0.0.252 Link-local Multicast Name Resolution address
224.0.1.1 Network Time Protocol address
224.0.1.39 Cisco Auto-RP-Announce address
224.0.1.40 Cisco Auto-RP-Discovery address
224.0.1.41 H.323 Gatekeeper discovery address
23
Glop Addressing (RFC 2770)
RFC 2770 (revised 3180) proposes that 233.0.0.0/8 be reserved
for static Multicast groups for organizations that have a
reserved, registered public AS number.
That AS # form the 2nd and 3rd Octet of the IP range.
Gives an AS owner 255 unique static and global Multicast
groups.
Example: AS #62010
Decimal 62010 = 0xF23A
F2 is 2nd octet = 242
3A is 3rd octet = 58
233.242.58.0 is globally reserved for AS 62010 to use
Question: what does “GLOP” stands for?
24
Using IGMP, R learns about the list of groups on this LAN.
When R receives a packet with a destination multicast
address, it checks against the list and determine if the packet
should be propagated to the LAN.
25
Four situations of IGMP operations VERSION 1!!
(periodic)
(in response to a query)
(initially)
(time out) Router erase
after no responses to 3
queries
26
(A host waits for a random period of
time before sending out a report)
(they hear that the group has been
reported)
28
IGMP v2 improvements
IGMPv2
-Defines a procedure for the election of multicast queriers for each LAN (the
router with the lowest IP address).
-Group-specific query message
-Leave group message (to lower IGMP’s “leave latency”)
IGMPv3
- Enables hosts to listen only to a specified subset of the hosts sending to the
group
30
Multicast Distribution Trees
Multicast Distribution Trees
Control the path which IP Multicast traffic takes through the network in order to deliver
traffic to all receivers.
Source Trees
o A source tree with its root at the source and branches forming a spanning tree
through the network to the receivers.
o Also referred to as a shortest path tree (SPT).
o Remind you of anything???
31
o Advantage of creating the
optimal path between the
source and the receivers.
o The routers must maintain
path information for each
source.
Memory
consumption: O(S * G)
Multicast Source Tree
32
Shared Trees
o A single common root placed at some chosen point in the network. This shared root is
called a Rendezvous Point (RP).
o Advantage of requiring the minimum amount of state in each router. Memory
requirements: O(G)
o The disadvantage of shared trees is that under certain circumstances the paths between
the source and receivers might not be the optimal paths.
o The placement of the RP must be carefully considered.
o THIS IS THE PREFERED MANNER to implement Multicasts
33
Multicast Forwarding
In unicast routing, a router does not really care about the
source address.
In multicast routing, the multicast router must determine
which direction is upstream (towards the source) and which
direction (or directions) is downstream.
Multicast Forwarding
34
Reverse Path Forwarding (RPF)
oAn approximation of the source tree.
oMake use of the existing unicast routing table to determine the upstream and
downstream neighbors. A router will only forward a multicast packet if it is
received on the upstream interface. This RPF check helps to guarantee that the
distribution tree will be loop free.
Step 1. Router looks up the source address in the unicast routing table to determine if it
has arrived on the interface that is on the reverse path back to the source.
Step 2. If packet has arrived on the interface leading back to the source, the RPF check is
successful and the packet will be forwarded.
Step 3. If the RPF check in 2 fails, the packet is dropped.
Multicast Forwarding
36
Enhancement
Only forward to your neighbor on a link if the neighbor uses this link to reach the source.
o How does the node know?
For link state routing: easy
For distance vector routing
Modify to include next hop information in messages; or
“Poison reverse”
37
Figure 15.7 Taxonomy of common multicast routing protocols
MOSPF (RFC 1584)
•Extension to OSPF unicast routing protocol
•Includes multicast information in OSPF link state advertisements to construct
multicast distribution trees
•Group membership LSAs are flooded throughout the OSPF routing domain so
MOSPF routers can compute outgoing interface lists
•Uses Dijkstra algorithm to compute shortest-path tree
•Separate calculation is required for each (S Net , G) pair (Source, Group
address pair)
•Data-driven – a router construct a tree the first time it sees a (S Net , G) pair.
JP note: Core
Based Trees –
Never seen live
38
Multicast Routing Protocols
Dense-Mode (DM)
Uses “Push” Model
Traffic Flooded throughout network
Pruned back where it is unwanted
Flood & Prune behavior (typically every 3
minutes)
Sparse-Mode (SM)
Uses “Pull” Model
Traffic sent only to where it is requested
Explicit Join behavior
39
DVRMPv3 (Internet Draft)
Dense Mode Protocol
Distance vector-based
Similar to RIP
Infinity = 32 hops
Subnet masks in route advertisements
DVMRP Routes used:
For RPF Check
To build Truncated Broadcast Trees (TBTs)
Uses special “Poison-Reverse” mechanism
Uses Flood and Prune operation
Traffic initially flooded down TBT’s
TBT branches are pruned where traffic is unwanted.
Prunes periodically time-out causing reflooding.
40
Multicast Extension to OSPF
(MOSPF)
Enables routing of IP multicast datagrams
within single AS
Each router uses MOSPF to maintain local
group membership information
Each router periodically floods this to all
routers in area
Routers build shortest path spanning tree
from a source network to all networks
containing members of group (Dijkstra)
Takes time, so on demand only
41
Forwarding Multicast Packets
If multicast address not recognised,
discard
If router attaches to a network
containing a member of group, transmit
copy to that network
Consult spanning tree for this source-
destination pair and forward to other
routers if required
42
Equal Cost Multipath Ambiguities
Dijkstra’ algorithm will include one of
multiple equal cost paths
Which depends on order of processing
nodes
For multicast, all routers must have
same spanning tree for given source
node
MOSPF has tiebreaker rule
43
Inter-Area Multicasting
Multicast groups may contain members
from more than one area
Routers only know about multicast
groups with members in its area
Subset of area’s border routers forward
group membership information and
multicast datagrams between areas
Interarea multicast forwarders
44
Inter-AS Multicasting
Certain boundary routers act as inter-AS
multicast forwarders
Run an inter-AS multicast routing protocol as well
as MOSPF and OSPF
MOSPF makes sure they receive all multicast
datagrams from within AS
Each such router forwards if required
Use reverse path routing to determine source
Assume datagram from X enters AS at point advertising
shortest route back to X
Use this to determine path of datagram through MOSPF
AS
45
MOSPF (RFC 1584)
Extension to OSPF unicast routing protocol
Includes multicast information in OSPF LSAs to
construct multicast distribution trees
Group membership LSAs are flooded throughout
the OSPF routing domain so MOSPF routers can
compute outgoing interface lists.
Uses Dijkstra’s algorithm to compute shortest-
path tree for each multicast group.
46
Protocol Independent
Multicast (PIM)
Independent of unicast routing
protocols
Extract required routing information
from any unicast routing protocol
Work across multiple AS with different
unicast routing protocols
JP Note: this is usually how we do
Multicasting in real life
47
PIM Strategy
Flooding is inefficient over large sparse
internet
Little opportunity for shared spanning trees
Focus on providing multiple shortest path
unicast routes
Two operation modes
Dense mode
For intra-AS
Alternative to MOSPF
Sparse mode
Inter-AS multicast routing
48
PIM-DM (Internet Draft)
Protocol Independent
Supports all underlying unicast routing protocols
including: static, RIP, IGRP, EIGRP, IS-IS, BGP, and
OSPF
Uses reverse path forwarding
Floods network and prunes back based on
multicast group membership
Assert mechanism used to prune off redundant
flows
Appropriate for...
Smaller implementations and pilot networks
49
PIM-SM (RFC 2362)
Supports both source and shared trees
Assumes no host wants multicast traffic unless it specifically ask
for it
Uses a Rendezvous Point (RP)
Senders and Receivers “rendezvous” at this point to learn of each
others existence.
Senders are “registered” with RP by their first-hop router.
Receivers are “joined” to the Shared Tree (rooted at the RP) by
their local Designated Router (DR).
Appropriate for…
Wide scale deployment for both densely and sparsely populated
groups in the enterprise
Optimal choice for all production networks regardless of size and
membership density.
50
Sparse Mode
A sparse group:
Number of networks/domains with group
members present significantly small than
number of networks/domains in internet
Internet spanned by group not sufficiently
resource rich to ignore overhead of current
multicast schemes
51
Group Routers
Group Destination Router
Has local group members
Router becomes destination router for
given group when at least one host joins
group
Using IGMP or similar
Group source router
Attaches to network with at least one host
transmitting on multicast address via that
router
52
PIM Approach
For a group, one router designated rendezvous point
(RP)
Group destination router sends join message towards
RP requesting its members be added to group
Use unicast shortest path route to send
Reverse path becomes part of distribution tree for this RP to
listeners in this group
Node sending to group sends towards RP using
shortest path unicast route
Destination router may replace group-shared tree
with shortest path tree to any source
By sending a join back to source router along unicast
shortest path
Selection of RP dynamic
Not critical
55
L2 switching implementation
Considerations
Issue: Default behavior of a l2 switch is
to flood multicast to all port on a VLAN.
This beats the purpose of a switch (to
limit traffic)
Solution: Cisco Group Management
Protocol (CGMP) and IGMP Snooping
56
CGMP
Proprietary Cisco solution
Basically uses IGMP information to generate CGMP
messages to tell a switch to enable a port for a Mcast
group and add CAM entry.
Disabled by default
Must be configured on switch and routers
Cisco recommend that for low end switches
JP opinion: pretty poor and would not want to use it.
I’d rather just enable Mcast flooding on VLAN and if
switch too low end to support such high Mcast, we
have architecture issue.
57
IGMP Snooping
LAN switch looks at L3 information of
multicast packet to see the “join” requests
When it sees it: it enables forwarding on the
port for that Mcast group
Pro: transparent to administrator, enabled by
default.
Con: can get processor intensive unless you
can do snooping in special ASIC (high end
switches do that)
58
Sparse or Dense Mode?
What is best?
It depends!
It is a global config for a given VLAN/interface
What if you want both?
Cisco: Sparse-Dense mode
In this case it is by default Dense
but if a group gets an RP, switch to Sparse
Recommendation: Sparse mode
59
Enabling and configuring
Mcast
Global command:
Ip multicast-routing
Per interface/VLAN:
Ip pim {sparse-mode; dense-mode;
sparse-dense-mode}
If you don’t know: use sparse-dense will
work with all.
60
Troubleshooting Mcast
… Even more fun than troubleshooting VPN
problems! (if you want an unforgettable life
experience: try putting Multicast traffic in a
GRE tunnel over an IPSEC VPN! You only
have one life: you got to try it!)
First make sure end-to-end unicast routing is
fine.
Then consider the mode and signaling used
to propagate Mcast groups.
61
Troubleshooting Mcast
Different aspects to check:
Source packet flow - At upstream router:
“show ip igmp groups interface-name”
“show ip igmp Interface interface-name”
Check Multicast Signaling:
Show ip pim neighbor
Show ip pim rp mapping
Show ip rpf <source> (to make sure RPF is correct – alternatively look at routing
table)
Look at active network mroutes:
Show ip mroute active
Show ip mroute count
Check receiver:
“show ip igmp groups interface-name”
“show ip igmp Interface interface-name”
Advanced CLI tool:
Mstat
mtrace