08-IP Multicast Configuration Guide

HomeSupportResource CenterNFVH3C VSRH3C VSRTechnical DocumentsConfigureConfiguration GuidesH3C VSR Series Virtual Services Routers Configuration Guides(V7)-R0621-6W30008-IP Multicast Configuration Guide
06-IPv6 multicast routing and forwarding configuration

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.

For more information about the concepts of SPT, RPT, source-side RPT, RP, and BSR, see "Configuring IPv6 PIM."

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.

Figure 1 RPF check process

 

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 forwarding across IPv6 unicast subnets

Devices forward the IPv6 multicast data from an IPv6 multicast source hop by hop along the forwarding tree, but some devices might not support IPv6 multicast protocols in a network. When the IPv6 multicast data is forwarded to a device that does not support IPv6 multicast, the forwarding path is blocked. In this case, you can enable IPv6 multicast data forwarding across the IPv6 unicast subnets by establishing a tunnel between the devices at both ends of the IPv6 unicast subnets.

Figure 2 IPv6 multicast data transmission through a tunnel

 

As shown in Figure 2, a tunnel is established between Device A and Device B. Device A encapsulates the IPv6 multicast data in unicast IPv6 packets, and forwards them to Device B across the tunnel through unicast devices. Then, Device B strips off the unicast IPv6 header and continues to forward the IPv6 multicast data down toward the receivers.

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.) Configuring RPF check failure processing

¡     Configuring the device to flood RPF-check-failed IPv6 multicast data packets in all VLANs

¡     Configuring the device to multicast RPF-check-failed IPv6 multicast data packets in a VLAN

¡     Configuring the device to send RPF-check-failed IPv6 multicast data packets to the CPU

6.     (Optional.) Enabling IPv6 multicast forwarding between sub-VLANs of a super VLAN

