- Table of Contents
- Related Documents
-
Title | Size | Download |
---|---|---|
05-IPv6 multicast routing and forwarding configuration | 105.70 KB |
Contents
Configuring IPv6 multicast routing and forwarding
About IPv6 multicast routing and forwarding
IPv6 multicast routing and forwarding tasks at a glance
Prerequisites for IPv6 multicast routing and forwarding
Enabling IPv6 multicast routing
Specifying the longest prefix match principle
Configuring IPv6 multicast load splitting
Configuring an IPv6 multicast forwarding boundary
Setting the maximum number of cached unknown IPv6 multicast packets
Display and maintenance commands for IPv6 multicast routing and forwarding
Configuring IPv6 multicast routing and forwarding
About IPv6 multicast routing and forwarding
Each IPv6 multicast routing protocol has its own routing table. Multicast routing information in routing entries generated by the IPv6 multicast routing protocols are summarized in a set of (S, G) and (*, G) entries. All the (S, G) and (*, G) entries form a general IPv6 multicast routing table. The optimal IPv6 multicast routing entries in the general IPv6 multicast routing table are added to the IPv6 multicast forwarding table to guide IPv6 multicast data forwarding.
RPF check mechanism
An IPv6 multicast routing protocol uses the reverse path forwarding (RPF) check mechanism to ensure IPv6 multicast data delivery along the correct path and to avoid data loops.
RPF check process
An IPv6 multicast device performs the RPF check on an IPv6 multicast packet as follows:
1. Chooses an optimal route back to the packet source separately from the IPv6 unicast and IPv6 MBGP routing tables.
In RPF check, the "packet source" means difference things in difference situations:
¡ For a packet that travels along the SPT, the packet source is the IPv6 multicast source.
¡ For a packet that travels along the RPT, the packet source is the RP.
¡ For a bootstrap message originated from the BSR, the packet source is the BSR.
2. Selects one of the optimal routes as the RPF route as follows:
¡ If the device uses the longest prefix match principle, the route with a higher prefix length becomes the RPF route. If the routes have the same prefix length, the route with a higher route preference becomes the RPF route. If the routes have the same route preference, the IPv6 MBGP route becomes the RPF route. If equal cost routes exist, the route with the highest next hop IPv6 address becomes the RPF route.
For more information about the route preference, see Layer 3—IP Routing Configuration Guide.
¡ If the device does not use the longest prefix match principle, the route with a higher route preference becomes the RPF route. If the routes have the same route preference, the IPv6 MBGP route becomes the RPF route. If equal cost routes exist, the route with the highest next hop IPv6 address becomes the RPF route.
In the RPF route, the outgoing interface is the RPF interface and the next hop is the RPF neighbor.
3. Determines whether the packet arrived at the RPF interface.
¡ If the packet arrived at the RPF interface, the RPF check succeeds and the packet is forwarded.
¡ If the packet arrived at the non-RPF interface, the RPF check fails and the packet is discarded.
RPF check implementation in IPv6 multicast
Implementing an RPF check on each received IPv6 multicast packet would heavily burden the device. The use of an IPv6 multicast forwarding table is the solution to this issue. When the device creates an IPv6 multicast forwarding entry for an IPv6 (S, G) packet, it sets the RPF interface of the packet as the incoming interface of the (S, G) entry. After the device receives another (S, G) packet, it looks up its IPv6 multicast forwarding table for a matching (S, G) entry.
· If no match is found, the device first determines the RPF route back to the packet source. Then, it creates a forwarding entry with the RPF interface as the incoming interface and performs one of the following tasks:
¡ If the receiving interface is the RPF interface, the RPF check succeeds and the device forwards the packet out of all outgoing interfaces.
¡ If the receiving interface is not the RPF interface, the RPF check fails and the device discards the packet.
· If a match is found and the matching forwarding entry contains the receiving interface, the device forwards the packet out of all outgoing interfaces.
· If a match is found but the matching forwarding entry does not contain the receiving interface, the device determines the RPF route back to the packet source. Then, the device performs one of the following tasks:
¡ If the RPF interface is the incoming interface, it means that the forwarding entry is correct but the packet traveled along a wrong path. The packet fails the RPF check, and the device discards the packet.
¡ If the RPF interface is not the incoming interface, it means that the forwarding entry has expired. The device replaces the incoming interface with the RPF interface and matches the receiving interface against the RPF interface. If the receiving interface is the RPF interface, the device forwards the packet out of all outgoing interfaces. Otherwise, it discards the packet.
As shown in Figure 1, assume that IPv6 unicast routes are available on the network. IPv6 MBGP is not configured. 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 Port A as the RPF interface.
· If an IPv6 multicast packet arrives at Device C on Port A, the receiving interface is the incoming interface of the (S, G) entry. Device C forwards the packet out of all outgoing interfaces.
· If an IPv6 multicast packet arrives at Device C on Port B, the receiving interface is not the incoming interface of the (S, G) entry. Device C searches its IPv6 unicast routing table and finds that the outgoing interface to the source (the RPF interface) is Port A. This means that the (S, G) entry is correct but the packet traveled along a wrong path. The packet fails the RPF check, and Device C discards the packet.
IPv6 multicast routing and forwarding tasks at a glance
To configure IPv6 multicast routing and forwarding, perform the following tasks:
1. Enabling IPv6 multicast routing
2. (Optional.) Specifying the longest prefix match principle
3. (Optional.) Configuring IPv6 multicast load splitting
4. (Optional.) Configuring an IPv6 multicast forwarding boundary
5. (Optional.) Setting the maximum number of cached unknown IPv6 multicast packets
Prerequisites for IPv6 multicast routing and forwarding
Before you configure multicast routing and forwarding, configure an IPv6 unicast routing protocol so that all devices in the domain can interoperate at the network layer.
Enabling IPv6 multicast routing
About this task
Enable IPv6 multicast routing before you configure any Layer 3 IPv6 multicast functionality in the public network or VPN instance.
Procedure
1. Enter system view.
system-view
2. Enable IPv6 multicast routing and enter IPv6 MRIB view.
ipv6 multicast routing [ vpn-instance vpn-instance-name ]
By default, IPv6 multicast routing is disabled.
Specifying the longest prefix match principle
About this task
You can enable the device to use the longest prefix match principle for RPF route selection. For more information about RPF route selection, see "RPF check process."
Procedure
1. Enter system view.
system-view
2. Enter IPv6 MRIB view.
ipv6 multicast routing [ vpn-instance vpn-instance-name ]
3. Specify the longest prefix match principle for RPF route selection.
longest-match
By default, the route preference principle is used.
Configuring IPv6 multicast load splitting
About this task
You can enable the device to split multiple IPv6 multicast data flows on a per-source basis or on a per-source-and-group basis.
Procedure
1. Enter system view.
system-view
2. Enter IPv6 MRIB view.
ipv6 multicast routing [ vpn-instance vpn-instance-name ]
3. Configure IPv6 multicast load splitting.
load-splitting { source | source-group }
By default, IPv6 multicast load splitting is disabled.
Configuring an IPv6 multicast forwarding boundary
About this task
You can configure an interface as an IPv6 multicast forwarding boundary for an IPv6 multicast group range. The interface cannot receive or forward IPv6 multicast packets for the groups in the range.
Restrictions and guidelines
You do not need to enable IPv6 multicast routing before this configuration.
Procedure
1. Enter system view.
system-view
2. Enter interface view.
interface interface-type interface-number
3. Configure an IPv6 multicast forwarding boundary.
ipv6 multicast boundary { ipv6-group-address prefix-length | scope { scope-id | admin-local | global | organization-local | site-local } }
By default, an interface is not an IPv6 multicast forwarding boundary for any IPv6 multicast groups.
Setting the maximum number of cached unknown IPv6 multicast packets
About this task
The device caches an IPv6 multicast packet for a period of time if no matching multicast forwarding entry is found for the packet. If a multicast forwarding entry is established for the packet within the time period, the device forwards the packet. This mechanism prevents the device from mistakenly dropping IPv6 multicast packets when the multicast forwarding entries for these packets are to be created.
You can set the maximum number of unknown IPv6 multicast packets that can be cached for an (S, G) entry, in total, or both.
Restrictions and guidelines
As a best practice, set the value in the ipv6 multicast forwarding-table cache-unknown total command to be far greater than the value in the ipv6 multicast forwarding-table cache-unknown per-entry command.
Procedure
1. Enter system view.
system-view
2. Set the maximum number of unknown IPv6 multicast packets that can be cached for an (S, G) entry.
ipv6 multicast forwarding-table cache-unknown per-entry per-entry-limit
By default, the device can cache only one unknown IPv6 multicast packet for an (S, G) entry.
3. Set the maximum number of unknown IPv6 multicast packets that can be cached in total.
ipv6 multicast forwarding-table cache-unknown total total-limit
By default, the device can cache 1024 unknown IPv6 multicast packets in total.
Display and maintenance commands for IPv6 multicast routing and forwarding
CAUTION: The reset commands might cause IPv6 multicast data transmission failures. |
Execute display commands in any view and reset commands in user view.
Task |
Command |
Display information about the interfaces maintained by the IPv6 MRIB. |
display ipv6 mrib [ vpn-instance vpn-instance-name ] interface [ interface-type interface-number ] |
Display IPv6 multicast boundary information. |
display ipv6 multicast [ vpn-instance vpn-instance-name ] boundary { group [ ipv6-group-address [ prefix-length ] ] | scope [ scope-id ] } [ interface interface-type interface-number ] |
Display IPv6 multicast fast forwarding entries. |
CSAP-NTA-V200[V1000]: display ipv6 multicast [ vpn-instance vpn-instance-name ] fast-forwarding cache [ ipv6-source-address | ipv6-group-address ] * CSAP-NTA-100[200][300][400][500][600][AK375]: display ipv6 multicast [ vpn-instance vpn-instance-name ] fast-forwarding cache [ ipv6-source-address | ipv6-group-address ] * [ slot slot-number ] |
Display statistics for IPv6 multicast forwarding events. |
CSAP-NTA-V200[V1000]: display ipv6 multicast [ vpn-instance vpn-instance-name ] forwarding event CSAP-NTA-100[200][300][400][500][600][AK375]: display ipv6 multicast [ vpn-instance vpn-instance-name ] forwarding event [ slot slot-number ] |
Display IPv6 multicast forwarding entries. |
CSAP-NTA-V200[V1000]: display ipv6 multicast [ vpn-instance vpn-instance-name ] forwarding-table [ ipv6-source-address [ prefix-length ] | ipv6-group-address [ prefix-length ] | incoming-interface interface-type interface-number | outgoing-interface { exclude | include | match } interface-type interface-number | statistics ] * CSAP-NTA-100[200][300][400][500][600][AK375]: display ipv6 multicast [ vpn-instance vpn-instance-name ] forwarding-table [ ipv6-source-address [ prefix-length ] | ipv6-group-address [ prefix-length ] | incoming-interface interface-type interface-number | outgoing-interface { exclude | include | match } interface-type interface-number | slot slot-number | statistics ] * |
Display IPv6 multicast routing entries. |
display ipv6 multicast [ vpn-instance vpn-instance-name ] routing-table [ ipv6-source-address [ prefix-length ] | ipv6-group-address [ prefix-length ] | incoming-interface interface-type interface-number | outgoing-interface { exclude | include | match } interface-type interface-number ] * |
Display RPF information for an IPv6 multicast source. |
display ipv6 multicast [ vpn-instance vpn-instance-name ] rpf-info ipv6-source-address [ ipv6-group-address ] |
Clear IPv6 multicast fast forwarding entries. |
CSAP-NTA-V200[V1000]: reset ipv6 multicast [ vpn-instance vpn-instance-name ] fast-forwarding cache { { ipv6-source-address | ipv6-group-address } * | all } CSAP-NTA-100[200][300][400][500][600][AK375]: reset ipv6 multicast [ vpn-instance vpn-instance-name ] fast-forwarding cache { { ipv6-source-address | ipv6-group-address } * | all } [ slot slot-number ] |
Clear statistics for IPv6 multicast forwarding events. |
reset ipv6 multicast [ vpn-instance vpn-instance-name ] forwarding event |
Clear IPv6 multicast forwarding entries. |
reset ipv6 multicast [ vpn-instance vpn-instance-name ] forwarding-table { { ipv6-source-address [ prefix-length ] | ipv6-group-address [ prefix-length ] | incoming-interface { interface-type interface-number } } * | all } |
Clear IPv6 multicast routing entries. |
reset ipv6 multicast [ vpn-instance vpn-instance-name ] routing-table { { ipv6-source-address [ prefix-length ] | ipv6-group-address [ prefix-length ] | incoming-interface interface-type interface-number } * | all } |
|
NOTE: · When you clear an IPv6 multicast routing entry, the associated IPv6 multicast forwarding entry is also cleared. · When you clear an IPv6 multicast forwarding entry, the associated IPv6 multicast routing entry is also cleared. |