0% found this document useful (0 votes)
71 views

Ip Multicast Routing: Radhika Rengaswamy

The document describes IP multicast routing. It discusses multicast addressing and protocols like IGMP that are used for hosts to join multicast groups. It also covers different multicast forwarding algorithms like flooding, spanning trees, and reverse path broadcasting. The document focuses on dense mode multicast routing protocols like DVMRP that rely on periodic flooding to construct delivery trees from sources to receivers. It provides details on DVMRP's neighbor discovery, route exchange, and routing table structure.

Uploaded by

shyam101
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
71 views

Ip Multicast Routing: Radhika Rengaswamy

The document describes IP multicast routing. It discusses multicast addressing and protocols like IGMP that are used for hosts to join multicast groups. It also covers different multicast forwarding algorithms like flooding, spanning trees, and reverse path broadcasting. The document focuses on dense mode multicast routing protocols like DVMRP that rely on periodic flooding to construct delivery trees from sources to receivers. It provides details on DVMRP's neighbor discovery, route exchange, and routing table structure.

Uploaded by

shyam101
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 70

IP MULTICAST ROUTING

Radhika Rengaswamy
OUTLINE
• What is Multicasting?
• IP Multicast Addressing
• IGMP
• Multicast Forwarding Algorithms
– Simple, Source-Based Tree, Shared-Tree
• Multicast Routing Protocols
– Dense-mode (DVMRP, MOSPF, PIM - DM)
– Sparse-mode (PIM - SM, CBT)

2
Multicast Forwarding

3
Time To Live (TTL)
• Scope-limiting parameter for IP Multicast
datagrams
• Controls the number of hops that a IP
Multicast packet is allowed to propagate
• TTL = 1: local network multicast
• TTL > 1: Multicast router(s) attached to the
local network forward IP Multicast
datagrams

4
Internet Group Management
Protocol (IGMP)
• Used by mrouters to learn about Multicast Group
Memberships on their directly attached subnets
– the existence of at least one member/group
• Implemented over IP
• Designated Router
– Each network has one Querier
– All router begin as Queriers
– Mrouter with the lowest IP address chosen

5
IGMP Messages

6
Multicast Routing
• Unicast vs. Multicast routing
– Multicast address identifies a particular
transmission session
– Network routers need to translate multicast
addresses into host addresses
• Multicast Forwarding Algorithms
– Simple
• primitive techniques that waste a lot of BW and
router resources.
• do not scale well for larger groups.
– Source based trees
7
– Shared trees
Flooding
• When a router receives a multicast packet
for a group, it determines if it is the first
time it has seen the packet
• Then, it forwards it on all interfaces except
the incoming interface.
• Routers only need to store recently seen
packets

8
Spanning tree
• Just enough connectivity so that only one path
between every pair of routers
• A router copies an incoming packet only on
the interfaces part of the spanning tree
• Packets replicated only when the tree branches
• Source/Destination based routing
• Dynamically updated
• Diasadv: Centralize traffic, sub-optimal tree
between source and destination
9
10
Reverse Path Broadcasting
(RPB)
• Different spanning tree Source
constructed for each active
(source, group) pair Shortest path
• Parent Link: the link the to source
router considers to be the
shortest path back to the “parent” link
source
• Limitation: Does not I2
consider group
memberships when child I1 Router I3 child
constructing trees

11
Example of Reverse Path
Broadcasting
S
A Router
1 2
Leaf
B C
3
Shortest-path
5 6 7
4 Branch
E
D F
8 9

12
Truncated Reverse Path
Broadcasting (TRPB)
• Use IGMP Source
• Forward only to Leaf
networks with members (Source, G1)
• Lim: Does not consider
group memberships “parent” link

G1 I2 G2
G3
hub child I1 Router I3 child switch

G1 I4 G3
Forward Truncate 13
child
Reverse Path Multicasting
(RPM)
• Creates a delivery tree that spans only:
– Subnetworks with group members, and
– Routers and subnetworks along the shortest path to
subnetworks with group members
– Allows the source-rooted tree to be pruned
• The first packet is forwarded using TRPB
• Downstream routers send Prunes if they have no
members
• Periodically refresh pruned tree using TRPB
• Lim: Scalability
14
Reverse Path Multicasting
Source
(Source,G)

G Router

Leaf w/o group mem.


G Leaf with group mem.
Active branch
G
Pruned branch
G G Pruned message

15
Core-Based Trees (CBT)
• Constructs a single delivery tree that is shared
by all members of a group
– a spanning tree per group
• Core routers
• Join messages towards the core
• Non-members unicast the data to the core
• Good scalability and conservation of BW
• Lim: Concentration of traffic and sub-optimal
trees
16
Multi-Core CBT Delivery Tree

17
Dense - Mode Multicast Routing
Protocols
• DVMRP, MOSPF, PIM-DM
• Assumptions
– group members are densely distributed
throughout the network
– BW is plentiful
• Rely on periodic flooding of the network
with multicast traffic to set up and maintain
the spanning tree
• Data - driven approach to construct the tree18
Distance Vector Multicast
Routing Protocol (DVMRP)
• Distributed protocol that generates IP Multicast
delivery tree per source-group
• Shortest path from Source to hosts
– based on Number of hops metric
• Derived from Routing Information Protocol
– RIP forwards the unicast packets based on the the next-
hop towards a destination
– DVMRP constructs delivery trees based on shortest
previous-hop back to the source
• Supports hierarchical routing
19
Algorithm
• Per-source broadcast trees built based on routing
exchanges ( using DVRP)
• Reverse Path Multicasting
– Initially, assume that every host on the network is
part of the Multicast group (TRPB)
– Per Source-Group Multicast delivery tree
– Reverse Path Forwarding check
– Poison Reverse
• Determine downstream interfaces to forward the packet on
– Prune and Graft messages

20
Tunnel Encapsulation
• Encapsulated in IP packets

21
Neighbor Discovery
• Neighbor Probe messages with TTL = 1
• Addressed to “ALL_DVMRP_ROUTERS”
• Contains a list of Neighbor DVMRP routers
for which a Probe has been received on that
interface
– Establish “Two-Way adjacency”
– Know capabilities of routers (Version no)
– Keep-alive function
• Sent every 10 secs
• Neighbor time-out: 35secs 22
DVMRP Probe Message Format

23
• Length depends on # of neighbors
• Generation ID
– Non-decreasing number used to detect restart of
the router
– When a change in Gen ID is detected, a copy of
the routing table is unicast to the router
– Any prune received from the router discarded
• If the prune was propagated UP, a Graft sent
• Only when “Two-way adjacency”
established, the router can send Poison
Route reports
24
Source Location
• When a multicast datagram is received at
the router
– Look up the source network in the routing table
– RPF check
– Forwarding cache entry created
• Provide consistent view of shortest path to
the source
– Propagate routing table to all routers

25
Route Exchange Reports
• Network number, Mask and Metric of
interfaces directly connected to it
• Each interface has a metric configured
– Physical interfaces use a metric of 1
– Tunnel interfaces metric varies with distance
and BW in the path
• Also relay routes received
– Adjusted Metric relayed

26
• Poison Reverse
– To determine if any downstream interfaces
depend on them for forwarding data
– If the interface is the best previous hop back to
the source, the downstream router echoes the
route on the upstream interface with an adjusted
metric of “infinity + original metric”
– Upstream router adds the downstream interface
to the list of dependent interfaces
– To determine Pruning of the Source-Group tree

27
• Designated Forwarder
– When two or more Mrouters connected to a multi-
access network
– Both routers may forward packets on the LAN
– Elect one router per source Router with lowest
metric back to the source
– Equal metrics, router with lowest IP address
• Route report interval of 60 secs

28
Routing Table
• Does not consider group memberships
• Source Subnet
– The subnetwork containing the source host
Source subnet Subnet mask From Gateway Metric Status TTL InPort OutPorts
128.1.0.0 255.255.0.0 128.7.5.2 3 Up 200 1 2,3
128.2.0.0 255.255.0.0 128.7.5.2 5 Up 150 2 1
128.3.0.0 255.255.0.0 128.6.3.1 2 Up 150 2 1,3
128.4.0.0 255.255.0.0 128.6.3.1 4 Up 200 1 2

29
Building Multicast Trees
• Determine upstream interface : RPF
• Forward on downstream interfaces
– Initially, all downstream interfaces determined
by Poison Reverse are part of tree
– If downstream interface is a Leaf network
• Consult IGMP Local database
– Non-Leaf Networks
• Delete interface if a Prune is received

30
Forwarding Cache Entries
• Separate entries for each (Source network,
Destination group) pair
• Created on demand based on Routing table,
Group memberships and Prunes
Source subnet Multicast Group TTL InPort OutPorts
128.1.0.0 224.1.1.1 200 1Pr 2p 3p
224.2.2.2 150 1 2p 3
224.3.3.3 150 1 2
128.2.0.0 224.1.1.1 200 1 2p 3
31
Pruning Multicast Trees
• If a router has no dependent downstream
interfaces, a Prune sent up to delete that interface
from list of dependent interfaces
– Leaf networks without any host members
– Non-leaf networks, all downstream interfaces send a
Prune
• Propagates up
• Limit the life of a Prune
– Periodically resume TRPB
• May include Network mask to specify specific
source data to be pruned
32
Prune message Packet Format