7.     (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.

Restrictions and guidelines

This feature does not take effect on IPv6 BIDIR-PIM.

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.

Configuring RPF check failure processing

Configuring the device to flood RPF-check-failed IPv6 multicast data packets in all VLANs

About this task

In some networks, multicast receivers might exist in VLANs to which RPF-check-failed IPv6 multicast data packets belong. For the receivers to receive the packets, you can configure the device to flood the packets in all VLANs.

Restrictions and guidelines

You do not need to enable IPv6 multicast routing before this configuration.

Procedure

1.     Enter system view.

system-view

2.     Configure the device to flood RPF-check-failed IPv6 multicast data packets in all VLANs.

ipv6 multicast rpf-fail-pkt flooding

By default, RPF-check-failed IPv6 multicast data packets are not flooded in all VLANs.

3.     Return to user view.

quit

4.     Clear all IPv6 multicast forwarding entries.

reset ipv6 multicast [ vpn-instance vpn-instance-name ] forwarding-table all

The ipv6 multicast rpf-fail-pkt flooding command takes effect only after you perform this step.

Configuring the device to multicast RPF-check-failed IPv6 multicast data packets in a VLAN

About this task

In some networks, multicast receivers might exist in the VLAN to which RPF-check-failed IPv6 multicast data packets belong. For the receivers to receive the packets, you can configure the device to flood the packets in the VLAN.

Restrictions and guidelines

When you configure the device to multicast RPF-check-failed IPv6 multicast data packets in a VLAN, follow these restrictions and guidelines:

·     Make sure MLD snooping is enabled in the VLAN.

·     Make sure a Layer 3 IPv6 multicast routing protocol (such as MLD or IPv6 PIM) runs on the VLAN interface.

·     RPF-check-failed IPv6 multicast data packets can be multicast in a VLAN only when associated MLD snooping forwarding entries exist in the VLAN.

You do not need to enable IPv6 multicast routing before this configuration.

Procedure

1.     Enter system view.

system-view

2.     Configure the device to flood RPF-check-failed IPv6 multicast data packets in all VLANs.

ipv6 multicast rpf-fail-pkt flooding

By default, RPF-check-failed IPv6 multicast data packets are not flooded in all VLANs.

3.     Enter VLAN interface view.

interface vlan-interface vlan-interface-id

4.     Configure the device to multicast RPF-check-failed multicast data packets in the VLAN.

ipv6 multicast rpf-fail-pkt bridging

By default, multicast RPF-check-failed multicast data packets are not multicast in a VLAN.

5.     Return to system view.

quit

6.     Return to user view.

quit

7.     Clear dynamic MLD snooping group entries.

reset mld-snooping group all [ vlan vlan-id ]

The ipv6 multicast rpf-fail-pkt bridging command takes effect only after you perform this step.

For more information about this command, see IP Multicast Command Reference.

Configuring the device to send RPF-check-failed IPv6 multicast data packets to the CPU

About this task

In the following cases, multicast data packets that fail the RPF check must be sent to the CPU:

·     If an IPv6 multicast data packet arrives on an outgoing interface of the corresponding IPv6 multicast forwarding entry, the packet fails the RPF check. Such packets must be delivered to the CPU to trigger the assert mechanism to prune the unwanted branch. For more information about the assert mechanism, DR, and RPT-to-SPT switchover, see "Configuring IPv6 PIM."

·     Assume that the SPT and RPT have different incoming interfaces on the receiver-side DR in an IPv6 PIM-SM domain. Before the switchover to SPT finishes, the RPF interface of the route on the DR to the multicast source remains as the RPT incoming interface. The IPv6 multicast packets that travel along the SPT will fail the RPF check and be discarded. If the RPT is pruned at this moment, the IPv6 multicast service is instantaneously interrupted.

To avoid this problem, you can configure the device to deliver the packets that travel along the SPT and fail the RPF check to the CPU. When the packets arrive at the CPU, the system determines whether the packets are expected. If they are expected, the device initiates an RPT prune.

Restrictions and guidelines

You do not need to enable IPv6 multicast routing before this configuration.

Procedure

1.     Enter system view.

system-view

2.     Configure the device to send RPF-check-failed IPv6 multicast data packets to the CPU.

ipv6 multicast rpf-fail-pkt trap-to-cpu

By default, RPF-check-failed IPv6 multicast data packets are not sent to the CPU.

3.     Return to user view.

quit

4.     Clear all IPv6 multicast forwarding entries.

reset ipv6 multicast [ vpn-instance vpn-instance-name ] forwarding-table all

The ipv6 multicast rpf-fail-pkt trap-to-cpu command takes effect only after you perform this step.

Enabling IPv6 multicast forwarding between sub-VLANs of a super VLAN

About this task

A super VLAN is associated with multiple sub-VLANs. Sub-VLANs are isolated with each other at Layer 2. For information about super VLANs and sub-VLANs, see Layer 2—LAN Switching Configuration Guide.

Procedure

1.     Enter system view.

system-view

2.     Enter VLAN interface view.

interface vlan-interface interface-number

3.     Enable IPv6 multicast forwarding between sub-VLANs that are associated with a super VLAN.

ipv6 multicast forwarding supervlan community

By default, IPv6 multicast data cannot be forwarded among sub-VLANs that are associated with a super VLAN.

4.     Return to system view.

quit

5.     Return to user view.

quit

6.     Clear all IPv6 multicast forwarding entries with super VLAN interface as the incoming interface.

reset ipv6 multicast [ vpn-instance vpn-instance-name ] forwarding-table incoming-interface { interface-type interface-number }

The ipv6 multicast forwarding supervlan community command takes effect only after you perform this step.

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

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.

In standalone mode:

display ipv6 multicast [ vpn-instance vpn-instance-name ] fast-forwarding cache [ ipv6-source-address | ipv6-group-address ] *

In IRF mode:

display ipv6 multicast [ vpn-instance vpn-instance-name ] fast-forwarding cache [ ipv6-source-address | ipv6-group-address ] * [ slot slot-number ]

Display DF information.

In standalone mode:

display ipv6 multicast [ vpn-instance vpn-instance-name ] forwarding df-info [ ipv6-rp-address ] [ verbose ]

In IRF mode:

display ipv6 multicast [ vpn-instance vpn-instance-name ] forwarding df-info [ ipv6-rp-address ] [ verbose ] [ slot slot-number ]

Display statistics for IPv6 multicast forwarding events.

¡     In standalone mode:

display ipv6 multicast [ vpn-instance vpn-instance-name ] forwarding event

In IRF mode:

display ipv6 multicast [ vpn-instance vpn-instance-name ] forwarding event [ slot slot-number ]

Display IPv6 multicast forwarding entries.

In standalone mode:

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 ] *

