Protocol Independent Multicast (PIM)
Protocol Independent Multicast (PIM) Overview
Traditional multicast routing mechanisms (for example, DVMRP and MOSPF) were intended for use within regions where groups are densely populated or bandwidth is universally plentiful. When groups, and senders to these groups, are distributed sparsely across a wide area, these "dense mode" schemes do not perform efficiently. PIM is made of two protocols, one for each type of group distribution. PIM Sparse Mode, PIM-SM, provides efficient routing for a group distributed sparsely across a wide area. PIM Dense Mode, PIM-DM, provides multicast routing for a densely populated group.
Multicasting protocols require two different functions in order to create source-based trees or group-based trees:
- a set of routes used to calculate the reverse path forwarding
- a mechanism by which to build trees
PIM is protocol independent because it depends on existing unicast routes to calculate the reverse path forwarding. In contrast, DVMRP passes this set of routes within the protocol.
There are two versions of the PIM-SM protocol. PIM-SM version 1 is documented in RFC 2117. PIM-SM version 2 was constructed to address some of the shortcomings of PIM-SM version 1. Advanced Routing Suite implements only version 2, which is an RFC but is not considered complete enough to implement (RFC 2362). In going from draft-ietf-pim-sm-v2-new-01 to draft-ietf-pim-sm-v2-new-02, the BSR functionality was removed and placed in its own internet draft. Advanced Routing Suite implements the PIM-SM protocol as described in draft-ietf-pim-sm-v2-new-02, but the BSR functionality as described in draft-ietf-pim-sm-v2-new-01.
Note: PIM uses routes in the multicast Routing Information Base (RIB) to perform its RPF check. By default none of the IGPs (IS-IS, OSPF, RIP) place routes into the multicast RIB. They must be configured to do so. Check the relevant protocol's configuration section in order to obtain the correct syntax.
ip pim assert-holdtime
Name
ip pim assert-holdtime - specifies the number of seconds that Assert state should be maintained in the absence of a refreshing Assert message
Syntax
ip pim assert-holdtime time-seconds
no ip pim assert-holdtime time-seconds?
Mode
Global Configuration
Interface Configuration
Parameters
time-seconds - specifies a time, in seconds, between 1 and 1,073,741,823, inclusive
Description
When a PIM router receives an Assert message, it modifies the outgoing interface list for a (*,G) or (S,G) entry, as specified by the message. The lifetime of this modification is specified by the ip pim assert-holdtime command. If another Assert message does not refresh the Assert state before the lifetime expires, then the outgoing interface list reverts to its previous state.
The negative of this command, no ip pim assert-holdtime , removes the configured value and returns this command to its default value. Note: Specifying a value for time-seconds in the no form has no effect on the configuration. Thus, it is displayed above as optional.
Default
If ip pim assert-holdtime is not specified, it is the same as if the user had specified the following:
(config-if)# ip pim assert-holdtime 180
or
(config)# ip pim assert-holdtime 180
Command History
NGC 2.2 - This command was introduced.
Examples
Example 1
The following example configures a global assert-holdtime value of 100. For interface eth1, this value is overridden to be 140.
(config)# ip pim assert-holdtime 100
(config)# interface eth1
(config-if)# ip pim assert-holdtime 140
Example 2
The following example uses the negative form of the assert-holdtime command both globally and for interface eth1 to return the value to 180 seconds.
(config)# no ip pim assert-holdtime
(config)# interface eth1
(config-if)# no ip pim assert-holdtime
ip pim dr-priority
Name
ip pim dr-priority - sets the priority for determining the designated router (DR)
Syntax
ip pim dr-priority level
no ip pim dr-priority level?
Mode
Global Configuration
Interface Configuration
Parameters
level - an integer between 1 and 4,294,967,295, inclusive
Description
PIM Hello messages can contain a priority field that is used to elect a designated router (DR) on a shared network. All Hello messages originated by Advanced Routing Suite contain such a priority. DRs are responsible for encapsulating multicast data from local sources into PIM-SM register messages and for unicasting them to the Rendezvous Point. The router with the highest priority wins the DR election. In the case of a tie, the router with the highest IP address wins.
If at least one neighbor on the network does not use Hello priorities, then election of a DR is carried out using only IP addresses, where the highest address wins.
The negative form of this command, no ip pim dr-priority , removes the configured priority and returns it to its default value of 1. Note: Specifying a value for level in the no form of this command has no effect on the configuration. Thus, it is displayed above as optional.
Default
If ip pim dr-priority is not specified, it is the same as if the user had specified the following:
(config-if)# ip pim dr-priority 1
or
(config)# ip pim dr-priority 1
Command History
NGC 2.2 - This command was introduced.
NGC 2.3 - The lower limit of this command was changed from 1 to 0.
Examples
The following example configures a default dr-priority of 4. This value is then overridden on interface 192.168.22.1 to be 3.
(config)# ip pim dr-priority 4
(config)# interface 192.168.22.1
(config-if)# ip pim dr-priority 3
ip pim hello-holdtime
Name
ip pim hello-holdtime - specifies how long neighbors should wait for Hello messages before expiring the sender's neighbor state
Syntax
ip pim hello-holdtime time-seconds
no ip pim hello-holdtime time-seconds?
Mode
Global Configuration
Interface Configuration
Parameters
time-seconds - specifies a time in seconds between 1 and 65535, inclusive
Description
PIM Hello messages contain a holdtime specifying how long neighbors must wait for Hello messages before expiring the sender's neighbor state. The ip pim hello-holdtime command specifies the holdtime, in seconds, to advertise in Hello messages.
The negative of this command, no ip pim hello-holdtime , removes the configured setting and returns this value to the default of 105 seconds. Note: Specifying a value for time-seconds in the no form has no effect on the configuration. Thus, it is displayed above as optional.
Default
If ip pim hello-holdtime is not specified, it is the same as if the user had specified the following:
(config)# ip pim hello-holdtime 105
or
(config-if)# ip pim hello-holdtime 105
Command History
NGC 2.2 - This command was introduced.
Examples
The following example configures the global hello holdtime to be 100 seconds and the holdtime for interface eth1 to be 140 seconds.
(config)# ip pim hello-holdtime 100
(config)# interface eth1
(config-if)# ip pim hello-interval
ip pim hello-interval
Name
ip pim hello-interval - specifies the frequency with which Hello messages are sent
Syntax
ip pim hello-interval time-seconds
no ip pim hello-interval time-seconds?
Mode
Global Configuration
Interface Configuration
Parameters
time-seconds - specifies a time, in seconds, between 1 and 65535, inclusive
Description
PIM routers periodically multicast Hello messages on each network to which they are connected to alert other routers to the presence of the sender. The ip pim hello-interval command specifies the time, in seconds, between successive Hello messages.
The negative of this command, no ip pim hello-interval , removes the configured setting and returns this value to the default of 30 seconds. Note: Specifying a value for time-seconds in the no form has no effect on the configuration. Thus, it is displayed above as optional.
Default
If ip pim hello-interval is not specified, it is the same as if the user had specified the following:
(config)# ip pim hello-interval 30
or
(config-if)# ip pim hello-interval 30
Command History
NGC 2.2 - This command was introduced.
Examples
The following example configures the global hello-interval to be 100 seconds. This value is overridden to be 140 seconds on interface eth1.
(config)# ip pim hello-interval 100
(config)# interface eth1
(config-if)# ip pim hello-interval 140
ip pim jp-holdtime
Name
ip pim jp-holdtime - specifies the holdtime that is advertised on PIM Join/Prune messages
Syntax
ip pim jp-holdtime time-seconds
no ip pim jp-holdtime time-seconds?
Mode
Global Configuration
Interface Configuration
Parameters
time-seconds - specifies a time in seconds between 1 and 65535, inclusive
Description
The ip pim jp-holdtime command specifies the holdtime that is advertised in PIM Join/Prune messages. Receivers must wait at least this long after receiving a Join/Prune message before deleting the Join/Prune state associated with the advertiser. The recommend value is 3.5 * jp-interval.
The negative form of this command, no ip pim jp-holdtime , removes the configured value and returns this to its default value of 210 seconds. Note: Specifying a value for time-seconds in the no form has no effect on the configuration. Thus, it is displayed above as optional.
Default
If ip pim jp-holdtime is not specified, it is the same as if the user had specified the following:
(config)# ip pim jp-holdtime 210
or
(config-if)# ip pim jp-holdtime 210
Command History
NGC 2.2 - This command was introduced.
Examples
The following example configures the default jp-holdtime to be 100 seconds and the jp-holdtime on interface eth1 to be 140 seconds.
(config)# ip pim jp-holdtime 100
(config)# interface eth1
(config-if)# ip pim jp-holdtime 140
ip pim jp-interval
Name
ip pim jp-interval - specifies the number of seconds between successive Join/Prune messages sent to upstream neighbors
Syntax
ip pim jp-interval time-seconds
no ip pim jp-interval time-seconds?
Mode
Global Configuration
Interface Configuration
Parameters
time-seconds - specifies a time in seconds between 1 and 65535, inclusive
Description
The Join/Prune state on an upstream neighbor must be refreshed by periodic Join/Prune messages. The ip pim jp-interval command specifies the number of seconds between successive Join/Prune messages sent to upstream neighbors to maintain the neighbor’s Join/Prune state.
The negative form of this command, no ip pim jp-interval , removes the configured value and returns the value to its default. Note: Specifying a value for time-seconds in the no form has no effect on the configuration. Thus, it is displayed above as optional.
Default
If ip pim jp-interval is not specified, it is the same as if the user had specified the following:
(config)# ip pim jp-interval 60
or
(config-if)# ip pim jp-interval 60
Command History
NGC 2.2 - This command was introduced.
Examples
The following example configures the default jp-interval to be 100 seconds and the jp-interval on interface eth1 to be 140 seconds.
(config)# ip pim jp-interval 100
(config)# interface eth1
(config-if)# ip pim jp-interval 100
ip pim lan-delay
Name
ip pim lan-delay - specifies the value to advertise as the LAN Delay value in the Lan Prune Delay option in PIM Hello messages
Syntax
ip pim lan-delay time-milliseconds
no ip pim lan-delay time-milliseconds?
Mode
Interface Configuration
Parameters
time-milliseconds - an integer between 1 and 65535, specifying a number of seconds
Description
Use the ip pim lan-delay command to configure the value to advertise as the LAN Delay value in the Lan Prune Delay option in PIM Hello messages. This value is used to tune the value of the J/P Override interval. It is configured in units of milliseconds.
The negative form of this command, no ip pim lan-delay , removes the configured time-milliseconds value and returns this to its default value of 500 milliseconds. Note: Specifying a value for time-milliseconds in the no form has no effect on the configuration. Thus, it is displayed above as optional.
Default
If ip pim lan-delay is not specified, it is the same as if the user had specified the following:
(config-if)# ip pim lan-delay 500
Command History
NGC 2.2 - This command was introduced.
Examples
The following example configures the Lan Delay for interface eth1 to be 700.
(config)# interface eth1
(config-if)# ip pim lan-delay 700
(config-if)# exit
ip pim mrt-interval
Name
ip pim mrt-interval - specifies the number of seconds to wait between examinations of a PIM component's multicast routing table (MRT)
Syntax
ip pim mrt-interval time-seconds
no ip pim mrt-interval time-seconds?
Mode
Global Configuration
Parameters
time-seconds - an integer between 1 and 3600, inclusive, specifying a number of seconds
Description
A PIM component's MRT is examined periodically in order to remove entries that have been marked for deletion. The ip pim mrt-interval command specifies the number of seconds to wait between examinations. This can be a computationally expensive operation if the number of entries is large.
The negative form of this command, no ip mrt-interval , removes the configured time-seconds value and returns this to its default value of 15 seconds. Note: Specifying a value for time-seconds in the no form has no effect on the configuration. Thus, it is displayed above as optional.
Default
If ip pim mrt-interval is not specified, it is the same as if the user had specified the following:
(config)# ip pim mrt-interval 15
Command History
NGC 2.2 - This command was introduced.
Examples
The following example configures the MRT interval to be 100 seconds.
(config)# ip pim mrt-interval 100
(config)#
ip pim mrt-stale-multiplier
Name
ip pim mrt-stale-multiplier - together with the ip pim mrt-interval command, specifies the minimum number of seconds that a source can be silent before its corresponding (S,G) entry can be timed out
Syntax
ip pim mrt-stale-multiplier multiplier
no ip pim mrt-stale-multiplier multiplier?
Mode
Global Configuration
Parameters
multiplier - an unsigned integer between 1 and 100, inclusive
Description
When a source stops sending to a group, the corresponding (S,G) entry is said to have become "stale" and becomes a candidate for deletion from the PIM multicast forwarding table (MRT). The PIM-SM protocol defines a Keep-Alive Timer (KAT) for each (S,G) entry, which is reset by the arrival of data from source S addressed to group G. If the KAT ever expires, and if other conditions are met, then the entry can be deleted. The ip pim mrt-stale-multiplier command, together with the ip pim mrt-interval command, specifies the minimum number of seconds that a source must be silent before the entry is considered stale. The value, multiplier, specified in the ip pim mrt-stale-multiplier command indicates that a source must be silent for m * ip pim mrt-interval in order to be declared stale.
The negative form of this command, no ip pim mrt-stale-multiplier , removes the configured multiplier value and returns this to its default value of 14 intervals. Note: Specifying a value for multiplier in the no form has no effect on the configuration. Thus, it is displayed above as optional.
Defaults
If ip pim mrt-stale-multiplier is not specified, it is the same as if the user had specified the following:
(config)# ip pim mrt-stale-multiplier 14
Command History
NGC 2.2 - This command was introduced.
Examples
The following example configures the MRT stale multiplier value to be 10 seconds.
(config)# ip pim mrt-stale-multiplier 10
(config)#
ip pim override-interval
Name
ip pim override-interval - specifies the value to advertise as the Override Interval in the Lan Prune Delay option of PIM Hello messages
Syntax
ip pim override-interval time-milliseconds
no ip pim override-interval time-milliseconds?
Mode
Interface Configuration
Parameters
time-milliseconds - an integer between 1 and 65535, specifying a number of seconds
Description
Use the ip pim override-interval command to configure the value to advertise as the Override Interval value in the Lan Prune Delay option in PIM Hello messages. This value is used to tune the value of the J/P Override interval. It is configured in units of milliseconds.
The negative form of this command, no ip pim override-interval , removes the configured time-milliseconds value and returns this to its default value of 2500 milliseconds. Note: Specifying a value for time-milliseconds in the no form has no effect on the configuration. Thus, it is displayed above as optional.
Default
If ip pim override-interval is not specified, it is the same as if the user had specified the following:
(config-if)# ip pim override-interval 2500
Command History
NGC 2.2 - This command was introduced.
Examples
The following example configures the Lan Delay for interface eth1 to be 2900 milliseconds.
(config)# interface eth1
(config-if)# ip pim override-interval 2900
(config-if)# exit
ip pim triggered-hello-delay
Name
ip pim triggered-hello-delay - specifies the number of seconds to delay between triggered Hello messages
Syntax
ip pim triggered-hello-delay time-seconds
no ip pim triggered-hello-delay time-seconds?
Mode
Interface Configuration
Parameters
time-seconds - an integer from 1 to 65535, inclusive
Description
The ip pim triggered-hello-delay command configures the maximum delay for a triggered Hello message. The negative form of this command, no ip pim triggered-hello-delay , removes the configured time-seconds value and returns this to its default value of 5 seconds. Note: Specifying a value for time-seconds in the no form has no effect on the configuration. Thus, it is displayed above as optional.
Default
If ip pim triggered-hello-delay is not specified, it is the same as if the user had specified the following:
(config-if)# ip pim triggered-hello-delay 5
Command History
NGC 2.2 - This command was introduced.
Examples
The following example configures the Triggered Hello delay to be 10 seconds on interface fxp3.
(config)# interface fxp3
(config-if)# ip pim triggered-hello-delay 10
(config-if)# exit
(config)#
show ip pim control-counters
Name
show ip pim control-counters - displays counts for both sent and received PIM control packets
Syntax
show ip pim control-counters
Mode
User Execution
Parameters
none
Description
The show ip pim control-counters query displays counts for both sent and received PIM control packets on all interfaces.
Command History
NGC 2.2 - This command was introduced.
Examples
The following is a request to return information about all PIM packets.
> show ip pim control-counters
PIM Control Counters
Received Sent Invalid
Assert 10 5 0
Graft 20 37 2
Graft Ack 25 20 1
Hello 1232 453 0
Joins 5 10 20
Prunes 10 20 1
State Refresh 8 7 1
Field Descriptions
The following table describes the fields that appear in the PIM Control Packet Counters Query.
Field
|
Description
|
Received
|
Number of packets of the given type that have been received
|
Sent
|
Number of packets of the given type that have been sent
|
Invalid
|
Number of packets of the given type that were received but were invalid
|
show ip pim interface
Name
show ip pim interface - displays information about the interfaces on which PIM is running
Syntax
show ip pim interface [ipv4_addr | name]? detail?
Mode
User Execution
Parameters
ipv4_addr | name - optionally specify either an IPv4 address or a physical interface name
detail - displays IGMPv3 style group information and source information. Specifying this is optional.
Description
Use show ip pim interface to obtain information about a specific interface or all interfaces on which PIM is running.
This query has two forms. If the query is issued without arguments, then information on about all interfaces over which PIM is running is returned. Alternatively, the query can be issued with a specific interface. If this is the case, then the reply will contain information pertaining only to that referenced interface.
Note that if interfaces are added to the set of interfaces over which PIM is running after this query has been issued but before the query is finished, it is not guaranteed that the new interfaces will be reported. Similarly, if PIM is de-configured on an interface after the query has been issued but before the query is finished, then the interface may or may not be reported.
Command History
NGC 2.2 - This command was introduced.
Examples
Example 1
The following example displays interface information for all interfaces on which PIM is running.
> show ip pim interface
Address Interface Mode Neighbor Hello DR
Count Interval
192.168.10.1 fxp0 Dense 5 30 192.168.10.1
10.1.57.28 ex0 Sparse 2 50 10.1.57.30
Example 2
The following example displays detailed interface information for interface fxp0.
> show ip pim interface fxp0 detail
fxp0 is up, line protocol is up
Internet address is 192.168.10.1/25
Multicast packets in/out: 0/0
Multicast boundary: not set
Multicast TTL threshold: 1
PIM: enabled
PIM version:2, mode: dense
PIM DR: 192.168.10.1 (this system)
PIM Neighbor Count: 5
PIM Hello/Query Interval: 30 seconds
PIM State-Refresh processing: enabled
PIM State-Refresh origination: enabled,
interval 60 seconds
PIM domain border: disabled
Field Descriptions
The following table describes the fields that appear in the PIM Interface Information Query.
Field
|
Description
|
Address
|
Shows the IP address used by PIM on the interface
|
Interface
|
The physical interface name
|
Mode
|
The PIM mode active on the interface
|
Neighbor Count
|
Number of PIM neighbors reached through the interface
|
Hello Interval
|
The number of seconds at which hello packets are sent
|
DR
|
The IP address of the elected designated router on the interface
|
<interface-name> (for example, fxp0)
|
The physical name of the interface and the administrative state of it (up or down)
|
line protocol
|
Carrier status of interface (up or down)
|
Internet address
|
The IPv4 address used by PIM on the interface
|
Multicast packets
|
The number of multicast packets received from/forwarded out of this interface
|
Multicast boundary
|
Indicates whether any administratively scoped boundaries are set on the interface
|
Multicast TTL
|
The time-to-live threshold used on the interface
|
PIM
|
Indicates whether PIM is enabled or disabled
|
PIM version
|
Indicates the PIM version configured on the interface
|
mode
|
Indicates whether PIM dense or sparse mode is configured on the interface
|
PIM DR
|
The IPv4 address of the elected designated router on the interface
|
PIM Neighbor Count
|
The number of PIM neighbors reached through this interface
|
PIM Hello/Query Interval
|
The PIM hello interval configured on the interface
|
PIM State-Refresh processing
|
Indicates whether the processing of PIM state refresh messages is enabled or disabled on the interface
|
PIM State-Refresh origination
|
Indicates whether the origination of PIM state refresh messages is enabled or disabled on the interface
|
interval
|
The number of seconds between PIM state refresh messages
|
PIM domain border
|
Indicates whether the interface is a PIM domain border
|
show ip pim neighbor
Name
show ip pim neighbor - displays information about a router’s PIM neighbors
Syntax
show ip pim neighbor name?
Mode
User Execution
Parameters
name - optionally specify an interface name
Description
The show ip pim neighbor query displays information about a router’s PIM neighbors on all interfaces or on a specific interface.
Command History
NGC 2.2 - This command was introduced.
Examples
Example 1
The following example displays information about all of this router’s PIM neighbors.
> show ip pim neighbor
PIM Neighbor Table
Neighbor Address Interface Uptime Expires Mode
192.168.10.1 fxp0 10:23:43 00:01:10 Dense
192.168.10.2 fxp0 10:23:43 00:01:10 Dense (DR)
192.168.10.3 fxp0 10:23:43 00:01:10 Dense
192.168.10.4 fxp0 10:23:43 00:01:10 Dense
10.0.0.10 ex0 00:00:20 00:01:25 Sparse
10.0.0.20 ex0 00:00:20 00:01:25 Sparse
10.0.0.21 ex0 00:00:20 00:01:25 Sparse (DR)
10.0.0.22 ex0 00:00:20 00:01:25 Sparse
Example 2
The following example displays information about this router’s PIM neighbors on interface fxp0.
> show ip pim neighbor fxp0
PIM Neighbor Table
Neighbor Address Interface Uptime Expires Mode
192.168.10.1 fxp0 10:23:43 00:01:10 Dense
192.168.10.2 fxp0 10:23:43 00:01:10 Dense (DR)
192.168.10.3 fxp0 10:23:43 00:01:10 Dense
192.168.10.4 fxp0 10:23:43 00:01:10 Dense
|