Adjusting Control Parameters for Join/Prune Messages
Pre-configuration Tasks
Before configuring control parameters for Join/Prune messages, complete the following tasks:
- Configure a unicast routing protocol to ensure normal unicast routing on the network.
- Enable PIM-SM.
Context
A multicast device sends Join messages upstream to require forwarding of multicast data, and Prune messages upstream for requiring to stop forwarding multicast data. You can configure control parameters for Join/Prune messages as required. If there is no special requirement, the default values are recommended.
Adjusting Time Parameters for Join/Prune Messages
Context
A multicast device sends Join messages upstream to require forwarding of multicast data, and Prune messages upstream for requiring to stop forwarding multicast data. Join information and prune information are encapsulated in Join/Prune messages. The PIM device periodically sends Join/Prune messages to an upstream device to update the forwarding state. When the upstream device receives a Join/Prune message, it starts a timer and sets the timer value to the holdtime of the Join/Prune message. If the device does not receive any Join/Prune message when the timer expires, it acts as follows:
- If the previously received Join/Prune message is sent by a host to join a multicast group, the device stops sending multicast data to the downstream interface of the multicast group.
- If the previously received Join/Prune message is sent to prune the downstream interface of a multicast group, the device starts to send multicast data packets to the downstream interface.
Therefore, the interval for sending Join/Prune messages must be smaller than the holdtime of a Join/Prune message.
The interval for sending Join/Prune messages and the holdtime of Join/Prune messages can be set globally or on an interface. If you configure the two parameters in the global PIM view and in the interface view simultaneously, the configuration in the interface view takes effect.
Adjusting the Information Carrying Capacity of Join/Prune Messages
Context
You can configure the maximum size of each Join/Prune message, maximum number of entries in a Join/Prune message, and Join/Prune message transmission method on the router to adjust prune information sent to upstream interfaces.
- If a PIM neighbor has a low performance and spends a long time to process each Join/Prune message, set a smaller size for each Join/Prune message on the router to reduce the number of (S, G) entries carried in Join/Prune messages. This mitigates the pressure on the PIM neighbor.
- If the throughput of Join/Prune messages on the PIM neighbor is low, the neighbor may fail to process Join/Prune messages in a timely manner, causing route flapping. To prevent this problem, set a smaller queue size for periodically sending Join/Prune messages to reduce the number of (S, G) entries carried in Join/Prune message sent to the PIM neighbor every second. Then the router sends Join/Prune messages in many batches to the PIM neighbor, with a few Join/Prune messages in each batch.
- By default, Join/Prune messages are transmitted to upstream neighbors in a package to improve the transmission efficiency. You can disable the package function as required.
Procedure
- Run system-view
The system view is displayed.
- Run pim [ vpn-instance vpn-instance-name ]
The PIM view is displayed.
- Run join-prune max-packet-length packet-length
The maximum size of each PIM-SM Join/Prune message to be sent is configured.
- Run join-prune periodic-messages queue-size queue-size
The maximum number of entries in PIM-SM Join/Prune messages sent in a second is configured.
- Run join-prune triggered-message-cache disable
The function to package Join/Prune messages in real time is disabled.
Adjusting Control Parameters for Prune Delay
Context
LAN-delay specifies the delay from the time a device receives a Prune message from a downstream interface to the time it sends the Prune message to an upstream interface. A PIM device does not prune the corresponding downstream interface immediately after it sends the Prune message. If another device still requests multicast data, it needs to send a Join message to the upstream device within this period. The period for overriding the Prune message is called override-interval. The delay from the time a PIM device receives a Prune message to the time it performs the prune action is the sum of the LAN-delay and override-interval.
The LAN-delay and override-interval can be configured globally or on an interface. If you configure the lan-delay and override-interval in the global PIM view and in the interface view simultaneously, the configuration in the interface view takes effect.
Configuring a Join Information Filtering Policy
Context
To prevent access of unauthorized users, configure a join information filtering policy to specify a valid source address range for join information contained in Join/Prune messages.
Procedure
- Run system-view
The system view is displayed.
- Run interface interface-type interface-number
The interface view is displayed.
- Run pim join-policy { asm { basic-acl-number | acl-name acl-name } | ssm { advanced-acl-number | acl-name acl-name } | advanced-acl-number | acl-name acl-name }
A Join information filtering policy is configured and a valid source address range is specified.
Verifying the Configuration of Control Parameters for Join/Prune Messages
Prerequisites
After control parameters for Join/Prune messages are configured, you can check information about the PIM interface, statistics about PIM control messages, and PIM routing table.
Procedure
- Run the display pim [ vpn-instance vpn-instance-name | all-instance ] interface [ interface-type interface-number | up | down ] [ verbose ] command to check PIM information on an interface.
- Run the following commands to check the number of sent
or received PIM control messages.
display pim [ vpn-instance vpn-instance-name | all-instance ] control-message counters message-type { probe | register | register-stop | crp }
display pim [ vpn-instance vpn-instance-name | all-instance ] control-message counters [ message-type { assert | graft | graft-ack | hello | join-prune | state-refresh | bsr } | interface interface-type interface-number ] *
- Run the following commands to check the PIM routing table.
display pim [ vpn-instance vpn-instance-name | all-instance ] routing-table [ group-address [ mask { group-mask-length | group-mask } ] | source-address [ mask { source-mask-length | source-mask } ] | incoming-interface { interface-type interface-number | register } | outgoing-interface { include | exclude | match } { interface-type interface-number | register | none } | mode { dm | sm | ssm } | flags flag-value | fsm ] * [ outgoing-interface-number [ number ] ]
display pim [ vpn-instance vpn-instance-name | all-instance ] routing-table brief [ group-address [ mask { group-mask-length | group-mask } ] | source-address [ mask { source-mask-length | source-mask } ] | incoming-interface { interface-type interface-number | register } ] *