In IRF mode:

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 information about the DF list in the IPv6 multicast forwarding table.

In standalone mode:

display ipv6 multicast [ vpn-instance vpn-instance-name ] forwarding-table df-list [ ipv6-group-address ] [ verbose ]

In IRF mode:

display ipv6 multicast [ vpn-instance vpn-instance-name ] forwarding-table df-list [ ipv6-group-address ] [ verbose ] [ slot slot-number ]

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.

In standalone mode:

reset ipv6 multicast [ vpn-instance vpn-instance-name ] fast-forwarding cache { { ipv6-source-address | ipv6-group-address } * | all }

In IRF mode:

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.

 

IPv6 multicast routing and forwarding configuration examples

Example: Configuring IPv6 multicast forwarding over a GRE tunnel

Network configuration

As shown in Figure 3:

·     IPv6 multicast routing and IPv6 PIM-DM are enabled on Router A and Router C.

·     Router B does not support IPv6 multicast.

·     Router A, Router B, and Router C run OSPFv3. The source-side interface GigabitEthernet 1/0 on Router A does not run OSPFv3.

Configure a GRE tunnel so that the receiver host can receive the IPv6 multicast data from Source.

Figure 3 Network diagram

Procedure

1.     Assign an IPv6 address and prefix length to each interface, as shown in Figure 3. (Details not shown.)

2.     Configure OSPFv3 on the routers. Do not run OSPFv3 on the source-side interface GigabitEthernet 1/0 on Router A. (Details not shown.)

3.     Configure a GRE tunnel:

# Create an IPv6 GRE tunnel interface Tunnel 2 on Router A.

<RouterA> system-view

[RouterA] interface tunnel 2 mode gre ipv6

# Assign an IPv6 address to interface Tunnel 2 on Router A, and specify its source and destination addresses.

[RouterA-Tunnel2] ipv6 address 5001::1 64

[RouterA-Tunnel2] source 2001::1

[RouterA-Tunnel2] destination 3001::2

[RouterA-Tunnel2] quit

# Create an IPv6 GRE tunnel interface Tunnel 2 on Router C.

<RouterC> system-view

[RouterC] interface tunnel 2 mode gre ipv6

# Assign an IPv6 address to interface Tunnel 2, and specify its source and destination addresses.

[RouterC-Tunnel2] ipv6 address 5001::2 64

[RouterC-Tunnel2] source 3001::2

[RouterC-Tunnel2] destination 2001::1

[RouterC-Tunnel2] quit

4.     Enable IPv6 multicast routing, IPv6 PIM-DM, and MLD:

# On Router A, enable IPv6 multicast routing, and enable IPv6 PIM-DM on each interface.

[RouterA] ipv6 multicast routing

[RouterA-mrib6] quit

[RouterA] interface gigabitethernet 1/0

[RouterA-GigabitEthernet1/0] ipv6 pim dm

[RouterA-GigabitEthernet1/0] quit

[RouterA] interface gigabitethernet 2/0

[RouterA-GigabitEthernet2/0] ipv6 pim dm

[RouterA-GigabitEthernet2/0] quit

[RouterA] interface tunnel 2

[RouterA-Tunnel2] ipv6 pim dm

[RouterA-Tunnel2] quit

# On Router C, enable IPv6 multicast routing.

[RouterC] ipv6 multicast routing

[RouterC-mrib6] quit

# Enable MLD on the receiver-side interface GigabitEthernet 1/0.

[RouterC] interface gigabitethernet 1/0

[RouterC-GigabitEthernet1/0] mld enable

[RouterC-GigabitEthernet1/0] quit

# Enable IPv6 PIM-DM on the other interfaces.

[RouterC] interface gigabitethernet 2/0

[RouterC-GigabitEthernet2/0] ipv6 pim dm

[RouterC-GigabitEthernet2/0] quit