33
Grafting
• To support dynamic host memberships
• To cancel previously pruned interfaces
– When a new host joins the group
– Or a graft message received from downstream
• Separate messages sent for each source
network pruned
• Acknowledge each Graft with a “Graft
ACK” hop by hop

34
Graft / Graft ACK Packet Format

35
Multicast Open Shortest Path
First (MOSPF)
• Multicast extensions to OSPF v2.
– Route packets along least-cost paths
– Cost : Link state metric
– Metric : Can be configured to distance, load..
• Source/Destination routing
• Each router maintains the up-to-date image of the
topology of the entire network
• For use within a single routing domain
• Supports hierarchical routing, load balancing and
import external route info.
36
MOSPF Algorithm
• Hello Protocol
– Form adjacency with neighbor
• Each MOSPF router maintains an identical
Link State Database describing the AS
topology using LSAs
– Each router floods its local state through the AS
• Source-rooted Shortest path tree for each
[source network, destination group] pair
• External routing data from BGP used
– Flooded throughout the AS 37
Type Origin Scope Description
Router All routers Inside an area Collected state of routers’
interfaces to an area
Network All networks Inside an area List of routers (Designated
connected to the router) network
Summary By ABRs Inside associated Describes routes to
ABRs area destinations outside the area
AS-External By ASBRs Flooded thru AS Describes routes to
destinations in other AS
Group DR of Inside an area Lists networks with
Membership networks Specific to a hosts connected to group
that group

38
Local Group Database
• Use IGMP to monitor group memberships
– Designated router in a network
• List of directly attached group members
• DR generates the Group Membership LSA
– For each multicast group in the database
– Flooded through the area
Router Database Entry [Group, Network]
RT1 [Group B, N1]
RT2 [Group A, N2], [Group B, N2]
RT3 [Group B, N3]
RT4 None 39
Link State Database
• Describes a directed graph
– Vertices: Routers and Networks
• Cost associated with each outgoing
interface of the router
• Derived from LSA of routers and networks
and Group memberships
• Source-rooted SPT calculated at each router
– Based on LS database (Router, Network LSAs)
– Provides the best route to any destination in AS
– Pruned SPT - Group membership LSAs 40
N1 3 RT1 1 Mb
H2 RT1 RT2 RT3 N3
RT1 0
Mb RT2 0
RT3 0
Mb N3 N1 3
N2 3 1
3 1 N3 1 1 2
N2 RT2 1 N4
RT3
H3 2 H1
Ma Link State Database
N4 Group A: RT2
RT1 N3 Group B: R1, RT2, N3
RT1 RT1 0
RT2 0
N1 3
RT3 0
N3 1
N3

R1’s router-LSA N3’s network LSA 41


Forwarding Multicast Datagrams
• Each router determines its position in the
pruned SPT
– Upstream and Downstream interfaces
• Create a forwarding cache entry the first
time and use it for further routing
– Entry changes only when the topology or
Group membership changes
Destination Source Upstream Downstream TTL
224.1.1.1 128.1.0.2 !1 !2 !3 5
224.1.1.1 128.4.1.2 !1 !2 !3 2
224.1.1.1 128.5.2.2 !1 !2 !3 3
42
224.2.2.2 128.2.0.3 !2 !1 7
Splitting of the AS
• Number of areas connected by the
Backbone
• Each area has its own Link state database
– Topology of one area invisible to the other
• Backbone
– Responsible for distributing data between areas
• Routing
– Intra-area, Inter-area, Inter-AS
43
Area Configuration
• LS Database for an area contains
– All the paths within the area
– Area border router(ABR) advertise into the area
• costs to all external destinations (Inter-area SPT)
• Location of AS boundary routers
• AS-External-LSAs from ASBRs flooded (Inter-AS
SPT)
• Backbone Database
– ABRs summarize the topology of the area
• Heard by all other ABRs
– ASBRs externally derived information
– SPT: SP between all ABRs and ASBRs 44
Inter-Area Routing
• Subset of ABRs - “Wild card Inter-area
Multicast Forwarders / Receivers”
– Forward Group membership and Topology info
into the backbone
– Receive all multicast traffic generated in the
area regardless of the group
• Backbone forwards the data to appropriate
ABRs BACKBONE

