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
Section titled “Diagram”Classes
Section titled “Classes”configuration (iosxe.devices)
Section titled “configuration (iosxe.devices)”Name | Type | Constraint | Mandatory | Default Value |
---|---|---|---|---|
pim | Class | [pim] | No |
pim (iosxe.devices.configuration)
Section titled “pim (iosxe.devices.configuration)”Name | Type | Constraint | Mandatory | Default Value |
---|---|---|---|---|
autorp | Boolean | true , false | No | |
autorp_listener | Boolean | true , false | No | |
bsr_candidate_interface_type | Choice | Loopback | No | |
bsr_candidate_interface_id | String | No | ||
bsr_candidate_mask | Integer | min: 0 , max: 32 | No | |
bsr_candidate_priority | Integer | min: 0 , max: 255 | No | |
bsr_candidate_accept_rp_candidate | String | No | ||
ssm_range | String | No | ||
ssm_default | Boolean | true , false | No | |
rp_address | String | No | ||
rp_address_override | Boolean | true , false | No | |
rp_address_bidir | Boolean | true , false | No | |
rp_addresses | List | [rp_addresses] | No | |
rp_candidates | List | [rp_candidates] | No | |
vrfs | List | [vrfs] | No |
rp_addresses (iosxe.devices.configuration.pim)
Section titled “rp_addresses (iosxe.devices.configuration.pim)”Name | Type | Constraint | Mandatory | Default Value |
---|---|---|---|---|
access_list | String | Yes | ||
rp_address | IP | No | ||
override | Boolean | true , false | No | |
bidir | Boolean | true , false | No |
rp_candidates (iosxe.devices.configuration.pim)
Section titled “rp_candidates (iosxe.devices.configuration.pim)”Name | Type | Constraint | Mandatory | Default Value |
---|---|---|---|---|
interface | String | Yes | ||
group_list | String | No | ||
interval | Integer | min: 1 , max: 16383 | No | |
priority | Integer | min: 0 , max: 255 | No | |
bidir | Boolean | true , false | No |
vrfs (iosxe.devices.configuration.pim)
Section titled “vrfs (iosxe.devices.configuration.pim)”Name | Type | Constraint | Mandatory | Default Value |
---|---|---|---|---|
vrf | String | Yes | ||
autorp | Boolean | true , false | No | |
autorp_listener | Boolean | true , false | No | |
bsr_candidate_interface_type | Choice | Loopback | No | |
bsr_candidate_interface_id | String | No | ||
bsr_candidate_mask | Integer | min: 0 , max: 32 | No | |
bsr_candidate_priority | Integer | min: 0 , max: 255 | No | |
bsr_candidate_accept_rp_candidate | String | No | ||
cache_rpf_oif | Boolean | true , false | No | |
ssm_range | String | No | ||
ssm_default | Boolean | true , false | No | |
rp_address | String | No | ||
rp_address_override | Boolean | true , false | No | |
rp_address_bidir | Boolean | true , false | No | |
rp_addresses | List | [rp_addresses] | No | |
rp_candidates | List | [rp_candidates] | No |
By building multicast distribution trees independent of unicast routing, PIM enables scalable and efficient multicast traffic delivery for diverse applications.
PIM Parameters
Section titled “PIM Parameters”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.
Sample Configuration
Section titled “Sample Configuration”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 autorpip pim autorp listenerip pim bsr-candidate Loopback0 30 100ip pim ssm range 232.0.0.0/8ip pim rp-address 192.168.1.100 overrideip pim rp-address 10.1.1.1 group-list MULTICAST-GROUPSip pim rp-address 10.2.2.2 group-list BIDIR-GROUPS bidirip 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
Example YAML Code
Section titled “Example YAML Code”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