[RouterC] interface tunnel 2

[RouterC-Tunnel2] ipv6 pim dm

[RouterC-Tunnel2] quit

5.     On Router C, configure a static route with the destination address 1001::/64 and the outgoing interface Tunnel 2.

[RouterC] ipv6 route-static 1001::1 64 tunnel 2

Verifying the configuration

# Send an MLD report from Receiver to join the IPv6 multicast group FF1E::101. (Details not shown.)

# Send IPv6 multicast data from Source to the IPv6 multicast group FF1E::101. (Details not shown.)

# Display PIM routing entries on Router C.

[RouterC] display ipv6 pim routing-table

 Total 1 (*, G) entry; 1 (S, G) entry

 

 (*, FF1E::101)

     Protocol: pim-dm, Flag: WC

     UpTime: 00:04:25

     Upstream interface: NULL

         Upstream neighbor: NULL

         RPF prime neighbor: NULL

     Downstream interface(s) information:

     Total number of downstreams: 1

         1: GigabitEthernet1/0

             Protocol: mld, UpTime: 00:04:25, Expires: -

 

 (1001::100, FF1E::101)

     Protocol: pim-dm, Flag: ACT

     UpTime: 00:06:14

     Upstream interface: Tunnel2

         Upstream neighbor: FE80::A01:101:1

         RPF prime neighbor: FE80::A01:101:1

     Downstream interface(s) information:

     Total number of downstreams: 1

         1: GigabitEthernet1/0

             Protocol: pim-dm, UpTime: 00:04:25, Expires: -

The output shows the following information:

·     Router A is the RPF neighbor of Router C.

·     IPv6 multicast data from Router A is delivered over the GRE tunnel to Router C.

Example: Configuring IPv6 multicast forwarding over ADVPN tunnel interfaces

Network configuration

As shown in Figure 4:

·     An IPv6 ADVPN tunnel is established between each spoke and hub.

·     All hubs and spokes support IPv6 multicast. IPv6 PIM-SM runs on them, and NBMA runs on their IPv6 ADVPN tunnel interfaces.

·     OSPFv3 runs all hubs and spokes.

Configure the routers so that Spoke 1 can receive IPv6 multicast data from the source.

Figure 4 Network diagram

Table 1 Interface and IPv6 address assignment

Device

Interface

IPv6 address

Device

Interface

IPv6 address

Hub 1

GE1/0

1::1/64

Spoke 1

GE1/0

1::3/64

Hub 1

Tunnel1

192:168::1/64

FE80::1

Spoke 1

Tunnel1

192:168::3/64

FE80::3

Hub 1

Loop0

44::44/64

Spoke 1

GE2/0

200::100/64

Hub 1

GE2/0

100::100/64

Spoke 2

GE1/0

1::4/64

Hub 2

Tunnel1

192:168::2/64

FE80::2

Spoke 2

Tunnel1

192:168::4/64

FE80::4

Hub 2

Loop0

55::55/64

Server

GE1/0

1::11/64

Hub 2

GE1/0

1::2/64

 

 

 

 

Procedure

1.     Assign an IPv6 address and prefix length to each interface, as shown in Table 1. (Details not shown.)

2.     Configure ADVPN:

a.     Configure the VAM server:

# Create ADVPN domain abc.

<Server> system-view

[Server] vam server advpn-domain abc id 1

# Set the pre-shared key to 123456.

[Server-vam-server-domain-abc] pre-shared-key simple 123456

# Configure the VAM server not to authenticate VAM clients.

[Server-vam-server-domain-abc] authentication-method none

# Enable the VAM server.

[Server-vam-server-domain-abc] server enable

# Create hub group 0.

[Server-vam-server-domain-abc] hub-group 0

# Specify private IPv6 addresses for hubs in hub group 0.

[Server-vam-server-domain-abc-hub-group-0] hub ipv6 private-address 192:168::1

[Server-vam-server-domain-abc-hub-group-0] hub ipv6 private-address 192:168::2

# Specify a private IPv6 address range for spokes in hub group 0.

[Server-vam-server-domain-abc-hub-group-0] spoke ipv6 private-address range 192:168:: 192:168::FFFF:FFFF:FFFF:FFFF

