Introduction to Multicast Series
This introduction will be the start of a new series in the Multicast Xrdocs Xrdocs family called “Introduction to Multicast”. Multicast is a technology that reduces traffic by simultaneously delivering a single stream of information to potentially thousands of corporate recipients and homes Multicast Overview. The cisco portfolio consists of 3 great families, NCS5500, ASR9K and Cisco 8000 and all of them support multicast technology.
NCS stands for Network Convergence System and is a part of Mass Scale Metro and Wan Aggregation. It is designed for operational simplicity and to efficiently meet the scaling needs of large enterprises, web, and service providers while offering industry-leading 100 GbE and 400 GbE port density to handle massive traffic growth NCS 5500 Series.
Cisco ASR9K Series Aggregation Service Routers are high performance routers built to server demanding edge markets. It is an edge routing device capable of supporting the application performance required to power 5G service needs while offering a rich features list. ASR9K
Cisco 8000 Series Routers are cloud-enhanced systems powered by ground-breaking Cisco Silicon One ASICs (Application - Specific Integration Circuit). It is the new class of routing supporting the Internet for the future. These systems can deliver the routing performance and functionality that scale to meet the needs of critical infrastructure. Cisco 8000.
The whole Cisco portfolio can cover multiple multicast features. Regarding the base multicast features we have PIM(SSM, ASM, BiDIR), MSDP, Auto-RP, BSR and MoFRR(TI-MoFRR, RIB Based MoFRR).
The most popular Multicast Routing Protocol is the Protocol Independent Multicast (PIM) and we use it to get the traffic from the source to the receivers. PIM does not have its own Multicast routing database, instead it leverages the information within the unicast routing table. The definition of “independent” comes from the fact that the protocol can execute its tasks along with any other protocol as long as the latter can populate the unicast routing table. A major task is to perform reliable RPF checks on the multicast traffic. There are two main PIM protocols, PIM Sparse Mode and PIM Dense Mode. A third PIM protocol, Bi-directional PIM is less widely used.
How it works
The first thing that needs to happen is the establishment of neighbour adjacencies that assist in the creation of the multicast tree. This tree is the topology of links where multicast traffic can flow.
PIM uses “Hello” messages to discover directly connected neighbours. There is a destination IP (126.96.36.199) which is reserved by all the PIM routers. The IP protocol is 103 and the TTL for the Hello messages is 1.
PIM SPARSE MODE
PIM Sparse Mode (PIM-SM) is a Multicast routing protocol designed on the assumption that recipients for any multicast group will be separately distributed throughout the network. In this mode a receiver must explicitly choose to join a Multicast stream. Once the locations of the sources and receivers are found, PIM-SM can forward the traffic from the source to the receivers.
The multicast sources are connected to the FHRs (First Hop Router) and once the FHR receives the multicast packet it will create an (S, G) entry which contains the source and the destination. In addition, the multicast receivers are connected to the LHRs (Last Hop Router). The receivers can either connect dynamically via IGMP (Internet Group Management Protocol) or statically via interface configuration.
The next step is for FHRs and LHRs to share the information they have already gathered through signalling. To achieve that, a “central database” is needed to gather and share information. This is called Rendezvous Point (RP) and any Multicast enabled router in the network can be assigned for that role. It should be able to receive multicast state information (S, G) or (* , G) from both FHRs and LHRs and connect them by comparing the information. The FHR has information about a group (G) which the LHR needs the stream from and if those two pieces match the RP should proceed to connect them. Every single router in the network must be informed about the RP and this is done with the following command:
ip pim rp-address addIP
The LHR receives proper IGMP signalling, creates a (* , G) state and starts the PIM signalling process by creating a Multicast tree. RP is the root for a (* , G) tree or RP tree. LHR sends a Join message. Each router also creates a (* , G) state. The interface receiving the Join is included in the OIL, RPF interface to the RP becomes the IIF. The OILs and IIFs are explained below.
The interface which is used to route upward to the source of the Multicast river is the incoming interface (IIF).
The interface which is used to route away from the source of the Multicast river is the outgoing interface (OIL).
The designated router (DR) is responsible for sending PIM register and PIM join and prune messages towards the RP to inform it about active sources and host group membership. If there are multiple PIM-SM routers on a LAN, a designated router must be elected to avoid duplicating Multicast traffic for connected hosts. The PIM router with the highest IP address becomes the DR for the LAN unless you choose to force the DR election by use of the dr-priority command. The DR priority option allows you to specify the DR priority of each router on the LAN segment (default priority = 1) so that the router with the highest priority is elected as the DR. If all routers on the LAN segment have the same priority, the highest IP address is used as the tiebreaker.
A photo that shows a sample topology. We can see the source connecting directly to the FHR, the receiver connected to the LHRs and the Rendezvous point (RP).
Source-specific Multicast (SSM) is another flavor of PIM Sparse-Mode defined in RFC 3569. There are two attributes that are necessary for the transportation of the Multicast messages, the IP of the source and the Multicast address of the group. Because of this combination there can be only 1 Multicast stream which translates to 1 source and many multicast applications if required.
How it works
The IGMP is a protocol designed for Multicast purposes and it is used by PIM-SSM IGMP. It provides the designated router with the source IP address and the Multicast group address. This set of address identifies the channel and the receiver must subscribe to it using IGMPv3. The Multicast streams can directly be received from the source because the receiver segment already has the IP address of it, so the use of an RP is not needed. Also, the routers do not need to maintain (* , G) states and therefore shared trees do not exist.
The identification of a Multicast stream is based on the channel (the unicast address of the source and the Multicast group address). The source IP address and the Multicast address of the group are within the join message the receivers send to the source. The unicast routing is being leveraged by PIM-SSM to maintain the loop-free behavior.
If SSM is deployed in a network already configured for PIM-SM, only the last-hop routers must be upgraded with Cisco IOS XR Software that supports the SSM feature.
SSM can be disabled using the following command:
The following command allows SSM ranges to be overidden by more specific ranges:
PIM SSM STEP by STEP
For the current configuration tutorial, we will use 2 IOS XRv devices within the CML environment (Cisco Modeling Lab).
For this configuration tutorial we will use 2 NCS 5501 devices. The devices are connected via a physical 100G interface. The R1 corresponds to “Cannonball” and R2 to “Macrocarpa” respectively. In the following github link you can find the initial configurations and below there is a video demonstration.
The topology we will use for the NCS configuration
You can follow the configuration described in github and try it by yourself. To verify the configuration, we can execute some commands and analyze the outputs.
show mrib route
This output shows that the needed multicast channel has been created which is (10.1.1.2, 188.8.131.52). It has two interfaces connected to it, the 100G from Macrocarpa and the 100G from Cannonball.
debug ip igmp
By enabling debug mode for ip igmp we can check the IGMPv3 joins that are being sent
PIM SSM v6
PIM SSM over PIM SM
PIM-SSM is derived from PIM-SM. However, whereas PIM SM allows for the data transmission of all sources sending to a particular group in response to PIM join messages, the SSM feature forwards traffic to receivers only from those sources that the receivers have explicitly joined. Because PIM joins and prunes are sent directly towards the source sending traffic, an RP and shared trees are unnecessary and are disallowed. SSM is used to optimize bandwidth utilization and deny unwanted Internet broad cast traffic. The source is provided by interested receivers through IGMPv3 membership reports.
PIM-SM is a soft-state protocol. That is, all state is timed-out a while after receiving the control message that instantiated it. To keep the state alive, all PIM Join messages are periodically retransmitted.