MLD Proxy Configuration
In some simple tree topologies, it is not necessary to configure complex multicast routing protocols, such as PIM, on the boundary devices. It is sufficient to learn and proxy the group membership information and simply forward multicast packets based upon that information. Using MLD forwarding (RFC 4605) to replicate multicast traffic on devices such as the edge boxes can greatly simplify the design and implementation of those devices. By not supporting more complicated multicast routing protocol such as Protocol Independent Multicast (PIM), it reduces not only the cost of the devices but also the operational overhead. Another advantage is that it makes the proxy devices independent of the multicast routing protocol used by the core network routers.
MLD proxy can be used in such topologies instead of PIM. With MLD proxy configured, the device serves as a proxy for the downstream hosts to send MLD messages, maintain group memberships, and implement multicast forwarding based on the memberships. In this case, each boundary device configured with MLD proxying is a host but no longer a PIM neighbor to the upstream device.
A device with MLD proxy configured maintains a group membership database, which stores the group memberships on all the downstream interfaces. Each entry comprises the multicast address, filter mode, and source list. Such an entry is a collection of members in the same multicast group on each downstream interface.
A proxy device performs host functions on the upstream interface based on the database. It responds to queries according to the information in the database or sends join/leave messages when the database changes. On the other hand, the proxy device performs router functions on the downstream interfaces by participating in the querier election, sending queries, and maintaining memberships based on the reports.
Terminology
Following is a brief description of terms and concepts used to describe the MLD Proxy:
Upstream interface
Also referred to as the proxy interface. A proxy interface is an interface on which MLD proxy service is configured. It is in the direction toward the root of the multicast forwarding tree. An upstream interface acts as a host running MLD; therefore, it is also called host interface.
Downstream interface
An interface that is running MLD and in the direction contrary to the root of the multicast forwarding tree. A downstream interface acts as a router running MLD; therefore, it is also called router interface.
Member State
State of the associated group address and interface.
• Idle - Interface has not yet responded to a group membership query or general query for this group.
• Delay - Interface has responded to the latest group membership query or general query for this group.
MLD-Proxy Configuration Steps
This section provides the configuration steps for configuring MLD Proxy and example for a relevant scenario.
• Enable MLD Proxy service on the upstream interface.
• Enable MLD mroute configuration on the downstream interface.
• Enable MLD proxy unsolicited report interval on the proxy interface. The proxy group membership reports are forwarded to the upstream router in this unsolicited report interval time. This is an optional parameter in which the default value of 1 sec is considered for forwarding proxy groups to upstream router.
Note: Configure IPv6 addresses on all the interfaces used in the topology.
Unicast routing protocol should be configured in the PIM domain.
Topology
IIn this network topology, Router 1 acts as a proxying router to the upstream router Router 2 in which PIM domain is present. Also the source address is 2000::1/64 and the group address is set to ff03::1.
Note: Any PIM mode (PIM-SM,PIM-DM,PIM-SMDM) should be enabled on all the interfaces in the PIM domain.
Here in this example default value for unsolicited report interval is considered.
MLD Proxy Topology
In this example, Routers 2 and 3 are running PIM and Router1 is the MLD Proxying router.
• Host ends an MLD membership report to Subnet 1.
• Downstream interface on Router1 received MLD reports from host and updates the proxy interface.
• MLD Proxying router (Router1) maintains the group membership information and forwards the received report to the upstream router (Router2).
• Source then sends a data packet for group.
• When the data packet reaches Router1, it forwards via the interface, eth2, because it has an MLD join requested for Multicast traffic.
Enabling IPv6 Multicast Routing
Enable IP multicast routing on all of the PIM routers inside the PIM domain:
#configure terminal | Enter Configure mode. |
(config)# ipv6 multicast-routing | Enable IPv6 multicast routing. |
(config)#commit | Commit the transaction. |
Enabling Proxy upstream interface
Enable MLD proxy service on the interface in which the interface is in the direction toward the root of the multicast forwarding tree. In this example eth1 is the upstream interface which acts as an MLD host.
#configure terminal | Enter Configure mode. |
(config)#interface eth1 | Enter interface mode. |
(config-if)#ipv6 address 2000::1/64 | Assign IPv6 address to an interface |
(config-if)#ipv6 MLD proxy-service | Enable MLD proxy service on the upstream interface. |
(config-if)#commit | Commit the transaction. |
(config)#exit | Exit Configure mode. |
Enabling Proxy downstream interface
Enable MLD mroute proxy on the interface in which the interface is in the direction contrary to the root of the multicast forwarding tree. In this example eth2 is the downstream interface which is connected to receiver.
#configure terminal | Enter Configure mode. |
(config)#interface eth2 | Enter Interface mode |
(config-if)#ipV6 address 3000::1/64 | Assign IPv6 address to an interface |
(config-if)#ipv6 MLD mroute-proxy eth1 | Enable MLD mroute proxy on the downstream interface and specify the upstream proxy interface name. |
(config-if)#commit | Commit the transaction. |
(config)#exit | Exit Configure mode. |
Validation
Here is the same configuration for MLD Proxying router.
hostname Router1
!
interface lo
!
!
ipv6 multicast-routing
!
interface eth0
!
interface eth1
ipv6 address 2000::1/64
ipv6 mld proxy-service
!
interface eth2
fec off
ipv6 address 3000::1/64
ipv6 mld mroute-proxy eth1
!
MLD proxy interface
The following output displays the mld Proxy interface information.
Router1#show ipv6 mld interface
Interface eth1 (Index 3)
MLD Enabled, Active, Version 3 (default), proxy-service
MLD host version 3
Internet address is 2000::1
Unsolicited Report Interval is 1000 milliseconds
Interface eth2 (Index 4)
MLD Enabled, Active, Querier, Version 3 (default)
MLD mroute-proxy interface is eth1
Internet address is 3000::1
MLD interface has 1 group-record states
MLD Interface statistics:
v1-reports: 0
v2-reports: 1, v2-leaves: 0
v3-reports: 0
MLD query interval is 125 seconds
MLD Startup query interval is 31 seconds
MLD Startup query count is 2
MLD querier timeout is 255 seconds
MLD max query response time is 10 seconds
Group Membership interval is 260 seconds
MLD Last member query count is 2
Last member query response interval is 1000 milliseconds
MLD proxy
The following output displays the mld proxy information.
Router1#show ipv6 mld proxy
Interface eth2 (Index 4)
Administrative status: enabled
Operational status: up
Upstream interface is eth1
Number of multicast groups: 1
MLD proxy groups
The following output displays the MLD proxy group membership information.
Router1#show ipv6 mld proxy groups
MLD Connected Group Membership
Group Address Interface State Member state
Ff03::1 eth1 Active Idle
The show ipv6 mroute command displays the IPv6 multicast routing table.
Router1#show ipv6 mroute
IPv6 Multicast Routing Table
Flags: I - Immediate Stat, T - Timed Stat, F - Forwarder installed
B - BIDIR
Timers: Uptime/Stat Expiry
Interface State: Interface
(2000::1, ff03::1), uptime 00:01:10, stat expires 00:02:46
Owner PIM, Flags: TF
Incoming interface: eth1
Outgoing interface list:
eth2 (1)
Enabling Unsolicited report interval
Enable MLD proxy unsolicited report interval on the upstream interface. The proxy group membership reports are forwarded to the upstream router in this unsolicited report interval time.
#configure terminal | Enter Configure mode. |
(config)#interface eth1 | Enter Interface mode |
(config-if)#ipv6 MLD proxy unsolicited-report-interval 20000 | Enable MLD proxy unsolicited report interval value on the upstream interface. |
(config-if)#commit | Commit the transaction. |
(config)#exit | Exit Configure mode. |
Validation
Here is the same configuration for MLD Proxying router.
hostname Router1
!
interface eth0
!
interface eth1
ipv6 address 2000::1/64
ipv6 mld proxy-service
ipv6 mld proxy unsolicited-report-interval 20000
!
interface eth2
ipv6 address 3000::1/64
ipv6 mld mroute-proxy eth1
!
interface lo
!
!
Ipv6 multicast-routing
!
MLD proxy Unsolicited report interval
The following output displays the MLD proxy unsolicited report interval information.
Router1#show ipv6 MLD interface eth1
Interface eth1 (Index 3)
MLD Enabled, Active, Version 3 (default), proxy-service
MLD host version 3
Internet address is 2000::1
Unsolicited Report Interval is 20000 milliseconds
MLD proxy group with unsolicited report interval
The following output displays the MLD proxy group membership information when the proxy unsolicited report interval is configured to specific value.
Router1#show ipv6 MLD proxy groups
MLD Connected Proxy Group Membership
Group Address Interface State Member state
Ff03::1 eth1 Active Idle
IPv6 Multicast Routing Table
The show ipv6 mroute command displays the IPv6 multicast routing table.
Router1#show ipv6 mroute
IPv6 Multicast Routing Table
Flags: I - Immediate Stat, T - Timed Stat, F - Forwarder installed
B - BIDIR
Timers: Uptime/Stat Expiry
Interface State: Interface
(2000::1, ff03::1), uptime 00:01:10, stat expires 00:02:46
Owner PIM, Flags: TF
Incoming interface: eth1
Outgoing interface list:
eth2 (1)