[Server-vam-server-domain-abc-hub-group-0] quit

[Server-vam-server-domain-abc] quit

b.     Configure Hub 1:

# Create VAM client hub1.

<Hub1> system-view

[Hub1] vam client name Hub1

# Specify ADVPN domain abc for the VAM client.

[Hub1-vam-client-Hub1] advpn-domain abc

# Specify the VAM server.

[Hub1-vam-client-Hub1] server primary ipv6-address 1::11

# Set the pre-shared key to 123456.

[Hub1-vam-client-Hub1] pre-shared-key simple 123456

# Enable the VAM client.

[Hub1-vam-client-Hub1] client enable

c.     Configure Hub 2:

# Create VAM client hub2.

<Hub2> system-view

[Hub2] vam client name hub2

# Specify ADVPN domain abc for the VAM client.

[Hub2-vam-client-hub2] advpn-domain abc

# Specify the VAM server.

[Hub2-vam-client-hub2] server primary ipv6-address 1::11

# Set the pre-shared key to 123456.

[Hub2-vam-client-hub2] pre-shared-key simple 123456

# Enable the VAM client.

[Hub2-vam-client-hub2] client enable

d.     Configure Spoke 1:

# Create VAM client Spoke1.

<Spoke1> system-view

[Spoke1] vam client name Spoke1

# Specify ADVPN domain abc for the VAM client.

[Spoke1-vam-client-Spoke1] advpn-domain abc

# Specify the VAM server.

[Spoke1-vam-client-Spoke1] server primary ipv6-address 1::11

# Set the pre-shared key to 123456.

[Spoke1-vam-client-Spoke1] pre-shared-key simple 123456

# Enable the VAM client.

[Spoke1-vam-client-Spoke1] client enable

[Spoke1-vam-client-Spoke1] quit

e.     Configure Spoke 2:

# Create VAM client Spoke2.

<Spoke2> system-view

[Spoke2] vam client name Spoke2

# Specify ADVPN domain abc for the VAM client.

[Spoke2-vam-client-Spoke2] advpn-domain abc

# Specify the VAM server.

[Spoke2-vam-client-Spoke2] server primary ipv6-address 1::11

# Set the pre-shared key to 123456.

[Spoke2-vam-client-Spoke2] pre-shared-key simple 123456

# Enable the VAM client.

[Spoke2-vam-client-Spoke2] client enable

[Spoke2-vam-client-Spoke2] quit

[Spoke1-vam-client-Spoke1] quit

f.     Configure IPv6 ADVPN tunnel interfaces:

# On Hub 1, configure GRE-mode IPv6 ADVPN tunnel interface tunnel1.

[Hub1] interface tunnel 1 mode advpn gre ipv6

[Hub1-Tunnel1] source gigabitethernet 1/0

[Hub1-Tunnel1] ipv6 address FE80::1 link-local

[Hub1-Tunnel1] ipv6 address 192:168::1 64

[Hub1-Tunnel1] vam ipv6 client hub1

[Hub1-Tunnel1] quit

# On Hub 2, configure GRE-mode IPv6 ADVPN tunnel interface tunnel1.

[Hub2] interface tunnel 1 mode advpn gre ipv6

[Hub2-Tunnel1] source gigabitethernet 1/0

[Hub2-Tunnel1] ipv6 address FE80::2 link-local

[Hub2-Tunnel1] ipv6 address 192:168::2 64

[Hub2-Tunnel1] vam ipv6 client hub1

[Hub2-Tunnel1] quit

# On Spoke 1, configure GRE-mode IPv6 ADVPN tunnel interface tunnel1.

[Spoke1] interface tunnel 1 mode advpn gre ipv6

[Spoke1-Tunnel1] source gigabitethernet 1/0

[Spoke1-Tunnel1] ipv6 address FE80::3 link-local

[Spoke1-Tunnel1] ipv6 address 192:168::3/64

[Spoke1-Tunnel1] vam ipv6 client spoke1

[Spoke1-Tunnel1] quit

# On Spoke 2, configure GRE-mode IPv6 ADVPN tunnel interface tunnel1.

