Examples: Configuring the Multicast Forwarding Cache
Understanding the Multicast Forwarding Cache
IP multicast protocols can create numerous entries in the multicast forwarding cache. If the forwarding cache fills up with entries that prevent the addition of higher-priority entries, applications and protocols might not function properly. You can manage the multicast forwarding cache properties by limiting the size of the cache and by controlling the length of time that entries remain in the cache. By managing timeout values, you can give preference to more important forwarding cache entries while removing other less important entries.
Example: Configuring the Multicast Forwarding Cache
When a routing device receives multicast traffic, it places the (S,G) route information in the multicast forwarding cache, inet.1. This example shows how to configure multicast forwarding cache limits to prevent the cache from filling up with entries.
Requirements
Before you begin:
- Configure the router interfaces. See the Junos® OS Network Interfaces.
- Configure an interior gateway protocol. See the Junos OS Routing Protocols Configuration Guide.
- Configure a multicast protocol. This feature works with
the following multicast protocols:
- DVMRP
- PIM-DM
- PIM-SM
- PIM-SSM
Overview
This example includes the following statements:
- forwarding-cache—Specifies how forwarding entries are aged out and how the number of entries is controlled.
- timeout—Specifies an idle period after which entries are aged out and removed from inet.1. You can specify a timeout in the range from 1 through 720 minutes.
- threshold—Enables you to specify threshold
values on the forwarding cache to suppress (suspend) entries from
being added when the cache entries reach a certain maximum and begin
adding entries to the cache when the number falls to another threshold
value. By default, no threshold values are enabled on the routing
device.
The suppress threshold suspends the addition of new multicast forwarding cache entries. If you do not specify a suppress value, multicast forwarding cache entries are created as necessary. If you specify a suppress threshold, you can optionally specify a reuse threshold, which sets the point at which the device resumes adding new multicast forwarding cache entries. During suspension, forwarding cache entries time out. After a certain number of entries time out, the reuse threshold is reached, and new entries are added. The range for both thresholds is from 1 through 200,000. If configured, the reuse value must be less than the suppression value. If you do not specify a reuse value, the number of multicast forwarding cache entries is limited to the suppression value. A new entry is created as soon as the number of multicast forwarding cache entries falls below the suppression value.
Beginning with Junos OS 12.2, you can optionally configure a warning threshold so the device can log warning messages in the system log when a certain number of entries have been added to the cache. It is helpful to review the system log messages for troubleshooting purposes and to detect if an excessive amount of entries are filling up the cache. When the number of entries exceeds the configured warning threshold, but remains below the suppress threshold, traffic continues to be accepted, and the device logs warning messages in the system log.
The warning threshold is a percentage of the suppress threshold, so you must configure the suppress threshold to configure the warning threshold. The range for the warning threshold is 1 through 100 percent. In this example, you set a warning threshold of 40 percent. With a configured suppress value of 150,000, and a warning threshold of 40 percent, the device logs a warning message in the system log after it receives 60,000 entries.
Configuration
CLI Quick Configuration
To quickly configure this example, copy the following commands, paste them into a text file, remove any line breaks, change any details necessary to match your network configuration, and then copy and paste the commands into the CLI at the [edit] hierarchy level.
Step-by-Step Procedure
The following example requires you to navigate various levels in the configuration hierarchy. For information about navigating the CLI, see Using the CLI Editor in Configuration Mode in the CLI User Guide.
To configure the multicast forwarding cache:
Configure the maximum size of the forwarding cache.
[edit routing-options multicast forwarding-cache]user@host# set threshold suppress 150000Configure the amount of time (in minutes) entries can remain idle before being removed.
[edit routing-options multicast forwarding-cache]user@host# set timeout 60Configure the size of the forwarding cache when suppression stops and new entries can be added.
[edit routing-options multicast forwarding-cache]user@host# set threshold reuse 70000- (Optional) Configure when warning messages are logged
in the system log.[edit routing-options multicast forwarding-cache]user@host# set threshold log-warning 40
- If you are done configuring the device, commit the configuration.[edit routing-options multicast forwarding-cache]user@host# commit
Results
Confirm your configuration by entering the show routing-options command.
Verification
Confirm that the configuration is working properly.
- Displaying Entries in the IP Multicast Forwarding Table
- Verifying the IP Multicast Forwarding Cache Configuration
Displaying Entries in the IP Multicast Forwarding Table
Purpose
Verify that entries are in the IP multicast forwarding table and that the configured timeout value is displayed.
Action
From operational mode, enter the show multicast route extensive command.
user@host> show multicast route extensive
Family: INET Group: 232.0.0.1 Source: 11.11.11.11/32 Upstream interface: fe-0/2/0.200 Downstream interface list: fe-0/2/1.210 Downstream interface list rejected by CAC: fe-0/2/1.220 Session description: Source specific multicast Statistics: 0 kBps, 0 pps, 0 packets Next-hop ID: 337 Upstream protocol: PIM Route state: Active Forwarding state: Forwarding Cache lifetime/timeout: 60 minutes Wrong incoming interface notifications: 0
Verifying the IP Multicast Forwarding Cache Configuration
Purpose
Verify that the suppress threshold, reuse value, and warning threshold have been configured correctly.
Action
From operation mode, enter the show multicast forwarding-cache statistics command.
user@host> show multicast forwarding-cache statistics
Instance: master Family: INET Suppress Threshold 150000 Reuse Value 70000 Warning Threshold 40 Currently Used Entries 17
Example: Configuring a Multicast Flow Map
This example shows how to configure a flow map to prevent certain forwarding cache entries from aging out, thus allowing for faster failover from one source to another. Flow maps enable you to configure bandwidth variables and multicast forwarding cache timeout values for entries defined by the flow map policy.
Requirements
Before you begin:
- Configure the router interfaces. See the Junos® OS Network Interfaces.
- Configure an interior gateway protocol. See the Junos OS Routing Protocols Configuration Guide.
- Configure a multicast protocol. This feature works with
the following multicast protocols:
- DVMRP
- PIM-DM
- PIM-SM
- PIM-SSM
Overview
Flow maps are typically used for fast multicast source failover when there are multiple sources for the same group. For example, when one video source is actively sending the traffic, the forwarding states for other video sources are timed out after a few minutes. Later, when a new source starts sending the traffic again, it takes time to install a new forwarding state for the new source if the forwarding state is not already there. This switchover delay is worsened when there are many video streams. Using flow maps with longer timeout values or permanent cache entries helps reduce this switchover delay.
![]() | Note: The permanent forwarding state must exist on all routing devices in the path for fast source switchover to function properly. |
This example includes the following statements:
- bandwidth—Specifies the bandwidth for each
flow that is defined by a flow map to ensure that an interface is
not oversubscribed for multicast traffic. If adding one more flow
would cause overall bandwidth to exceed the allowed bandwidth for
the interface, the request is rejected. A rejected request means that
traffic might not be delivered out of some or all of the expected
outgoing interfaces. You can define the bandwidth associated with
multicast flows that match a flow map by specifying a bandwidth in
bits per second or by specifying that the bandwidth is measured and
adaptively modified.
When you use the adaptive option, the bandwidth adjusts based on measurements made at 5-second intervals. The flow uses the maximum bandwidth value from the last 12 measured values (1 minute).
When you configure a bandwidth value with the adaptive option, the bandwidth value acts as the starting bandwidth for the flow. The bandwidth then changes based on subsequent measured bandwidth values. If you do not specify a bandwidth value with the adaptive option, the starting bandwidth defaults to 2 megabits per second (Mbps).
For example, the bandwidth 2m adaptive statement is equivalent to the bandwidth adaptive statement because they both use the same starting bandwidth (2 Mbps, the default). If the actual flow bandwidth is 4 Mbps, the measured flow bandwidth changes to 4 Mbps after reaching the first measuring point (5 seconds). However, if the actual flow bandwidth rate is 1 Mbps, the measured flow bandwidth remains at 2 Mbps for the first 12 measurement cycles (1 minute) and then changes to the measured 1 Mbps value.
- flow-map—Defines a flow map that controls the forwarding cache timeout of specified source and group addresses, controls the bandwidth for each flow, and specifies redundant sources. If a flow can match multiple flow maps, the first flow map applies.
- forwarding-cache—Enables you to configure the forwarding cache properties of entries defined by a flow map. You can specify a timeout of never to make the forwarding entries permanent, or you can specify a timeout in the range from 1 through 720 minutes. If you set the value to never, you can specify the non-discard-entry-only option to make an exception for entries that are in the pruned state. In other words, the never non-discard-entry-only statement allows entries in the pruned state to time out, while entries in the forwarding state never time out.
- policy—Specifies source and group addresses
to which the flow map applies. This example creates a flow map policy
called policyForFlow1. The policy matches the source address
using the source-address-filter statement and matches the
group address using the prefix-list-filter statement.
Note: The addresses must match the configured policy for flow mapping to occur.
- redundant-sources—Specify redundant (backup)
sources for flows identified by a flow map.
Outbound interfaces that are admitted for one of the forwarding entries are automatically admitted for any other entries identified by the redundant source configuration.
In this example, forwarding entries (10.11.11.11, g1) and (10.11.11.12, g1) match the flow map flowMap1. In this case, if a particular outbound interface is admitted for entry (10.11.11.11, g1), it is automatically admitted for entry (10.11.11.12, g1), even if there is no longer enough remaining bandwidth available after creating entry (10.11.11.11, g1). The interface is added because only one of the two sources can send traffic at any time.
Configuration
CLI Quick Configuration
To quickly configure this example, copy the following commands, paste them into a text file, remove any line breaks, change any details necessary to match your network configuration, and then copy and paste the commands into the CLI at the [edit] hierarchy level.
Step-by-Step Procedure
The following example requires you to navigate various levels in the configuration hierarchy. For information about navigating the CLI, see Using the CLI Editor in Configuration Mode in the CLI User Guide.
To configure a flow map:
Configure the flow map policy.
[edit policy-options]user@host# set prefix-list permanentEntries1 232.1.1.0/24user@host# set policy policyForFlow1 from source-address-filter 11.11.11.11/32 exactuser@host# set policy policyForFlow1 from prefix-list-filter permanentEntries1 orlongeruser@host# set policy policyForFlow1 then acceptApply the flow map policy.
[edit routing-options]user@host# set multicast flow-map flowMap1 policy policyForFlow1Configure permanent forwarding entries (that is, entries that never time out), and enable entries in the pruned state to time out.
[edit routing-options]user@host# set multicast flow-map flowMap1 forwarding-cache timeout never non-discard-entry-onlyConfigure the flow map bandwidth to be adaptive with a default starting bandwidth of 2 Mbps.
[edit routing-options]user@host# set multicast flow-map flowMap1 bandwidth 2m adaptiveSpecify backup sources.
[edit routing-options]user@host# set multicast flow-map flowMap1 redundant-sources [ 10.11.11.11 10.11.11.12 ]If you are done configuring the device, commit the configuration.
user@host# commit
Results
Confirm your configuration by entering the show policy-options and show routing-options commands.
Verification
To verify the configuration, run the following commands: