Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

Navigation
 

Related Documentation

 

Configuring Basic PIM Settings

PIM Configuration Statements

To configure Protocol Independent Multicast (PIM), include the pim statement:

pim {disable;default-vpn-source {interface-name interface-name;}assert-timeout seconds;dense-groups {addresses;}dr-election-on-p2p;export;graceful-restart {disable;no-bidirectional-mode;restart-duration seconds;}idle-standby-path-switchover-delay seconds;import [ policy-names ];interface interface-name {bidirectional {df-election {backoff-period milliseconds;offer-period milliseconds;robustness-count number;}}import;hello-interval seconds;mode bidirectional-sparse | bidirectional-sparse-dense | (dense | sparse | sparse-dense);neighbor-policy [ policy-names ];override-interval milliseconds;priority number;propagation-delay milliseconds;reset-tracking-bit;version version;}join-load-balance {automatic;}join-prune-timeout;nonstop-routing {disable;}override-interval milliseconds;propagation-delay milliseconds;reset-tracking-bit;rib-group {inet group-name;inet6 group-name;}rp {auto-rp {(announce | discovery | mapping);(mapping-agent-election | no-mapping-agent-election);}bidirectional {address address {group-ranges {destination-ip-prefix</prefix-length>;}hold-time seconds;priority number;}}bootstrap {family (inet | inet6) {export [ policy-names ];import [ policy-names ];priority number;}}bootstrap-export [ policy-names ];bootstrap-import [ policy-names ];bootstrap-priority number;dr-register-policy [ policy-names ];embedded-rp {group-ranges {destination-ip-prefix</prefix-length>;}maximum-rps limit;}local {family (inet | inet6) {address address;anycast-pim {rp-set {address address <forward-msdp-sa>;}local-address address;}disable;group-ranges {destination-ip-prefix</prefix-length>;}hold-time seconds;override;priority number;}}rp-register-policy [ policy-names ];standby-path-creation-delay seconds;static {address address {override;version version;group-ranges {destination-ip-prefix</prefix-length>;}spt-threshold {infinity [ policy-names ];}traceoptions {file filename <files number> <size size> <world-readable | no-world-readable>;flag flag <flag-modifier> <disable>;}}}}}

You can include this statement at the following hierarchy levels:

  • [edit protocols]
  • [edit routing-instances routing-instance-name protocols]
  • [edit logical-systems logical-system-name protocols]
  • [edit logical-systems logical-system-name routing-instances routing-instance-name protocols]

By default, PIM is disabled.

Note: You cannot configure PIM within a nonforwarding instance. If you try to do so, the router displays a commit check error and does not complete the configuration commit process.

Changing the PIM Version

All systems on a subnet must run the same version of PIM.

The default PIM version can be version 1 or version 2, depending on the mode you are configuring. PIMv1 is the default for rendezvous point (RP) mode (at the [edit protocols pim rp static address address] hierarchy level). However, PIMv2 is the default for interface mode (at the [edit protocols pim interface interface-name] hierarchy level). Explicitly configured versions override the defaults.

To configure the PIM version, include the version statement:

version (1 | 2);

Modifying the PIM Hello Interval

Routing devices send hello messages at a fixed interval on all PIM-enabled interfaces. By using hello messages, routing devices advertise their existence as PIM routing devices on the subnet. With all PIM-enabled routing devices advertised, a single designated router for the subnet is established.

When a routing device is configured for PIM, it sends a hello message at a 30-second default interval. The interval range is from 0 through 255. When the interval counts down to 0, the routing device sends another hello message, and the timer is reset. A routing device that receives no response from a neighbor in 3.5 times the interval value drops the neighbor. In the case of a 30-second interval, the amount of time a routing device waits for a response is 105 seconds.

If a PIM hello message contains the hold-time option, the neighbor timeout is set to the hold-time sent in the message. If a PIM hello message does not contain the hold-time option, the neighbor timeout is set to the default hello hold time.