[Spoke2] interface tunnel 1 mode advpn gre ipv6

[Spoke2-Tunnel1] source gigabitethernet 1/0

[Spoke2-Tunnel1] ipv6 address FE80::4 link-local

[Spoke2-Tunnel1] ipv6 address 192:168::4/64

[Spoke2-Tunnel1] vam ipv6 client spoke2

[Spoke2-Tunnel1] quit

3.     Configure OSPFv3:

# On Hub 1, configure OSPFv3.

<Hub1> system-view

[Hub1] ospfv3

[Hub1-ospfv3-1] router-id 0.0.0.1

[Hub1-ospfv3-1] area 0.0.0.0

[Hub1-ospfv3-1-area-0.0.0.0] quit

[Hub1-ospfv3-1] quit

[Hub1] interface loopback 0

[Hub1-LoopBack0] ospfv3 1 area 0.0.0.0

[Hub1-LoopBack0] quit

[Hub1] interface gigabitethernet 2/0

[Hub1-GigabitEthernet2/0] ospfv3 1 area 0.0.0.0

[Hub1-GigabitEthernet2/0] quit

[Hub1] interface tunnel 1

[Hub1-Tunnel1] ospfv3 1 area 0.0.0.0

[Hub1-Tunnel1] ospfv3 network-type p2mp

[Hub1-Tunnel1] quit

# On Hub 2, configure OSPFv3.

<Hub2> system-view

[Hub2] ospfv3

[Hub2-ospfv3-1] router-id 0.0.0.2

[Hub2-ospfv3-1] area 0.0.0.0

[Hub2-ospfv3-1-area-0.0.0.0] quit

[Hub2-ospfv3-1] quit

[Hub2] interface loopback 0

[Hub2-LoopBack0] ospfv3 1 area 0.0.0.0

[Hub2-LoopBack0] quit

[Hub2] interface tunnel 1

[Hub2-Tunnel1] ospfv3 1 area 0.0.0.0

[Hub2-Tunnel1] ospfv3 network-type p2mp

[Hub2-Tunnel1] quit

# On Spoke 1, configure OSPFv3.

<Spoke1> system-view

[Spoke1] ospfv3 1

[Spoke1-ospfv3-1] router-id 0.0.0.3

[Spoke1-ospfv3-1] area 0.0.0.0

[Spoke1-ospfv3-1-area-0.0.0.0] quit

[Spoke1-ospfv3-1] quit

[Spoke1] interface tunnel 1

[Spoke1-Tunnel1] ospfv3 1 area 0.0.0.0

[Spoke1-Tunnel1] ospfv3 network-type p2mp

[Spoke1-Tunnel1] quit

# On Spoke 2, configure OSPFv3.

<Spoke2> system-view

[Spoke2] ospfv3 1

[Spoke2-ospfv3-1] router-id 0.0.0.4

[Spoke2-ospfv3-1] area 0.0.0.0

[Spoke2-ospfv3-1-area-0.0.0.0] quit

[Spoke2-ospfv3-1] quit

[Spoke2] interface tunnel 1

[Spoke2-Tunnel1] ospfv3 1 area 0.0.0.0

[Spoke2-Tunnel1] ospfv3 network-type p2mp

[Spoke2-Tunnel1] quit

[Spoke2] interface gigabitethernet 2/0

[Spoke2-GigabitEthernet2/0] ospfv3 1 area 0.0.0.0

[Spoke2-GigabitEthernet2/0] quit

4.     Configure IPv6 multicast:

a.     Configure Hub 1:

# Enable IPv6 multicast routing.

<Hub1> system-view

[Hub1] ipv6 multicast routing

[Hub1-mrib6] quit

# Enable IPv6 PIM-SM on Loopback 0 and GigabitEthernet 2/0.

[Hub1] interface loopback 0

[Hub1-LoopBack0] ipv6 pim sm

[Hub1-LoopBack0] quit

[Hub1] interface gigabitethernet 2/0

[Hub1-GigabitEthernet2/0] ipv6 pim sm

[Hub1-GigabitEthernet2/0] quit

# Enable IPv6 PIM-SM and NBMA mode on Tunnel interface tunnel1.

