Home » IP Multicast » IP Multicast Overview

IP Multicast Overview

IP Multicast

A short High-Level Overview
Source of Multicast generates a single data feed for all interested parties and sends the feed to a  destination multicast address which is also known as a multicast group address. All interested parties will be listening for the data on this multicast group address. Routers in between make a single forwarding decision and replicate the feed only on the interfaces which are interested in receiving this feed.
1. Source sends the traffic out on destination address which will be ‘group address’.
2. Interested receivers join the group address by signaling routers on LAN.
3. Routers communicate with each other to build up a loop free tree from Source to the destination(s).
4. Parties not interested (Not joining the group address) will never receive the traffic.
Note: IP Multicast is UDP based.

IPv4 Multicast Range:
Multicast Uses the Class-D Range which is  224.0.0.0  through 239.255.255.255
First Octet Binary For Class-D: 11100000 ( So Starts at 224)

A multicast group is defined by its multicast IP address;
Multicast groups may be permanent or transient.

Link Local Addresses: 224.0.0.0/24
Most of the well known protocol traffic falls into this link local multicast category

Source Specific Multicast Addresses: 232.0.0.0 through 232.255.255.255
These multicast addresses are the ones where the clients request for a particular multicast group and also  the specific source of that multicast group

Administratively Scoped Multicast Addresses: 239.0.0.0 – 239.255.255.255
The administratively scoped can be thought of as the private multicast addresses which can be used.

Some well known IPv4 Multicast addresses:
224.0.0.1 All systems on this subnet
224.0.0.2 All routers on this subnet
224.0.0.13 All PIM routers
224.0.1.39 Cisco-RP-Announce
224.0.1.40 Cisco-RP-Discovery
224.0.0.4 DVMRP routers
224.0.0.5 All OSPF routers
224.0.0.6 OSPF designated routers
224.0.0.9 RIPv2 routers
224.0.0.10 EIGRP routers

Multicast Protocols
The Two Protocols used as the backbone of Multicast itself are
1. PIM – Protocol Independent Multicast
2. IGMP – Internet Gateway Messaging Protocol

PIM:
Is the Router to Router Communication for building the Loop Free Multicast Trees from source to the receivers.

IGMP:
Is the Protocol used by the receiver to signal the router on the LAN that it wants feed for a specific multicast group.
IGMP messages do not cross the router on the local LAN.
IGMPv1 is legacy now and most devices use either IGMPv2 or v3

IGMPv1 uses two message types
1. Host membership Query
2. Host membership Report
Report is what an application on client machine  is using to request a feed for a group.
Query is used by router to see if members  of the group still exist and interested to get the traffic for the multicast group. If no members exist then the router will turn off the feed on the LAN. The Query is sent to all multicast hosts address of 224.0.0.1

Note: Supports group specific joins which are (*,G)   means that  it does not care who the source is – just interested in the destination group address.

IGMPv2 enhancements
1. The timers values are configurable to speed up the query and response times.
2. If multiple routers exist  on the same LAN then one of the router is elected which is known as the Querier.
3. Unlike IGMPv1 where the query was sent to all multicast hosts address, in IGMPv2 Group specific Queries can be sent on the LAN by the routers to each multicast group address separately.
4. When a client leaves the multicast address, the client has an option to send out an explicit leave message to the router on the LAN. If there are no other hosts that want that multicast traffic then router can shut off the feed on the LAN.

Note: If you enable PIM on an interface then IGMPv2 will also be enabled.
Note: IGMPv2 is backward compatible with IGMPv1
Note: Supports group specific joins which are (*,G)   means that  it does not care who the source is – just interested in the destination group address.

IGMPv3 enhancements
Allows to do the source specific multicast, where client can say that it wants to receive traffic for a particular group but it also wants this traffic from a particular source.
Note: Source Specific MC always uses shortest path trees
Note: Supports only (S,G) entries – specifying source and destination group address both.

PIM – ( Protocol Independent Multicast)

