PIM6 - Protocol Independent Multicast for IPv6

VyOS facilitates IPv6 Multicast by supporting PIMv6 and MLD.

PIMv6 (Protocol Independent Multicast for IPv6) must be configured in every interface of every participating router. Every router must also have the location of the Rendevouz Point manually configured. Then, unidirectional shared trees rooted at the Rendevouz Point will automatically be built for multicast distribution.

Traffic from multicast sources will go to the Rendezvous Point, and receivers will pull it from a shared tree using MLD (Multicast Listener Discovery).

Multicast receivers will talk MLD to their local router, so, besides having PIMv6 configured in every router, MLD must also be configured in any router where there could be a multicast receiver locally connected.

VyOS supports both MLD version 1 and version 2 (which allows source-specific multicast).

Basic commands

These are the commands for a basic setup.

set protocols pim6 interface <interface-name>

Use this command to enable PIMv6 in the selected interface so that it can communicate with PIMv6 neighbors. This command also enables MLD reports and query on the interface unless mld disable is configured.

set protocols pim6 interface <interface-name> mld disable

Disable MLD reports and query on the interface.

Tuning commands

You can also tune multicast with the following commands.

set protocols pim6 interface <interface-name> mld interval <seconds>

Use this command to configure in the selected interface the MLD host query interval (1-65535) in seconds that PIM will use. The default value is 125 seconds.

set protocols pim6 interface <interface-name> mld join <multicast-address>

Use this command to allow the selected interface to join a multicast group.

set protocols pim6 interface <interface-name> mld join <multicast-address> source <source-address>

Use this command to allow the selected interface to join a source-specific multicast group.

set protocols pim6 interface <interface-name> mld last-member-query-count <count>

Set the MLD last member query count. The default value is 2.

set protocols pim6 interface <interface-name> mld last-member-query-interval <milliseconds>

Set the MLD last member query interval in milliseconds (100-6553500). The default value is 1000 milliseconds.

set protocols pim6 interface <interface-name> mld max-response-time <milliseconds>

Set the MLD query response timeout in milliseconds (100-6553500). The default value is 10000 milliseconds.

set protocols pim6 interface <interface-name> mld version <version-number>

Set the MLD version used on this interface. The default value is 2.

Configuration Example

To enable MLD reports and query on interfaces eth0 and eth1:

set protocols pim6 interface eth0
set protocols pim6 interface eth1

The following configuration explicitly joins multicast group ff15::1234 on interface eth1 and source-specific multicast group ff15::5678 with source address 2001:db8::1 on interface eth1:

set protocols pim6 interface eth0 mld join ff15::1234
set protocols pim6 interface eth1 mld join ff15::5678 source 2001:db8::1