[Hub1] interface tunnel 1

[Hub1-Tunnel1] ipv6 pim sm

[Hub1-Tunnel1] ipv6 pim nbma-mode

[Hub1-Tunnel1] quit

# Configure Loopback 0 as a C-BSR and a C-RP.

<Hub1> system-view

[Hub1] ipv6 pim

[Hub1-pim6] c-bsr 44::44

[Hub1-pim6] c-rp 44::44

[Hub1-pim6] quit

b.     Configure Hub 2:

# Enable IPv6 multicast routing.

<Hub2> system-view

[Hub2] ipv6 multicast routing

[Hub2-mrib6] quit

# Enable IPv6 PIM-SM on Loopback 0.

[Hub2] interface loopback 0

[Hub2-LoopBack0] ipv6 pim sm

[Hub2-LoopBack0] quit

# Enable IPv6 PIM-SM and NBMA mode on Tunnel interface tunnel1.

[Hub2] interface tunnel 1

[Hub2-Tunnel1] ipv6 pim sm

[Hub2-Tunnel1] ipv6 pim nbma-mode

[Hub2-Tunnel1] quit

# Configure Loopback 0 as a C-BSR and a C-RP.

<Hub2> system-view

[Hub2] ipv6 pim

[Hub2-pim6] c-bsr 55::55

[Hub2-pim6] c-rp 55::55

[Hub2-pim6] quit

c.     Configure Spoke 1:

# Enable IPv6 multicast routing.

<Spoke1> system-view

[Spoke1] ipv6 multicast routing

[Spoke1-mrib6] quit

# Enable IPv6 PIM-SM and NBMA mode on Tunnel interface tunnel1.

[Spoke1] interface tunnel 1

[Spoke1-Tunnel1] ipv6 pim sm

[Spoke1-Tunnel1] ipv6 pim nbma-mode

[Spoke1-Tunnel1] quit

# Enable MLD on GigabitEthernet 2/0.

[Spoke1] interface gigabitethernet 2/0

[Spoke1-GigabitEthernet2/0] mld enable

[Spoke1-GigabitEthernet2/0] quit

d.     Configure Spoke 2:

# Enable IPv6 multicast routing.

<Spoke2> system-view

[Spoke2] ipv6 multicast routing

[Spoke2-mrib6] quit

# Enable IPv6 PIM-SM and NBMA mode on Tunnel interface tunnel1.

[Spoke2] interface tunnel 1

[Spoke2-Tunnel1] ipv6 pim sm

[Spoke2-Tunnel1] ipv6 pim nbma-mode

[Spoke2-Tunnel1] quit

Verifying the configuration

# Send an MLD report from Spoke 1 to join the IPv6 multicast group FF0E::1. (Details not shown.)

# Send IPv6 multicast data from the source to the IPv6 multicast group. (Details not shown.)

# Display IPv6 PIM routing entries on Hub 1.

[Hub1]display ipv6 pim routing-table

 Total 1 (*, G) entries; 1 (S, G) entries

 

 (*, FF0E::1)

     RP: 44::44 (local)

     Protocol: pim-sm, Flag: WC

     UpTime: 17:02:10

     Upstream interface: Register-Tunnel0

         Upstream neighbor: NULL

         RPF prime neighbor: NULL

     Downstream interface information:

     Total number of downstream interfaces: 1

         1: Tunnel1, FE80::3

             Protocol: pim-sm, UpTime: 17:01:23, Expires: 00:02:41

 

 (100::1, FF0E::1)

     RP: 44::44 (local)

     Protocol: pim-sm, Flag: SPT LOC ACT

     UpTime: 00:00:02

     Upstream interface: GigabitEthernet3/0

         Upstream neighbor: NULL

         RPF prime neighbor: NULL

     Downstream interface information:

     Total number of downstream interfaces: 1

         1: Tunnel1, FE80::3

             Protocol: pim-sm, UpTime: 00:00:02, Expires: 00:03:28

The output shows that Tunnel interface tunnel1 (FE80::3) on Spoke 1 will receive the IPv6 multicast data addressed to the IPv6 multicast group FF0E::1 from the source.