The shortest statement describing PIM-DM behavior is "flood and prune". We assume that every host on every network segment wants multicast traffic. Later routers can signal that they aren't interested anymore in receiving particular multicast group.
High level overview of PIM-DM operation is as follows:
- Source starts sending multicast feed
- Every router in PIM-DM network receives that feed and creates (S,G) entry
- (*,G) entry means that router knows about the receiver
- (S,G) entry means that router knows about the source
- (S,G) entry cannot exist without (*,G)
- When a router receives an IGMP report, but it does not have entry for (S,G), it does nothing, just ignores that IGMP Report. The only way a router in PIM-DM can re-join multicast tree is to send Graft message, which is unicast. It implies that the router has to know the RPF neighbor for that particular group. Router will create a (*,G) entry in its multicast routing table
PIM DM uses five PIMv2 messages:
What is PIM-DM assert?
Assert message is used when a router receives multicast packet for group G on interface that is marked as a outgoing interface for that group. Usually that means that there are several routers that forward traffic on a common LAN segment. Purpose of assert process is to choose a single router that will be responsible for sending multicast feed to that segment.
What is PIM-DM graft?
Graft message is used to signal upstream routers that we want to receive previously pruned multicast feed. This message is sent as unicast to RPF neighbor for that source.
What is PIM Prune Override?
Prune override happens when there are several routers on a shared LAN segment and some of them have receivers for multicast traffic, but some do not. When multicast traffic is flooded over the network, routers that do not have receivers send Prune message to their upstreams. However, before upstream will send his own Prune Message further up to the source, it will wait several seconds to give other routers on the LAN chance to override this Prune Message. It's like saying: "hey, don't listen to him! I still want that feed!"
Turning on PIM DM is very straightforward: Enable IP multicast routing Enable PIM DM per interface
The key thing is to turn PIM DM on every interface in the network. Failure to do so may result in RPF check failure.
Commands to remember
#show ip pim neighbors
#show ip pim interface Fa0/0 detail
#show ip mroute
#show ip igmp groups
#debug ip pim
#debug ip igmp
(config-if)#no ip mroute-cache
#debug ip mpacket
Other things worth remembering
- Before you enable multicast packet debugging, make soure you disabled CEF on that interface
- IGMP is automatically enabled when you enable PIM. There is no way to enable IGMP without enabling PIM