Is the Multicast Routing Protocol.
Relies on some other IGP (OSPF,RIP,EIGRP..etc) in the network to build a loop free topology.
PIM is a light weight protocol.
PIM is used to make the multicast routing tree between the routers for the flow of multicast traffic. There are two types of trees which are created by PIM
1. Shared Tree – Only applies when PIM is running in sparse mode
2. Shortest path Tree (SPT) – Can be constructed in PIM Sparse mode, but PIM Dense mode only builds the SPT.

PIM Modes
1. Dense Mode
2. Sparse Mode

PIM Dense Mode:
Works on the implicit join mechanism where every node in the network will get traffic from all multicast sources, until they notify the routers on the LAN that they do not need traffic for the group addresses.
Also known as Flood and Prune behavior where the traffic is flooded to all nodes and later pruned away when the hosts say they do not want traffic for the particular groups. Not a very efficient method of running multicast.
PIM Dense Mode uses 224.0.0.13 to find neighbors on all of its attached links and floods multicast traffic received from source on all interfaces where neighbors are found.
Note: Dense Mode Trees are always Shortest Path Trees (SPT)

Multicast Routing table is maintained by using a set of messages – Graft, Assert and State Refresh messages
Graft: These are used to add new member
Assert: Is used for Loop Prevention where multiple routers exist on the LAN
State Refresh: These messages are used for the optimization of flooding procedure


How the Dense Mode Multicast Flooding works:
1. The Source of multicast sends the traffic to the group address.
2. Router receiving the feed (packets) inserts an (S,G) entry into the multicast routing table where S = Source of the Feed and G= Group address.
3. The router also creates a (*,G) entry into the multicast routing table, stating that it is processing traffic for this group address.
4. Router also inserts into the routing table the Outgoing Interface List which lists all the PIM interfaces connecting to other PIM Routers
5. Outgoing Interface list is also referred to as OIL, and the multicast packet received from the source is replicated to all interfaces in OIL
6. Next hop routers perform the same steps and the final result is the shortest path Tree from the source to the receivers for that multicast group.

PIM Dense Mode Pruning
Prune messages are always sent in response to the multicast feed received from upstream router. Prune messages are never unsolicited.
Prune messages are sent by the router to its upstream router to tell it to stop sending the traffic for a particular (S,G)
Prune messages occur when
1. No downstream neighbor or receivers for that group exist anymore
2. If all downstream neighbors have sent a prune message for that group
3. If the multicast feed fails an RPF check.

Prune Override:
In a LAN environment if one downstream neighbor sends a prune message, the prune message will go to upstream router and also to other PIM neighbors on the LAN, since the prune message is multicast on 224.0.0.13. If any other PIM neighbor that is still interested in receiving the multicast feed can send a prune override messages and that upstream router will not prune the feed.

Once the prune occurs, the traffic flow will stop and the (S,G) entry remains in the multicast routing table until the timer for the (S,G) entry expires then it is flushed out of the multicast routing table. Even after the prune occurs the traffic for the group is flooded periodically at a set interval.

Graft Message:
Is the equivalent of Join Message in PIM Sparse mode.
Graft messages are the “join messages” to un-prune a particular (S,G) entry. Graft message is sent to an upstream router when an IGMP join message is received locally on the interface to join that particular multicast group

Assert Message:
Assert messages are used to prune down the duplicate multicast feed packets on an LAN where multiple routers exist.
PIM assertion determines who (which router on same LAN) should be in-charge of sending the multicast feed on the LAN.
If the multicast packet comes in on an interface which is already in the OIL list, then PIM assertion process starts.
The router with lowest metric path o the source wins the PIM assertion,
if the cost is the same then the router with lowest IP address wins the PIM assertion.

State Refresh Message:
By Default the State Refresh is on on the IOS. If traffic is pruned for a particular (S,G) then traffic is re-flooded every 3 minutes by default. The State Refresh is originated by the root of the shortest path tree. the root is the router which is closest to the source of the multicast feed. The state refresh is a keepalive message for the prune state.


PIM Sparse Mode:
Works on the Principle where you get no multicast traffic until you ask for it. Sparse mode needs the Explicit Join in order to forward the multicast traffic for a particular group.
It uses the Rendezvous Points (RP) to process the join requests. All the routers in the network should be aware of the router which is RP for this to work. The RP makes the decision on how the multicast traffic will be routed in the network.

Sparse Mode uses both shared tree or the shortest path tree.
The shortest path tree are also called as the source trees. Look at the source and build a shortest path to the source using the routing table.

Sparse Mode uses the concept of RP (Rendezvous Point). The RP’s task is to track down all the sources of the multicast feeds and the receivers of these feeds. So by using RP sparse mode eliminates the need of sending the multicast feed to all routers and then waiting for prune messages as its done in the dense mode.

A Shared tree is made up of  two logical links
1. shortest path from source of multicast feed to the RP (Rendezvous Point)
2. then the shortest path from RP to the receivers of the multicast feed.

For the shared tree the Root of the tree has to be determined- which is the RP.
RP has to be discovered by all the routers on the segment or RP address can be manually configured on all the routers telling them who the RP is. All routers should have an RP mapping table where the RPs are listed for the groups.

PIM Sparse mode also uses the concept the DR – Designated Router. DR has to be elected on a segment and then DR  talks to the RP.

If multiple routers exist on LAN then a DR is elected on a LAN who will be responsible for informing the RP about the sources, the DR election on LAN considers two things
1. Higher Priority
2. If Priority is equal then higher IP address.

The Job of the DR is to send information about the sources to the RP.

Once the shared tree is built, later on the multicast traffic can be rerouted around the RP on a shortest path, if there is a shortest path which is better than the path using RP. Always the RP has to be used first to build the control plane for multicast traffic flow and if an alternate shortest path exists then traffic can flow over that shortest path without going through the RP.
The router which sends the register message has to be a DR which is the first hop router. After the source is learnt, only the DR and the RP know about the source the (S,G) entry and all other routers do not have to know it.
Note: RPF check is performed on the register messages where the RP determines if it has a correct path back to the source. if RPF fails then (S,G) entry will not be installed.

The router attached to the source of the multicast feed tells the RP about the source with the PIM register message with a unicast message to RP and destination address is the RP’s address – this is the (S,G) entry. When the RP gets the register message, RP inserts the (S,G) entry in the table and sends a register stop message back to the originating router.

When a router receives an IGMP join from a receiver it will generate a PIM join message and send it towards the RP.
When the receiver leaves the Multicast group, the multicast group can be removed from the multicast routing table.
When the PIM join is generated up the reverse path towards the RP, all the routers in the path will install the (*,G) entry and forward the join hop-by-hop towards the RP, so at this point all the routers in the path toward the receiver and the RP have the (*,G) entry.

When the RP knows about both (S,G) and (*,G) then RP sends a PIM join message towards the source to the routers in the path. This Join message makes sure that all routers in the path add the RP to the OIL.

When the shared tree is not the optimal path, the last hop routers can optionally trigger a PIM SPT Join (Shortest Path Tree) to create a new best path Tree for the (S,G) entry and leave the shared tree. The SPT Join is always sent specific to the (S,G) entry only.
When an SPT is selected, then the prune message is sent to RP, indicating that there is a better path available and the RP is no longer needed for this particular router to get to the source.

Multicast Data Plane Operations.
When a router receives a multicast packet it needs to make 2 decisions
1. Is this packet possibly looped ? –  Can be answered using the RPF check against CEF table using the IGP
2.  Where to forward the packet out ? –  If the RPF check passes then look into the multicast routing table
The router may need to replicate the packet on multiple interfaced when sending out the packet.

RPF Check Process
Unicast routing table is checked for reverse path back to the source, which is the 3 steps listed below
1. check the source IP address of the multicast packet received in the feed.
2. check the interface on which it was received.
3. check the unicast routing table (CEF table) to find out if the IGP uses this interface to reach the IP address of the source.
4. If the IGP uses this interface to reach the source then RPF check Passes otherwise its a looped packet and RPF check fails and the packet is dropped.

Router Interfaces From Multicast’s Perspective
Incoming Interface : Points upstream towards the source of the multicast feed.
Outgoing Interface: Points downstream towards where the receivers are located. (OIL – outgoing interface list)

If the OIL is Null on the router then there are no receivers for the multicast group or the router is dropping traffic for that multicast group due to some design/configuration issues.


Incoming search terms for the article:

Leave a Reply