Skip to content

PIM

PIM (Protocol Independent Multicast) is a family of multicast routing protocols that enables efficient delivery of multicast traffic by building distribution trees independent of the underlying unicast routing protocol, supporting various operational modes including Dense Mode, Sparse Mode, and Source-Specific Multicast (SSM). It uses Rendezvous Points (RPs) in Sparse Mode to establish shared trees and supports features like Auto-RP and Bootstrap Router (BSR) for dynamic RP discovery and election. PIM provides scalable multicast forwarding for applications such as video streaming, software distribution, and real-time communications while optimizing bandwidth utilization through intelligent tree pruning and grafting mechanisms.

Diagram
NameTypeConstraintMandatoryDefault Value
pimClass[pim]No

NameTypeConstraintMandatoryDefault Value
autorpBooleantrue, falseNo
autorp_listenerBooleantrue, falseNo
bsr_candidate_interface_typeChoiceLoopbackNo
bsr_candidate_interface_idStringNo
bsr_candidate_maskIntegermin: 0, max: 32No
bsr_candidate_priorityIntegermin: 0, max: 255No
bsr_candidate_accept_rp_candidateStringNo
ssm_rangeStringNo
ssm_defaultBooleantrue, falseNo
rp_addressStringNo
rp_address_overrideBooleantrue, falseNo
rp_address_bidirBooleantrue, falseNo
rp_addressesList[rp_addresses]No
rp_candidatesList[rp_candidates]No
vrfsList[vrfs]No

rp_addresses (iosxe.devices.configuration.pim)

Section titled “rp_addresses (iosxe.devices.configuration.pim)”
NameTypeConstraintMandatoryDefault Value
access_listStringYes
rp_addressIPNo
overrideBooleantrue, falseNo
bidirBooleantrue, falseNo

rp_candidates (iosxe.devices.configuration.pim)

Section titled “rp_candidates (iosxe.devices.configuration.pim)”
NameTypeConstraintMandatoryDefault Value
interfaceStringYes
group_listStringNo
intervalIntegermin: 1, max: 16383No
priorityIntegermin: 0, max: 255No
bidirBooleantrue, falseNo

NameTypeConstraintMandatoryDefault Value
vrfStringYes
autorpBooleantrue, falseNo
autorp_listenerBooleantrue, falseNo
bsr_candidate_interface_typeChoiceLoopbackNo
bsr_candidate_interface_idStringNo
bsr_candidate_maskIntegermin: 0, max: 32No
bsr_candidate_priorityIntegermin: 0, max: 255No
bsr_candidate_accept_rp_candidateStringNo
cache_rpf_oifBooleantrue, falseNo
ssm_rangeStringNo
ssm_defaultBooleantrue, falseNo
rp_addressStringNo
rp_address_overrideBooleantrue, falseNo
rp_address_bidirBooleantrue, falseNo
rp_addressesList[rp_addresses]No
rp_candidatesList[rp_candidates]No

By building multicast distribution trees independent of unicast routing, PIM enables scalable and efficient multicast traffic delivery for diverse applications.

Key Components:

  • PIM Mode (mode): Selects the operational mode (Sparse, Dense, Sparse-Dense, SSM).

  • Auto-RP (autorp, autorp_listener): Enables dynamic RP discovery and listener functionality.

  • Bootstrap Router (BSR) Candidate (bsr_candidate_interface_type, bsr_candidate_interface_id, bsr_candidate_mask, bsr_candidate_priority): Configures BSR candidate interface, mask, and priority.

  • Rendezvous Point (RP) Address (rp_address, rp_addresses): Sets static or dynamic RP addresses and group associations.

  • Source-Specific Multicast (SSM) Range (ssm_range): Defines the SSM address range.

  • RP Candidate (rp_candidates): Configures RP candidate interfaces and group lists.

  • VRF-Specific PIM Settings (vrfs): Enables PIM and configures parameters within specific VRF instances.

Key Parameters Briefly Explained:

  • mode: PIM operational mode.
  • autorp, autorp_listener: Auto-RP settings.
  • bsr_candidate_interface_type, bsr_candidate_interface_id, bsr_candidate_mask, bsr_candidate_priority: BSR candidate configuration.
  • rp_address, rp_addresses: RP address settings.
  • ssm_range: SSM range definition.
  • rp_candidates: RP candidate configuration.
  • vrfs: VRF-specific PIM settings.

You can use these PIM parameters to control how multicast traffic is routed and managed in your network. Customize the PIM mode, RP discovery mechanisms, and SSM ranges to fit your network’s multicast applications and topology. Adjusting these parameters lets you tailor multicast forwarding for efficient bandwidth utilization and scalable delivery.

The following configuration describes how to set up PIM on a Cisco IOS-XE device, including enabling PIM sparse mode, configuring Auto-RP, BSR candidate, static RP, SSM range, and VRF-specific settings.

ip multicast-routing
!
interface GigabitEthernet0/1
ip address 10.0.0.1 255.255.255.0
ip pim sparse-mode
!
interface Loopback0
ip address 192.168.1.100 255.255.255.255
ip pim sparse-mode
!
ip pim autorp
ip pim autorp listener
ip pim bsr-candidate Loopback0 30 100
ip pim ssm range 232.0.0.0/8
ip pim rp-address 192.168.1.100 override
ip pim rp-address 10.1.1.1 group-list MULTICAST-GROUPS
ip pim rp-address 10.2.2.2 group-list BIDIR-GROUPS bidir
ip pim rp-candidate Loopback0 group-list 224.0.0.0 interval 60 priority 100
!
ip access-list standard MULTICAST-GROUPS
permit 239.0.0.0 0.0.0.255
!
ip access-list standard BIDIR-GROUPS
permit 239.1.0.0 0.0.0.255

The following YAML code defines PIM configuration on an IOS-XE device, including Auto-RP, BSR candidate, SSM range, RP addresses, RP candidates, and VRF-specific settings.

iosxe:
devices:
- name: Device1
configuration:
pim:
autorp: true
autorp_listener: true
bsr_candidate_interface_type: Loopback
bsr_candidate_interface_id: "0"
bsr_candidate_mask: 30
bsr_candidate_priority: 100
bsr_candidate_accept_rp_candidate: ACCEPT-RP-ACL
ssm_range: 232.0.0.0/8
ssm_default: false
rp_address: 192.168.1.100
rp_address_override: true
rp_address_bidir: false
rp_addresses:
- access_list: MULTICAST-GROUPS
rp_address: 10.1.1.1
override: false
bidir: false
- access_list: BIDIR-GROUPS
rp_address: 10.2.2.2
override: true
bidir: true
rp_candidates:
- interface: Loopback0
group_list: 224.0.0.0
interval: 60
priority: 100
bidir: false
vrfs:
- vrf: MULTICAST-VRF
autorp: true
ssm_range: 232.0.0.0/8
rp_address: 172.16.1.1
rp_addresses:
- access_list: VRF-GROUPS
rp_address: 172.16.2.2