- Table of Contents
-
- 07-IP Multicast Configuration Guide
- 00-Preface
- 01-Multicast Overview
- 02-IGMP Snooping Configuration
- 03-PIM Snooping Configuration
- 04-Multicast VLAN Configuration
- 05-Multicast Routing and Forwarding Configuration
- 06-IGMP Configuration
- 07-PIM Configuration
- 08-MSDP Configuration
- 09-MBGP Configuration
- 10-Multicast VPN Configuration
- 11-MLD Snooping Configuration
- 12-IPv6 PIM Snooping Configuration
- 13-IPv6 Multicast VLAN Configuration
- 14-IPv6 Multicast Routing and Forwarding Configuration
- 15-MLD Configuration
- 16-IPv6 PIM Configuration
- 17-IPv6 MBGP Configuration
- Related Documents
-
Title | Size | Download |
---|---|---|
14-IPv6 Multicast Routing and Forwarding Configuration | 138.09 KB |
Contents
Configuring IPv6 multicast routing and forwarding
IPv6 multicast routing and forwarding overview
Enabling IPv6 multicast routing
Configuring IPv6 multicast routing and forwarding
Configuring an IPv6 multicast routing policy
Configuring an IPv6 multicast forwarding range
Configuring the IPv6 multicast forwarding table size
Configuring RPF check failure processing
Displaying and maintaining IPv6 multicast routing and forwarding
Troubleshooting IPv6 multicast policy configuration
Abnormal termination of IPv6 multicast data
IPv6 multicast routing and forwarding overview
In IPv6 multicast implementations, multicast routing and forwarding are implemented by three types of tables:
· Each IPv6 multicast routing protocol has its own multicast routing table, such as IPv6 PIM routing table.
· The multicast routing information of different IPv6 multicast routing protocols forms a general IPv6 multicast routing table.
· The IPv6 multicast forwarding table is directly used to control the forwarding of IPv6 multicast packets. This is the table that guides IPv6 multicast forwarding.
An IPv6 multicast forwarding table consists of a set of (S, G) entries, each indicating the routing information for delivering multicast data from a multicast source to a multicast group. If a router supports multiple IPv6 multicast protocols, its IPv6 multicast routing table will include routes generated by these protocols. The router chooses the optimal route from the IPv6 multicast routing table based on the configured multicast routing and forwarding policy and installs the route entry into its IPv6 multicast forwarding table.
RPF check mechanism
An IPv6 multicast routing protocol relies on the existing IPv6 unicast routing information or IPv6 MBGP routes in creating IPv6 multicast routing entries. When creating IPv6 multicast routing table entries, an IPv6 multicast routing protocol uses the reverse path forwarding (RPF) to ensure IPv6 multicast data delivery along the correct path. In addition, the RPF check mechanism also helps avoid data loops caused by various reasons.
RPF check
The basis for an RPF check is an IPv6 unicast route or an IPv6 MBGP route:
· An IPv6 unicast routing table contains the shortest path to each destination subnet.
· An IPv6 MBGP routing table contains IPv6 multicast routing information.
When performing an RPF check, a router searches its IPv6 unicast routing table and IPv6 MBGP routing table at the same time. The specific process is as follows:
1. The router first chooses an optimal route from the IPv6 unicast routing table and the IPv6 MBGP routing table:
¡ The router automatically chooses an optimal unicast route by searching its IPv6 unicast routing table, using the IPv6 address of the “packet source” as the destination address. The outgoing interface in the corresponding routing entry is the RPF interface and the next hop is the RPF neighbor. The router considers the path along which the packet from the RPF neighbor arrived on the RPF interface to be the shortest path that leads back to the source.
¡ The router automatically chooses an optimal IPv6 MBGP route by searching its IPv6 MBGP routing table, using the IP address of the “packet source” as the destination address. The outgoing interface in the corresponding routing entry is the RPF interface and the next hop is the RPF neighbor.
2. Then, the router selects one from the two optimal routes as the RPF route. The selection process is as follows:
¡ If configured to use the longest match principle, the router selects the longest match route from the two. If these two routes have the same mask, the router selects the route with the highest priority. If the two routes have the same priority, the router selects the RPF route according to the sequence of IPv6 MBGP route and IPv6 unicast route.
¡ If not configured to use the longest match principle, the router selects the route with the highest priority. If the two routes have the same priority, the router selects the RPF route according to the sequence of IPv6 MBGP route and IPv6 unicast route.
|
NOTE: The above-mentioned “packet source” can mean different things in different situations: · For a packet traveling along the shortest path tree (SPT) from the multicast source to the receiver hosts or the source-based tree from the multicast source to the rendezvous point (RP), “packet source” means the multicast source. · For a packet traveling along the rendezvous point tree (RPT) from the RP to the receivers, or along the source-side RPT from the multicast source to the RP, “packet source” means the RP. · For a bootstrap message from the bootstrap router (BSR), “packet source” means the BSR. For more information about the concepts of SPT, RPT, source-side RPT, RP, and BSR, see the chapter “Configuring IPv6 PIM.” |
Implementation of RPF check in IPv6 multicast forwarding
Implementing an RPF check on each received IPv6 multicast data packet would bring a big burden to the router. The use of an IPv6 multicast forwarding table is the solution to this issue. When creating an IPv6 multicast routing entry and an IPv6 multicast forwarding entry for an IPv6 multicast packet, the router sets the RPF interface of the packet as the incoming interface of the (S, G) entry. Upon receiving an (S, G) IPv6 multicast packet, the router first searches its IPv6 multicast forwarding table:
1. If no corresponding (S, G) entry exists in the multicast forwarding table, the packet undergoes an RPF check. The router creates an (S, G) entry based on the relevant routing information and using the RPF interface as the incoming interface, and adds the entry into the IPv6 multicast forwarding table.
¡ If the interface that received the packet is the RPF interface, the RPF check is successful and the router forwards the packet to all the outgoing interfaces.
¡ If the interface that received the packet is not the RPF interface, the RPF check fails and the router discards the packet.
2. If the corresponding (S, G) entry exists, and the interface that received the packet is the incoming interface in the IPv6 multicast forwarding table, the router forwards the packet to all the outgoing interfaces.
3. If the corresponding (S, G) entry exists, but the interface that received the packet is not the incoming interface in the IPv6 multicast forwarding table, the packet is subject to an RPF check.
¡ If the result of the RPF check shows that the RPF interface is the incoming interface of the existing (S, G) entry, this means that the (S, G) entry is correct but the packet arrived from a wrong path and is to be discarded.
¡ If the result of the RPF check shows that the RPF interface is not the incoming interface of the existing (S, G) entry, this means that the (S, G) entry is no longer valid. The router replaces the incoming interface of the (S, G) entry with the interface that received the packet and forwards the packet to all the outgoing interfaces.
|
CAUTION: You can configure special processing of packets that have failed an RPF check instead of simply dropping them. For more information, see “Configuring RPF check failure processing.” |
Assume that IPv6 unicast routes are available in the network, IPv6 MBGP is not enabled, as shown in Figure 1. IPv6 multicast packets travel along the SPT from the multicast source to the receiver hosts. The IPv6 multicast forwarding table on Router C contains the (S, G) entry, with POS 2/1/2 as the RPF interface.
· When a multicast packet arrives on POS 2/1/2 of Router C, as the interface is the incoming interface of the (S, G) entry, the router forwards the packet to all outgoing interfaces.
· When a multicast packet arrives on POS 2/1/1 of Router C, as the interface is not the incoming interface of the (S, G) entry, the router performs an RPF check on the packet: The router searches its IPv6 unicast routing table and finds that the outgoing interface to Source (the RPF interface) is POS 2/1/2. This means the (S, G) entry is correct and packet arrived along a wrong path. The RPF check fails and the packet is discarded.
Configuration task list
Complete these tasks to configure IPv6 multicast routing and forwarding:
Task |
Remarks |
|
Required |
||
Optional |
||
Optional |
||
Optional |
||
Optional |
Enabling IPv6 multicast routing
Before configuring any Layer 3 IPv6 multicast functionality, you must enable IPv6 multicast routing.
To enable IPv6 multicast routing:
Step |
Command |
Remarks |
1. Enter system view. |
system-view |
N/A |
2. Enable IPv6 multicast routing. |
multicast ipv6 routing-enable |
Disabled by default |
Configuring IPv6 multicast routing and forwarding
Configuration prerequisites
Before configuring IPv6 multicast routing and forwarding, complete the following tasks:
· Enable IPv6 forwarding and configure an IPv6 unicast routing protocol so that all devices in the domain are interoperable at the network layer.
· Configure IPv6 PIM-DM or IPv6 PIM-SM.
· Determine the maximum number of downstream nodes for a single route IPv6 multicast forwarding table entry.
· Determine the maximum number of routing entries in the IPv6 multicast forwarding table.
Configuring an IPv6 multicast routing policy
You can configure the router to select an RPF route based on the longest match principle. For more information about RPF route selection, see “RPF check.”
By configuring per-source or per-source-and-group load splitting, you can optimize the IPv6 traffic delivery when multiple IPv6 data flows are handled.
To configure an IPv6 multicast routing policy:
Step |
Command |
Remarks |
1. Enter system view. |
system-view |
N/A |
2. Configure the device to select an RPF route based on the longest match. |
multicast ipv6 longest-match |
Optional. The route with the highest priority is selected as the RPF route by default. |
3. Configure IPv6 multicast load splitting. |
multicast ipv6 load-splitting {source | source-group } |
Optional. Disabled by default. |
Configuring an IPv6 multicast forwarding range
IPv6 multicast packets do not travel infinitely in a network. The IPv6 multicast data of each IPv6 multicast group must be transmitted within a definite scope. Presently, you can define an IPv6 multicast forwarding range by specifying boundary interfaces, which form a closed IPv6 multicast forwarding area.
You can configure the forwarding boundary for a specific IPv6 multicast group or an IPv6 multicast group with the scope field in its group address being specified on all interfaces that support IPv6 multicast forwarding. A multicast forwarding boundary sets the boundary condition for the IPv6 multicast groups in the specified range or scope. If the destination address of an IPv6 multicast packet matches the set boundary condition, the packet will not be forwarded. Once an IPv6 multicast boundary is configured on an interface, this interface can no longer forward IPv6 multicast packets (including those sent from the local device) or receive IPv6 multicast packets.
To configure an IPv6 multicast forwarding range:
Step |
Command |
Remarks |
1. Enter system view. |
system-view |
N/A |
2. Enter interface view. |
interface interface-type interface-number |
N/A |
3. Configure an IPv6 multicast forwarding boundary. |
multicast ipv6 boundary { ipv6-group-address prefix-length | scope { scope-id | admin-local | global | organization-local | site-local } } |
No forwarding boundary by default |
Configuring the IPv6 multicast forwarding table size
The router maintains the corresponding IPv6 forwarding entries for each IPv6 multicast data packet it receives. Excessive IPv6 multicast routing entries, however, can exhaust the router’s memory and thus result in lower router performance. Therefore, the number of IPv6 multicast routing entries should be limited. You can set a limit on the number of entries in the IPv6 multicast routing table based on the actual networking situation and the performance requirements.
If the configured maximum number of multicast forwarding entries is smaller than the current number, the forwarding entries in excess will not be deleted immediately; instead they will be deleted by the IPv6 multicast routing protocol. The router will no longer add new multicast forwarding entries until the number of existing multicast forwarding entries comes down below the configured value.
When forwarding multicast traffic, the router replicates a copy of the IPv6 multicast traffic for each downstream node and forwards the traffic, and thus each of these downstream nodes forms a branch of the IPv6 multicast distribution tree. You can configure the maximum number of downstream nodes (namely, the maximum number of outgoing interfaces) for a single entry in the IPv6 multicast forwarding table to lessen burden on the router for replicating IPv6 multicast traffic. If the configured maximum number of downstream nodes for a single IPv6 multicast forwarding entry is smaller than the current number, the downstream nodes in excess will not be deleted immediately; instead they will be deleted by the multicast routing protocol. The router will no longer add new multicast forwarding entries for newly added downstream nodes until the number of existing downstream nodes comes down below the configured value.
To configure the IPv6 multicast forwarding table size:
Step |
Command |
Remarks |
1. Enter system view. |
system-view |
N/A |
2. Configure the maximum number of entries in the IPv6 multicast forwarding table. |
multicast ipv6 forwarding-table route-limit limit |
Optional 1024 by default |
3. Configure the maximum number of downstream nodes for a single entry in the IPv6 multicast forwarding table. |
multicast ipv6 forwarding-table downstream-limit limit |
Optional 128 by default |
Configuring RPF check failure processing
In practice, an IPv6 multicast data packet that failed RPF check on a VLAN interface may be expected by some receivers in the VLAN. You can enable forwarding such multicast packets through multicast or broadcast in the VLAN so that the receivers can receive them.
With this feature enabled, the router searches its multicast forwarding table upon receiving an IPv6 multicast data packet that failed RPF check. If a match is found, it multicasts the packet according to the matching entry. Otherwise, the router broadcasts the packet in the VLAN.
To enable this feature, you must enable the IPv6 multicast programs-on-demand function.
Enabling forwarding the IPv6 multicast packet in the VLAN
In practice, an IPv6 multicast packet that failed an RPF check on a VLAN interface may be expected by some receivers in the VLAN. You can enable forwarding multicast packets in the VLAN after RPF failure so that such receivers can receive them.
To enable forwarding IPv6 multicast packets that failed an RPF check in the VLAN:
Step |
Command |
Remarks |
1. Enter system view. |
system-view |
N/A |
2. Enable forwarding IPv6 multicast packets that failed an RPF check in the native VLAN. |
multicast ipv6 rpf-fail-pkt bridging |
Disabled by default |
3. Enter VLAN view. |
vlan vlan-id |
N/A |
4. Enable the IPv6 multicast programs-on-demand function in the VLAN. |
multicast ipv6 forwarding on-demand |
Disabled by default |
|
CAUTION: · After the configuration, use the reset multicast ipv6 forwarding-table command to clear all the forwarding entries in the IPv6 multicast forwarding table. Otherwise this configuration cannot take effect. · If the VLAN enabled with the multicast programs-on-demand function is an IPv6 multicast VLAN, use the reset mld-snooping group command to clear all the MLD Snooping multicast group information in the VLAN. Otherwise this configuration cannot take effect. For more information about the reset mld-snooping group command, see IP Multicast Command Reference. · If the VLAN enabled with the multicast programs-on-demand function is not an IPv6 multicast VLAN and a Layer 3 IPv6 multicast routing protocol (such as MLD or IPv6 PIM) has been configured on the corresponding VLAN interface, you need to use the reset mld group port-info command to clear Layer 2 port information for all MLD multicast groups in the VLAN and use the reset mld group command clear all MLD multicast group information on the corresponding VLAN interface. Otherwise this configuration cannot take effect. For more information about the reset mld group port-info and reset mld group commands, see IP Multicast Command Reference. · If the VLAN enabled with the multicast programs-on-demand function is not an IPv6 multicast VLAN but has MLD Snooping enable, this configuration cannot take effect. |
|
NOTE: Configurations performed in system view are effective to all VLANs. |
Enabling sending packets that have failed an RPF check to the CPU
In the following two cases, an IPv6 multicast packet that failed the RPF check must be passed to the CPU:
· When an IPv6 multicast packet arrives on an outgoing interface of the corresponding IPv6 multicast forwarding entry, the packet will fail the RPF check and needs to be sent to the CPU in order to trigger the assert mechanism to prune the unwanted branch.
· If the SPT and RPT have different incoming interfaces on the receiver-side DR (the designated router), the IPv6 multicast traffic will fail the RPF check on the SPT incoming interface during an RPT-to-SPT switchover before the RPF information is refreshed. If the RPT is pruned at this moment, the multicast service will be instantaneously interrupted. By passing IPv6 packets that failed the RPF check on a non-outgoing interface to the CPU, the router can determine whether the packets that have failed the RPF check on the SPT interface are expected. If they are, the router initiates an RPT prune.
For more information about the assert mechanism and RPT-to-SPT switchover, see the chapter “Configuring IPv6 PIM.”
To enable passing packets that failed the RPF check to the CPU:
Step |
Command |
Remarks |
1. Enter system view. |
system-view |
N/A |
2. Enable sending packets that have failed an RPF check to the CPU. |
multicast ipv6 rpf-fail-pkt trap-to-cpu |
Disabled by default |
|
CAUTION: After the configuration, you must use the reset multicast ipv6 forwarding-table command to clear all the forwarding entries in the IPv6 multicast forwarding table; otherwise this configuration cannot take effect. |
Displaying and maintaining IPv6 multicast routing and forwarding
Task |
Command |
Remarks |
Display the IPv6 multicast boundary information. |
display multicast ipv6 boundary { group [ ipv6-group-address [ prefix-length ] ] | scope [ scope-id ] } [ interface interface-type interface-number ] [ | { begin | exclude | include } regular-expression ] |
Available in any view |
Display the information of the IPv6 multicast forwarding table. |
display multicast ipv6 forwarding-table [ ipv6-source-address [ prefix-length ] | ipv6-group-address [ prefix-length ] | incoming-interface { interface-type interface-number | register } | outgoing-interface { { exclude | include | match } { interface-type interface-number | register } } | statistics | slot slot-number ] * [ port-info ] [ | { begin | exclude | include } regular-expression ] |
Available in any view |
Display the DF information of the IPv6 multicast forwarding table. |
display multicast ipv6 forwarding-table df-info [ rp-address ] [ slot slot-number ] [ | { begin | exclude | include } regular-expression ] |
Available in any view |
Display the information of the IPv6 multicast routing table. |
display multicast ipv6 routing-table [ ipv6-source-address [ prefix-length ] | ipv6-group-address [ prefix-length ] | incoming-interface { interface-type interface-number | register } | outgoing-interface { { exclude | include | match } { interface-type interface-number | register } } ] * [ | { begin | exclude | include } regular-expression ] |
Available in any view |
Display the RPF route information of the specified IPv6 multicast source. |
display multicast ipv6 rpf-info ipv6-source-address [ ipv6-group-address ] [ | { begin | exclude | include } regular-expression ] |
Available in any view |
Clear forwarding entries from the IPv6 multicast forwarding table. |
reset multicast ipv6 forwarding-table { { ipv6-source-address [ prefix-length ] | ipv6-group-address [ prefix-length ] | incoming-interface { interface-type interface-number | register } } * | all } |
Available in user view |
Clear routing entries from the IPv6 multicast routing table. |
reset multicast ipv6 routing-table { { ipv6-source-address [ prefix-length ] | ipv6-group-address [ prefix-length ] | incoming-interface { interface-type interface-number | register } } * | all } |
Available in user view |
|
NOTE: For more information about designated forwarder (DF), see the chapter “Configuring IPv6 PIM.” |
CAUTION: · The reset command clears the information in the IPv6 multicast routing table or the multicast forwarding table, and thus may cause transmission failure of IPv6 multicast information. · When a routing entry is deleted from the IPv6 multicast routing table, the corresponding forwarding entry will also be deleted from the IPv6 multicast forwarding table. · When a forwarding entry is deleted from the IPv6 multicast forwarding table, the corresponding routing entry will also be deleted from the IPv6 multicast routing table. |
Troubleshooting IPv6 multicast policy configuration
Abnormal termination of IPv6 multicast data
Symptom
· A host sends an MLD report announcing its joining an IPv6 multicast group (G). However, no member information about the IPv6 multicast group (G) on the immediate router exists on the intermediate router. The intermediate router can receive IPv6 multicast packets successfully, but the packets cannot reach the stub network.
· The interface of the intermediate router receives the IPv6 multicast packets, but no corresponding (S, G) entry exists in the IPv6 PIM routing table.
Analysis
· The multicast ipv6 boundary command is filters IPv6 multicast packets received on an interface. If an IPv6 multicast packet fails to match the IPv6 ACL rule of this command, IPv6 PIM creates no routing entry.
· In addition, the source-policy command in IPv6 PIM is filters received IPv6 multicast packets. If an IPv6 multicast packet fails to match the IPv6 ACL rule of this command, IPv6 PIM does not create a routing entry.
Solution
1. Use the display current-configuration command to display the IPv6 ACL rule configured on the multicast forwarding boundary. Change the IPv6 ACL rule used in the multicast ipv6 boundary command so that the source address of the IPv6 multicast packets and the IPv6 multicast group address can both match the IPv6 ACL rule.
2. Use the display current-configuration command to verify the configuration of the IPv6 multicast filter, and change the IPv6 ACL rule used in the source-policy command so that the source address of the IPv6 multicast packets and the IPv6 multicast group address can both match the IPv6 ACL rule.