Multicast RPF failure is one of the things I have struggled the most to understand in my CCIE studies. The concept of RPF failure is actually very simple once you understand how multicast routing works in itself. Hopefully, at this point you have read my other posts on PIM Dense-mode vs Sparse-mode Part 1 and Part 2, my Auto-RP vs BSR post or even my Multicast PIM DR vs PIM Assert post. If you haven’t and don’t have a good foundation of multicast concepts, I would strongly advise you read them.
So what exactly is Reverse Path Forwarding (RPF)? Well, in multicast, a switch will forward packets away from the source to make progress along the distribution tree towards the subscriber. For each hop it crosses, an RPF interface entry will be created in the multicast routing table. In order to avoid loops, every multicast packet received must pass an RPF check before it is eligible to be forwarded on any interface. The RPF check verifies that there is no loop in the network by comparing the incoming multicast packet to the outgoing interface of the unicast route to the source of the packet. If you have to remember one thing from this post is that the RPF Check will pass when IP multicast traffic will flow from its source to the subscriber on the same path but in the opposite direction that unicast traffic from the subscriber will take to the source. Continue reading
I know I haven’t posted in a while but I have been busy completing the first IPexpert CCIE Workbook. I’ll finish the last Labs this next weekend and I will start doing full 8 Hour Mock Labs. Also, I have been working with and implementing multicast recently as it is a big part of the trading/financial industry. For this reason, I’d like to dedicate a couple of posts to go over some of the more obscure parts of multicast.
A big source of confusion in multicast is the difference between the PIM DR and the PIM assert and what exactly they are used for. I won’t lie, the first time I was asked in an interview what was the DR in multicast and what it was used for, I had no clue. Thankfully today, that time has passed and I’ll be explaining to you guys the difference between both of these. Let’s start with the PIM DR first.
If you have read or recollect my other thread on PIM Dense-mode vs PIM Sparse-mode, I explained that “In a multi-access network, similarly to OSPF, if multiple PIM routers are attached to the same segment a Designated Router (DR) will be elected. The same election rules that OSPF uses apply to PIM. In PIM-SM the DR is used to forward the PIM join message from the receiver to the RP. By default the highest IP address determines who will become the DR. You can set the priority of the DR using the [(INT)ip pim dr-priority <#>] (default is 1) where the highest priority becomes the DR. As stated before, PIM-DM does not use the DR because it doesn’t have a RP.” Continue reading
Auto RP and BSR are two technologies used to dynamically create a group to RP mapping. Today I’ll do a review and compare both of these technologies and discuss which one you should use in your network. You can skip to the end of my post if you just want to read the overview.
- Cisco Proprietary and uses PIMv1
- If there is a group to RP mapping then the group is in SM, if not the group is in DM
- [(INT)ip pim sparse-dense-mode] is required or [ip pim autorp listener] must be used if only sparse-mode is configured. Allows only groups 22.214.171.124 and 126.96.36.199. to be sent (the mode is still sparse, but those two dense mode groups are allowed)
- Failed RP do not influence multicast traffic as long as last-hop router joined SPT
- On NBMA if the Mapping Agent (MA) is on a spoke and needs to send mapping to another spoke, a GRE tunnel must be created between spokes with a static mroute (or RPF will fail). You can also enable NBMA mode on hub to avoid this.
- Candidate-RP-Announce sent to MA 188.8.131.52 UDP/496
- Used by routers to announce themselves as RP to the MA
- Sent every 60 seconds with a holdtime of 180 seconds.
- [ip pim send-rp-announce <if> scope <ttl> %group-list <acl>% %interval <sec>%] Defines what RP’s the MA will receive
- If ACL is not defined whole Multicast range is included. Do NOT use deny statement in C-RP ACLs. Also, only contiguous masks are allowed in group ACL.
- Multiple Candidate-RP’s may exist for a Group. Highest IP is selected by Mapping agent Continue reading
I have been working and doing some labs with GNS3; playing with SPT-threshold on PIM-SM, PIM-BIDIR and Anycast RP. I was running into quite a few issues where I would run a multicast source with a repeat 1000 and, after a couple of minutes, my IGP would start to flap. At first, I only noticed this problem because I was losing ICMP packets but after a debug I noticed this was because my IGP (in this case OSPF) was flapping for a few seconds. After searching for a solution online, I have found that this is a problem with GNS3 and caching.
To resolve this I had to disable cef with no ip cef on every router that was passing multicast traffic and also had to disable caching on the interfaces that were enable with PIM with no ip route-cache and no ip mroute-cache. After this, the issue was not causing any more route-flaps but I was still losing some multicast traffic. I believe this is because the mroute buffers clear out fast enough to not flap my IGP but not fast enough to not drop any traffic. The reason this whole issue was happening is because IGP’s use multicast to maintain adjacencies and when the cache was full and dumped, the adjacency were torn down.
If you are having weird issues with multicast try this fix. Of course, on real routers you wouldn’t need to do this.
In my previous post, I made an analogy comparing PIM-DM to PIM-SM. In this Part, I will describe in technical detail how exactly PIM-DM and PIM-SM work. Before talking about PIM-DM and PIM-SM it’s important to do a quick review of the Internet Group Management Protocol (IGMP), routing protocol considerations and Neighbor Discovery process.
IGMP is used to establish multicast group memberships from hosts to routers. A host will send an IGMP join message (IGMP membership report) in order to join a multicast group. It is important to remember that PIM is a communication protocol used between routers and IGMP is used from hosts to routers. Continue reading
Today I will be using an analogy to explain PIM and two of its variations. I wish I had this analogy a couple of years back when I was first introduced to multicast networks and PIM.
As you may know, multicast is a technique used to distribute information from one to many. PIM or Protocol Independent Multicast is a protocol that can be used to distribute information. Similarly to an IGP that shares routing information, PIM will share multicast information. It is important to know that PIM, as the name says, is an Independent Protocol and does not have a topology discovery mechanism; it implies an IGP is already running to do the routing. PIM has several “flavours”, the most common ones are PIM Dense mode (PIM-DM) and PIM Sparse mode (PIM-SM). In order to explain these different variations let me bring up an analogy.
You have just bought an apartment block in a nice neighborhood with five apartments. In order to make money you need to rent these apartments to people. There are different methods you could use to do this.
- You could send letters to everyone in the neighborhood announcing that you have apartments to rent. This method is inefficient because you will have to use a lot of resources to send these letters to everyone.
- You could put an ad in the newspaper saying that you have apartments to rent. This method is a lot more efficient but only good if people see your ad in the newspaper.
Similarly to the first method where you will send letters to everyone and get called back by those interested, PIM-DM will flood multicast traffic domain wide and then prune back where there are no receivers. In contrast, PIM-SM will use a Rendez-vous Point (RP), or in this analogy we use an ad in the newspaper, as an intermediary point to get your announcement across. This method assumes that everyone in the network knows about the RP. PIM-SM saves resources because it does not flood unused parts of the network unnecessarily.
This is just a crude analogy on how PIM-DM and PIM-SM work. You can remember these easily by thinking about Dense Mode as a PUSH technology and Sparse Mode as a PULL technology. I will get into more details about these in Part 2 but I think this analogy explains well to beginners the core concepts behind the two main variations of PIM.