To modify how often the routing device sends hello messages out of an interface:

  1. This example shows the configuration for the routing instance. Configure the interface globally or in the routing instance.
    [edit routing-instances PIM.master protocols pim interface fe-3/0/2.0]user@host# set hello-interval 255
  2. Verify the configuration by checking the Hello Option Holdtime field in the output of the show pim neighbors detail command.
    user@host> show pim neighbors detail
    Instance: PIM.master
    Interface: fe-3/0/2.0
    Address: 192.168.195.37, IPv4, PIM v2, Mode: Sparse
    Hello Option Holdtime: 255 seconds
    Hello Option DR Priority: 1
    Hello Option LAN Prune Delay: delay 500 ms override 2000 ms
    Join Suppression supported
    Rx Join: Group Source Timeout
    225.1.1.1 192.168.195.78 0
    225.1.1.1 0
    
    Interface: lo0.0
    Address: 10.255.245.91, IPv4, PIM v2, Mode: Sparse
    Hello Option Holdtime: 255 seconds
    Hello Option DR Priority: 1
    Hello Option LAN Prune Delay: delay 500 ms override 2000 ms
    Join Suppression supported
    
    Interface: pd-6/0/0.32768
    Address: 0.0.0.0, IPv4, PIM v2, Mode: Sparse
    Hello Option Holdtime: 255 seconds
    Hello Option DR Priority: 0
    Hello Option LAN Prune Delay: delay 500 ms override 2000 ms
    Join Suppression supported

Preserving Multicast Performance by Disabling Response to the ping Utility

The ping utility uses ICMP Echo messages to verify connectivity to any device with an IP address. However, in the case of multicast applications, a single ping sent to a multicast address can degrade the performance of routers because the stream of packets is replicated multiple times.

You can disable the router's response to ping (ICMP Echo) packets sent to multicast addresses. The system responds normally to unicast ping packets.

To disable the router's response to ping packets sent to multicast addresses:

  1. Include the no-multicast-echo statement:
    [edit system]user@host# set no-multicast-echo
  2. Verify the configuration by checking the echo drops with broadcast or multicast destination address field in the output of the show system statistics icmp command.
    user@host> show system statistics icmp
    icmp:
    0 drops due to rate limit
    0 calls to icmp_error
    0 errors not generated because old message was icmp
    Output histogram:
    echo reply: 21
    0 messages with bad code fields
    0 messages less than the minimum length
    0 messages with bad checksum
    0 messages with bad source address
    0 messages with bad length
    100 echo drops with broadcast or multicast destination address
    0 timestamp drops with broadcast or multicast destination address
    Input histogram:
    echo: 21
    21 message responses generated

PIM on Aggregated Interfaces

You can configure several Protocol Independent Multicast (PIM) features on an interface regardless of its PIM mode (bidirectional, sparse, dense, or sparse-dense mode).

If you configure PIM on an aggregated (ae- or as-) interface, each of the interfaces in the aggregate is included in the multicast output interface list and carries the single stream of replicated packets in a load-sharing fashion. The multicast aggregate interface is “expanded” into its constituent interfaces in the next-hop database.

Configuring PIM Trace Options

Tracing operations record detailed messages about the operation of routing protocols, such as the various types of routing protocol packets sent and received, and routing policy actions. You can specify which trace operations are logged by including specific tracing flags. The following table describes the flags that you can include.

Flag

Description

all

Trace all operations.

assert

Trace assert messages, which are used to resolve which of the parallel routers connected to a multiaccess LAN is responsible for forwarding packets to the LAN.

autorp

Trace bootstrap, RP, and auto-RP messages.

bidirectional-df-election

Trace bidirectional PIM designated-forwarder (DF) election events.

bootstrap

Trace bootstrap messages, which are sent periodically by the PIM domain's bootstrap router and are forwarded, hop by hop, to all routers in that domain.

general

Trace general events.

graft

Trace graft and graft acknowledgment messages.

hello

Trace hello packets, which are sent so that neighboring routers can discover one another.

join

Trace join messages, which are sent to join a branch onto the multicast distribution tree.

mdt

Trace messages related to multicast data tunnels.

normal

Trace normal events.

