- Table of Contents
-
- 08-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 | 132.76 KB |
Contents
Configuring IPv6 multicast routing and forwarding··················································································································· 1
Overview······················································································································································································ 1
RPF check mechanism······················································································································································ 1
RPF check implementation in IPv6 multicast··············································································································· 2
Configuration task list································································································································································ 3
Enabling IPv6 multicast routing·············································································································································· 4
Configuring IPv6 multicast routing and forwarding········································································································· 4
Configuring an IPv6 multicast routing policy············································································································ 4
Configuring an IPv6 multicast forwarding range···································································································· 5
Configuring the IPv6 multicast forwarding table size····························································································· 5
Configuring IPv6 static multicast MAC address entries·························································································· 6
Configuring RPF check failure processing·················································································································· 7
Displaying and maintaining IPv6 multicast routing and forwarding··········································································· 8
Troubleshooting IPv6 multicast routing and forwarding······························································································· 10
Abnormal termination of IPv6 multicast data········································································································· 10
Overview
In IPv6 multicast implementations, multicast routing and forwarding are implemented by routing and forwarding tables:
· Each IPv6 multicast routing protocol has its own multicast routing table, such as the 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 helps guide 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 entry indicates 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 that these protocols have generated. 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.
The term "router" in this document refers to both routers and Layer 3 switches.
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) check mechanism to ensure IPv6 multicast data delivery along the correct path. The RPF check mechanism also helps avoid data loops caused by various reasons.
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 process is as follows:
1. The router chooses an optimal route from the IPv6 unicast routing table and IPv6 MBGP routing table.
¡ The router searches its IPv6 unicast routing table by using the IPv6 address of the packet source as the destination address and automatically selects the optimal route as the RPF route. 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 IPv6 multicast 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 MBGP routing table, and using the IPv6 address of the packet source as the source address. The outgoing interface in the corresponding routing entry is the RPF interface and the next hop is the RPF neighbor.
2. The router selects one of these optimal routes as the RPF route. The selection process is as follows:
¡ If configured to use the longest prefix match principle, the router selects the longest prefix match route from the two. If these routes have the same prefix length, the router selects the route with a higher priority. If these routes have the same priority, the router selects the IPv6 MBGP route as the RPF route.
¡ If not configured to use the longest prefix match principle, the router selects the route with a higher priority. If these routes have the same priority, the router selects the IPv6 MBGP route as the RPF route.
The term "packet source" means different things in different situations:
· For a packet that travels along the SPT from the multicast source to the receivers or the rendezvous point (RP), the packet source for RPF check is the multicast source.
· For a packet that travels along the RPT from the RP to the receivers, or along the source-side RPT from the multicast source to the RP, the packet source for RPF check is the RP.
· For a bootstrap message from the BSR, the packet source for RPF check is the BSR.
For more information about the concepts of SPT, RPT, source-side RPT, RP, and BSR, see "Configuring IPv6 PIM."
RPF check implementation in IPv6 multicast
Implementing an RPF check on each received IPv6 multicast data packet would heavily burden 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. After receiving an (S, G) IPv6 multicast packet, the router first searches its IPv6 multicast forwarding table:
1. If the corresponding (S, G) entry does not exist in the IPv6 multicast forwarding table, the packet undergoes an RPF check. The router creates an IPv6 multicast routing entry based on the relevant routing information and installs the entry into the IPv6 multicast forwarding table, with the RPF interface as the incoming interface.
¡ If the interface on which the packet arrived is the RPF interface, the RPF check succeeds and the router forwards the packet out of all the outgoing interfaces.
¡ If the interface on which the packet arrived 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 on which the packet actually arrived is the incoming interface, the router forwards the packet out of all the outgoing interfaces.
3. If the corresponding (S, G) entry exists, but the interface on which the packet actually arrived is not the incoming interface in the IPv6 multicast forwarding table, the IPv6 multicast packet undergoes an RPF check.
¡ If the RPF interface is the incoming interface of the (S, G) entry, it means that the (S, G) entry is correct but the packet arrived from a wrong path. The packet will be discarded.
¡ If the RPF interface is not the incoming interface, it means that the (S, G) entry has expired, and router replaces the incoming interface with the RPF interface. If the interface on which the packet arrived is the RPF interface, the router forwards the packet out of all the outgoing interfaces. Otherwise it discards the packet.
|
NOTE: The switch allows you to configure special processing of IPv6 multicast packets that have failed an RPF check instead of simply dropping them. For more information, see "Configuring RPF check failure processing." |
As shown in Figure 1, assume that IPv6 unicast routes are available in the network, IPv6 MBGP is not configured, and IPv6 multicast packets travel along the SPT from the multicast source to the receivers. The IPv6 multicast forwarding table on Device C contains the (S, G) entry, with VLAN-interface 100 as the RPF interface.
· When an IPv6 multicast packet arrives on VLAN-interface 100 of Device C, because the interface is the incoming interface of the (S, G) entry, the router forwards the packet out of all outgoing interfaces.
· When an IPv6 multicast packet arrives on VLAN-interface 101 of Device C, because 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 VLAN-interface 100. This means that the (S, G) entry is correct and the packet arrived along a wrong path. The RPF check fails and the packet is discarded.
Configuration task list
Task |
Remarks |
|
Required. |
||
Optional. |
||
Optional. |
||
Optional. |
||
Optional. |
||
Optional. |
Enabling IPv6 multicast routing
Before you configure 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
Before you configure 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 entry in the IPv6 multicast forwarding table.
· Determine the maximum number of entries in the IPv6 multicast forwarding table.
Configuring an IPv6 multicast routing policy
You can configure the router to determine the RPF route based on the longest match principle. For more information about RPF route selection, see "RPF check mechanism."
By configuring per-source or per-source-and-group load splitting, you can optimize the traffic delivery when multiple IPv6 multicast data streams 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 the 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. 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. 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) nor receive IPv6 multicast packets.
To configure an IPv6 multicast forwarding boundary:
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 forwarding entry for each IPv6 multicast packet that it receives. However, excessive IPv6 multicast routing entries can exhaust the router's memory and cause lower router performance.
You can set a limit on the number of entries in the IPv6 multicast forwarding table based on the actual networking situation and the performance requirements. If the configured maximum number of IPv6 multicast forwarding table entries is smaller than the current value, the entries in excess will not be immediately deleted. Instead, the IPv6 multicast routing protocol that running on the router will delete them. The router will no longer install new IPv6 multicast forwarding entries until the number of existing IPv6 multicast forwarding entries comes down under the configured value.
When forwarding IPv6 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 (the maximum number of outgoing interfaces) for a single entry in the IPv6 multicast forwarding table to lessen the 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, the IPv6 multicast routing protocol will delete them. The router will no longer create new IPv6 multicast forwarding entries for newly added downstream nodes until the number of existing downstream nodes decreases.
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. The default upper limit depends on the system working mode. For more information, see Fundamentals Configuration Guide. |
3. Configure the maximum number of downstream nodes for a single IPv6 multicast forwarding entry. |
multicast ipv6 forwarding-table downstream-limit limit |
Optional. 128 by default. |
Configuring IPv6 static multicast MAC address entries
In Layer-2 multicast, a Layer-2 IPv6 multicast protocol (such as MLD snooping) can dynamically add IPv6 multicast MAC address entries. Or, you can manually configure IPv6 multicast MAC address entries.
Configuration guidelines
· Any legal IPv6 multicast MAC address except 3333-xxxx-xxxx (where x represents a hexadecimal number from 0 to F) can be manually added to the MAC address table. IPv6 multicast MAC addresses are the MAC addresses in which the least significant bit of the most significant octet is 1.
· When you configure a static multicast MAC address entry in system view, the configuration takes effect on the specified interface. When you configure a static multicast MAC address entry in interface view or port group view, the configuration takes effect on only the current interface or interfaces in the current port group.
Configuration procedure
To configure an IPv6 static multicast MAC address entry in system view:
Step |
Command |
Remarks |
1. Enter system view. |
system-view |
N/A |
2. Configure a static multicast MAC address entry. |
mac-address multicast mac-address interface interface-list vlan vlan-id |
No static multicast MAC address entries exist by default. |
To configure an IPv6 static multicast MAC address entry in interface view:
Step |
Command |
Remarks |
1. Enter system view. |
system-view |
N/A |
2. Enter Ethernet interface/Layer 2 aggregate interface view or port group view. |
interface interface-type interface-number |
In Ethernet interface view or Layer 2 aggregate interface view, the configuration takes effect on only the current interface. In port group view, the configuration takes effect on all ports in the port group. |
3. Configure a static multicast MAC address entry. |
mac-address multicast mac-address vlan vlan-id |
No static multicast MAC address entries exist by default. |
Configuring RPF check failure processing
After an IPv6 multicast packet fails RPF check on a VLAN interface, it might need to be processed differently in different networking environments instead of being simply dropped. You can enable forwarding IPv6 multicast packets that failed RPF check in the VLAN or enable delivering them to the CPU.
Configuration guidelines
After you enable forwarding IPv6 multicast packets that failed RPF check in the VLAN:
· 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 enabled with MLD snooping, this configuration cannot take effect.
After you enable delivering packets that failed RPF check to the CPU, 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.
Forwarding the packets in the VLAN
In practice, an IPv6 multicast data packet that failed RPF check on a VLAN interface might be expected by some receivers in the VLAN. You can enable forwarding such multicast packets through multicast or flooding in the VLAN so that the receivers can receive them.
With this feature enabled, the router searches its multicast forwarding table after receiving an IPv6 multicast data packet that failed RPF check. If a match is found, the router multicasts the packet according to the matching entry. Otherwise, the router floods the packet in the VLAN.
To enable this feature, you also need to enable the IPv6 multicast programs-on-demand function.
To enable forwarding multicast packets in case of RPF check failure:
Step |
Command |
Remarks |
1. Enter system view. |
system-view |
N/A |
2. Enable forwarding multicast packets in case of RPF check failure on VLAN interfaces. |
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. |
Delivering the packet to the CPU
In the following two cases, an IPv6 multicast packet that failed RPF check needs to be delivered to the CPU:
· If an IPv6 multicast packet arrives on an outgoing interface of the corresponding IPv6 multicast forwarding entry, the packet will fail 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 last-hop router), the IPv6 multicast traffic will fail 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 delivering IPv6 packets that failed RPF check on a non-outgoing interface to the CPU, the router can determine whether these packets are expected. If they are, the router initiates an RPT prune.
For more information about the assert mechanism, DR and RPT-to-SPT switchover, see "Configuring IPv6 PIM."
To enable delivering packets that failed RPF check to the CPU:
Step |
Command |
Remarks |
1. Enter system view. |
system-view |
N/A |
2. Enable delivering packets that failed RPF check to the CPU. |
multicast ipv6 rpf-fail-pkt trap-to-cpu |
Disabled by default. |
Displaying and maintaining IPv6 multicast routing and forwarding
|
CAUTION: The reset commands might cause IPv6 multicast information transmission failures. |
To display and maintain 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 (in standalone mode). |
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 information of the IPv6 multicast forwarding table (in IRF mode). |
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 | chassis chassis-number slot slot-number ] * [ port-info ] [ | { 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. |
Display IPv6 static multicast MAC address entries. |
display mac-address [ mac-address [ vlan vlan-id ] | [ multicast ] [ vlan vlan-id ] [ count ] ] [ | { begin | exclude | include } regular-expression ] |
Available in user view. For more information about this command, see IP Multicast Command Reference. |
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. 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. |
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. 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. |
For more information about designated forwarder (DF), see "Configuring IPv6 PIM."
Troubleshooting IPv6 multicast routing and forwarding
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 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 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 will create no routing entry.
· In addition, the source-policy command in IPv6 PIM filters received IPv6 multicast packets. If an IPv6 multicast packet fails to match the IPv6 ACL rule of this command, IPv6 PIM will not create a routing entry, either.
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. View the configuration of the multicast filter. Use the display current-configuration command to view 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.