AREA 1 AREA 2 AREA 3 45


SPT Calculation
• Using wild-card receivers and Summary Link
LSAs
• CASE I: Source n/w and calculating router in
same area
– Only branches without members and Non-wild
card rx are pruned
S Source containing
Area 1
group members

Intra-area MOSPF
router
Wild-card Multicast
Receiver 46
To other areas
• CASE II: Source n/w and calculating router
in different areas
– Estimate the source n/w to ABR distance using
Summary Link LSA info

S S Source subnetwork

Inter-Area
Summary Links LSA Multicast Forwarder
Subnet with
Area 1 group members
Intra-area
MOSPF router

47
Inter - AS Routing
• Some ASBRs - “Inter-AS Multicast
Forwarders” or “Wild-card Multicast
Receivers”
• Each ASBR executes an Inter-AS routing
protocol like DVMRP
• Case I & II: Same as Inter-area Routing
– Difference: ASBRs should not be pruned too

48
Case I : Source subnetwork and calculating router
are in the same AS

Area 1 S Source subnetwork


S
Inter-Area
Multicast Forwarder
Subnet with
group members
Intra-area
MOSPF router

Inter-AS
To other To other areas Multicast Forwarder
Autonomous
systems
49
Case III: Source n/w and calculating router in different AS

•Use AS-External Links describing source subnetwork

S S Source subnetwork

Inter-AS
AS External Links Multicast Forwarder
Subnet with
Area 1 group members
Intra-area
MOSPF router

Inter-Area
Multicast Forwarder

To other areas
50
Protocol Independent Multicast
(PIM)
• Under development by IDMR
• To develop a scalable protocol independent
of any particular unicast protocol
– ANY unicast protocol to provide routing table
• A router can switch between DM and SM
depending on the group

51
PIM Dense Mode
• Deployed in resource rich environments
• RPM Algorithm
– Similar to DVMRP
• Algorithm
– A datagram is forwarded if the arriving
interface is the shortest path back to the source
– Datagram forwarded on all outgoing interfaces
initially
– Create forwarding cache entry
– Prune and graft messages used to prune the tree
52
• Leaf Network Detection
– Absence of PIM Hello messages
– No host membership reports
• Pruning on a Multi-access LAN
– A prune is sent upstream when the outgoing
interface list is empty
– Upstream router schedules the interface for
deletion (Delay 3 sec)
– Any other routers on the LAN that depend on the
upstream router send a PIM-Join
• Deletion request of interface cancelled
• Randomly delay Join message to reduce traffic
– Prunes are flushed periodically 53
• Graft and Graft ACKs
• Designated Router in Multi-access LANs
– Highest IP address router as seen in “Hello”
• Assert Messages
– When duplicate packets arrive on a multi-
access LAN
– Send Assert with metric for that source
– Choose router with lower metric
– Equal metrics, higher IP address prevails
– Modify upstream and downstream neighbors
54
Sparse - Mode
• PIM-SM, CBT
• Assumptions
– group members are sparsely distributed throughout the
network
– BW not widely available
• Receiver initiated construction of the spanning tree
• Limit multicast traffic and hence improve scalability
• Define a Rendezvous Point (RP) and build the
multicast tree around it

55
• Algorithm
– Sender sends data to the RP
– Receivers JOIN the RP tree
• Difference from DM
– Receiver initiated vs Data Driven
– SM routers maintain state info ( Primary RP)
• Advantages
– Conserve network resources
– Decreased amount of info in routers
• Disadvantages
– Concentration of traffic around RP
– Sub-optimal trees increase Latency
56
PIM Sparse Mode

• Independent of particular
unicast routing protocol S1 S2
• Algorithm
– Senders send data to the
RP
– Receivers JOIN the tree Rendezvous Rendezvous
– Unwanted branches pruned Point Point
– Receivers can switch trees

R R R R R R R

57
• Designated Router
– Multiple routers on a LAN : Highest IP address
– Responsibilities
• IGMP Queries
• JOIN/Prune messages towards RP
• Maintain status of active RP
• Route Entry
– Source address, Group Address
– Incoming interface (towards RP)
– Outgoing interfaces (towards receivers)
– WC-bit: Any source would match (*,G)
– RPT-bit: Join sent up the shared RP tree
58
• Receivers : when a new host report received
– Look up primary RP for that group
– Unicast JOIN message to the RP
• Payload: Address G, Join = RP, WC_bit, RPT_bit,
PRUNE = NULL
– Create forwarding route entry for (*,G) pair
• Delete cache entry when no more members
– Intermediate routers transmit JOIN to RP
• Create forwarding route Source (S)
entry for (*,G)

Designated
Router Rendezvous Point
Host (RP)
(receiver) for group59
G
Join Join
• Hosts sending to Group
– Its DR looks up the active RP for that group
– Unicast data, encapsulated in a PIM-SM-Register
to the RP
– Active RP sends a PIM-Join to the source DR
– Intermediate routers maintain state info (*,G)
– When source gets a Join, it sends further packets
without encapsulation
– RP resends all data on the shared tree
Source (S) PIM Router
Rendezvous Point
DR
PIM-Register
PIM-Join
Resend to Group members

Host Host 60
(receiver) RP (receiver)
– If data rate warrants an SPT, an (S,G) state created
• RP sends periodic Join/Prune to the source
• Intermediate routers maintain (S,G) state info
– Sources stop encapsulating data when they receive
Register-Stop messages
• RP has no downstream members for that group or
source
• RP already receives native data from (S,G) tree
• Switching from RP-Shared tree to SPT
– Depending on the data rate of a particular source, a
switch over may be initiated
• Only by RP or routers with members
– Activate (S,G) route entry
61
– JOIN/PRUNE message from the rx towards the
source
• Payload: Address G, Join = S, Prune = NULL
– Prune towards the RP for that (S,G)
• Steady state of distribution tree
– Each router periodically sends JOIN/PRUNE
for each active route entry
• To the neighbor indicated in the route entry
• Helps capture changes in topology/state/membership
Source (S)
RP Tree
SP Tree

Host DR
(receiver) RP 62
• RP Information
– Bootstrap messages are used to distribute RP
information within the domain
– Domains’ Bootstrap Router (BSR) elected from
set of candidates
– A set of RP candidates periodically advertise to
the BSR the groups associated with them
– C-RP-Advertisements: Address of C-RP, Group
address and mask
– C-RP-Advs distributed in BS messages
– The Advs are used by DRs
• use a Hash function to map a group address to one
C-RP whose ad includes the group 63
Inter-operation with DM
Protocols
• All PIM-SM generated packets distributed into the
DVMRP domain by PMBRs
– PMBRs send JOIN/PRUNE to each RP
• All PIM-SM routers support (*,*,RP)
– Aggregate all groups associated with an RP
• Delivery of external packets
– PMBRs encapsulate data in Registers and unicast to
corresponding RP
– PMBR route entry created
– Register-Stop sent to PMBR
64
Data Forwarding
• Longest match route entry used
– (S,G)
– (*,G)
– (*,*,RP)
– Else discarded
• Match Incoming interface
• Dominant Router
– Elected using Assert messages (Same as DM)

65
Core Based Trees (CBT)
• Construct a single tree shared by a Group
• Similar to PIM-SM
– Protocol independent
– Bootstrap Core Discovery
• Differences
– Receiver cannot switch from RP-tree to SPT
– CBT state bi-directional
• data flows in either direction along the branch
• data from a source directly connected to an existing tree branch need not be
encapsulated
• Core router equivalent to RP


66
• Protocol
– Host sends IGMP report to Join a group
– JOIN-Request sent towards the core router
– JOIN_Request is explicitly acked using JOIN-
Ack by core or on-tree router
– Intermediate routers set up Transient state
• <Group, Incoming interface, Outgoing interface>
– Transient state converted to Active state by
JOIN-Ack
• Bi-directional state
– On-tree routers lookup forwarding cache to
forward data
67
• Data from non-members
– Encapsulated as IP-over-IP and unicast to Core
• Echo-Request
– Each on-tree router is responsible for
maintaining its Upstream link
– Sent to the Upstream router
– Carries a list of groups for which the upstream
router is the parent
• Echo-Reply
– From the parent with the list of groups attached
to the child interface
68
• Flush-Tree
– If link to a Parent fails, Flush-tree transmitted on all
its child interfaces
– Causes tearing down of all downstream branches for
that group
– Each downstream router responsible for re-attaching
itself to the tree
• Hello Protocol
– Elect Designated router and Border routers
• Quit Notification
– Prune message sent upstream if no child interface list
• Bootstrap and C-Core-Adv

69
References
• MOSPF: RFCs 1584, 1585
• PIM-SM: RFC 2362
• CBT: RFCs 2201 and 2189
• DVMRP: RFC 1075 and Internet draft
• PIM-DM: Internet Draft
• IGMPv2: RFC 2236
• Cisco, 3com web sites

70

You might also like