nsr-synchronization

Trace nonstop routing synchronization events

packets

Trace all PIM packets.

policy

Trace poison-route-reverse packets.

prune

Trace prune messages, which are sent to prune a branch off the multicast distribution tree.

register

Trace register and register-stop messages. Register messages are sent to the RP when a multicast source first starts sending to a group.

route

Trace routing information.

rp

Trace candidate RP advertisements.

state

Trace state transitions.

task

Trace task processing.

timer

Trace timer processing.

In the following example, tracing is enabled for all routing protocol packets. Then tracing is narrowed to focus only on PIM packets of a particular type.

To configure tracing operations for PIM:

  1. (Optional) Configure tracing at the [routing-options hierarchy level to trace all protocol packets.
    [edit routing-options traceoptions]user@host# set file all-packets-traceuser@host# set flag all
  2. Configure the filename for the PIM trace file.
    [edit protocols pim traceoptions]user@host# set file pim-trace
  3. (Optional) Configure the maximum number of trace files.
    [edit protocols pim traceoptions]user@host# set file files 5
  4. (Optional) Configure the maximum size of each trace file.
    [edit protocols pim traceoptions]user@host# set file size 1m
  5. (Optional) Enable unrestricted file access.
    [edit protocols pim traceoptions]user@host# set file world-readable
  6. Configure tracing flags.
    Suppose you are troubleshooting issues with PIM version 1 control packets that are received on an interface configured for PIM version 2. The following example shows how to trace messages associated with this problem.
    [edit protocols pim traceoptions]user@host# set flag packets | match “Rx V1 Require V2”
  7. View the trace file.
    user@host> file list /var/loguser@host> file show /var/log/pim-trace

Disabling PIM

By default, when configured, the PIM protocol is enabled on all interfaces for all families. If desired, you can disable PIM at the protocol, interface, or family hierarchy levels.

The hierarchy in which you configure PIM is critical. In general, the most specific configuration takes precedence. However, if PIM is disabled at the protocol level, then any disable statements with respect to an interface or family are ignored.

For example, the order of precedence for disabling PIM on a particular interface family is:

  1. If PIM is disabled at the [edit protocols pim interface interface-name family] hierarchy level, then PIM is disabled for that interface family.
  2. If PIM is not configured at the [edit protocols pim interface interface-name family] hierarchy level, but is disabled at the [edit protocols pim interface interface-name] hierarchy level, then PIM is disabled for all families on the specified interface.
  3. If PIM is not configured at either the [edit protocols pim interface interface-name family] hierarchy level or the [edit protocols pim interface interface-name] hierarchy level, but is disabled at the [edit protocols pim] hierarchy level, then the PIM protocol is disabled globally for all interfaces and all families.

The following sections describe how to disable PIM at the various hierarchy levels.

Disabling the PIM Protocol

You can explicitly disable the PIM protocol. Disabling the PIM protocol disables the protocol for all interfaces and all families. This is accomplished at the [edit protocols pim] hierarchy level:

[edit protocols]
pim { disable;}

To disable the PIM protocol:

  1. Include the disable statement.
    user@host# set protocols pim disable
  2. (Optional) Verify your configuration settings before committing them by using the show protocols pim command.
    user@host# run show protocols pim

Disabling PIM On an Interface

You can disable the PIM protocol on a per-interface basis. This is accomplished at the [edit protocols pim interface interface-name] hierarchy level:

[edit protocols]
pim { interface interface-name {disable;}}

To disable PIM on an interface:

  1. Include the disable statement.
    user@host# set protocols pim interface fe-0/1/0 disable
  2. (Optional) Verify your configuration settings before committing them by using the show protocols pim command.
    user@host# run show protocols pim

Disabling PIM for a Family

You can disable the PIM protocol on a per-family basis. This is accomplished at the [edit protocols pim family] hierarchy level:

[edit protocols]
pim { family inet {disable;}family inet6 {disable;}}

To disable PIM for a family:

  1. Include the disable statement.
    user@host# set protocols pim family inet disable
    user@host# set protocols pim family inet6 disable
  2. (Optional) Verify your configuration settings before committing them by using the show protocols pim command.
    user@host# run show protocols pim

Disabling PIM for a Rendezvous Point

You can disable the PIM protocol for a rendezvous point (RP) on a per-family basis. This is accomplished at the [edit protocols pim rp local family] hierarchy level:

[edit protocols]
pim { rp {local {family inet {disable;}family inet6 {disable;}}}}

To disable PIM for an RP family:

  1. Use the disable statement.
    user@host# set protocols pim rp local family inet disable
    user@host# set protocols pim rp local family inet6 disable
  2. (Optional) Verify your configuration settings before committing them by using the show protocols pim command.
    user@host# run show protocols pim

Verifying a Multicast Configuration

To verify a multicast configuration, perform these tasks:

Verifying SAP and SDP Addresses and Ports

Purpose

Verify that SAP and SDP are configured to listen on the correct group addresses and ports.

Action

From the CLI, enter the show sap listen command.

Sample Output

user@host> show sap listen
Group Address   Port
224.2.127.254   9875

Meaning

The output shows a list of the group addresses and ports that SAP and SDP listen on. Verify the following information:

  • Each group address configured, especially the default 224.2.127.254, is listed.
  • Each port configured, especially the default 9875, is listed.

Verifying the IGMP Version

Purpose

Verify that IGMP version 2 is configured on all applicable interfaces.

Action

From the CLI, enter the show igmp interface command.

Sample Output

user@host> show igmp interface
Interface: ge–0/0/0.0
    Querier: 192.168.4.36
    State:         Up Timeout:     197 Version:  2 Groups:      0

Configured Parameters:
IGMP Query Interval: 125.0
IGMP Query Response Interval: 10.0
IGMP Last Member Query Interval: 1.0
IGMP Robustness Count: 2

Derived Parameters:
IGMP Membership Timeout: 260.0
IGMP Other Querier Present Timeout: 255.0

Meaning

The output shows a list of the interfaces that are configured for IGMP. Verify the following information:

  • Each interface on which IGMP is enabled is listed.
  • Next to Version, the number 2 appears.

Verifying the PIM Mode and Interface Configuration

Purpose

Verify that PIM sparse mode is configured on all applicable interfaces.

Action

From the CLI, enter the show pim interfaces command.

Sample Output

user@host> show pim interfaces
Instance: PIM.master
Name                   Stat Mode       IP V State Count DR address
lo0.0                  Up   Sparse      4 2 DR        0 127.0.0.1
pime.32769             Up   Sparse      4 2 P2P       0

Meaning

The output shows a list of the interfaces that are configured for PIM. Verify the following information:

  • Each interface on which PIM is enabled is listed.
  • The network management interface, either ge–0/0/0 or fe–0/0/0, is not listed.
  • Under Mode, the word Sparse appears.

Verifying the PIM RP Configuration

Purpose

Verify that the PIM RP is statically configured with the correct IP address.

Action

From the CLI, enter the show pim rps command.

Sample Output

user@host> show pim rps
Instance: PIM.master
Address family INET
RP address      Type      Holdtime Timeout Active groups Group prefixes
192.168.14.27   static           0    None             2 224.0.0.0/4

Meaning

The output shows a list of the RP addresses that are configured for PIM. At least one RP must be configured. Verify the following information:

  • The configured RP is listed with the proper IP address.
  • Under Type, the word static appears.

Verifying the RPF Routing Table Configuration

Purpose

Verify that the PIM RPF routing table is configured correctly.

Action

From the CLI, enter the show multicast rpf command.

Sample Output

user@host> show multicast rpf
Multicast RPF table: inet.0 , 2 entries...

Meaning

The output shows the multicast RPF table that is configured for PIM. If no multicast RPF routing table is configured, RPF checks use inet.0. Verify the following information:

  • The configured multicast RPF routing table is inet.0.
  • The inet.0 table contains entries.
 

Related Documentation

 

Published: 2013-02-12

 

Related Documentation

 

Published: 2013-02-12