---
myst:
html_meta:
description: |
VyOS supports IPv6 multicast routing through PIMv6 (Protocol
Independent Multicast for IPv6) and MLD (Multicast Listener
Discovery) versions 1 and 2.
keywords: pimv6, pim6, mld, multicast, ipv6, rendezvous point
---
(pimv6)=
# PIMv6
VyOS supports IPv6 multicast routing through
{abbr}`PIMv6 (Protocol Independent Multicast for IPv6)` and
{abbr}`MLD (Multicast Listener Discovery)` versions 1 and 2.
PIMv6 operates similarly to its IPv4 counterpart: it uses the existing unicast
IPv6 routing table for path decisions, and traffic from multicast sources is
forwarded toward a {abbr}`RP (Rendezvous Point)`. IPv6 multicast receivers use
MLD to signal their local router which groups they want to receive, and the
router uses PIMv6 to pull that traffic from the RP via a shared distribution
tree.
A working PIMv6 deployment requires:
- PIMv6 enabled on every interface participating in IPv6 multicast
forwarding.
- The location of the Rendezvous Point (RP) declared identically on every
router in the PIMv6 domain.
- MLD enabled on interfaces facing multicast receivers.
## Basic commands
Use the following commands for a basic PIMv6 setup.
```{cfgcmd} set protocols pim6 interface \
**Enable PIMv6 on the specified PIMv6 interface.**
This command also enables MLD, allowing the router to process MLD queries
and reports from IPv6 multicast receivers.
```
Example:
```none
set protocols pim6 interface eth0
```
```{cfgcmd} set protocols pim6 interface \ mld disable
**Disable MLD on the specified PIMv6 interface.**
This command turns off MLD processing on the interface while keeping PIMv6
enabled.
```
Example:
```none
set protocols pim6 interface eth0 mld disable
```
## Tuning commands
You can also tune multicast with the following commands.
```{cfgcmd} set protocols pim6 interface \ mld interval \<1-65535\>
**Configure the MLD Query Interval, in seconds, on the specified
interface.**
This setting determines how often the router sends MLD queries to discover
which IPv6 multicast groups have active listeners on the attached network.
The default value is 125 seconds.
```
Example:
```none
set protocols pim6 interface eth0 mld interval 100
```
```{cfgcmd} set protocols pim6 interface \ mld join \
**Configure the interface to join a specific IPv6 multicast group.**
```
Example:
```none
set protocols pim6 interface eth0 mld join ff0e::db8:0:1234
```
```{cfgcmd} set protocols pim6 interface \ mld join \ source \
**Configure the interface to join a specific (S,G) channel.**
A channel is identified by the combination of a source IPv6 address (S)
and a multicast IPv6 address (G).
```
Example:
```none
set protocols pim6 interface eth0 mld join ff3e::1234 source 2001:db8::1
```
```{cfgcmd} set protocols pim6 interface \ mld last-member-query-count \<1-255\>
**Configure the number of MLD Last Listener Queries the router sends on
the specified interface after a listener leaves a multicast group.**
The default value is 2.
```
Example:
```none
set protocols pim6 interface eth0 mld last-member-query-count 3
```
```{cfgcmd} set protocols pim6 interface \ mld last-member-query-interval \<100-6553500\>
**Configure the MLD Last Listener Query Interval, in milliseconds, on the
specified interface.**
This setting determines how long the router waits between Last Listener
Queries.
The default value is 1000 milliseconds.
```
Example:
```none
set protocols pim6 interface eth0 mld last-member-query-interval 500
```
```{cfgcmd} set protocols pim6 interface \ mld max-response-time \<100-6553500\>
**Configure the MLD maximum response delay, in milliseconds, on the
specified interface.**
This value is inserted in MLD queries and specifies the maximum time hosts
have to respond with a membership report. If no report is received within
the specified window, PIMv6 assumes there are no longer any active local
receivers and may time out the associated (\*,G) or (S,G) state.
```
Example:
```none
set protocols pim6 interface eth0 mld max-response-time 5000
```
```{cfgcmd} set protocols pim6 interface \ mld version \<1-2\>
**Configure the MLD version on the specified interface.**
The default version is 2.
```
Example:
```none
set protocols pim6 interface eth0 mld version 1
```
## Configuration example
To enable PIMv6 on interfaces eth0 and eth1 (which also enables MLD
automatically, allowing the router to process MLD queries and reports from
connected IPv6 multicast listeners):
```none
set protocols pim6 interface eth0
set protocols pim6 interface eth1
```
The following configuration explicitly joins the IPv6 multicast group
ff0e::db8:0:1234 on interface eth0, and the (S,G) channel
(2001:db8::1, ff3e::5678) on interface eth1:
```none
set protocols pim6 interface eth0 mld join ff0e::db8:0:1234
set protocols pim6 interface eth1 mld join ff3e::5678 source 2001:db8::1
```